文档库 最新最全的文档下载
当前位置:文档库 › SQL习题集及答案

SQL习题集及答案

SQL习题集及答案
SQL习题集及答案

SQL习题集(1)

问题描述:

为管理岗位业务培训信息,建立3个表:

S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN 分别代表课程编号、课程名称

SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩

要求实现如下5个处理:

1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名

2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位

3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位

4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位

5. 查询选修了课程的学员人数

6. 查询选修课程超过5门的学员学号和所属单位

1。使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名实现代码:

SELECT SN,SD FROM S

WHERE [S#] IN(

SELECT [S#] FROM C,SC

WHERE C.[C#]=SC.[C#]

AND CN=N'税收基础')

2。使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位

实现代码:

SELECT S.SN,S.SD FROM S,SC

WHERE S.[S#]=SC.[S#]

AND SC.[C#]='C2'SELECT S.SN,S.SD FROM S,SC

WHERE S.[S#]=SC.[S#]

AND SC.[C#]='C2'

3。使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位实现代码:

SELECT SN,SD FROM S

WHERE [S#] NOT IN(

SELECT [S#] FROM SC

WHERE [C#]='C5')

4。使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位

实现代码:

SELECT SN,SD FROM S

WHERE [S#] IN(

SELECT [S#] FROM SC

RIGHT JOIN C ON SC.[C#]=C.[C#]

GROUP BY [S#]

HAVING COUNT(*)=COUNT(DISTINCT [S#]))

5。查询选修了课程的学员人数

实现代码:

SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC

6。查询选修课程超过5门的学员学号和所属单位

实现代码:

SELECT SN,SD FROM S

WHERE [S#] IN(

SELECT [S#] FROM SC

GROUP BY [S#]

HAVING COUNT(DISTINCT [C#])>5)

本题用到下面三个关系表:

(1)CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级

(2)BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数

(3)BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期

备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求实现如下15个处理:

1.写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。

2.找出借书超过2次的读者,输出借书卡号及所借图书次数。

3.查询借阅了"Eclipse入门"一书的读者,输出姓名及班级。

4.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。

5.查询书名包括"网络"关键词的图书,输出书号、书名、作者。

6.查询现有图书中价格最高的图书,输出书名及作者。

7.查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。

8.将"C01"班同学所借图书的还期都延长一周。

9.从BOOKS表中删除当前无人借阅的图书记录。

10.如果经常按书名查询图书信息,请建立合适的索引。

11.在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"数据库技术及应用",就将该读者的借阅记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW 表)。

12.建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)。

13.查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出。

14.假定在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的语句。

15.对CARD表做如下修改:

a. 将NAME最大列宽增加到10个字符(假定原为6个字符)。

b. 为该表增加1列NAME(系名),可变长,最大20个字符。

--创建表CARD

CREATE TABLE CARD(CNO CHAR(3),NAME VARCHAR(20),CLASS VARCHAR(20))

INSERT INTO CARD SELECT 001,'方健','三年二班'

go

INSERT INTO CARD SELECT 002,'李勇','三年一班'

UNION ALL

SELECT 003,'张雪','三年三班'

UNION ALL

SELECT 004,'赵云','三年三班'

UNION ALL

SELECT 005,'李树鹏','三年四班'

UNION ALL

SELECT 006,'李会文','三年四班'

SELECT * FROM CARD

--创建表BOOKS

CREATE TABLE BOOKS(BNO CHAR(4),BNAME VARCHAR(30),AUTHOR VARCHAR(20),PRICE

INT,QUANTITY INT)

INSERT INTO BOOKS SELECT '0001','JAVA编程思想','小java',88,200

UNION ALL

SELECT '0002','C++编程思想','小c',68,300

UNION ALL

SELECT '0003','SQLSERVER概论','小s',50,220

UNION ALL

SELECT '0004','Eclipse入门','小e',40,160

UNION ALL

SELECT '0005','COBOL入门到精通','小cobol',30,200

SELECT * FROM BOOKS

--创建表BORROW

-- 1.写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。CREATE TABLE BORROW(

CNO INT FOREIGN KEY REFERENCES CARD(CNO),

BNO INT FOREIGN KEY REFERENCES CARD(CNO),

RDATE DATETIME,

PRIMARY KEY(CNO,BNO))

INSERT INTO BORROW SELECT 001,0002,'2006/12/10'

INSERT INTO BORROW SELECT 003,0005,'2006/11/30'

INSERT INTO BORROW SELECT 003,0004,'2006/11/20'

INSERT INTO BORROW SELECT 004,0003,'2006/12/20'

INSERT INTO BORROW SELECT 001,0003,'2006/11/10'

INSERT INTO BORROW SELECT 004,0002,'2006/12/20'

INSERT INTO BORROW SELECT 004,0004,'2006/12/20'

INSERT INTO BORROW SELECT 003,0001,'2006/12/11'

INSERT INTO BORROW SELECT 002,0001,'2006/12/15'

SELECT * FROM BORROW

--显示三个被创建的表

SELECT * FROM CARD

SELECT * FROM BOOKS

SELECT * FROM BORROW

-- 2.找出借书超过2次的读者,输出借书卡号及所借图书次数。

SELECT https://www.wendangku.net/doc/a36999917.html,,NUM as '借书次数' FROM (SELECT CNO,COUNT(BNO) NUM FROM BORROW GROUP

BY CNO HAVING COUNT(BNO)>2) R,CARD C

WHERE https://www.wendangku.net/doc/a36999917.html,O=https://www.wendangku.net/doc/a36999917.html,O

-- 3.查询借阅了"Eclipse入门"一书的读者,输出姓名及班级。

SELECT NAME,CLASS FROM CARD WHERE CNO IN(

SELECT https://www.wendangku.net/doc/a36999917.html,O FROM BOOKS B,BORROW BR WHERE B.BNO=BR.BNO AND B.BNAME='Eclipse入门')

--网上实现代码:

SELECT * FROM CARD c

WHERE EXISTS(

SELECT * FROM BORROW a,BOOKS b WHERE a.BNO=b.BNO AND b.BNAME=N'Eclipse入门' AND https://www.wendangku.net/doc/a36999917.html,O=https://www.wendangku.net/doc/a36999917.html,O)

-- 4.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。

SELECT * FROM BORROW WHERE RDATE

-- 5.查询书名包括"思想"关键词的图书,输出书号、书名、作者。

SELECT BNO,BNAME,AUTHOR FROM BOOKS WHERE BNAME LIKE N'%网络%'

-- 6.查询现有图书中价格最高的图书,输出书名及作者。

SELECT BNAME,AUTHOR FROM BOOKS WHERE PRICE = (SELECT MAX(PRICE) FROM BOOKS)

-- 7.查询当前借了"Eclipse入门"但没有借"JAVA编程思想"的读者,输出其借书卡号,并按卡号降序排序输出。

SELECT CNO FROM BORROW WHERE BNO=(SELECT BNO FROM BOOKS WHERE BNAME='Eclipse入门')

AND CNO not in (

SELECT CNO FROM BORROW WHERE BNO=(SELECT BNO FROM BOOKS WHERE BNAME='JAVA编程思想'))

ORDER BY CNO DESC

--OR

SELECT * FROM BORROW BR1 WHERE BNO IN (SELECT BNO FROM BOOKS WHERE BNAME='Eclipse 入门')

AND NOT EXISTS (

SELECT * FROM BORROW BR2 WHERE https://www.wendangku.net/doc/a36999917.html,O=https://www.wendangku.net/doc/a36999917.html,O AND BNO IN (SELECT BNO FROM BOOKS WHERE BNAME='JAVA编程思想'))

ORDER BY CNO DESC

--网上实现代码:

SELECT * FROM BORROW BR1,BOOKS B1 WHERE BR1.BNO=B1.BNO AND B1.BNAME=N'Eclipse入门'

AND NOT EXISTS(

SELECT * FROM BORROW BR2,BOOKS B2 WHERE https://www.wendangku.net/doc/a36999917.html,O=https://www.wendangku.net/doc/a36999917.html,O AND BR2.BNO=B2.BNO AND B2.BNAME=N'JAVA编程思想')

ORDER BY https://www.wendangku.net/doc/a36999917.html,O DESC

-- 8.将"三年三班"同学所借图书的还期都延长一周。

UPDATE BORROW SET RDATE=DATEADD(WK,1,RDATE) WHERE CNO IN (SELECT CNO FROM CARD WHERE class='三年三班')

--网上实现代码:

UPDATE b SET RDATE=DATEADD(Day,7,b.RDATE) FROM CARD a,BORROW b WHERE https://www.wendangku.net/doc/a36999917.html,O=https://www.wendangku.net/doc/a36999917.html,O

AND a.CLASS=N'三年三班'

-- 9.从BOOKS表中删除当前无人借阅的图书记录。

DELETE B FROM BOOKS B WHERE NOT EXISTS(SELECT * FROM BORROW BR WHERE B.BNO=BR.BNO) --or

DELETE BOOKS WHERE BNO NOT IN (SELECT BNO FROM BORROW)

-- 10.如果经常按书名查询图书信息,请建立合适的索引。

CREATE CLUSTERED INDEX IDX_BOOKS_BNAME ON BOOKS(BNAME)

-- 11.在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"SQLSERVER 概论",就将该读者的借阅记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW 表)。

CREATE TRIGGER T_BORROW ON BORROW FOR INSERT,UPDATE

AS

IF @@ROWCOUNT>0 AND N'SQLSERVER概论'=(SELECT B.BNAME FROM INSERTED I,BOOKS B WHERE I.BNO=B.BNO AND B.BNAME=N'SQLSERVER概论')

SELECT * INTO BORROW_SAVE FROM INSERTED

--网上实现代码:

CREATE TRIGGER TR_SAVE ON BORROW FOR INSERT,UPDATE

AS

IF @@ROWCOUNT>0

INSERT BORROW_SAVE SELECT i.* FROM INSERTED i,BOOKS b WHERE i.BNO=b.BNO AND

b.BNAME=N'SQLSERVER概论'

-- 12.建立一个视图,显示"三年三班"学生的借书信息(只要求显示姓名和书名)。CREATE VIEW V_CARD

AS

SELECT https://www.wendangku.net/doc/a36999917.html,,C.CLASS,B.BNAME,B.AUTHOR,BR.RDATE FROM CARD C,BOOKS B,BORROW BR WHERE https://www.wendangku.net/doc/a36999917.html,O=https://www.wendangku.net/doc/a36999917.html,O AND B.BNO=BR.BNO AND C.CLASS='三年三班'

--网上实现代码:

CREATE VIEW V_VIEW

AS

SELECT https://www.wendangku.net/doc/a36999917.html,,b.BNAME

FROM CARD C,BOOKS B,BORROW BR

WHERE https://www.wendangku.net/doc/a36999917.html,O=https://www.wendangku.net/doc/a36999917.html,O AND BR.BNO=B.BNO AND C.CLASS=N'三年三班'

-- 13.查询当前同时借有"C++编程思想"和"Eclipse入门"两本书的读者,输出其借书卡号,并按卡号升序排序输出。

SELECT CNO FROM BOOKS B,BORROW BR

WHERE B.BNO=BR.BNO AND (B.BNAME=N'C++编程思想' OR B.BNAME=N'Eclipse入门')--括号必须加,否则语意就变了,加括号后和B.BNAME IN(N'C++编程思想',N'Eclipse入门')语意等价

GROUP BY CNO HAVING COUNT(CNO)=2

ORDER BY CNO

--网上实现代码:

SELECT https://www.wendangku.net/doc/a36999917.html,O FROM BORROW a,BOOKS b

WHERE a.BNO=b.BNO AND b.BNAME IN(N'C++编程思想',N'Eclipse入门')

GROUP BY https://www.wendangku.net/doc/a36999917.html,O HAVING COUNT(*)=2

ORDER BY https://www.wendangku.net/doc/a36999917.html,O

-- 14.假定在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的语句。ALTER TABLE BOOKS ADD PRIMARY KEY(BNO)

-- 15.对CARD表做如下修改:

-- a. 将NAME最大列宽增加到30个字符(假定原为20个字符)。

ALTER TABLE CARD ALTER COLUMN NAME varchar(30)

-- b. 为该表增加1列NAME(系名),可变长,最大20个字符。

ALTER TABLE CARD ADD '系名' varchar(20) --添加的列名(汉字或字母)如果加引号会出错

ALTER TABLE CARD ADD 系名 varchar(20)

--添加删除列

ALTER TABLE CARD ADD aaa varchar(20)

ALTER TABLE CARD DROP column aaa

sql数据库期末考试题及答案

一、单选题(共 10 道试题,共 50 分。)V 1. SQL Server中,保存着每个数据库对象的信息的系统表是()。 A. sysdatabases B. Syscolumns C. Sysobjects D. Syslogs 满分:5 分 2. 在存在下列关键字的SQL语句中,不可能出现Where子句的是()。 A. Update B. Delete C. Insert D. Alter 满分:5 分 3. 在查询语句的Where子句中,如果出现了“age Between 30 and 40”,这个表达式等同于()。 A. age>=30 and age<=40 B. age>=30 or age<=40 C. age>30 and age<40 D. age>30 or age<40 满分:5 分 4. 如果要在一管理职工工资的表中限制工资的输入围,应使用()约束。 A. PDRIMARY KEY B. FOREIGN KEY C. unique D. check 满分:5 分 5. 记录数据库事务操作信息的文件是()。 A. 数据文件 B. 索引文件 C. 辅助数据文件 D. 日志文件 满分:5 分 6. 要查询XSH数据库CP表中产品名含有“冰箱”的产品情况,可用()命令。 A. SELECT * FROM CP WHERE 产品名称LIKE ‘冰箱’ B. SELECT * FROM XSH WHERE 产品名称LIKE ‘冰箱’ C. SELECT * FROM CP WHERE 产品名称LIKE ‘%冰箱%’ D. SELECT * FROM CP WHERE 产品名称=‘冰箱’ 满分:5 分 7. 储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是()。 A. 一对一的联系 B. 一对多的联系 C. 多对一的联系 D. 多对多的联系 满分:5 分

SQL SERVER 2000用户sa 登录失败的解决办法

SQL SERVER 2000用户sa 登录失败的解决办法 一.控制面板-》服务-》MS SQL SERVER-》登陆--》本地系统帐户--》重新启动MS SQL SERVER 用windows验证登陆查询分析器--》执行sp_password null,sa新密码,'sa' 二."无法连接到服务器,用户xxx登陆失败" 该错误产生的原因是由于SQL Server使用了"仅Windows"的身份验证方式, 因此用户无法使用SQL Server的登录帐户(如sa )进行连接.解决方法如下所示: 1.在服务器端使用企业管理器,并且选择"使用Windows 身份验证"连接上SQL Server 操作步骤: 在企业管理器中 --右键你的服务器实例(就是那个有绿色图标的) --编辑SQL Server注册属性 --选择"使用windows身份验证" --选择"使用SQL Server身份验证" --登录名输入:sa,密码输入sa的密码 --确定 2.设置允许SQL Server身份登录 操作步骤: 在企业管理器中 --展开"SQL Server组",鼠标右键点击SQL Server服务器的名称 --选择"属性" --再选择"安全性"选项卡 --在"身份验证"下,选择"SQL Server和Windows ". --确定,并重新启动SQL Server服务. 在以上解决方法中,如果在第 1 步中使用"使用Windows 身份验证"连接SQL Server 失败, 那就通过修改注册表来解决此问题: 1.点击"开始"-"运行",输入regedit,回车进入注册表编辑器 2.依次展开注册表项,浏览到以下注册表键: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]

SQL试题及答案

模拟测验1 一、选择题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题2分,总计20分) 1.()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。 A.DBMS B.DB C.DBS D.DBA 2.下列四项中,不属于SQL2005实用程序的是()。 A.对象资源管理器 B.查询分析器 C.服务管理器 D.媒体播放器 3.SQL Server安装程序创建4个系统数据库,下列哪个不是()系统数据库。 A.master B.model C.pub D.msdb 4.下列哪个不是sql数据库文件的后缀。 A..mdf B..ldf C..tif D..ndf 5.SQL语言允许使用通配符进行字符串匹配的*作,其中‘%’可以表示() A.零个字符 B.1个字符串 C.多个字符串 D.以上都是 6.SQL语言中,条件年龄BETWEEN15AND35表示年龄在15至35之间,且()。 A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁 D.包括35岁但不包括15岁 7.SQL的视图是从()中导出的。 A.基本表 B.视图 C.基本表或视图 D.数据库

8.在SQL语言中,建立存储过程的命令是() A、CREATE PROCEDURE B、CREATE RULE C、CREATE DURE D、CREATE FILE 9.SQL语言中,删除表中数据的命令是()。 A.DELETE B.DROP C.CLEAR D.REMOVE 10.在MS SQL Server中,用来显示数据库信息的系统存储过程是()。 A.sp_dbhelp B.sp_db C.sp_help D.sp_helpdb 二、简答题(16分) 1、什么是游标?使用游标的步骤? 2、什么是事务?事务的基本属性是什么? 三、应用题 1、创建一个名字为ks的数据库,包含一个数据文件和一个日志文件,逻辑文件名为ks_data,磁盘文件名为ks_data.mdf,文件初始容量为5MB,最大容量为10MB,文件递增量为1MB;而事务日志文件的逻辑文件名ks_log,磁盘文件名为ks_log.ldf,文件初始容量为1MB,最大容量为5MB,文件递增量为1MB(数据库创建在C:\SERVER文件夹下)(10分) 2、假设ks数据库有以下三张表,请写出下列问题的SQL语句:(每题6分,共54分) 学生(学号,姓名,年龄,性别) 课程(课程号,课程名,任课教师) 成绩(学号,课程号,成绩) (1)如何在SQL Server上创建这三张表; (2)查询刘峰教师所授课程号,课程名; (3)查询年龄大于20岁的所有男同学的学号、姓名; (4)查询王文芳同学选修的所有课程的课程号;

数据库期末考试试题及答案

一、选择题(每题1分,共20分) 1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是( A )阶段。 A. 数据库系统 B. 文件系统 C. 人工管理 D.数据项管理 2.数据库三级视图,反映了三种不同角度看待数据库的观点,用户眼中的数据库称为(D)。 A. 存储视图 B. 概念视图 C. 内部视图 D. 外部视图 3.数据库的概念模型独立于(A)。 A.具体的机器和DBMS B. E-R图 C. 信息世界 D. 现实世界 4.数据库中,数据的物理独立性是指(C)。 A. 数据库与数据库管理系统的相互独立 B. 用户程序与DBMS的相互独立 C. 用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的 D. 应用程序与数据库中数据的逻辑结构相互独立 5.关系模式的任何属性(A)。 A. 不可再分 B. 可再分 C. 命名在该关系模式中可以不惟一 D.以上都不是 6.下面的两个关系中,职工号和设备号分别为职工关系和设备关系的关键字: 职工(职工号,职工名,部门号,职务,工资) 设备(设备号,职工号,设备名,数量) 两个关系的属性中,存在一个外关键字为( C )。 A. 职工关系的“职工号” B. 职工关系的“设备号” C. 设备关系的“职工号” D. 设备关系的“设备号” 7.以下四个叙述中,哪一个不是对关系模式进行规X化的主要目的( C )。 A. 减少数据冗余 B. 解决更新异常问题 C. 加快查询速度 D. 提高存储空间效率 8.关系模式中各级X式之间的关系为( A )。 A. B. C. D. 9.保护数据库,防止未经授权或不合法的使用造成的数据泄漏、非法更改或破坏。这是指数据的( A )。 A. 安全性 B.完整性 C.并发控制 D.恢复 10.事务的原子性是指( B )。 A. 事务一旦提交,对数据库的改变是永久的 B. 事务中包括的所有操作要么都做,要么都不做 C. 一个事务内部的操作及使用的数据对并发的其他事务是隔离的 D. 事务必须使数据库从一个一致性状态变到另一个一致性状态 11.下列哪些运算是关系代数的基本运算( D )。 A. 交、并、差 B. 投影、选取、除、联结 C. 联结、自然联结、笛卡尔乘积 D. 投影、选取、笛卡尔乘积、差运算

SQL SERVER

SQL SERVER,打开企业管理器 1.创建数据库 在树形结构上打开节点: Microsoft SQL Servers -> (local)(Windows NT) -> 数据库 在数据库上右键-> 新建数据库-> 输入数据库名Management -> 确定此后在数据文件夹下多个了个名叫Management的数据库 2.创建表 创建表: 打开Management数据库的节点 点击表 在右则窗口里显示出很多系统表 然后在右则窗口空白处右键-> 新建表 打开建表视图 在列名与数据类型里填上 stud_id int stud_accounts varchar(20) stud_password varchar(40) stud_name varchar(20) stud_dept varchar(10) stud_job varchar(10) stud_time varchar(20) 在stud_id上建立主键,自增 保存 填上表名:system 这只是纸面上 如果有需求可以远程操作帮你看看 至于界面功能 这里一两句话也说不清楚地

1 create database stuDB 2 on primary -- 默认就属于primary文件组,可省略 3 ( 4/*--数据文件的具体描述--*/ 5 name='stuDB_data', -- 主数据文件的逻辑名称 6 filename='D:\stuDB_data.mdf', -- 主数据文件的物理名称 7 size=5mb, --主数据文件的初始大小 8 maxsize=100mb, -- 主数据文件增长的最大值 9 filegrowth=15%--主数据文件的增长率 10 ) 11 log on 12 ( 13/*--日志文件的具体描述,各参数含义同上--*/ 14 name='stuDB_log', 15 filename='D:\stuDB_log.ldf', 16 size=2mb, 17 filegrowth=1mb 18 ) 那么如何删除这个数据库呢,SQL Server将数据库的清单存放在master系统数据库的sysdatabases表中,只需要查看该表是否存在于该数据库中就可以 了,语句如下: use master -- 设置当前数据库为master,以便访问sysdatabases表 go if exists(select * from sysdatabases where name='stuDB') drop database stuDB go 创建表和删除表的SQL语句如下: use StuDB go if exists(select * from sysobjects where name='stuMarks') drop table stuMarks create table stuMarks ( ExamNo int identity(1,1) primary key, stuNo char(6) not null, writtenExam int not null, LabExam int not null

SQL经典习题及答案(新手必看)

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname from Student where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平'); 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 60);

sql数据库期末考试题及答案

sql数据库期末考试题及答案 一、单选题(共10道试题,共50分。)1. SQL Server中,保存着每个数据库对象的信息的系统表是 (C)。 A. sysdatabases B. Syscolu mns C. Sysobjects D. Syslogs 2. 在存在下列关键字的SQL语句中,不可能出现Where子句的是(D )。 A. Update B. Delete C. I nsert D. Alter 3. 在查询语句的Where子句中,如果出现了" age Between 30 and 40 ” ,这个表达式等同于( A) A. age>=30 and age<=40 B. age>=30 or age<=40 C. age>30 and age<40 D. age>30 or age<40 4. 如果要在一张管理职工工资的表中限制工资的输入范围,应使用( D )约束。 A. PDRIMARY KEY B. FOREIGN KEY C. uni que D. check 5. 记录数据库事务操作信息的文件是( D )。 A.数据文件 B.索引文件 C.辅助数据文件 D.日志文件 6. 要查询XSH数据库CP表中产品名含有“冰箱”的产品情况,可用( C)命令。 A. SELECT * FROM CP WHERE 产品名称LIKE '冰箱’ B. SELECT * FROM XSH WHERE 产品名称LIKE '冰箱’ C. SELECT * FROM CP WHERE 产品名称LIKE '淋箱% D. SELECT * FROM CP WHERE 产品名称='冰箱’ 7. 储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是( D )。 A. 一对一的联系 B. 一对多的联系 C.多对一的联系 D.多对多的联系 8. SQL的聚集函数COUN T SUM AVG MAX MIN不允许出现在查询语句的( D)子句之中。 A. SELECT B. HAVING C. GROUP BY- HAVING D. WHERE 9. 列值为空值(NULL)则说明这一列(C)。 A.数值为0 B. 数值为空格 C.数值是未知的 D. 不存在 10. 数据库的数据一般存放在(D )中。 A.内存 B. CPU C. 寄存器 D. 磁盘 SQL Server数据库试题十及答案 一、单项选择题(每题2分,共15题) 1. SQL Server 2000 是一个(C )的数据库系统。 (A)网状型 (B)层次型(C)关系型(D)以上都不是 2. DTS是一个简称,它的全称是(B )。 A.数据运输系统 B.数据传输服务 C.数据库传输系统 D.数据库运输服务 3. SQL Server 2000 采用的身份验证模式有( D)。 (A)仅Windows身份验证模式(B)仅SQL Server身份验证模式 (C)仅混合模式(D) Windows身份验证模式和混合模式 4. SQL语言按照用途可以分为三类,下面选项中哪一种不是的:(C) (A) DML (B) DCL (C) DQL (D) DDL 5. 在SELECT语句的WHER子句的条件表达式中,可以匹配0个到多个字符的通配符是(B ) (A) * (B) % (C) - (D) ? 6. SQL Server提供的单行注释语句是使用( B)开始的一行内容。 (A) “/* ”( B) “-- ”( C) “{”( D) “/” 7. 以下那种类型能作为变量的数据类型( C)。 (A) text (B) ntext (C) table ( D) image 8.下面不属于数据定义功能的SQL语句是:(C)

SQL Server考试试题及答案

全国信息技术水平考试数据库应用系统设计技术水平证书)下2013年( )考试试卷(SQL Server) 第一大题:单选题 (30 分)。 1. (1数据模型的三要素不包括( ) 分数据完整性约(C) (A) 数据结构 (B) 数据操作数据恢复束 (D) 数据的存储结构与数据逻辑结构之间的独立性称为数据的 2. (1 )。分) (逻辑独立物理独立性 (A) 结构独立性 (C) (B) (D) 分布独立性性中可有多个实体与之联B如果对于实体集 A中的每一个实体,实体集 3. 中也可有多个实体B中的每一个实体,实体集A系;反之,对于实体集(1分) )。B与之联系。则称实体集A与具有( 联: (B) 1n联系:m(C) :(A) 11联系 n 多种联系(D) 系 至少含有一个共当对关系R和S使用自然联接时,一般要求 4. (1R和S )。同的(分) 记 (C) (B) 元组(A) 关键字 属性录 (D) ,为5. 若关系模式上的函数依赖集F={AB->C,A->D,A->E}R(A,B,C,D,E) )。 BCNF(1分) 了满足,可以将R分解为( R2(A,E) R1(A,B,C,D) (A) R2(A,D,E) R1(A,B,C) (B) R1(A,B,C) R2(D,E) (C) (D) R1(A,B) R2(A,C,D,E) 分) )。 SQL语言查询一次的结果是一个( (1 6. 数据(D) 属性(C) 表(B) 元组(A) 库X1→Y, 7. (1 X1,使中,F)如果X→Y,且存在X的真子集在关系模式R(U,则称函数依赖) X→Y为()。分完全(C) (B) 平凡函数依赖(A) 部分函数依赖 (D) 传递函数依赖函数依赖)。在Transact-SQL中,下列命令能让程序完全跳出循环的是( 8 . (1CONTINU WAIT (B) (C) BREAK (D) (A) CASE ) 分E )。中,下列选项不属于数值型数据类型的是(在Transact-SQL 9 (1. (D) (B) DECIMAL (C) INTEGER (A) NUMERIC ) 分DATE 10. (1分) 下列选项中,可以正确表达姓“张”的通配符是()。 张_ (C) (B) 张(A) 张% & ^ (D) 张 1 下列聚合函数中正确的是()。 1. (*)

SQL Server 2008登录问题(错误 233和18456)解决方法

今天使用 SQLSERVER2008 先遇到了233 错误,后又遇到了 18456 ,从网上找到了解决方法,具体如下: 一、原 帖https://www.wendangku.net/doc/a36999917.html,/luckcq@yeah/blog/static/1717477072011322102075 36/ 问题:已成功与服务器建立连接,但是在登录过程中发生错取。(provider:共享内存提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233) 解决方法:打开‘程序’-‘所有程序’-‘Microsoft SQL Server 2008 ’-‘配置工具’-‘SQL Server 配置管理器’,在弹出的窗体中,找到‘SQL Server 2008 网络配置’,把‘MSSQLSERVER的协议’下的“Named Pipes”和“TCP/IP”启动,然后重新启动Microsoft SQL Server 2008就可以了。 二、原帖https://www.wendangku.net/doc/a36999917.html,/qishuangquan/article/details/6024767 问题: SQLSERVER2008 18456错误 我是这么解决的: 1、以windows验证模式进入数据库管理器。

第二步:右击sa,选择属性:

在常规选项卡中,重新填写密码和确认密码(改成个好记的)。把强制实施密码策略去掉。 第三步:点击状态选项卡:勾选授予和启用。然后确定 第四步:右击实例名称(就是下图画红线的部分),选择属性。

第五步:点安全性,确认选择了SQL SERVER 和Windows身份验证模式。 第六步:重启SQLSERVER服务(重要)。 最后,如果数据服务器打开开了防火墙,请增加访问规则,添加TCP1433端口的

SQL Server习题及答案

1. 有个用户的计算机不能连接到中心机房的SQL Server 2000上。你在调试过程中发现这个用户的计算机的网络功能是正常的,而且其他用户都能正常地连接到SQL Server 2000。下面的哪些工具有助于你诊断和解决该问题?(多选) A.Enterprise Manager B.Server Network Utility C.Profiler D.Query Analyzer E.Client Network Utility 答:B和E 2. 你在SQL Server 2000创建了酒店管理系统的数据库HotelDB,并创建了表CustInfo。当下面的哪些数据库被删除的情况下,仍能正确地执行“SELECT * FROM CustInfo?A.Model B.Tempdb C.Msdb D.Master E.Pubs 答:A、C、E 3. 你正在使用SQL Server 2000开发银行交易系统,为了保证商业数据在网络传输(用TCP/IP协议)时不会被窃取,你在SQL Server 2000中启用了网络加密功能。请问该功能在哪一层被实现? A.TCP/IP协议软件 B.超级套接字层 C.开放式数据服务 D.关系引擎 E.存储引擎 答:B 4. 你正在使用SQL Server 2000开发超市收银系统。在客户端编写软件时使用SQL语句“SELECT * FROM Products”来查询商品的信息,但是不小心把Products输入成Product。请问该错误在哪一层被发现? A.客户端的数据库API B.客户端的NET-LIBRARY C.服务器端的开放式数据服务 D.服务器端的关系引擎 E.服务器端的存储引擎 答:D

SQL Server 数据库试题与答案B卷

《SQL Server 数据库》B卷系别:________班级:________学号:________姓名:________ 1.本试卷为闭卷考试。 2.考试时间:120分钟 3.本试卷满分:100分 4.试卷适用班级:09高职软件技术班 一、单选题:(共2分,共30题,每小题的四个备选项中,只有一项是正确的,不选,错选均不得分) 1、Microsoft SQL Server是一种基于客户机/服务器的关系型数据库管理系统,它使用( B )语言在服务器和客户机之间传送请求。 A)TCP/IP B)T-SQL C)C D)ASP 2、( A )是一个图形界面的查询工具,用它可以提交T—SQL语言,然后发送到服务器,并返回执行结果,该工具支持基于任何服务器的任何数据库连接。 A)SQL Server Management Studio B)事件探查器 C)SQL管理对象D)DTS 3、( A )是用于存储、处理和保护数据的核心组件。 A)数据库引擎B)集成服务 C)报表服务D)通知服务 4、( A )是一个具有访问网络资源权限的Windows操作系统账户。 A)本地系统账户B)网络服务账户 C)本地服务账户D)域用户账户 5、数据库系统中负责数据库系统的建立、维护和管理的人员是( D ) A)最终用户 B)应用程序员 C)系统分析员 D)数据库管理员 6、数据库设计过程中,( C )将E—R图转换为关系模式并进行关系规范化。 A)需求分析阶段 B)概念结构设计阶段 C)逻辑结构设计阶段D)物理结构设计阶段 7、强制关系中的主属性不能为空,满足以下( A ) A)实体完整性B)参照完整性 C)用户定义完整性D)域完整性 8、数据库设计规范化的第三范式除了要满足第一、第二范式外,还要满足( C )A)每个记录的列只能有一个值 B)所有非主键列的值都只能由主键列中决定

