admin管理员组

文章数量:1530842

2024年5月9日发(作者:)

SQL-Server2012

1---参考答案

综合练习题

数据库综合练习题

SQL Server数据库操作

1.创建数据库:

操作1.1:创建一个test数据库,其主数据文件逻辑

名test_data,物理文件名test_,初始大小

10MB,最大尺寸为无限大,增长速度1MB;数据库日

志文件逻辑名称为test_log,物理文件名为test_,

初始大小为1MB,最大尺寸为5MB,增长速度为10%。

2.创建表:

操作2.1:创建学生表:

表名:student

属性列

st_id

st_nm

st_sex

st_birth

st_score

st_date

st_from

st_dpid

st_mnt

数据类型

nVarChar

nVarChar

nVarChar

datetime

int

datetime

nChar

nVarChar

tinyint

长度

9

8

2

20

2

说明:学生基本信息表

空值

Not Null

Not Null

Null

Null

Null

Null

Null

Null

Null

列约束

PK

说明

学生学号

学生姓名

学生性别

出生日期

入学成绩

入学日期

学生来源

所在系编号

学生职务

参考答案:

USE test

数据库综合练习题

GO

CREATE TABLE student

(

st_id nVarChar(9) primary key

NOT NULL ,

st_nm nVarChar(8) NOT NULL ,

st_sex nVarChar(2) NULL ,

st_birth datetime NULL ,

st_score int NULL ,

st_date datetime NULL ,

st_ from nVarChar(20) NULL ,

st_dpid nVarChar(2) NULL ,

st_ mnt tinyint NULL

)

GO

操作2.2:创建课程信息表:

表名:couse

属性列

cs_id

cs_nm

cs_tm

cs_sc

数据类型

nVarChar

nVarChar

int

int

长度

4

20

说明:课程信息表

空值

Not Null

Not Null

Null

Null

列约束

PK

说明

课程编号

课程名称

课程学时

课程学分

数据库综合练习题

参考答案:

USE test

GO

CREATE TABLE couse

(

cs_id nVarChar(4)

NULL ,

cs_nm nVarChar(20) NOT NULL ,

cs_tm int

primary key NOT

NULL ,

数据库综合练习题

数据库综合练习题

参考答案:

USE test

GO

CREATE TABLE dept

(

dp_id nVarChar(2) NOT NULL ,

dp_nm nVarChar(20) NOT NULL ,

dp_drt nVarChar(8) NULL ,

dp_tel nVarChar(12) NULL

)

GO

3.表中插入数据

操作3.1:向dept表插入一条记录,系号11,系名

自动控制系,系主任为李其余,电话81234567

INSERT INTO dept VALUES('11', '自

动控制系', '李其余', '81234567')

操作3.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' )

数据库综合练习题

操作3.3:向couse表插入一条记录,课程号1234,

课程名为操作系统,其余字段为NULL或默认值

INSERT INTO couse(cs_id, cs_nm)

VALUES ('1234', '操作系统')

操作3.4:向slt_couse表插入一条记录,课程号

1234,学名070201001,其余字段为NULL或默认值

INSERT INTO slt_couse(cs_id, st_id)

VALUES ('1234', '070201001')

4.修改表中数据

操作4.1:修改student表记录,将王小五的入学成

绩改为88

UPDATE student SET st_score=88

WHERE st_nm='王小五'

操作4.2:修改couse表记录,将所有记录的学分改

为4,学时改为64

UPDATE couse SET cs_tm=64, cs_sc=4

操作4.3:修改slt_couse表记录,将课程号为1234,

学名为070201001的记录的成绩改为77

UPDATE slt_couse SET score=77 WHERE

cs_id='1234' AND st_id='070201001'

5.删除表中数据

操作5.1:删除slt_couse表记录,将课程号为1234,

数据库综合练习题

学名为070201001的记录删除

DELETE FROM slt_couse WHERE

cs_id='1234' AND st_id='070201001'

操作5.2:删除couse表记录,将课程号为1234的

记录删除

DELETE

6.简单查询

FROM couse WHERE

cs_id='1234'

(1)查询表中所有的列

操作6.1:查询所有系的信息

SELECT * FROM dept

(2)查询表中指定列的信息

操作6.2:查询所有的课程号与课程名称

SELECT cs_id, cs_nm FROM couse

(3)在查询列表中使用列表达式

操作6.3:在查询student表时使用列表达式:入学

成绩+400

SELECT st_id, st_nm, st_score,

st_score+400 AS new_score

FROM student

(4)重新命名查询结果

操作6.4:使用AS关键字为dept表中属性指定列

数据库综合练习题

名:系号、系名、系主任、联系电话

SELECT dp_id AS 系号, dp_nm AS 系名,

dp_drt AS 系主任, dp_tel AS联系电话

FROM dept

操作6.5:使用"="号为couse表中属性指定列名:

课程号、课程名、学时(=cs_sc*16)、学分

SELECT 课程号=cs_id, 课程名=cs_nm,

学分=cs_sc, 学时=cs_sc*16

FROM couse

(5)增加说明列

操作6.6:查询dept表的系号、系名和系主任,向

查询结果中插入说明列:系号、系名和系主任

SELECT '系号:', dp_id, '系名:', dp_nm,

'系主任:', dp_drt

FROM dept

(6)查询列表中使用系统函数

操作6.7:显示所有学生的学号、姓名、性别和入学

年份

SELECT st_id, st_nm, st_sex,

DATEPART(yy,st_birth) AS 入学年份

FROM student

操作6.8:显示所有学生学号、姓名、性别和班级(学

数据库综合练习题

号前6位)

SELECT st_id, st_nm, st_sex,

LEFT(st_id, 6) AS 班级

FROM student

(7)消除查询结果中的重复项

操作6.9:显示所有学生班级

SELECT DISTINCT LEFT(st_id,6) AS 班

级 FROM student

(8)取得查询结果的部分行集

操作6.10:显示前5条学生记录信息

SELECT TOP 5 * FROM student

操作6.11:显示前25%条学生记录信息

SELECT TOP 25 PERCENT * FROM student

7.条件查询

(1)使用关系表达式表示查询条件

操作7.1:查询dept表中系号为11的院系信息

SELECT * FROM dept WHERE dp_id = '11'

操作7.2:查询student表中11系的学生学号、姓

名、性别和所在系编号

SELECT st_id, st_nm, st_sex,

st_dpid FROM student

WHERE st_dpid = '11'

数据库综合练习题

操作7.3:查询student表中2008年及以后入学的

学生信息

SELECT * FROM student

WHERE DATEPART( yy, st_date )>= 2008

操作7.4:在查询student表080808班学生的学号、

姓名、性别和入学成绩

SELECT st_id, st_nm, st_sex,

st_score FROM student

WHERE Left(st_id,6)='080808'

(2)使用逻辑表达式表示查询条件

操作7.5:查询student表中非11系的学生信息

SELECT * FROM student WHERE NOT

(st_dpid = '11')

操作7.6:查询选修了1002号课程且成绩在60以下

的学生学号

SELECT st_id FROM slt_couse

WHERE (cs_id='1002') AND (score<60)

操作7.7:查询2007年入学的11系所有男生信息

SELECT * FROM student

WHERE DATEPART(yy,st_date)=2007

AND st_dpid='11' AND st_sex='男'

操作7.8:查询11系和12系的学生信息

SELECT * FROM student

本文标签: 查询学生记录操作课程