SQL
的数据定义语言 DDL
部分使我们有能力创建或删除表格。
我们也可以定义索引(键)
,规定表之间的链接
,以及施加表间的约束
。
操作 | 作用 |
---|---|
CREATE DATABASE | 创建新数据库 |
ALTER DATABASE | 修改数据库 |
CREATE TABLE | 创建新表 |
ALTER TABLE | 变更(改变)数据库表 |
DROP TABLE | 删除表 |
CREATE INDEX | 创建索引(搜索键) |
DROP INDEX | 删除索引 |
常用实例
实例 | 语法 |
---|---|
CREATE DATABASE database_name | 创建数据库 |
创建表
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)
例:
create table person
(
name char(20),
age int(3)
)
SQL 约束
约束用于限制加入表的数据的类型。
可以在创建表时规定约束(通过
CREATE TABLE
语句),或者在表创建之后也可以(通过ALTER TABLE
语句)。
常见几种约束
约束 | 作用 |
---|---|
NOT NULL | NOT NULL 约束强制 列 不接受 NULL 值。 |
UNIQUE | UNIQUE 约束唯一标识数据库表中的每条记录 |
PRIMARY KEY | PRIMARY KEY 约束唯一标识数据库表中的每条记录。 |
FOREIGN KEY | 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY |
CHECK | CHECK 约束用于限制列中的值的范围 |
DEFAULT | DEFAULT 约束用于向列中插入默认值,如果没有规定其他的值,那么会将默认值添加到所有的新记录 |
AUTO INCREMENT | 随 列数自动增长 ,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。 |
附:
UNIQUE
和 PRIMARY KEY
区别
UNIQUE
和 PRIMARY KEY
约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY
拥有自动定义的 UNIQUE
约束。
请注意,每个表可以有多个 UNIQUE
约束,但是每个表只能有一个 PRIMARY KEY
约束
FOREIGN KEY
在不同DBMS中有不同的语法
以下例子为MySQL
FOREIGN KEY
的设置
create table person
(
id int(8) NOT NULL,
name char(20) UNIQUE,
other_name char(20),
PRIMARY KEY(id),
FOREIGN KEY(other_name) REFERENCES 另一张表名(other_name)
)
FOREIGN KEY
约束用于预防破坏表之间连接的动作。
FOREIGN KEY
约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
CHECK
约束用于限制列中的值的范围。
如果对单个列定义 CHECK
约束,那么该列只允许特定的值。
如果对一个表定义 CHECK
约束,那么此约束会在特定的列中对值进行限制。