SQL考试试题及答案1

1 、SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示()D A. 零个字符 B. 1个字符 C. 多个字符 D. 以上都可以 2 、关系数据库中空值(NULL)相当于( ) D A. 零(0) B. 空白 C. 零长度的字符串 D. 没有输入 3 、一个电视经销商在表Tvtype 中维护库存的Tvs信息,下述哪条语句能显示价格最昂贵的三种电视机的信息?( ) C A. select top3 cDiscription from Tvtype order by iprice asc B. select cDiscription from Tvtype where max(iprice)>3 C. select top3 cDiscription from Tvtype order by iprice desc D. select cDiscription max(iprice) from Tvtype order by iprice 1、销售数据库Sales中存在这样的三张表,按要求完成下列题目: 1.客户表Cus(CusNo, CusName, Address,Tel) 2.产品表Pro(ProNo,ProName,price,Stocks) 3.销售表ProOut(CusNo,ProNo,Quantity,SaleDate) 备注:客户编号(CusNo),姓名(CusName),地址(Address),电话(Tel),产品编号(ProNo)品名(ProName),单价(price),库存数量(Stocks), 销售日期(SaleDate),客户编号(CusNo),产品编号(ProNo),销售数量(Quantity) (1)查询销售总数量超过100的产品号。(5分) (2)查询购买了产品号“P0002”的客户编号、客户名和电话,查询结果按客户名降序排列。(6分) (3)查询客户“C004”在2015年购买的产品号、数量。(7分) (4)创建视图viewPro,要求显示每种产品的销售量和销售金额(7分) 用户答案: (1) select ProNo as 产品号 from ProOut where quantity>100

