DDL(Data Definition Language)数据定义语言
- 包含功能增( CREATE )删( DROP )改( ALTER ).
- 在执行 DDL 的时候,不需要 COMMIT,就可以完成执行任务。
对数据库进行定义
CREATE DATABASE nba; # 创建一个名为 nba 的数据库
DROP DATABASE nba; # 删除一个名为 nba 的数据库
对数据表进行定义
创建表结构
语法:CREATE TABLE [table_name](字段名 数据类型 定义参数,......);
例子:
CREATE TABLE `player` ( `player_id` int(11) NOT NULL AUTO_INCREMENT,
`team_id` int(11) NOT NULL,
`player_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`height` float(3, 2) NULL DEFAULT 0.00,
PRIMARY KEY (`player_id`) USING BTREE,
UNIQUE INDEX `player_name`(`player_name`) USING BTREE)
ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
删除表结构
例子: DROP TABLE IF EXISTS `player`;
修改表结构
1、添加字段 ( ADD )
# 添加一个 age 字段,类型为 int(11)
ALTER TABLE `player` ADD (`age` int(11));
- 修改字段名 ( RENAME COLUMN )
# 将 age 字段改成 player_age
ALTER TABLE `player` RENAME COLUMN `age` TO `player_age`;
- 修改字段的数据类型( MODIFY )
# 将 player_age 的数据类型设置为 float(3,1)
ALTER TABLE `player` MODIFY (`player_age` float (3,1));
- 删除字段 ( DROP COLUMN )
# 删除刚才添加的 player_age 字段
ALTER TABLE `player` DROP COLUMN `player_age`;
DDL 常见约束
- 主键约束:
PRIMARY KEY (字段名), ... - 外键约束:
CONSTRAINT [约束名] FOREIGN KEY (外键名) REFERENCES 参照表名 (参照字段), ... - 唯一性约束:
UNIQUE INDEX 索引名(索引字段) - 非空约束:
NOT NULL - 默认值:
DEFAULT 默认值, ... - CHECK 约束:
例:CHECK(height>=0 AND height<3)