数据库中表的管理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 约束表

相关文档
最新文档