DDL语句的主要作用是定义或修改数据表的结构或数据类型。
数据表的创建:
CREATE TABLE {表名} (
{字段名} {数据类型} {限制条件1} {限制条件2} ...,
{字段名} {数据类型} {限制条件1} {限制条件2} ...
);
注:
* 每个字段之间需要写逗号
* 限制条件可以不加
示例:
# 创建一个名为emp的数据表
CREATE TABLE emp (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, # 设置字段id为主键并且自增
name VARCHAR(10) NOT NULL, # 设置字段name,限制其内容不得超过10个字符并且不能为null
age INT, # 设置字段age
gender CHAR(2) # 设置字段gender,限制其内容不得超过2个字符
);
数据表创建完成后,如果发现数据表中的某些地方不符合开发需求,可以对其进行修改,以下介绍几种常见的修改情况。
(1)添加指定字段。
ALTER TABLE {表名} ADD {字段名} {数据类型} {限制条件1}, {限制条件2}...;
如例:为emp数据表添加一个字段:dept,数据类型为字符串类型且最大字符数为10。
ALTER TABLE emp ADD dept VARCHAR(10);
(2)修改字段数据类型(限制条件)。
ALTER TABLE {表名} MODIFY {字段名} {数据类型} {限制条件1}, {限制条件2}...;
如例:将emp数据表中的age字段的数据类型修改成无符号的整型。
ALTER TABLE emp MODIFY age INT UNSIGNED;
(3)修改字段名称(两种方法)。
ALTER TABLE {表名} CHANGE {旧字段名} {新字段名} {数据类型} {限制条件}...;
ALTER TABLE {表名} RENAME COLUMN {旧字段名} TO {新字段名};
如例:将emp表中的dept字段改名为deptName。
ALTER TABLE emp CHANGE dept deptName VARCHAR(10);
ALTER TABLE emp RENAME COLUMN dept TO deptName;
(4)删除字段。
ALTER TABLE {表名} DROP {字段名};
如例:删除emp表中的dept字段。
ALTER TABLE emp DROP dept;
(5)修改表名(两种方法)。
ALTER TABLE {旧表名} RENAME {新表名};
RENAME TABLE {旧表名} TO {新表名};
如例:将emp表改名为tb_emp。
ALTER TABLE emp RENAME tb_emp;
RENAME TABLE emp TO tb_emp;
(6)修改字段排列位置(两种方法)。
ALTER TABLE {表名} MODIFY {字段名1} {数据类型} AFTER {字段名2};
ALTER TABLE {表名} CHANGE {字段名1} {字段名1} {数据类型} AFTER {字段名2};
如例:将emp表中的gender字段移到name字段之后(两种方法)。
ALTER TABLE emp MODIFY gender CHAR(2) AFTER name;
ALTER TABLE emp CHANGE gender gender CHAR(2) AFTER name;
值得一提的是,如果想要将某个字段放在最前面还可以使用如下语句:
ALTER TABLE {表名} MODIFY {字段名1} {数据类型} FIRST;
ALTER TABLE {表名} CHANGE {字段名1} {字段名1} {数据类型} FIRST;
如:将emp数据表中的name字段移到第一位。
ALTER TABLE emp MODIFY name VARCHAR(10) FIRST;
ALTER TABLE emp CHANGE name name VARCHAR(10) FIRST;
注:以上DDL语句中的所有限制条件如果没有都可以不写。