当前位置:文档之家› SQL_Server_SQL实验与练习题参考答案

SQL_Server_SQL实验与练习题参考答案

SELECT课程号=cs_id,课程名=cs_nm,学分=cs_sc,学时=cs_sc*16
FROMcouse
(5)增加说明列
操作5.6:查询dept表的系号、系名和系主任,向查询结果中插入说明列:系号、系名和系主任
SELECT '系号:', st_id, '系名:', st_nm,'系主任:', st_drt
cs_scintNULL
)
GO
操作2.3:创建选课表:
表名:slt_couse
说明:选课表
属性列
数据类型
长度
空值
列约束
说明
cs_id
nVarChar
4
Not Null
FK
课程编号
st_id
nVarChar
9
Not Null
FK
学生编号
score
int
Null
课程成绩
sltdate
datetime
Null
DELETE FROMslt_couseWHEREcs_id='1234'ANDst_id='070201001'
操作4.9:删除couse表记录,将课程号为1234的记录删除
DELETE FROMcouseWHEREcs_id='1234'
实验
(1)查询表中所有的列
操作5.1:查询所有系的信息
SELECT * FROMdept
选课日期
参考答案:
USE test
GO
CREATE TABLEcouse
(
cs_idnVarChar(4)NOT NULL,
st_idnVarChar(9)NOT NULL,
scoreintNULL,
sltdatedatetimeNULL
)
GO
操作2.4:创建院系信息表:
表名:dept
说明:院系信息表
filename = 'd:\test\test_log.ldf',
size = 1MB,
maxsize = 5MB,
filegrowth = 10%
)
GO
2.查看数据库属性:
操作1.2:使用T-SQL语句查看数据库test属性
参考答案:
EXEC sp_helpdb test
3.删除数据库:
操作1.3:使用T-SQL语句删除数据库test
FROMdept
(6)查询列表中使用系统函数
操作5.7:显示所有学生的学号、姓名、性别和入学年份
SELECT st_id, st_nm, st_sex,DATEPART(yy,st_birth) AS入学年份
FROM student
操作5.8:显示所有学生学号、姓名、性别和班级(学号前6位)
SELECT st_id, st_nm, st_sex,LEFT(st_id, 6) AS班级
实验
1.创建数据库:
操作1.1:创建一个test数据库,其主数据文件逻辑名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸为无限大,增长速度1MB;数据库日志文件逻辑名称为test_log,物理文件名为test_log.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为10%。
参考答案:
CREATE RULE rl_sexAS @chksex’男’OR@chksex=’女’

CREATE RULE rl_sexAS @chksex IN (’男’,’女’)
GO
EXEC sp_bindrule rl_sex, 'student.st_sex'
GO
EXEC sp_unbindrule 'student.st_sex'
2
操作3.2:将student表中的st_from列默认值设置为“陕西省”
参考答案:
ALTER TABLE studentADD DEFAULT '陕西省' FORst_from
3
操作3.3:创建默认值对象df_today为当前日期,并将其绑定到slt_couse表中的sltdate列,然后取消绑定,最后删除默认值对象df_today。
FROM student
(4)重新命名查询结果
操作5.4:使用AS关键字为dept表中属性指定列名:系号、系名、系主任、联系电话
SELECTdp_id AS系号,dp_nm AS系名,dp_drtAS系主任,dp_telAS联系电话
FROMdept
操作5.5:使用"="号为couse表中属性指定列名:课程号、课程名、学时(=cs_sc*16)、学分
操作4.2:向student表插入一条记录,学号070201001,姓名为王小五,性别为男,出生日期为1990年9月9日,系号为11,其余字段为NULL或默认值
INSERT INTO student(st_id, st_nm, st_sex, st_birth, st_dpid)
VALUES ('070201001', '王小五', '男', '1990.9.9','11')
dp_nmnVarChar(20)NOT NULL,
dp_drtnVarChar(8)NULL,
dp_telnVarChar(12)NULL
)
GO
2.修改表结构:

操作2.5:为“dept”表添加“dp_count”列(数据类型为nvarchar,长度为3,允许为空)
参考答案:
ALTER TABLEdeptADDdp_countnvarchar(3) NULL
UPDATEcouseSETcs_tm=64,cs_sc=4
操作4.7:修改slt_couse表记录,将课程号为1234,学名为070201001的记录的成绩改为77
UPDATEslt_couseSETscore=77WHEREcs_id='1234'ANDst_id='070201001'
3.
操作4.8:删除slt_couse表记录,将课程号为1234,学名为070201001的记录删除
GO
DROP RULE rl_sex
GO
6.
操作3.6:将dept表中的dp_id列设置为主键
参考答案:
ALTER TABLE deptADDPRIMARYKEY (dp_id)
7.唯一性约束
操作3.7:将dept表中的dp_nm列设置为唯一性约束
参考答案:
ALTER TABLEdeptADD UNIQUE .8:向slt_couse表中添加标识列id,第1行默认值为1,相邻两个标识列间的增量为1
参考答案:
ALTER TABLEslt_couseADD id INT IDENTITY(1,1) NOT NULL
9.外键(
操作3.9:被参照表为dept,参照表为student
参考答案:
ALTER TABLE student
3.
操作2.8:删除“dept”表
参考答案:
DROP TABLE student
4.
操作2.9:分别向“student”表、“couse”表、“slt_couse”表、“dept”表中输入数据记录
实验
1
操作3.1:将student表中的st_sex列属性更改为NOT NULL
参考答案:
ALTER TABLE studentALTER COLUME st_nm nVarChar(8) NOT NULL
操作4.3:向couse表插入一条记录,课程号1234,课程名为操作系统,其余字段为NULL或默认值
INSERT INTOcouse(cs_id,cs_nm)VALUES ('1234', '操作系统')
操作4.4:向slt_couse表插入一条记录,课程号1234,学名070201001,其余字段为NULL或默认值
参考答案:
CREATE DEFAULT df_today ASGetdate( )
GO
EXEC sp_bindefault df_today, 'slt_couse.sltdate'
GO
EXEC sp_unbindefault 'slt_couse.sltdate'
GO
DROP DEFAULT df_today
学生性别
st_birth
datetime
Null
出生日期
st_score
int
Null
入学成绩
st_date
datetime
Null
入学日期
st_from
nChar
20
Null
学生来源
st_dpid
nVarChar
2
Null
所在系编号
st_mnt
tinyint
Null
学生职务
参考答案:
USE test
20
Not Null
课程名称
cs_tm
int
Null
课程学时
cs_sc
int
Null
课程学分
参考答案:
USE test
GO
CREATE TABLEcouse
(
cs_idnVarChar(4)primary key NOT NULL,
cs_nmnVarChar(20)NOT NULL,
cs_tmintNULL,
ADD FOREIGN KEY (st_dpid)REFERENCESdept(dp_id)
相关主题