三、MySQL基础系列笔记之SQL DDL语句

作者: 温新

分类: 【MySql】

阅读: 1856

时间: 2020-10-09 13:04:57

DDL是对数据库内部的对象进行创建、删除、修改等操作的语言。

DML与DDL的区别在于,DML是操作数据表内部的数据,并不涉及表的定义、结构的修改。

连接数据库

语法

mysql -u用户名 -p密码 -h主机名 -P端口号

案例

mysql -uroot -p123456

1、创建数据库

语法

CREATE DATABASE 数据名;

案例:创建demo数据

<span style="box-sizing: border-box;padding-right: 0.1px">mysql> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">CREATE</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">DATABASE</span> demo;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">Query</span> OK, <span style="box-sizing: border-box;color: rgb(163, 78, 143)">1</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">row</span> affected (<span style="box-sizing: border-box;color: rgb(163, 78, 143)">0.00</span> sec)</span>

命令执行完后,提示的一行信息解释:

'Query OK'表示命令执行成功;

'1 row affected'表示数据库操作中1行受到影响;

'0.00 sec'表示执行该语句用于多长时间。

查看所有数据库

语法

show databases;

选择数据库

语法

use 数据库名;

案例

use demo;

2、删除数据库

语法

drop database 数据库名;

案例

drop database demo;

3、创建数据表

语法

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">create</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> [<span style="box-sizing: border-box;color: rgb(219, 45, 32)">if</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">not</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">exists</span>] 表名(</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> 字段名1 字段类型 [约束条件] [<span style="box-sizing: border-box;color: rgb(219, 45, 32)">comment</span> <span style="box-sizing: border-box;color: rgb(242, 176, 29)">'字段说明'</span>],</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    字段名2 字段类型 [约束条件] [<span style="box-sizing: border-box;color: rgb(219, 45, 32)">comment</span> <span style="box-sizing: border-box;color: rgb(242, 176, 29)">'字段说明'</span>],</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> ...</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">) <span style="box-sizing: border-box;color: rgb(219, 45, 32)">engine</span>=table_type;</span>

