目录
在我们将数据定义语言(DDL)之前首先我们需要先了解SQL语言的分类:
在我们将数据定义语言(DDL)之前首先我们需要先了解SQL语言的分类:
数据查询语言(DQL):
- SELECT
- WHERE
- FROM
- ORDER BY
- HAVING
数据定义语言(DDL):
- CREATE 创建数据库对象
- ALTER 修改数据库对象
- DROP 删除数据库对象
数据操作语言(DML):
- INSERT 添加数据
- UPDATE 更新数据
- DELETE 删除数据
数据控制语言(DCL):
-
GRANT:授予用户某种权限
-
REVOKE:回收授予的某种权限
事务控制语言(TCL):
-
Commit:提交事务
-
RollBack:回滚事务
-
SavePoint:设置回滚点
而今天我们就来讲讲数据定义语言(DDL):
表:
创建表:
语法:
CREATE TABLE ---创建表关键字
表名(列名 类型,列名 类型......);
例子:创建一个表名为employees,列名分别为:emp_id int,emp_name varchar(10);
create table employees(emp_id int,emp_name varchar(10));
修改表名:
语法:
Alter table ---修改表关键字
旧表名 ---旧表名
rename ---修改表名关键字
新表名 ---新表名
例子:将employees表名改为emp
Alter table employee rename emp;
删除表:
语法:
drop table ---删除表关键字
表名 ---表名
例子:删除emp表
drop table emp;
列:
修改列名:
语法:
Alter table ---修改表关键字
表名 ---表名
change column ---修改列名关键字
旧列名 ---旧列名
新列名 类型 ---新列名 类型
例子:将emp表中的列emp_id改名为id
Alter table emp change column emp_id id int;
修改列类型:
语法:
alter table ---修改表关键字
表名 ---表名
modify ---修改列类型关键字
列名 新类型; ---列名 新类型
例子:将emp表中的列emp_name的varchar长度改为20
Alter table emp modify emp_name varchar(20);
添加新列:
语法:
alter table ---修改表关键字
表名 ---表名
add column ---添加列关键字
列名 类型; ---列名 类型
例子:添加列emp_age到emp表中,类型为smallint
Alter table emp add column emp_age smallint;
删除指定列:
语法:
alter table ---修改表关键字
表名 ---表名
drop column ---删除列关键字
列名; ---指定删除列的列名
例子:删除emp表中的列emp_age
Alter table emp drop column emp_age;
约束:
主键约束(Primary key):
添加主键:
语法:alter table 表名 add primary key(列名);
例子:给emp表中的emp_id添加主键约束
alter table emp add primary key(emp_id);
主键约束添加自动增长:
语法:alter table 表名 modify 主键列名 类型 auto_increment;
例子:将emp表中主键约束emp_id设置为自动增长
alter table emp modify emp_id int auto_increment;
删除主键(删除主键需要先删除自动增长):
删除自动增长语法:alter table 表名 modify 主键列名 类型;
例子:删除emp表中emp_id的自动增长
alter table emp modify emp_id int;
删除主键语法:alter table 表名 drop primary key;
例子:删除emp表中emp_id的主键约束
alter table emp drop primary key;
外键约束(Foreign key):
添加外键:
语法:alter table 表名 add constraint 约束名 foreign key(约束的列名) reference 参照的表名(参考的列名);
例子:现在有一个dept表,我们需要将emp表中的dept_id通过外键约束参照dept表中的id
alter table emp add constarint emp_fk foreign key(dept_id) reference dept(id);
删除外键:
语法:alter table 表名 drop foreign key 约束名;
例子:删除emp表中dept_id中的外键约束
alter table emp drop foreign key emp_fk;
唯一约束(Unique):
添加唯一:
语法:alter table 表名 add constraint 约束名 unique(列名);
例子:给emp表中的name添加唯一约束
alter table emp add constraint emp_uk unique(name);
删除唯一:
语法:alter table 表名 drop key 约束名;
例子:删除emp表中name的唯一约束
alter table emp drop key emp_uk;
非空约束(not null):
添加非空:
语法:alter table 表名 modify 列名 类型 not null;
例子:给emp表中的salary添加非空约束
alter table emp modify salary int not null;
删除非空:
语法:alter table 表名 modify 列名 类型 null;
例子:将emp表中salary删除非空约束
alter table modify salary int null;
总结:DDL其实很简单当我们创建表时用create,删除表时用drop,修改表(修改列名,修改列类型)时用alter,外键约束和唯一约束需要add constraint修饰,并且需要约束名