文章目录

  • 一、表结构和数据类型
  • 数据类型
  • 二、表的创建和管理
  • 创建表
  • 修改表
  • 删除表
  • 三、数据完整性
  • 实体完整性
  • 1)PRIMARY KEY
  • 2)UNIQUE(重复约束)
  • 参照完整性(对外键取值做出限制)
  • 域完整性
  • 1)CHECK约束
  • 2)DEFAULT约束
  • 3)默认值对象
  • 4)规则


一、表结构和数据类型

数据类型

  1. char(n) 固定长非Unicode字符类型,n取值1~8000
  2. varchar(n) 可变长非Unicode字符类型,n为最大长度,储存大小为实际长度+2B
  3. text 长度可变的非Unicode字符数据类型,最大(2^31-1)B
  4. nchar(n) 固定长度Unicode字符数据类型,n定义字符串数据长度1~4000大小为nB的两倍。双字节字符仍为nB
  5. nvarchar(n) 可变长度Unicode字符数据类型,n表最大长度1~4000,单位B
  6. ntext 可变长度Unicode字符数据类型,最大长度(2^30-1)字节

mysql数据库中创建表默认为空数值是什么意思_ico

二、表的创建和管理

创建表

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区别:

  1. 一个表可多个UNIQUE约束
  2. 定义的列可以有空但只能取一次
  3. 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>