SQL复习题(附部分答案)要点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单选题
1.根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(___)
A.只存在一对多的实体关系,以图形方式来表示。
B.以二维表格结构来保存数据,在关系表中不允许有重复行存在。
C.能体现一对多、多对多的关系,但不能体现一对一的关系。
D.关系模型数据库是数据库发展的最初阶段。
答案[B]
2、在“连接”组中有两种连接认证方式,其中在(___)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。
A、Windows身份验证
B、SQL Server 身份验证
C、以超级用户身份登录时
D、其他方式登录时
答案[B]
3、关系数据库中,主键是(___),当运用Transact-SQL语句创建主键时,可以是(__)。
⑴ A、为标识表中唯一的实体 B、创建唯一的索引,允许空值
C、只允许以表中第一字段建立
D、允许有多个主键的
⑵ A、create table table1
(column1 char(13) not null primary key,
column2 int not on primary key;
B、alter table table1 with nocheck add
constraint [PK_table1] primary key nonclustered ( column1) on primary;
C、alter table table1 column1 primary key ;
答案[ A C]
4、视图是一种常用的数据对象,可以简化数据库操作,当使用多个数据表来建立视图时,不允许在该语句中包括(___)等关键字。
A、ORDER BY,COMPUTE
B、ORDER BY,COMPUTE,COMPUTR BY
C、ORDER BY,COMPUTE BY,GROUP BY
D、GROUP BY,COMPUTE BY
答案[B ]
5、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(_1_),使用关键字(_2_)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(_3__),如果在SELECT语句中使用聚合函数时,可以在后面使用(_4_)。
⑴ A、SELECT,INTO B、SELECT,FROM
C、SELECT,GROUP
D、仅SELECT
⑵ A、DISTINCT B、UNION C、ALL D、TOP
⑶ A、JOIN B、UNION C、INTO D、LIKE
⑷ A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE
答案[B A B A ]
6、SQL Server 2008是一个()的数据库系统。
(A)网状型(B)层次型(C)关系型(D)以上都不是
答案[ C]
7、利用查询分析器,能()。
A、直接执行SQL语句
B、提交SQL语句给服务器执行
C、作为企业管理器使用
D、作为服务管理器使用
答案[A ]
8、事务日志文件的默认扩展名是()。
A、MDF
B、NDF
C、LDF
D、DBF
答案[C ]
10、 SQL Server的主数据库是()。
A、MASTER
B、TEMPDB
C、MODEL
D、MSDB
答案[ A]
11、数据库的容量,()。
A、只能指定固定的大小。
B、最小为10M
C、最大100M。
D、可以设置为自动增长
答案[ D]
12、日期时间型数据类型(datetime)的长度是()。
A、2
B、4
C、8
D、16
答案[ 8]
13、表在数据库中是一个非常重要的数据对象,它是用来(__)各种数据内容的。
A、显示
B、查询
C、存放
D、检索
答案[C ]
14、为数据表创建索引的目的是(_1_),可以在创建表时用( 2_)来创建唯一索引。
⑴ A、提高查询的检索性能 B、创建唯一索引
C、创建主键
D、归类
⑵ A、设置主键约束,设置唯一约束 B、Create table,Create index
C、设置主键约束,Create index
D、以上都可以
答案[A A ]
15、在T-SQL语法中,用来插入和更新数据的命令是(___)。
A、INSERT,UPDATE
B、UPDATE,INSERT
C、DELETE,UPDATE
D、CREATE,INSERT INTO
答案[ A]
16、主键约束用来强制数据的()完整性。
A、域
B、实体
C、参照
D、ABC都可以
答案[ B]
18、替代触发器(instead of)是在触发触发器的修改操作()执行。
A、执行后
B、停止执行时
C、同时
D、之前
答案[ D]
19、聚合函数的返回值是()。
A、一个标量值
B、一组值
C、表达式
D、表
答案[ A]
20、关于主键描述正确的是:()
(A)包含一列(B)包含两列
(C)包含一列或者多列(D)以上都不正确
答案[]
22、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是()
(A)* (B)% (C)- (D)?
答案[ B]
23、如果希望完全安装SQL Server,则应选择()。
(A)典型安装(B)最小安装(C)自定义安装 (D)仅连接
答案[C ]
24、对视图的描述错误的是:()
A.是一张虚拟的表
B.在存储视图时存储的是视图的定义
C.在存储视图时存储的是视图中的数据
D.可以像查询表一样来查询视图
答案[C ]
25、T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是()。
(A)CREATE (B)UPDATE (C)ALTER(D)USE
答案[ C]
26、SQL server 数据库文件有3类,其中日志文件的后缀为()。
(A).ndf B).ldf (C).mdf (D).idf
答案[B ]
27、表示职称为副教授同时性别为男的表达式为( )
A.职称=‘副教授' OR 性别=‘男'
B.职称=‘副教授' AND 性别=’男'
C.BETWEEN‘副教授' AND ’男'
D.IN (‘副教授',‘男')
答案[B ]
28、在SQL SERVER服务器上,存储过程是一组预先定义并()的Transact-SQL 语句。
(A)保存 (B)编写 (C)解释 (D)编译
答案[ D]
29、数据管理发展的三个阶段不包括( )。
(A)人工管理阶段 (B)文件管理阶段
(C)数据库管理阶段 (D)智能管理阶段
答案[ D]
30、SQL语言按照用途可以分为三类,不包括下面选项中的()。
(A)DML (B)DCL (C)DQL (D)DDL
答案[C ]
31、在SQL SERVER中局部变量前面的字符为:()
(A)* (B)# (C)@@ (D)@
答案[ D]
32、以下哪一个不是逻辑运算符()?
(A)NOT (B)AND (C)OR (D)IN
答案[ D]
33、SQL Server 2008 采用的身份验证模式有()。
A.仅Windows身份验证模式
B.仅SQL Server身份验证模式
C.仅混合模式
D.Windows身份验证模式和混合模式
答案[D ]
34、关于主键描述正确的是:()
A、包含一列
B、包含两列
C、包含一列或者多列
D、以上都不正确
答案[ C]
35、下列()数据库不属于SQL Server2008在安装时创建的系统数据库。
A、master
B、msdb
C、model
D、bookdb
答案[ D]
36、在SQL SERVER中全局变量前面的字符为:()
A、*
B、#
C、@@
D、@
答案[C ]
37、在SQL Server中,当数据表被修改时,系统自动执行的数据库对象是()。
A、存储过程
B、触发器
C、视图
D、其他数据库对象
答案[ B]
38、SQL Server的字符型系统数据类型主要包括()。
A、Int、money、char
B、char、varchar、text
C、 datetime、binary、int
D、char、varchar、int
答案[ B]
39、在SELECT语句的WHERE子句的条件表达式中,可以匹配1个字符的通配符是()
A、*
B、%
C、_
D、?
答案[C ]
40、在WHILE循环语句中,如果循环体语句条数多于一条,必须使用:()
A.BEGIN……END
B.CASE……END
C.IF…………THEN
D.GOTO
答案[A ]
41、SELECT查询中,要把结果中的行按照某一列的值进行排序,所用到的子句是:()
A、ORDER BY
B、WHERE
C、GROUP BY
D、HAVING
答案[A ]
42、根据关系数据基于的数据模型――关系模型的特征判断下列正确的一项:( )
A.只存在一对多的实体关系,以图形方式来表示
B.以二维表格结构来保存数据,在关系表中不允许有重复行存在
C.能体现一对多,多对多的关系,但不能体现一对一的关系
D.关系模型数据库是数据库发展的最初阶段
答案[B ]
43、新安装SQL Server后,默认有五个内置的数据库,其中主数据库是()。
A、master
B、tempdb
C、msdb
D、model
答案[ A]
44、SQL 语言中,删除一个视图的命令是()。
A. DELETE
B.DROP
C.CLEAR
D.REMOVE
答案[B ]
45、创建表的命令是()。
A.Create database 表名
B. Create VIEW 表名
C. Alter TABLE 表名
D. Create TABLE 表名
答案[D ]
46、在Transact-SQL语法中,用来插入数据的命令是( ),用于更新的命令是( )
A.INSERT,UPDATE
B.UPDATE,INSERT
C、DELETE,UPDATE
D.CREATE,INSERT INTO
答案[ A]
47、创建表的命令是()。
A、 Create database 表名
B.Create VIEW 表名
C、 Create TABLE 表名
D.Alter TABLE 表名
答案[ C]
48、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1),使用关键字(2)可以把重复行屏蔽,对查询结果进行分组的是(3)
(1)A、SELECT,INTO B、SELECT,FROM C、SELECT,GROUP D、仅SELECT
(2)A、DISTINCT B、UNION C、ALL D、TOP
(3)A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE
答案[B A A ]
49、要删除视图myview,可以使用()语句。
A、 DROP myview
B、DROP TABLE myview
C、 DROP INDEX myview
D、DROP VIEW myview
答案[ D]
50、在SQL SERVER服务器上,存储过程是一组预先定义的Transact-SQL语句.可以用( )来声明游标.
A、CREATE CURSOR
B、ALTER CURSOR
C、SET CURSOR
D、DECLARE CURSOR
答案[A ]
51、关于ORDER BY子句,下列哪个说法是不正确的?()
A.升序和降序的关键字是ASC和DESC 。
B.只能按一个列进行排序。
C.排序列不可以用它们在SELECT子句中的次序号代替。
D.允许对多个列进行排序
答案[B ]
52.反映现实世界中实体及实体间联系的信息模型是()。
A.关系模型
B.层次模型
C.网状模型
D.E-R模型
答案[D ]
53.下列四项中,不属于数据库特点的是()
A.数据共享
B.数据完整性
C.数据冗余很高
D.数据独立性高
答案[ C]
54.在 SQL 中,SELECT 语句的“SELECT DISTINCT”表示查询结果中()。
A.属性名都不相同
B.行都不相同
C.去掉了重复的列
D.属性值都不相同
答案[ C]
55.SQL 语言中,删除一个视图的命令是()。
A. DELETE
B.DROP
C.CLEAR
D.REMOVE
答案[B ]
56.触发器可以创建在()中。
A.表
B.过程
C.数据库
D.函数
答案[ A]
57.以下触发器是当对 [employee 表]进行()操作时触发。
Create Trigger abc on employee
For insert , update , delete
As ……
A.只是修改
B. 只是插入
C.只是删除
D.修改、插入、删除
答案[D ]
58.关于视图下列哪一个说法是错误的()。
A.视图是一种虚拟表
B.视图中也保存有数据
C.视图也可由视图派生出来
D.视图是保存在SELECT 查询
答案[B ]
59.Select 雇员_ID FROM employee WHERE 薪水>1250 命令的功能是()。
A.查询薪水大于 1250 的记录
B.查询 1250 号记录后的记录
C.检索所有的雇员_ID
D.从[employee]关系中检索薪水大于 1250 的雇员_ID
答案[ D]
60.触发器可引用视图或临时表,并产生两个特殊的表是()。
A.Deleted、Inserted
B.Delete、Insert
C.View、Table
D.View1、table1
答案[ A]
61.创建表的命令是()。
A. Create database 表名
B. Create VIEW 表名
C. Create TABLE 表名
D. Alter TABLE 表名
答案[ C]
62、下面聚集函数中()只能用于计算数值类型的数据.
(A)COUNT( ) (B)MIN( ) (C)MAX( ) (D)SUM( )
答案[D ]
63、在创建表的过程中,哪个关键字用来定义默认值()?
(A)DISTINCT (B)UNIQUE (C)CHECK (D)DEFAULT
答案[D ]
64、合并多个查询结果集,应使用( )关键字。
(A)join (B)union (C)into (D)and
答案[B ]
65、查询毕业学校名称与“清华”有关的记录应该用( )。
A.SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ‘*清华*’
B.SELECT * FROM 学习经历 WHERE 毕业学校=‘%清华%’
C.SELECT * FROM 学习经历 WHERE 毕业学校LIKE‘?清华?’
D.SELECT * FROM 学习经历 WHERE 毕业学校LIKE‘%清华%’
答案[ D]
66、SQL Server 2008是一个()的数据库系统。
(A)网状型(B)层次型(C)关系型(D)以上都不是
答案[ C]
67、关于主键描述正确的是:()
(A)包含一列(B)包含两列
(C)包含一列或者多列(D)以上都不正确
答案[C ]
68、SQL Server 2008 采用的身份验证模式有()。
A.仅Windows身份验证模式
B.仅SQL Server身份验证模式
C.仅混合模式
D.Windows身份验证模式和混合模式
答案[ D]
69、SQL 语言按照用途可以分为三类,下面选项中哪一种不是的:()
(A)DML (B)DCL (C)DQL (D)DDL
答案[C ]
70、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是()
(A)* (B)% (C)- (D)?
答案[ B]
71、SQL Server提供的单行注释语句是使用()开始的一行内容。
A.“/*” (B)“--” (C)“{” (D)“/”
答案[ B]
72、以下那种类型可以作为变量的数据类型()。
(A)text (B)ntext
(C)float (D)image
答案[ C]
73、下面不属于数据定义功能的SQL语句是:()
(A)CREATE TABLE (B)CREATE CURSOR
(C)UPDATE (D)ALTER TABLE
答案[C ]
74、如果希望完全安装SQL Server,则应选择()。
(A)典型安装(B)最小安装
(C)自定义安装(D) 仅连接
答案[C ]
75、在SQL SERVER中局部变量前面的字符为:()
(A)* (B)# (C)@@ (D) @
答案[ D]
76、假如有两个表的连接是这样的: table_1 INNER JOIN table_2 其中table_1和table_2是两个具有公共属性的表,这种连接会生成哪种结果集?()
A.包括table_1中的所有行,不包括table_2的不匹配行
B.包括table_2中的所有行,不包括table_1的不匹配行
C.包括和两个表的所有行
D.只包括table_1和table_2满足条件的行
答案[ D]
77、对视图的描述错误的是:()
A.是一张虚拟的表
B.在存储视图时存储的是视图的定义
C.在存储视图时存储的是视图中的数据
D.可以像查询表一样来查询视图
答案[ C]
78、T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是()。
(A)CREATE (B)UPDATE (C)ALTER(D)USE
答案[ C]
79、 SQL Server 2008提供了一整套管理工具和实用程序,其中负责启动、暂停和停止SQL Server的4种服务的是()。
A.企业管理器
B.导入和导出数据
C.事件探察器
D.服务管理器
答案[ D]
80、要查询book表中所有书名中以“计算机”开头的书籍的价格,可用()语句。
A.SELECT price FROM book WHERE book_name = ‘计算机*’
B.SELECT price FROM book WHERE book_name LIKE ‘计算机*’
C.SELECT price FROM book WHERE book_name = ‘计算机%’
D.SELECT price FROM book WHERE book_name LIKE ‘计算机%’
答案[ D]
81、SQL server 数据库文件有3类,其中日志文件的后缀为()。
(A) .ndf (B) .ldf
(C) .mdf (D) .idf
答案[B ]
82、在Transact-SQL语法中,用来插入数据的命令是(),用来更新数据的命令是()。
(A)INSERT ,UPDATE (B)UPDATE, INSERT
(C)INSERT ,ALTER (D) CREATE,INSERT
答案[A ]
83、下面有关HAVING子句描述错误的是( )。
A.HAVING子句必须与GROUPBY子句同时使用,不能单独使用。
B.使用HAVING子句的同时不能使用WHERE子句。
C.使用HAVING子句的同时可以使用WHERE子句。
D.使用HAVING子句的作用是限定分组的条件。
答案[ B]
84、在标准SQL中,建立视图的命令是( )。
(A)CREATE FUNCTION (B)CREATE TABLE
(C)CREATE VIEW (D)CREATE INDEX
答案[C ]
85、表示职称为副教授同时性别为男的表达式为( )
A.职称='副教授' OR 性别='男'
B.职称='副教授' AND 性别='男'
C.BETWEEN '副教授' AND '男'
D.IN ('副教授','男')
答案[ B]
86、下列四项中,不正确的提法是( )。
A.SQL语言是关系数据库的国际标准语言
B.SQL语言具有数据定义、查询、操纵和控制功能
C.SQL语言可以自动实现关系数据库的规范化
D.SQL语言称为结构查询语言
答案[C ]
87、在SQL SERVER服务器上,存储过程是一组预先定义并()的Transact-SQL语句。
(A) 保存(B) 编写
(C) 解释(D) 编译
答案[ D]
88.()是位于用户和操作系统之间的一层数据管理软件,是数据库系统的核心。
数据库在建立、使用和维护时由其统一管理、统一控制。
A.数据库管理系统DBMS B.数据库DB
C.数据库系统DBS D.数据库管理员DBA
答案[ A]
89.下列哪一个数据库不是SQL Server 的系统数据库()
A.master B.msdb
C.pubs D.model
答案[ C]
90.T-SQL语言允许使用通配符进行字符串匹配操作,其中‘%’可以表示()
A.零个字符
B.1个字符
C.多个字符
D.以上都可以
答案[ D]
91.下面对索引的相关描述正确的是:()。
A.经常被查询的列不适合建索引。
B.列值唯一的列适合建索引。
C.有很多重复值的列适合建索引。
D.是外键或主键的列不适合建索引。
答案[B ]
92、执行语句:PRINT Ltrim(Rtrim(‘Hello,world ’)))的结果是()。
A. ‘HELLO,WORLD’
B. ‘Hello,world ’
C. ‘Hello,world’
D. ‘HELLO,WORLD ’
答案[ C]
93、每个数据表可以创建()个聚集索引。
A. 1
B. 2
C. 10
D. 无数个
答案[A ]
94.在SQL中,对分组后的数据进行筛选的短语是()。
A. Group By
pute
C.Having
D.Where
答案[ C]
95.如果要让Windows 和UNIX的用户能够同时访问SQL Server,在登录时应选择()身份认证模式。
A. 混合模式
B. Windows身份验证模式
C.同时使用Windows身份验证和混合模式
D.以上都可以
答案[ A]
96.在视图上不能完成的操作是()。
A.在视图上定义新视图
B.查询视图数据
C.更新数据
D.通过视图定义基表
答案[D ]
97. 在 SELECT 语句中,如果要选择表中所有的列时可以用()代表。
A. %
B. @
C. *
D. !
答案[ C]
98. 在SQL SERVER中全局变量前面的字符为:()
A.*
B.#
C.@@
D.@
答案[ C]
99. SQL Server的字符型系统数据类型主要包括()。
A.Int、money、char
B.char、varchar、text
C.datetime、binary、int
D.char、varchar、int
答案[ B]
100. 在WHILE循环语句中,如果循环体语句条数多于一条,必须使用:()
A.BEGIN……END
B. CASE……END C、IF……THEN D、GO
答案[ A]
101. 触发器可以创建在()中。
A.表
B.过程
C.数据库
D.函数
答案[ A]
二、填空题
1、数据模型通常是由数据结构、数据操作和__完整性约束条件____3部分组成的。
2、在SQL Server 2008中,索引的顺序和数据表的物理顺序不相同的索引是__非聚集索引___ 。
3、如果要计算表中数据的平均值,可以使用的聚合函数是__avg()_____。
4、在SQL Server 2008中,我们创建数据库的语句是 create database___ ,而修改数据库的语句是 alter database____ 。
5、数据完整性是指存储在数据库中的数据正确无误并且相关数据具有一致性,完整性约束包括____实体_____完整性、___域______完整性、引用完整性和用户定义完整性。
6、SQL server 中的变量分为两种,全局变量和局部变量。
其中全局变量的名称以 ___@@_____ 字符开始,有系统定义和维护。
局部变量以 ___@_____字符开始,由用户自己定义和赋值。
7、语句 SELECT (7+3)*4-17/(4-(8-6))+99%4 的执行结果是_____35____。
8.数据库系统中常用的三种数据模型有____层次模型_____、__网状模型_______和___关系模型_____。
9.SQL SERVER存储数据库的文件主要有三种:___主数据文件______、__次要数据文件____和__事务日志文件_____。
11.语句select round(202.567,2),len(‘SQL Server数据库’),35%6的执行结果为:___202.57____、___13_____、___5_________。
12.对数据表记录可以进行查询、插入、修改和删除操作,所使用的SQL命令对应为:__select____、__insert_____、__update________和___delete_____。
13.在SELECT查询语句中,__distinct__________关键字用于去掉重复记录,_____into_____短语用于生成一个新表,__where______短语用于指出查询条件,____group by________短语用于分组。
16.SQL SERVER 中的编程语言就是TranSact_SQL语言。
若要修改某张表的结构,应该使用的修改关键字是 alter table ;若要创建一个数据库,应该使用的语句是 create database 。
17.在数据库的表中,主关键字是指表中的某一列,该列的值唯一标识一行,例如学号列。
18.数据完整性是指存储在数据库中的数据正确无误并且相关数据具有一致性,完整性约束包括____实体________完整性、域完整性、参照完整性和用户定义完整性。
19. 在查询操作中,将查询结果按指定表达式进行分组的子句是 group by ;对查询的结果集进行排序的子句是 order by 。
三、问答题:
1.一个完整的数据库系统大致有哪些部分组成?
答案略
2.设计一个仓库管理系统的局部应用有如下两个实体: 仓库:仓库号、仓库名称、地点、面积 货物:货物号、货物名、价格 其中,仓库和货物是多对多的关系,联系名为:存储:仓库号、货物号。
画出该局部应用的E-R 模型,并将其转换为关系模式。
关系模式: 仓库(仓库号,仓库名称,地点,面积) 货物(货物号,货物名,价格) 存储(仓库号,货物号)
3.列举数据库中五种常见的常量数据类型。
答案略
4.什么是索引?索引有什么功能?聚集索引和非聚集索引的区别?
答案略
5.什么是视图?使用视图的好处是什么?
答案略
6.叙述存储过程的概念和分类。
答案略
7.概述触发器的概念及分类。
答案略
8.数据库中有哪些实现数据完整性的机制?
答案略
9.列举五种常见的数据库对象。
答案略
10、什么是数据库分离?什么是附加数据库?分离及附加数据库有什么作用? 仓库 仓库名称 仓库号 地点 面积 存储 1 m 货物
仓库号 货物号 货物名 价格 货物号 n
答案略
11.数据库管理员小明希望将旧服务器上的数据库转移到新购置的服务器上,该如何做?
答案略
12.简述下列程序段所完成的功能。
说明:Border为图书订购表,包含订购日期(rq),订购数量(sl),图书编号(id)等信息。
Begin
Waitfor time ’09:15:43’ --指定此行以下语句的执行时间
Create View my_view
As Select rq,sl,id From Border
Where sl!< 10
End
[答案]在09:15:43的时间创建视图my_view,实现从border表中检索订购数量不小于10 的订购日期,订购数量,图书编号。
13. 简述下列程序段所完成的功能。
DECLARE @I int,@sum int,@csum char(10)
SELECT @I=1,@sum=0
WHILE @I<=200
BEGIN
SELECT @sum =@sum+@i
SELECT @I=@I+1
END
SELECT @csum=convert(char(10),@sum)
PRINT @csum
[答案]计算1到200的数的和,并输出。
四、查询设计题
1、已知有学生关系S(SNO,SNAME,AGE,DNO),各属性含义依次为学号,姓名、年龄和所在系号;学生选课关系SC(SNO,CNO,SCORE),各属性含义依次为学号、课程号和成绩。
(1)查询课程号10003的得分最高的所有学生的学号和姓名。
(2)列出所有年龄(AGE)在20和25之间的学生信息。
写出SQL语句。
参考答案:
(1)select top 1 s.sno,sname
From s join sc
Where s.sno=sc.sno and cno=’10003’
Order by score
(2) select * from s
Where age between 20 and 25
2. 现有“学生选课”数据库,其中主要的表有:
“学生”表(学号,姓名,性别,专业,出生年月),
“选课”表(学号,课程号,成绩),
“课程”表(课程号,课程名,所属专业,学分)
按照下列要求写出SQL语句:
(1) 在“选课”表中,删除选了课程号为10004的所有选课记录。
(2) 在“课程”表中,修改课程号为10008的课程名称:数字电路。
(3) 设计子查询,查询“课程”表中,有哪些课程没有被任何同学报选。
(4)设计连接查询,查找选修了“数据结构”课程且成绩在80分及以上的学生的学号、姓名、课程名及成绩。
参考答案:
1) use 学生选课
delete from 选课 where 课程号=’10004’
2) use 学生选课
update 课程 set 课程名='数字电路' where 课程号='10008'
3) use 学生选课
select课程号,课程名 from 课程 where 课程号 not in
(select distinct 课程号 from 选课)
4) use 学生选课
select学生.学号,姓名,课程.课程名,选课.成绩
from学生join选课 on 学生.学号=选课.学号
join 课程 on 课程.课程号=选课.课程号
where 课程.课程名=’数据结构’ and 选课.成绩>=80
3.有一个关系数据库,数据库名:Student,其中数据表如下:
学生信息(学号 char(6),姓名char(8),性别char(2),民族char(2),身份证号char(18))
课程信息(课程号 char(6),课程名varchar(20))
成绩信息(学号char(6),课程号char(6),分数 float)
用T-SQL语言写出实现下列功能的语句代码。
(1). 创建数据库“Student”。
要求:包含一个主数据文件和一个事务日志文件,主数据文件初始容量为5MB,最大容量为20MB,文件增长量为20%;事务日志文件初始容量为5MB,最大容量为10MB,文件增长量2MB。
将文件都存放于F:\SQL中,文件名自定。
(2).创建数据表“学生信息”。
要求:学号为主键、身份证号为唯一索引、对性别字段进行检查。
(3). 查询课程成绩小于60分的所有学生的信息,结果包括学号、姓名字段。
(4).将下列课程信息添加到“课程信息”表。
课程号:101 ,课程名:西班牙语
(5).创建视图“成绩信息视图”,字段为:(学号,姓名,课程名,成绩)(6).查询名字中带有‘丽’的女生信息。
(7).创建带参数的存储过程“某门课程高低均分”。
存储过程功能:输入课程名,即可查询得到此课程的最高分、最低分、平均分。
参考答案:
(1)CREATE DATABASE student
ON
( NAME = ……., --……处名字自定,下同
FILENAME = 'f:\sql\............mdf', --……处名字自定,下同
SIZE = 5,
MAXSIZE = 20,
FILEGROWTH = 20% )
LOG ON
( NAME = '……._log',
FILENAME = 'f:\sql\.........ldf',
SIZE = 5MB,
MAXSIZE = 10MB,
FILEGROWTH = 2MB )
(2)Create table 学生信息(
学号char(6) primary key not null ,
姓名char(8),
性别char(2) check (性别=‘男’or 性别=’女’),
民族char(2) ,
身份证号varchar(18) unique key not null )
(3)Select 学号,姓名
From 学生信息,成绩信息
Where 学生信息.学号=成绩信息.学号and 成绩<60
(4)Insert into 课程信息values(‘101’,’西班牙语’)(5)Create view 成绩信息视图
As
Select 学号,姓名,课程名,成绩
From 学生信息,成绩信息,课程信息
Where学生信息.学号=成绩信息.学号and成绩信息.课程号=课程信息.
课程号
(6). Select 姓名,性别,民族
From 学生信息
Where 姓名like ‘%丽%’ and 性别=‘女’
(7).
If exists(select * from sysobjects where name=‘某门课程高低均分’and type=‘P’)
Drop proc某门课程高低均分
Go
Create proc 某门课程高低均分
@kcm char(20)
As
Select max(成绩),min(成绩),avg(成绩)
from 课程信息,成绩信息
Where成绩信息.课程号=课程信息.课程号and 课程名=@kcm
Go
4.现在要为学校建立一个数据库JWGL,学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生,现要建立关于系、学生、班级的数据库,关系模式为:
学生表STUDENT(学号,姓名,性别,生源地,出生日期)
班级表CLASS(班号,专业名,系号,入学年份)
系DEPARTMENT(系号,系名)
1)、使用T-SQL命令建立学生表STUDENT,具体要求为:
(1)选择合适字段作为主键
(2)性别字段属性值默认为‘男’,约束为‘男’或者‘女’
(3)学生姓名不能为空
(4)各字段选择合适的数据类型,数据长度自定
2)、使用T-SQL命令向指定表插入如下数据:
STUDENT(8101,张三,男,山东,1984;)
CALSS(101,软件,01,2003;)
DEPARTMENT(01,计算机;)
3)、完成如下操作,写成相关SQL语句:
(1)在学生表STUDENT中查询生源地为“云南”学生的记录
(2)在学生表STUDENT中查询出姓钱的男生记录
(3)使用聚合函数计算出所有学生总数起别名为学生人数
(4)查询所有班级的信息,并用班级号进行降序排序
(5)更新学号为8801的这位学生的姓名为姜芸
(6)查找出学号在8101到8110之间的学生信息
(7)删除姓名为王飞翔的学生记录
(8)删除数据表class
4)、在JWGL数据库中,创建一个存储过程pv_grade实现如下功能:
(1)输入一个学生的姓名,输出该学生所有选修课程的平均成绩
(2)通过参数“李思思”调用该存储过程
参考答案:
1)create table student
(
学号 char(10) primary key ,
姓名 varchar(20) not null ,
性别 char(4) default '男' ,
生源地 varchar(12) ,
出生日期 datetime ,
check((性别= '男') or (性别= '女')
)
2)insert into student values('8101','张三','男','山东','1984-01-01') insert into class values('101','软件','01','2003')
insert into department values('01','计算机')
3)
(1)select * from student where 生源地=‘云南'
(2)select * from student where 姓名like ‘钱%' and 性别=‘男’(3)select count(*) as‘学生人数' from student
(4)select * from class order by 班号desc
(5)update student set 姓名= ‘姜芸' where 学号= '8801'
(6)select * from student where 学号between‘8101' and ‘8110' (7)delete from student where 姓名= ‘王飞翔'
(8)drop table class
4)、
(1)use jwgl
go
create procedure pj_grade
@s_name char(8)
as
select sname,cname,grade
from s join sc on s.sno=sc.sno and sname=@s_name
join c on o=o
go
(2)declare @name char
set @name=‘李思思’
exec pj_grade @name
go。