page223-索引
--
利用
SQL
语句创建索引
--CREATE INDEX
索引名称
on
表名
(
字段
,
字段
,
字段字段
n)
--
索引名称必须为唯一的
,
字段
,
字段
,
允许一个到多个
--
范例为
T_person
表中给
FName
创建索引索引名为
idx_person_name
CREATE
INDEX
idx_person_name
ON
T_Person
(
FName
)
--
删除索引
--drop index
表名索引名
DROP
INDEX
T_person
.
idx_person_name
--
非空约束
--
在定义数据库的时候
,
默认情况下所有字段都是允许为空值的
,
--
如果需要在创建表的时候显示指定禁止一个字段为空的方式就是
--
在字段定义后增加
not null,
范例如下
--CREATE TABLE T_notNull(Fnumber VARCHAR(20) NOT NULL,FName VARCHAR(20),FAge INT)
--
唯一约束
--
唯一约束又称为
unique
约束
,
它用于防止一个特定的列中俩个记录具有同样的值
--
设置方式就是在字段定义后增加
unique
--CREATE TABLE T_UniqueTest(Fnumber VARCHAR(20) UNIQUE,FName VARCHAR(20),Fage INT)
--check
约束
--check
约束会检查输入到记录中的值是否满足一个条件
,
如果不满足这个条件则
--
对数据库的修改不会成功
--
比如一个人年龄不可能是负数
,
一个人的入学日期不可能早于出身日期
,
出厂月份
--
不可能大于月可以在
check
条件中使用任意有效的
SQL
表达式
,check
约束对于插入
,
--
更新等任意对数据修改的操作都进行检查
--
具体需求的
check
约束
,
根据需求百度
,
我开发至今都不怎么去使用
check,
一方面客户
--
不停的变更会不停的挑战
check,
导致修改频繁
,
不实用测试数据插入变得麻烦
--check
约束范例
CREATE
TABLE
CHECKTABLE
(
Fid
INT
,
Fname
VARCHAR
(
20
),
Fage
VARCHAR
(
20
)
CHECK
(
Fage
>
0
),
FWorkYear
INT
CHECK
(
FWorkYear
>
0
))
--
主键约束
--
由于每张表都要有主键
,
因此主键约束是非常重要的
,
而且主键约束是外键关联的基础
--
主键约束为表之间的关联提供了链接点
--
主键必须能够唯一标识一条记录
,
也就是主键字段中的值必须是唯一的
,
而且不能包含
--NULL
值从这种意义来说
,
主键约束是
unique
约束和非空约束的组合虽然一张表中可以
--
有多个
unique
约束和非空约束但是每个表却只能有一个主键约束
--
字段后面增加
primary key
--
主键约束范例
:
CREATE
TABLE
PrimaryTable
(
Fid
INT
PRIMARY
KEY
,
Fname
VARCHAR
(
20
))
--
外键约束
--
当一些信息在表中重复出现的时候
,
我们就要考虑将他们提取到另外一张表中
,
--
然后在源表中引用新创建的表中的数据比如很多作者都有不止一本著作
,
所以
--
在保存书籍信息的时候
,
应该把作者信息放到单独的一张表
(
然后把作者
ID
放到书籍表中
)
--
范例格式
: foreign key
外键字段
references
外键表名
(
外键表的主键字段
)
--
比如下面的
SQL
语句就是添加了外键约束
T_Author
表和
T_Book
表的创建语句
CREATE
TABLE
T_AUTHOR
(
Fid
VARCHAR
(
20
)
PRIMARY
KEY
,
FName
VARCHAR
(
100
)
,
Fage
INT
,
FEmail
VARCHAR
(
20
));
CREATE
TABLE
T_BOOK
(
Fid
VARCHAR
(
20
)
PRIMARY
KEY
,
FName
VARCHAR
(
20
)
,
FPageCount
INT
,
FAuthorId
VARCHAR
(
20
)
,
FOREIGN
KEY
(
FAuthorId
)
REFERENCES
T_AUTHOR
(
Fid
))