DDL主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或修改表的结构,数据类型,表之间的链接和约束等工作上,他们大多在建立表时使用。

#一、数据库操作

1. 查看数据库

show databases;

2. 新建数据库

CREATE DATABASE <数据库名>;

3. 连接数据库

use <数据库名>;

4. 查看数据库中的表

show tables;

5. 删除数据库

DROP DATABASE 数据库名;

#二、数据表操作

##1. 创建数据表

####1.1创建表的语法格式

CREATE TABLE 要创建的表名字

(

字段名1 数据类型(字段大小) [约束条件] ,

字段名2 数据类型(字段大小) [约束条件]

);

####1.2主键约束(PRIMARY KEY CONSTRAINT)
主键能够唯一的标识表中的一行记录,因此主键不能有重复且不能为空。主键又分单字段主键和复合主键两种类型。

单字段主键
可以在定义列时一起指定

字段名 数据类型(字段大小) PRIMARY KEY

也可以在定义完所有列后指定

[CONSTRAINT <约束名>] PRIMARY KEY 字段名

复合主键

[CONSTRAINT <约束名>] PRIMARY KEY(字段1,字段2)

####1.3外键约束(FOREIGN KEY CONSTRAINT)

外键用来在两个表的数据之间建立连接,对应的是参照完整性。外键必须是另一个表的主键,和主键一样它可以是一列或多列,不过与主键不一样的是:一个表可以有多个外键。主表名是外键所依赖的表的名字。

[CONSTRAINT <约束名>] FOREIGN KEY(字段1, 字段2) REFERENCES 主表名(字段1, 字段2)

####1.4非空约束(NOT NULL CONSTRAINT)

非空约束是指该列的值不能为空,在插入一条记录时如果没有给定值,数据库系统就会报错。

字段名 数据类型 NOT NULL

####1.5唯一性约束(UNIQUE CONSTRAINT)

唯一性约束是指该列的值不允许重复,允许一个空值。

字段名 数据类型 UNIQUE

####1.6默认约束(DEFAULT CONSTRAINT)
默认约束是指该列有默认值,在插入一条记录时,如果没有指定该字段的值,则自动为该字段赋默认值。

字段名 数据类型 DEFAULT 默认值

####1.7设置属性值自动增加

这个功能的意思就是每插入一条新记录时自动生成字段的主键值。可以通过为主键设置AUTO_INCREMENT关键字来实现。它初始化为1,每添加一条记录,就会增加1。一个表只能为一个字段添加AUTO_INCREMENT,且该字段必须是主键或为主键的一部分。

字段名 数据类型 AUTO_INCREMENT

##2.查看数据表结构

####2.1查看表基本结构

DESCRIBE/DESC语句可以查看表的字段信息,包括:字段名,数据类型,约束条件等。

DESCRIBE 表名

DESC 表名

####2.2查看表详细结构

SHOW CREATE TABLE语句可以查看创建表时的建表语句,存储引擎,字符编码等

SHOW CREATE TABLE 表名\G

\G可加可不加,加的话显示效果会更加直观。

##3.修改数据表

####3.1修改表名

ALTER TABLE 原表名 RENAME [TO] 新表名;
RENAME TABLE 原表名 TO 新表名;

####3.2修改字段数据类型

ALTER TABLE 表名 MODIFY 字段名 数据类型;

####3.3修改字段名

ALTER TABLE 表名 CHANGE 原字段名 新字段名 新数据类型;

注:如果不想改变数据类型,可以设置跟原来一样,但不能为空。

####3.4添加新字段

一个新字段需要字段名,数据类型,完整性约束。FIRST作用是将字段设置为表中第一个字段,AFTER是把新添加的字段放在指定的字段名后面

ALTER TABLE 表名 ADD 新字段 数据类型 [约束条件] [FIRST | AFTER 字段名];

####3.5删除字段

ALTER TABLE 表名 DROP 字段名;

####3.6修改字段的位置

ALTER TABLE 表名 MODIFY 字段 数据类型 FIRST;
ALTER TABLE 表名 MODIFY 字段 数据类型 AFTER 字段名;

####3.7更改表的存储引擎

我们可以为每张表选用不同的存储引擎。

查看MySQL支持的存储引擎

SHOW ENGINES;

更改表的存储引擎

ALTER TABLE 表名 ENGINE=新的存储引擎名

####3.8删除表的外键约束

外键约束一旦删除,就会解除主从表之间的关系。

ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;

####3.9修改表中某个值

大多数时候我们需要做的修改是表中的某一个或几个数据,这就需要我们用下面这条命令达到精确的修改

UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;

####3.10删除一行记录

DELETE FROM 表名字 WHERE 条件;

##4. 删除数据表

####4.1删除没有被关联的表
在MySQL中,我们可以使用DROP TABLE语句一次删除一张或多张没有被其他表关联(主键被其他表设置为外键)的数据表。

DROP TABLE [IF EXISTS] 表1,表2,……表n;

####4.2删除被其他表关联的表

当要删除的表被其他表所关联的话,直接删除会报错,但有两个办法:

  1. 先删除与之关联的子表,再删除被关联的父表。

  2. 将与之关联的子表的外键约束解除,就可以只删除父表。