sql习题及答案

题 1、查询Student表中得所有记录得Sname、Ssex与Class列。 2、查询教师所有得单位即不重复得Depart列。 3、查询Student表得所有记录。 4、查询Score表中成绩在60到80之间得所有记录。 5、查询Score表中成绩为85,86或88得记录。 6、查询Student表中“95031”班或性别为“女”得同学记录。 7、以Class降序查询Student表得所有记录。 8、以Cno升序、Degree降序查询Score表得所有记录。 9、查询“95031”班得学生人数。 10、查询Score表中得最高分得学生学号与课程号。 11、查询‘3-105’号课程得平均分。 12、查询Score表中至少有5名学生选修得并以3开头得课程得平均分数。 13、查询最低分大于70,最高分小于90得Sno列。 14、查询所有学生得Sname、Cno与Degree列。 15、查询所有学生得Sno、Cname与Degree列。 16、查询所有学生得Sname、Cname与Degree列。 17、查询“95033”班所选课程得平均分。

18、假设使用如下命令建立了一个grade表: create table grade(low numeric(3,0),upp numeric(3),rank char(1)); insert into grade values(90,100,'A'); insert into grade values(80,89,'B'); insert into grade values(70,79,'C'); insert into grade values(60,69,'D'); insert into grade values(0,59,'E'); 现查询所有同学得Sno、Cno与rank列。 19、查询选修“3-105”课程得成绩高于“109”号同学成绩得所有同学得记录。 20、查询score中选学一门以上课程得同学中分数为非最高分成绩得记录。 21、查询成绩高于学号为“109”、课程号为“3-105”得成绩得所有记录。 22、查询与学号为108得同学同年出生得所有学生得Sno、Sname与Sbirthday列。 23、查询“张旭“教师任课得学生成绩。 24、查询选修某课程得同学人数多于5人得教师姓名。 25、查询95033班与95031班全体学生得记录。 26、查询存在有85分以上成绩得课程Cno、 27、查询出“计算机系“教师所教课程得成绩表。 28、查询“计算机系”与“电子工程系“不同职称得教师得Tname与Prof。

