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删除被其他表关联的表
当要删除的表被其他表所关联的话,直接删除会报错,但有两个办法:
先删除与之关联的子表,再删除被关联的父表。
将与之关联的子表的外键约束解除,就可以只删除父表。