文章目录
- 一、表结构和数据类型
- 数据类型
- 二、表的创建和管理
- 创建表
- 修改表
- 删除表
- 三、数据完整性
- 实体完整性
- 1)PRIMARY KEY
- 2)UNIQUE(重复约束)
- 参照完整性(对外键取值做出限制)
- 域完整性
- 1)CHECK约束
- 2)DEFAULT约束
- 3)默认值对象
- 4)规则
一、表结构和数据类型
数据类型
- char(n) 固定长非Unicode字符类型,n取值1~8000
- varchar(n) 可变长非Unicode字符类型,n为最大长度,储存大小为实际长度+2B
- text 长度可变的非Unicode字符数据类型,最大(2^31-1)B
- nchar(n) 固定长度Unicode字符数据类型,n定义字符串数据长度1~4000大小为nB的两倍。双字节字符仍为nB
- nvarchar(n) 可变长度Unicode字符数据类型,n表最大长度1~4000,单位B
- ntext 可变长度Unicode字符数据类型,最大长度(2^30-1)字节
二、表的创建和管理
创建表
CREATE TABLE <table_name>
(
{<column_name> datatype [NOT NULL|NULL] }
)修改表
ALTER TABLE <table_name>
ADD <column_name> datatype [NOT NULL|NULL] [,…n]
|ALTER COLUMN <column_name> datatype [NOT NULL|NULL]
|DROP COLUMN <column_name> [,…n]
删除表
DROP TABLE <table_name>
三、数据完整性
指数据的正确性(合法性)、有效性(有效范围)、相容性(描述同一实体数据相一致)
**三类:**实体完整性、参照完整性、域完整性
实体完整性
1)PRIMARY KEY
1、唯一标识表中某一条记录
2、主键所在行上必须取值唯一且不能为空
3、一个表只能有一个主键
2)UNIQUE(重复约束)
和PRIMARY KEY区别:
- 一个表可多个UNIQUE约束
- 定义的列可以有空但只能取一次
- PRIMARY KEY 自动产生聚集索引而UNIQUE自动产生非聚集索引
参照完整性(对外键取值做出限制)
FOREIGN KEY
是指数据库内表与表之间的数据一致性。
被参照表中,某一记录被参照表中外键引用,则该记录不能删除;如需要更改键值,那么在整个数据库中对该键值的所有引用都要进行一致的更改,以保证数据的参照完整性
!!注意:主属性(包含在任何关键字中的属性)不能取空
CREATE TABLE <table_name>
(
<column_name> datatype NOT NULL|NULL
CONSTRAINT <cnostraint_name>
FOREIGN KEY (<column_name>)
REFERENCES <references_table_name> (<column_name>)
)
域完整性
列数据的完整性和有效性,即要求对指定列有效的一组值并决定是否允许为空。通过check default rule方法实现
1)CHECK约束
创建表时
CREATE TABLE <table_name>
(
<column_name> datatype NOT NULL|NULL
CONSTRAINT <constraint_name>
CHECK(logical_expression)
)
修改表时
ALTER TABLE <table_name>
ADD CONSTRAINT <constraint_name> CHECK (logical_expression)2)DEFAULT约束
创建表时
CREATE TABLE <table_name>
(
<column_name> datatype NOT NULL|NULL
CONSTRAINT <constraint_name>
DEFAULT(logical_expression)
)
修改表时
ALTER TABLE <table_name>
ADD CONSTRAINT <constraint_name> DEFAULT (logical_expression)3)默认值对象
数据库对象的一种,为列设置一个默认值,可以被一个数据库中的多个表中的多个列绑定使用。
创建默认->绑定到列
解除绑定->删除默认1. 创建默认
CREATE DEFAULT <defaul_name>
AS constant_expression2. 绑定默认
EXEC sp_bindefault ‘default_subsidy’,‘table_name.column_name’3. 解除默认绑定
EXEC sp_unbindefault ‘table_name.column_name’4. 删除默认
DROP DEFAULT <default_name>4)规则
对列的数据进行约束,不满足条件的数值不能输入到相应的列中
类似于CHECK,CHECK在创建表或修改表时作为表的一部分进行指定,但规则需要单独创建,然后绑定到列上
1. 创建规则
CREATE RULE <rule_name> AS logical_expression2. 绑定默认
EXEC sp_bindefault ‘rule_name’,‘table_name.column_name’3. 解除默认绑定
EXEC sp_unbindefault ‘table_name.column_name’4. 删除默认
DROP RULE <rule_name>