SQL数据库考试试题

1 SQL数据库试题 一、单项选择题(每小题1分,共10分) 1.下列四项中,不属于数据库特点的是( C )。 A.数据共享 B.数据完整性 C.数据冗余专门高 D.数据独立性高 2.下列四项中,不属于SQL2000有用程序的是( D )。 A.企业治理器 B.查询分析器

C.服务治理器 D.媒体播放器 3.SQL Server安装程序创建4个系统数据库,下列哪个不是 ( C )系统数据库。 A.master B.model C.pub D.msdb 4.( A )是位于用户与操作系统之间的一层数据治理软件,它属于系统软件,它为用户或应用程序 提供访问数据库的方法。数据库在建立、使用和维护时由其统一治理、统一操纵。 A.DBMS B.DB

C.DBS D.DBA 5. 在SQL中,建立表用的命令是 ( B )。 A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX 6.SQL语言中,条件年龄 BETWEEN 15 AND 35表示年龄在15至35之间,且( A )。 A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁

D.包括35岁但不包括15岁 7.下列四项中,不正确的提法是( C )。 2 A.SQL语言是关系数据库的国际标准语言 B.SQL语言具有数据定义、查询、操纵和操纵功能 C.SQL语言能够自动实现关系数据库的规范化 D.SQL语言称为结构查询语言 8.在MS SQL Server中,用来显示数据库信息的系统存储过程是( D )。

