第4章 数据表的创建和管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章数据表的创建和管理——例题解答
例4-2-1:在数据库STUDENT中创建一个学生基本信息表(名为t_student),表中各列的要求如表4-2-1所示。
表4-2-1 学生基本信息表(名为t_student)组成
实现的步骤如下:
(1)在SQL Server Management Studio中新建一个查询页面。
(2)输入以下程序段并执行此查询:
USE STUDENT
GO
CREATE TABLE t_student
(
s_number char(10) not null,
s_name char(8),
sex char(2) default '男' ,
birthday datetime,
polity char(4)
)
GO
如果系统的输出结果为:“命令已成功完成。”,则表明t_student数据表已经创建成功了。
例4-3-1:为t_student2表中的s_number字段创建非空约束。
程序清单如下:
USE STUDENT
GO
CREATE TABLE t_student2(
s_number char(10) NOT NULL,
s_name char(8),
sex char(2),
phonenum int
)
例4-3-2:在数据库STUDENT中创建一个t_student3表,并定义s_number为主键。增加主键后,就限定了该记录中不能插入编号相同的两个或者多个数据信息,从而保证了表中的记录信息是唯一的。
程序清单如下:
USE STUDENT
GO
CREATE TABLE t_student3(
s_number char(10) PRIMARY KEY,
s_name char(8),
sex char(2),
birthday datetime,
polity char(4)
)
例4-3-3:创建一个学生信息表t_student4,其中s_name字段具有唯一性。
程序清单如下:
USE STUDENT
GO
CREATE TABLE t_student4
(
s_number char(10) PRIMARY KEY,
s_name char(8),
sex char(2) ,
birthday datetime,
polity char(4),
constraint uk_name unique(s_name)
)
例4-3-4:创建一个学生信息表t_student5,其中输入性别字段值时,只能接受“男”或者“女”,而不能接受其他数据。
程序清单如下:
USE STUDENT
GO
CREATE TABLE t_student5(
s_number char(10),
s_name char(8),
sex char(2),
phonenum int,
CONSTRAINT chk_sex CHECK(sex in ('男','女'))
)
例4-3-5:创建一个学生信息表t_student6,为sex字段创建默认约束“男”。
程序清单如下:
USE STUDENT
GO
CREATE TABLE t_student6(
s_number char(10),
s_name char(8),
sex char(2) DEFAULT '男',
phonenum int
)
例4-3-6:创建t_score表,并为t_score创建外键约束,该约束把表t_score中的学生学号(s_number)字段和表t_student中的学生学号(s_number)字段关联起来,实现t_score中的学生学号(s_number)字段的取值要参照表t_student中的学生学号(s_number)字段的数据值。
程序清单如下:
USE STUDENT
GO
CREATE TABLE t_score
(
s_number char(10),
c_number char(10) ,
score int ,
CONSTRAINT con_s_number
FOREIGN KEY (s_number)
REFERENCES t_student(s_number)
)
GO
例4-4-1:在数据库STUDENT中创建一个t_course1表,然后在表中增加一个c_pnumber 字段,删除表中的credit字段,并且修改c_name字段的数据长度。
SQL语句的程序清单如下:
USE STUDENT
GO
CREATE TABLE t_course1
(
c_number char(10) NOT NULL,
c_name char(30),
hours int,
credit real
)
GO
ALTER TABLE t_course1 ALTER COLUMN c_name char(40)
ALTER TABLE t_course1 DROP COLUMN credit
ALTER TABLE t_course1 ADD c_pnumber char(10)
GO
例4-5-1:(1)显示STUDENT数据库中所有对象的信息。
程序如下:
USE STUDENT
GO
Exec sp_help
GO
(2)显示t_student数据表的信息。
程序如下:
USE STUDENT
GO
Exec sp_help t_student
GO
例4-6-1:删除STUDENT数据库中的表t_student3和t_student4。
相应的SQL语句如下:
DROP TABLE STUDENT.dbo.t_student3, STUDENT.dbo.t_student4