CREATE DATABASE <数据库名>
USE <数据库名>
CREATE TABLE <表名>
(
<属性列名1> <数据类型> [列级约束条件],
<属性列名2> <数据类型> [列级约束条件],
..................................,
[表级约束条件]
)
下面是SQL语言数据类型介绍:
数据类型 | 含义 |
---|---|
CHAR(n) | 定义定长度n的字符串(不足n个自动补空格) |
VARCHAR(n) | 定义最大长度为n的变长字符串(不会补空格) |
INT | 整数 |
SMALLINT | 短整数 |
REAL | 取决于机器精度的浮点数 |
FLOAT(n) | 浮点数,精度至少为n位 |
NUMERIC(p,d) | 定点数,由p位数字(符号,小数点除外)组成,小数点后有d位数字 |
DECIMAL(p,d) | 定点数,由p位数字(符号,小数点除外)组成,小数点后有d位数字 |
DATA | 日期,包含年月日,格式为YYYY-MM-DD |
TIME | 时间,包含时分秒,格式为HH:MM:SS |
下面介绍主键和外键:
主键是用于确定数据库中的表的记录的唯一标识字段,可以是一个字段,也可以是多个。
(需要注意的是:
一旦该字段被确定为主键时,该字段不能为空,也不能有重复属性值。)
下面是SQL语言中定义主键的方式:
PRIMARY KEY [(<属性列(组)>)]
下面是相关的例子:
CREATE TABLE S
(
SNO CHAR(6) PRIMARY KEY,
SN CHAR(10),
SD CHAR(16)
)
CREATE TABLE SC
(
SNO CHAR(6),
CNO CHAR(6),
GRADE DECIMAL(4,1),
PRIMARY KEY(SNO,CNO)
)
外键是相对于主键来说的,是用于关联两个或以上的表,一个表(参照表)的某字段与另一个表(被参照表)的主键相对应从而建立关系。(保证数据的一致性)
(需要注意的是:
1.外键不一定要与主键同名,但是为了方便识别,通常采用同名方式。
2.外键与对应的主键必须定义在同一值域上,即数据类型和长度要完全一致。)
下面是SQL语言中定义外键的方式:
FOREIGN KEY [<外键>] REFERENCES (被参照表)(<与外键对应的主键名>)
下面是相关的例子:
CREATE TABLE S
(
SNO CHAR(6),
CNO CHAR(6),
GRADE DECIMAL(4,1),
PRIMARY KEY(CNO,SNO),
FOREIGN KEY(SNO) REFERENCES S(SNO),
FOREIGN KEY(CNO) REFERENCES C(CNO),
)
当外键被定义后,插入值便只能取对应被参照表的主键值。
为了防止完整性被破坏,采用了以下的更新策略:
ON UPDATE (CASCADE|NO ACTION)
(当修改被参照表中的主键值时,级联修改参照表中的所有关联元组或拒绝执行修改操作。)
ON DELETE (CASCADE| NO ACTION)
(当删除被参照表中的主键值时,级联修改参照表中的所有关联元组或拒绝执行删除操作。)
用户定义完整性定义:
下面是例子:
CREATE TABLE S
(
SNO CHAR(6) PRIMARY KEY,
SN CHAR(10) NOT NULL,
SD CHAR(16),
SB DATE,
SEX CHAR DEFAULT '男',
CHECK(SEX IN ('男','女'))
)
CREATE TABLE SC
(
SNO CHAR(6),
SNO CHAR(6),
GRADE DECIMAL(4,1),
PRIMARY KEY(SNO,CNO),
FOREIGN KEY(SNO) REFERENCES S(SNO),
FOREIGN KEY(CNO) REFERENCES C(CNO),
CHECK(GRADE BETWEEN 0 AND 100)
)
实现代码如下:
ALTER TABLE <表名> ADD <属性列名><数据类型>[完整性约束条件]|<完整性约束>
ALTER TABLE S ADD SH CHAR(30)
ALTER TABLE S ADD PRIMARY KEY(SNO)
ALTER TABLE <表名> ALTER COLUMN <属性列名><数据类型>
ALTER TABLE<表名> DROP {[CONSTRAINT]<完整性条件>|COLUMN<列名>[CASCADE|RESTRICT]}
CASCADE:级联更新
RESTRICT: 在没有视图或约束引用该条件时,才能被删除。
DROP TABLE <表名>[CASCADE|RESTRICT]
例如
DROP TABLE S CASCADE