sql数据库期末考试题及答案

一、单选题(共10 道试题,共50 分。) 1. SQL Server中,保存着每个数据库对象的信息的系统表是(C)。 A. sysdatabases B. Syscolumns C. Sysobjects D. Syslogs 2. 在存在下列关键字的SQL语句中,不可能出现Where子句的是(D)。 A. Update B. Delete C. Insert D. Alter 3. 在查询语句的Where子句中,如果出现了“age Between 30 and 40”,这个表达式等同于(A)。 A. age>=30 and age<=40 B. age>=30 or age<=40 C. age>30 and age<40 D. age>30 or age<40 4. 如果要在一张管理职工工资的表中限制工资的输入范围,应使用(D)约束。 A. PDRIMARY KEY B. FOREIGN KEY C. unique D. check 5. 记录数据库事务操作信息的文件是(D)。 A. 数据文件 B. 索引文件 C. 辅助数据文件 D. 日志文件 6. 要查询XSH数据库CP表中产品名含有“冰箱”的产品情况,可用(C)命令。 A. SELECT * FROM CP WHERE 产品名称LIKE …冰箱? B. SELECT * FROM XSH WHERE 产品名称LIKE …冰箱? C. SELECT * FROM CP WHERE 产品名称LIKE …%冰箱%? D. SELECT * FROM CP WHERE 产品名称=…冰箱? 7. 储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是(D)。 A. 一对一的联系 B. 一对多的联系 C. 多对一的联系 D. 多对多的联系 8. SQL的聚集函数COUNT、SUM、AVG、MAX、MIN不允许出现在查询语句的(D)子句之中。 A. SELECT B. HAVING C. GROUP BY… HAVING D. WHERE 9. 列值为空值(NULL),则说明这一列(C)。 A. 数值为0 B. 数值为空格 C. 数值是未知的 D. 不存在 10. 数据库的数据一般存放在(D)中。 A. 内存 B. CPU C. 寄存器 D. 磁盘 二、判断题(共10 道试题,共50 分。)V 1. 如果定义视图的FROM子句包括多张表,并且视图中列来自多张表,则不能用DML语句通过视图操纵数据。 A. 错误 B. 正确 2. 在sysdatabases中,还记录着存储过程中每个参数的信息。A A. 错误 B. 正确 3. 在SELECT语句中,当使用ORDER BY子句时,一定要使用GROUP BY 子句。A A. 错误 B. 正确 4. 由于索引是独立的,删除表时,与该表相关的索引并不被删除。A A. 错误 B. 正确 5. 日志文件用于存放恢复数据库用的所有日志信息,每个数据库至少拥有一个日志文件,也可以拥有多个日志文件,扩展名ldf B A. 错误 B. 正确 6. 使用INSERT命令一次只能插入一行数据。A A. 错误 B. 正确

