数据库中表的管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章数据库中表的管理
3.1 数据类型
(1)整数类型
数据类型可分为tinyint、smallint、int和bigint四种,各类型的范围如下表:
其中,int数据类型是SQL Server 2005中的主要整数数据类型。
(2)bit类型
可以取值为1、0或NULL的整数数据类型。字符串值TRUE可以转换为1,字符串值FALSE可以转换为0
(3)decimal和numeric类型
带固定精度和小数位数的数值数据类型。格式:decimal(p,s)或者缩写为dec(p,s)、numeric(p,s).其中p是精度(即最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数),s是小数位数。
(4)float
浮点型数据类型。
(5)datatime和smalldatatime
用于表示某天的日期和时间的数据类型。
(6)char和verchar
字符数据类型。char ( n ) 固定长度,非Unicode 字符数据,长度为n 个字节。n 的取值范围为 1 至8,000,存储大小是n 个字节。varchar ( n | max )
可变长度,非Unicode 字符数据。n 的取值范围为 1 至8000。max 指示最大存储大小是231-1 个字节。
(7)nchar 和nverchar
字符数据类型。nchar ( n ) 固定长度,Unicode 字符数据, 长度为2*n 个
字节。n 的取值范围为 1 至4,000,存储大小是n 个字节。varchar ( n | max ) 可变长度,Unicode 字符数据。n 的取值范围为 1 至4,000。max 指示最大存储大小是231-1 个字节。
3.2 创建表
(1)使用Management Studio创建表
(2)利用SQL语句创建表
使用create命令创建表非常灵活,它允许对表设置几种不同的选项,包括表名、存放位置和列的属性等。
其完整语法形式如下:
CREATE TABLE表名
(<列定义>|列名AS 计算机列表达式|
<表级约束>[,…n])
[ON 文件组名|DEFAULT ]
[TEXTIMAGE_ON 文件组名|DEFAULT ]
其中,列定义的写法如下:
列名列的数据类型
[COLLATE 列的排序规则]
[[DEFAULT 默认值]|[IDENTITY[(基数,增量)
[NOT FOR REPLICATION]]]]
[ROWGUIDCOL]
[<列级约束>][...n]
①基本的格式
create table 表名(列名数据类型,……,列名数据类型)
例如:以下代码建立一个QQ表,包括Q号,网名两列:
CREATE TABLE QQ
(
Q号int,
网名char(8)
)
②主键约束
create table 表名(列名数据类型,……, 列名数据类型,primary key (列名)) 例如:以下代码建立一个SC学习选课表,定义SNO学生学号,CNO课程编号共同组成SC的主键:
CREATE TABLE SC
(
SNO CHAR(5) NOT NULL,
CNO CHAR(5) NOT NULL,
SCORE NUMERIC(3),
PRIMARY KEY(SNO,CNO)
)
③外键约束
create table 表名(列名数据类型,……, 列名数据类型,foreign key (列名) references 参照表名(参照列名))
例如:以下代码建立一个SC表,定义SNO,CNO为SC的外部键。
CREATE TABLE SC
(
SNO CHAR(5) NOT NULL
FOREIGN KEY REFERENCES S(SNO),
CNO CHAR(5) NOT NULL,
FOREIGN KEY REFERENCES C(CNO),
SCORE NUMERIC(3),
PRIMARY KEY (SNO,CNO)
)
④唯一性约束
create table 表名(列名数据类型,……, 列名数据类型,unique(列名)) 例如:以下代码创建一个学生信息表,其中name字段具有惟一性。
Create table student
(
id char(8),
name char(10),
sex char(2),
primary key(id),
unique(name)
)
⑤空值约束
create table 表名(列名数据类型NOT NULL,……,列名数据类型)
以下代码建立一个S表,对SNO字段进行NOT NULL约束。
CREATE TABLE S
(
SNO CHAR(10) NOT NULL,
SN CHAR(20),
AGE INT,
SEX CHAR(2) DEFAULT ’男’ ,
DEPT CHAR(20)
)
⑥检查约束
create table 表名(列名数据类型,……, 列名数据类型,check (用于检查的表达式))
例如:以下代码建立一个SC表,定义SCORE 的取值范围为0到100之间。
CREATE TABLE SC
(
SNO CHAR(5),
CNO CHAR(5),
SCORE NUMERIC(5,1) CONSTRAINT SCORE_CHK CHECK(SCORE>=0 AND SCORE <=100)
)
⑦默认约束
创建默认约束的语法形式如下:
create table 表名(列名数据类型,……, 列名数据类型,default 约束表