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