SQL SERVER 2008匿名登录实现

注意:首先设置报表的数据源:将OverwriteDataSources设置为True。 1. 找到两个Web.config文件中的如下代码: 替换成: 2. 找到rsreportserver.config文件中的如下代码: true 替换成: true

3. 把文件Microsoft.Samples.ReportingServices.AnonymousSecurity.dll放到C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\bin目录下(注意:目录视具体安装情况而定) 4. 找到rsreportserver.config文件中的如下代码: 替换成: 5. 找到文件rssrvpolicy.config中的如下代码:

sql练习题+答案

(一)新建以下几个表 student(学生表): 其中约束如下: (1)学号不能存在相同的 (2)名字为非空 (3)性别的值只能是’男’或’女’ (4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系 (5)出生日期为日期格式 (6)年龄为数值型,且在0~100之间

cs(成绩表): 其中约束如下: (1)sno和cno分别参照student和course表中的sno,cno的字段(2)cj(成绩)只能在0~100之间,可以不输入值 course(课程表)

其约束如下: (1)课程号(cno)不能有重复的 (2)课程名(cname)非空 (三)针对学生课程数据库查询 (1)查询全体学生的学号与姓名。 (2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。 (3)查询全体学生的详细记录。 (4)查全体学生的姓名及其出生年份。 (5)查询学校中有哪些系。

(6)查询选修了课程的学生学号。 (7)查询所有年龄在20岁以下的学生姓名及其年龄。 (8)查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。 (9)查询年龄不在20~23岁之间的学生姓名、系别和年龄。 (10)查询信息系、数学系和计算机科学系生的姓名和性别。 (11)查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。

(12)查询所有姓刘学生的姓名、学号和性别。 (13)查询学号为2009011的学生的详细情况。(具体的学号值根据表中数据确定) (14)查询姓“欧阳”且全名为三个汉字的学生姓名 (15)查询名字中第2个字为“晨”字的学生的姓名和学号 (16)查询所有不姓刘的学生姓名。 (17)查询sql课程的课程号和学分。 (18)查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况。

相关文档