SQL DDL 语法

232 阅读1分钟

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));
  1. 修改字段名 ( RENAME COLUMN )
# 将 age 字段改成 player_age
ALTER TABLE `player` RENAME COLUMN `age` TO `player_age`;
  1. 修改字段的数据类型( MODIFY
# 将 player_age 的数据类型设置为 float(3,1)
ALTER TABLE `player` MODIFY (`player_age` float (3,1));
  1. 删除字段 ( DROP COLUMN )
# 删除刚才添加的 player_age 字段
ALTER TABLE `player` DROP COLUMN `player_age`;

DDL 常见约束

  1. 主键约束: PRIMARY KEY (字段名), ...
  2. 外键约束: CONSTRAINT [约束名] FOREIGN KEY (外键名) REFERENCES 参照表名 (参照字段), ...
  3. 唯一性约束: UNIQUE INDEX 索引名(索引字段)
  4. 非空约束: NOT NULL
  5. 默认值: DEFAULT 默认值, ...
  6. CHECK 约束: 例:CHECK(height>=0 AND height<3)