SQL包含四种程序设计语言类别的语句:
数据定义语言(DDL)
数据操作语言(DML)
数据控制语言(DCL)
数据控制语言(DCL)
本文中主要介绍数据定义语言(DDL)。
数据定义语言 (DataDefinition Language, DDL) 是SQL语言集中负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成,从这三个英文单词中就可以看出这三个语法分别是对数据库对象的创建、对数据库对象的修改以及对数据库对象的删除。
1、 CREATE
CREATE是负责数据库对象的建立,凡数据库、数据表、数据库索引、预存程序、用户函数、触发程序或是用户自定型别等对象,都可以使用 CREATE 指令来建立,而为了各式数据库对象的不同,CREATE也有很多的参数。以下是常见的语句:
创建数据库:CREATE DATABASE 数据库名;
创建模式:CREATE SCHEMA 模式名AUTHORIZATION用户名
创建表:CREATE TABLE 表名(列名数据类型 [列级完整性约束],
…
列名数据类型 [列级完整性约束]);
创建索引:
CREATE [UNIQUE][CLUSTER] INDEX<索引名>ON 表名(列名 [次序] ,列名 [次序]…);
2、 ALTER
修改基本表: ALTER TABLE 表名
[ADD [COLUMN] 新列名 数据类型 [完整性约束]]
[ADD表级完整性约束]
[DROP[COLUMN] 列名 [CASCADE|RESTRICT]]
[DROPCONSTRAINT 完整性约束 [RESTRICT|CASCADE]]
ALTERCOLUNM 列名数据类型];
其中ADD子句用于增加新列、新的列级完整性约束和新的表级完整性约束条件。
DROP 子句用于删除表中的列和指定的完整性约束。
修改索引:ALTER INDEX 旧索引名RENAME TO 新索引名;
3、 DROP
删除数据库:DROP DATABASE 数据库名;
删除表:DROP TABLE 表名;
删除模式:DROP SCHEMA 模式名 CASCADE|RESTRICT;
其中CASCADE和RESTRICT两者选一。
删除索引:DROP INDEX 索引名;
以下是常见的唯一性约束:
PRIMARY KEY 主码约束(主键)
UNIQUE 唯一性约束
NOT NULL 非空值约束
AUTO_INCREMENT 用于整数列默认自增1
UNSIGNED 无符号整数
DEFAULT default_value 默认值约束
DEFAULT cur_timestamp 创建新记录时默认保存当前时间(仅适用timestamp数据列)
ON UPDATE cur_timestamp 修改记录时默认保存当前时间(仅适用timestamp数据列)
CHARACTER SET name 指定字符集(仅适用字符串)