案例:创建emp表

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">create</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">if</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">not</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">exists</span> emp(</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> name <span style="box-sizing: border-box;color: rgb(56, 138, 163)">varchar</span>(<span style="box-sizing: border-box;color: rgb(163, 78, 143)">20</span>) <span style="box-sizing: border-box;color: rgb(219, 45, 32)">comment</span> <span style="box-sizing: border-box;color: rgb(242, 176, 29)">'姓名'</span>,</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    sal <span style="box-sizing: border-box;color: rgb(56, 138, 163)">decimal</span>(<span style="box-sizing: border-box;color: rgb(163, 78, 143)">10</span>,<span style="box-sizing: border-box;color: rgb(163, 78, 143)">2</span>) <span style="box-sizing: border-box;color: rgb(219, 45, 32)">comment</span> <span style="box-sizing: border-box;color: rgb(242, 176, 29)">'薪水'</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">) <span style="box-sizing: border-box;color: rgb(219, 45, 32)">engine</span>=<span style="box-sizing: border-box;color: rgb(219, 45, 32)">innodb</span>;</span>

查看表结构

语法

desc 表名;

案例

<span style="box-sizing: border-box;padding-right: 0.1px">mysql> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">desc</span> emp;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">+-------+---------------+------+-----+---------+-------+</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">| <span style="box-sizing: border-box;color: rgb(219, 45, 32)">Field</span> | Type          | <span style="box-sizing: border-box;color: rgb(163, 78, 143)">Null</span> | <span style="box-sizing: border-box;color: rgb(219, 45, 32)">Key</span> | <span style="box-sizing: border-box;color: rgb(219, 45, 32)">Default</span> | Extra |</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">+-------+---------------+------+-----+---------+-------+</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">| name  | <span style="box-sizing: border-box;color: rgb(56, 138, 163)">varchar</span>(<span style="box-sizing: border-box;color: rgb(163, 78, 143)">20</span>)   | YES  |     | <span style="box-sizing: border-box;color: rgb(163, 78, 143)">NULL</span>    |       |</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">| sal   | <span style="box-sizing: border-box;color: rgb(56, 138, 163)">decimal</span>(<span style="box-sizing: border-box;color: rgb(163, 78, 143)">10</span>,<span style="box-sizing: border-box;color: rgb(163, 78, 143)">2</span>) | YES  |     | <span style="box-sizing: border-box;color: rgb(163, 78, 143)">NULL</span>    |       |</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">+-------+---------------+------+-----+---------+-------+</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(163, 78, 143)">2</span> rows <span style="box-sizing: border-box;color: rgb(219, 45, 32)">in</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">set</span> (<span style="box-sizing: border-box;color: rgb(163, 78, 143)">0.00</span> sec)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">mysql> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">desc</span> emp <span style="box-sizing: border-box;color: rgb(1, 160, 228)">\G</span>;</span>

4、删除表

语法

drop table 表表;

案例

drop table emp;

5、修改表

5.1、修改表类型-modify

modify主要用于修改表中字段的数据长度、数据类型及字段的约束条件。

语法

alter table 表名 modify 字段名 字段类型 [first | alter 字段名];

案例

<span style="box-sizing: border-box;padding-right: 0.1px">mysql> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">desc</span> emp;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">+-------+---------------+------+-----+---------+-------+</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">| <span style="box-sizing: border-box;color: rgb(219, 45, 32)">Field</span> | Type          | <span style="box-sizing: border-box;color: rgb(163, 78, 143)">Null</span> | <span style="box-sizing: border-box;color: rgb(219, 45, 32)">Key</span> | <span style="box-sizing: border-box;color: rgb(219, 45, 32)">Default</span> | Extra |</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">+-------+---------------+------+-----+---------+-------+</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">| name  | <span style="box-sizing: border-box;color: rgb(56, 138, 163)">varchar</span>(<span style="box-sizing: border-box;color: rgb(163, 78, 143)">20</span>)   | YES  |     | <span style="box-sizing: border-box;color: rgb(163, 78, 143)">NULL</span>    |       |</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">| sal   | <span style="box-sizing: border-box;color: rgb(56, 138, 163)">decimal</span>(<span style="box-sizing: border-box;color: rgb(163, 78, 143)">10</span>,<span style="box-sizing: border-box;color: rgb(163, 78, 143)">2</span>) | YES  |     | <span style="box-sizing: border-box;color: rgb(163, 78, 143)">NULL</span>    |       |</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">+-------+---------------+------+-----+---------+-------+</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(163, 78, 143)">2</span> rows <span style="box-sizing: border-box;color: rgb(219, 45, 32)">in</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">set</span> (<span style="box-sizing: border-box;color: rgb(163, 78, 143)">0.00</span> sec)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 案例一:修改sal类型为int</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">mysql> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> emp <span style="box-sizing: border-box;color: rgb(219, 45, 32)">modify</span> sal <span style="box-sizing: border-box;color: rgb(56, 138, 163)">int</span>;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">Query</span> OK, <span style="box-sizing: border-box;color: rgb(163, 78, 143)">0</span> rows affected (<span style="box-sizing: border-box;color: rgb(163, 78, 143)">0.11</span> sec)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 案例二:修改name类型长度为50且非空</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">mysql> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> emp <span style="box-sizing: border-box;color: rgb(219, 45, 32)">modify</span> name <span style="box-sizing: border-box;color: rgb(56, 138, 163)">varchar</span>(<span style="box-sizing: border-box;color: rgb(163, 78, 143)">50</span>) <span style="box-sizing: border-box;color: rgb(219, 45, 32)">not</span> <span style="box-sizing: border-box;color: rgb(163, 78, 143)">null</span>;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">Query</span> OK, <span style="box-sizing: border-box;color: rgb(163, 78, 143)">0</span> rows affected (<span style="box-sizing: border-box;color: rgb(163, 78, 143)">0.12</span> sec)</span>

5.2、增加表字段-add

语法

alter table 表名 add 字段名 字段类型 [first | alter 字段名];

案例

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># emp表中增加age字段</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">mysql> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> emp <span style="box-sizing: border-box;color: rgb(219, 45, 32)">add</span> age <span style="box-sizing: border-box;color: rgb(56, 138, 163)">tinyint</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">not</span> <span style="box-sizing: border-box;color: rgb(163, 78, 143)">null</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">default</span> <span style="box-sizing: border-box;color: rgb(163, 78, 143)">0</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">comment</span> <span style="box-sizing: border-box;color: rgb(242, 176, 29)">'年龄'</span>;</span>

5.3、删除表字段-drop

语法

alter table 表名 drop 字段名;

案例

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 删除emp中的age字段</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">mysql> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> emp <span style="box-sizing: border-box;color: rgb(219, 45, 32)">drop</span> age;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">Query</span> OK, <span style="box-sizing: border-box;color: rgb(163, 78, 143)">0</span> rows affected (<span style="box-sizing: border-box;color: rgb(163, 78, 143)">0.13</span> sec)</span>

5.4、字段改名-change

语法

alter table 表名 change 旧字段名 新字段名 字段类型 [first | alter 字段名];

案例

<span style="box-sizing: border-box;padding-right: 0.1px">mysql> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> emp <span style="box-sizing: border-box;color: rgb(219, 45, 32)">change</span> name new_name <span style="box-sizing: border-box;color: rgb(56, 138, 163)">varchar</span>(<span style="box-sizing: border-box;color: rgb(163, 78, 143)">20</span>);</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">Query</span> OK, <span style="box-sizing: border-box;color: rgb(163, 78, 143)">0</span> rows affected (<span style="box-sizing: border-box;color: rgb(163, 78, 143)">0.04</span> sec)</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">mysql> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> emp <span style="box-sizing: border-box;color: rgb(219, 45, 32)">change</span> sal salary <span style="box-sizing: border-box;color: rgb(56, 138, 163)">decimal</span>(<span style="box-sizing: border-box;color: rgb(163, 78, 143)">10</span>,<span style="box-sizing: border-box;color: rgb(163, 78, 143)">2</span>);</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">Query</span> OK, <span style="box-sizing: border-box;color: rgb(163, 78, 143)">0</span> rows affected (<span style="box-sizing: border-box;color: rgb(163, 78, 143)">0.04</span> sec)</span>

MySQL modify与change的区别:

modify只能更改字段属性,如 name varchar(50)改为name char(40)

change可以更改字段名与字段类型,如name varchar(5)改为name int

5.5、更改表名-rename

语法

alter table 旧表名 rename [to] 新表名;

案例

mysql> alter table emp rename to emp1;

命令总结

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 1、连接数据库</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">mysql -uroot -p</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 2、创建数据库</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">create</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">database</span> 表名;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 3、选择数据库</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">use</span> 数据库名;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 4、删除数据库</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">drop</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">database</span> 数据库名;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 5、创建表</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">create</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> 表名(</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> 字段名 字段类型 [约束条件]</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">);</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 6、查看表结构</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">desc</span> 表名;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 7、删除表</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">drop</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> 表名;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 8、修改表类型</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> 表名 <span style="box-sizing: border-box;color: rgb(219, 45, 32)">modify</span> 字段名 字段类型;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 9、增加字段</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> 表名 <span style="box-sizing: border-box;color: rgb(219, 45, 32)">add</span> 字段名 字段类型;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 10、删除表字段</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> 表名 <span style="box-sizing: border-box;color: rgb(219, 45, 32)">drop</span> 字段名;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 11、修改字段名</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> 表名 <span style="box-sizing: border-box;color: rgb(219, 45, 32)">change</span> 旧字段名 新字段名 字段类型;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(205, 171, 83)"># 12、修改表名</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(219, 45, 32)">alter</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">table</span> 旧表名 <span style="box-sizing: border-box;color: rgb(219, 45, 32)">rename</span> <span style="box-sizing: border-box;color: rgb(219, 45, 32)">to</span> 新表名;</span>

我是小白,期待和优秀的你一起同行!

小白

2020年10月09日

请登录后再评论