SQL——基本表的定义

基本表的定义

1.创建数据库

CREATE DATABASE <数据库名>

2.打开数据库

USE <数据库名>

3.基本表的创建

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

下面介绍主键和外键:

1.主键

主键是用于确定数据库中的表的记录的唯一标识字段,可以是一个字段,也可以是多个。
(需要注意的是:
一旦该字段被确定为主键时,该字段不能为空,也不能有重复属性值。)

下面是SQL语言中定义主键的方式:

PRIMARY KEY [(<属性列()>)]

下面是相关的例子:

1).当主键只有一个字段,采用列级约束条件进行约束
CREATE TABLE S
(
SNO CHAR(6) PRIMARY KEY,
SN  CHAR(10),
SD  CHAR(16)
)
2).当主键有多个字段,采用表级约束条件进行约束
CREATE TABLE SC
(
SNO CHAR(6),
CNO CHAR(6),
GRADE DECIMAL(4,1),
PRIMARY KEY(SNO,CNO)
)

2.外键

外键是相对于主键来说的,是用于关联两个或以上的表,一个表(参照表)的某字段与另一个表(被参照表)的主键相对应从而建立关系。(保证数据的一致性)
(需要注意的是:
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)
(当删除被参照表中的主键值时,级联修改参照表中的所有关联元组或拒绝执行删除操作。)

用户定义完整性定义:

1)NOT NULL或NULL(默认)约束 约束关系主属性必须限定为NOT NULL。
2)UNIQUE约束 唯一性约束条件,不允许出现重复的属性值。
3)DEFAULT约束 默认值约束。
4)CHECK约束 检查约束条件表达式设置属性值应该满足的条件。

下面是例子:

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)
)

4.基本表的修改

实现代码如下:

ALTER TABLE <表名> ADD <属性列名><数据类型>[完整性约束条件]|<完整性约束>
1.增加表中某一列
ALTER TABLE S ADD SH CHAR(30)
2.补充定义SNO为主键
ALTER TABLE S ADD PRIMARY KEY(SNO)
3.修改原有列类型
ALTER TABLE <表名> ALTER COLUMN <属性列名><数据类型>
4.删除原有列或约束条件
ALTER TABLE<表名> DROP {[CONSTRAINT]<完整性条件>|COLUMN<列名>[CASCADE|RESTRICT]}

CASCADE:级联更新
RESTRICT: 在没有视图或约束引用该条件时,才能被删除。

5.基本表的删除
DROP TABLE <表名>[CASCADE|RESTRICT]

例如

DROP TABLE S CASCADE

你可能感兴趣的:(SQL——基本表的定义)