文档库 最新最全的文档下载
当前位置:文档库 › sql查询题目45道题

sql查询题目45道题

sql查询题目45道题
sql查询题目45道题

1、查询所有数学系学生的信息。

2、查询李老师所教的课程号、课程名

3、查询年龄大于20岁的女同学的学号和姓名。

4、查询学号为‘991101’所选修的全部课程成绩。

5、查询平均成绩都在80分以上的学生学号及平均成绩。

6、查询至少有6人选修的课程号。

7、查询01002号课程得最高分的学生的学号

8、查询学号为“991104”的学生选修的课程号和课程名

9、‘李小波’所选修的全部课程名称。

10、所有成绩都在70分以上的学生姓名及所在系。

11、程序设计成绩比计算机基础成绩好的学生姓名

12、至少选修了两门课及以上的学生的姓名和性别

13、选修了李老师所讲课程的学生人数

14、‘操作系统’课程得最高分的学生的姓名、性别、所在系

15、显示所有课程的选修情况。

16、取出没有选修‘操作系统’课程的学生姓名和年龄

17、没有选修李老师所讲课程的学生

18、取出选修了全部课程的学生姓名,性别。

19、检索至少选修课程“数据结构”和“C语言”的学生学号。

20、检索学习课程号为01002的学生学号与姓名。

21、检索选修课程号为01001或01002的学生学号,姓名和所在系

22、检索至少选修课程号为01001和01002的学生姓名。

23、检索每个学生的出生年月

24、在STUDENT中检索学生的姓名和出生年份,输出的列名为STUDENT_NAME和BIRTH_YEAR。

25、向学生选课数据表SC中插入一个元组(991105,01001,90)

26、把课程名为“程序设计”的成绩从学生选课数据表SC中删除

27、把女同学的成绩提高10%。

28、列出选修课程超过3门的学生姓名及选修门数。

29、求选修了各课程的学生的人数。

30、在学生选课数据表SC中,求选修课程01001的学生的学号和得分,并将结果按分数降序排序。

31、查找每个同学的学号及选修课程的平均成绩情况。

32、列出学生所有可能的选课情况。

33、列出每个同学的学号、姓名及选修课程的平均成绩情况,没有选修的同学也列出。

34、列出每个同学的学号及选修课程号,没有选修的同学也列出

35、如果学号为J0404的学生的成绩少于90,则加上10分。

36、将成绩最低的学生的成绩加上10分。

37、将前3名成绩最高的学生的成绩减去10分。

38、将前10%成绩最低的学生的成绩减去5分。

39、检索至少有两名男生选修的课程名。

40、检索学生基本信息表S中不姓“王”的学生记录。

41、检索和“李军”同性别并同系的同学的姓名。

42、统计被学生选修的课程门数。

43、求选修01002课程的学生的平均年龄。

44、求刘老师所授课程的每门课程的学生平均成绩。

45、统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

数据库

createdatabase jiaoxuedb

go

createtable student(

sno char(6)notnull,

sname char(8)notnull,

sex char(2)null,

age tinyint null,

dept char(10)null

)

createtable teacher(

tno char(6)notnull,

tname char(8)notnull,

sex char(2)null,

age tinyint null,

prof char(10)null,

sal smallint null,

comm smallint null,

dept char(10)null

)

createtable course(

cno char(5)notnull,

cname char(20)notnull,

chour tinyint null,

ccredit decimal(18,2)null

)

createtable sc(

sno char(10)notnull,

cno char(5)notnull,

score int null

)

createtable tc(

tno char(6)notnull,

cno char(5)notnull

)

insertinto student values('001101','宋大方','男',19,'计算机')

insertinto student values('002102','李王','男',20,'信息')

insertinto student values('991101','张彬','男',18,'计算机')

insertinto student values('991102','王蕾','女',19,'计算机')

insertinto student values('991103','张建国','男',18,'计算机')

insertinto student values('991104','李平芳','男',18,'计算机')

insertinto student values('991201','陈东辉','男',19,'计算机')

insertinto student values('991202','葛鹏','男',21,'计算机')

insertinto student values('991203','潘桃芝','女',19,'计算机')

insertinto student values('991204','姚一峰','男',18,'计算机')

insertinto student values('001102','许辉','女',22,'计算机')

insertinto student values('001201','王一山','男',20,'计算机')

insertinto student values('001202','牛莉','女',19,'计算机')

insertinto student values('002101','李丽丽','女',19,'信息')

USE JIAOXUEDB

GO

INSERTINTO TEACHER VALUES('000006','许红霞','女',39,'讲师',1100,1200,'计算机')

INSERTINTO TEACHER VALUES('000007','许永军','男',57,'教授',2000,3000,'计算机')

INSERTINTO TEACHER VALUES('000008','李桂清','女',65,'教授',2000,3000,'计算机')

INSERTINTO TEACHER VALUES('000009','王一凡','女',43,'讲师',1200,1200,'计算机')

INSERTINTO TEACHER VALUES('000010','田峰','男',33,'助教',500,800,'信息')

INSERTINTO TEACHER VALUES('000001','李英','女',39,'副教授',1500,2000,'信息')

INSERTINTO TEACHER VALUES('000002','张雪','女',51,'教授',1900,3000,'信息')

INSERTINTO TEACHER VALUES('000003','张朋','男',30,'讲师',1000,1200,'计算机')

INSERTINTO TEACHER VALUES('000004','王平','女',28,'讲师',850,1200,'信息')

INSERTINTO TEACHER VALUES('000005','李力','男',47,'教授',1800,300,'计算机')

insertinto course values('01001','计算机基础',60,3)

insertinto course values('01002','程序设计',80,5)

insertinto course values('02003','数据结构',60,6)

insertinto course values('02001','数据库',80,6)

insertinto course values('02002','计算机网络',60,6)

insertinto course values('01003','微机原理',60,8)

insertinto course values('02004','操作系统',60,6)

insertinto course values('03001','软件工程',60,3)

insertinto course values('03002','大型数据库',48,2)

insertinto course values('03003','图像处理',48,2)

insertinto sc values('991101','01001',88)

insertinto sc values('991102','01001',93)

insertinto sc values('991103','01001',90)

insertinto sc values('991101','01002',90)

insertinto sc values('991102','01002',98)

insertinto sc values('991103','01002',74)

insertinto sc values('991104','01002',85)

insertinto sc values('001201','01002',64)

insertinto sc values('991104','01001',33)

insertinto sc values('991104','01001',35)

insertinto sc values('991201','01001',76)

insertinto tc values('000001','02001')

insertinto tc values('000008','02002')

insertinto tc values('000003','02001')

insertinto tc values('000011','02003')

insertinto tc values('000001','01001')

insertinto tc values('000002','01002')

insertinto tc values('000002','01003')

insertinto tc values('000004','02002')

insertinto tc values('000005','01001')

insertinto tc values('000006','01002')

insertinto tc values('000003','01003')

SQL语句

use jxsk

go

/*................1.................*/ select*from S

where DEPT='计算机'

/*..................2...............*/ select https://www.wendangku.net/doc/fa8143080.html,O,CN from T,TC,C

where T.TNO=TC.TNO and https://www.wendangku.net/doc/fa8143080.html,O=https://www.wendangku.net/doc/fa8143080.html,O and T.TN like'李%'

/*..................3...............*/ select SNO,SN from S

where AGE>=20 and SEX='女'

/*.................4................*/ select SCORE from SC,S

where SC.SNO=S.SNO and S.SNO='S2'

/*.................5................*/ select SNO,AVG(SCORE)

FROM SC

groupby SNO

having AVG(SCORE)>=80

/*...................6..............*/ select CNO,count(*)人数from SC groupby CNO

having COUNT(*)>3

/*...................7..............*/ selectTOP(1) SNO ,SCORE FROM SC WHERE CNO='C2'

ORDERBY SCORE DESC

/*...............8..................*/ SELECTDISTINCT https://www.wendangku.net/doc/fa8143080.html,O,CN FROM C,SC,S WHERE https://www.wendangku.net/doc/fa8143080.html,O=https://www.wendangku.net/doc/fa8143080.html,O AND SC.SNO='S2'

/*..................9...............*/

SELECTDISTINCT https://www.wendangku.net/doc/fa8143080.html,O,CN FROM C,SC,S

WHERE https://www.wendangku.net/doc/fa8143080.html,O=https://www.wendangku.net/doc/fa8143080.html,O AND SC.SNO=S.SNO

AND S.SN='钱尔'

/*................10.................*/

SELECT SNO,DEPT FROM S

WHERE SNO IN(

SELECT S.SNO FROM S,SC

WHERE S.SNO=SC.SNO

GROUPBY S.SNO

HAVING MIN(SCORE)>80)

/*..............11...................*/

SELECT SN FROM S WHERE SNO IN(

SELECT SC1.SNO FROM SC AS SC1 ,SC AS SC2

WHERE SC1.SNO=SC2.SNO AND

https://www.wendangku.net/doc/fa8143080.html,O=(SELECT CNO FROM C WHERE CN='程序设计')AND

https://www.wendangku.net/doc/fa8143080.html,O=(SELECT CNO FROM C WHERE CN='微机原理')and

SC1.SCORE>SC2.SCORE)

/*..................12...............*/

SELECT SN,SEX FROM S WHERE SNO IN

(SELECT SNO FROM SC

GROUPBY SNO

HAVING COUNT(CNO)>2)

/*......................13...........*/

SELECT COUNT(SNO)AS人数FROM SC WHERE CNO IN(

SELECT https://www.wendangku.net/doc/fa8143080.html,O FROM C,TC

WHERE https://www.wendangku.net/doc/fa8143080.html,O=https://www.wendangku.net/doc/fa8143080.html,O AND TNO=(SELECT TNO FROM T WHERE TN LIKE'李%')) /*.................14................*/

SELECT*FROM S WHERE SNO IN

(SELECT SNO FROM SC WHERE CNO IN

(select CNO FROM C

WHERE CN='操作系统'))

/*................15...............*/

SELECT CN,COUNT(SNO)

FROM C,SC

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

GROUPBY https://www.wendangku.net/doc/fa8143080.html,O,CN

/*..................16...............*/

selectdistinct SN FROM S,SC

WHERE CNO IN

(SELECT CNO FROM SC

WHERE CNO!=(SELECT CNO FROM C WHERE CN='操作系统')

GROUPBY CNO)

/*...............17..................*/

SELECT SN FROM S WHERE SNO NOTIN

(SELECTDISTINCT SNO FROM SC WHERE CNO IN

(select CNO FROM TC WHERE TNO IN

(select TNO FROM T WHERE TN LIKE'李%')

))

/*..................18...............*/

SELECT SNO,COUNT(CNO)FROM SC

GROUPBY SNO

HAVING COUNT(CNO)>(SELECT COUNT(*)FROM C )

/*..................19...............*/

SELECTDISTINCT SNO FROM SC WHERE CNO in((SELECT CNO FROM C WHERE CN='数据结构')

union(SELECT CNO FROM C WHERE CN='微机原理'))

/*.............................20....*/

SELECT SN,SNO FROM S WHERE SNO IN(

SELECT SNO FROM SC WHERE CNO ='C2')

/*...................21..............*/

SELECT SN,SNO,DEPT FROM S WHERE SNO IN((

SELECT SNO FROM SC WHERE CNO ='C2'and sno in(

SELECT SNO FROM SC WHERE CNO ='C3')))

/*...................22..............*/

SELECT SN FROM S ,SC WHERE S.SNO=SC.SNO

AND CNO='C2'AND S.SNO IN

(SELECT SNO FROM SC WHERE CNO='C3')

/*......................23...&..24......*/

SELECT SN,YEAR(getdate())-AGE AS出生年FROM S

/*............25.....................*/

INSERTINTO SC VALUES ('S3','C7',100)

/*..................26...............*/

deletefrom SC where CNO IN(SELECT CNO FROM C WHERE CN='程序设计') /*...................27..............*/

update SC

set SCORE = SCORE*1.1 where SNO in(select SNO from S where SEX='女')

--28、列出选修课程超过3门的学生姓名及选修门数。

select sno,COUNT(CNO)AS课程数量FROM SC

GROUPBY CNO,SNO

HAVING COUNT(CNO)>3

--29、求选修了各课程的学生的人数。

selectDISTINCT CNO,COUNT( SNO)FROM SC

GROUPBY CNO

--30、在学生选课数据表SC中,求选修课程01001的学生的学号和得分,并将结果按分数降序排序。

SELECT SNO,SCORE FROM SC

WHERE CNO='C2'

ORDERBY SCORE DESC

--31、查找每个同学的学号及选修课程的平均成绩情况。

SELECT SNO,AVG(SCORE)FROM SC

GROUPBY SNO

--32、列出学生所有可能的选课情况。

select*from C CROSSJOIN S

--33、列出每个同学的学号、姓名及选修课程的平均成绩情况,没有选修的同学也列出。

select S.sno,S.sn,avg(score)from sc rightjoin S ON sc.sno=S.sno groupby S.sno,S.sn

--34、列出每个同学的学号及选修课程号,没有选修的同学也列出

SELECT S.SNO,CNO FROM SC RIGHTJOIN S ON S.SNO=SC.SNO

GROUPBY S.SNO,CNO

ORDERBY S.SNO,CNO

--35、如果学号为J0404的学生的成绩少于90,则加上10分。

UPDATE SC SET SCORE=SCORE+10 WHERE SNO='S3'AND SCORE<90

--36、将成绩最低的学生的成绩加上10分。

UPDATE SC SET SCORE=SCORE+10 WHERE SCORE=(SELECT MIN(SCORE)FROM SC) --37、将前3名成绩最高的学生的成绩减去10分。(有可能并列)

UPDATE SC SET SCORE=SCORE-10 WHERE SNO IN(SELECTTOP(3) SNO FROM SC ORDERBY SCORE DESC)

--38、将前10%成绩最低的学生的成绩减去5分。

UPDATE SC SET SCORE =SCORE-5 WHERE SCORE IN(SELECTTOP 10 PERCENT SCORE FROM SC ORDERBY SCORE)

--39、检索至少有两名男生选修的课程名。

SELECT CN FROM S,SC,C WHERE S.SNO=SC.SNO AND https://www.wendangku.net/doc/fa8143080.html,O=https://www.wendangku.net/doc/fa8143080.html,O AND SEX='男'

GROUPBY CN

HAVING COUNT(*)>2

--40、检索学生基本信息表S中不姓“王”的学生记录。

SELECT SN FROM S WHERE SN NOTLIKE'王%'

--41、检索和“李军”同性别并同系的同学的姓名。

SELECT SN FROM S WHERE S.SNO=S.SNO AND SEX=(SELECT SEX FROM S WHERE SN='钱尔')

AND DEPT=(SELECT DEPT FROM S WHERE SN='钱尔')

--42、统计被学生选修的课程门数。

SELECT COUNT(DISTINCT CNO)数量FROM SC

---43、求选修01002课程的学生的平均年龄。

select AVG(AGE)FROM S,SC WHERE S.SNO=SC.SNO AND CNO='C2'

--44、求刘老师所授课程的每门课程的学生平均成绩。

select AVG(score)from SC where CNO in(

select cno from TC where TNO in(

SELECT TNO FROM T WHERE TN LIKE'刘%'))

groupby CNO

--45统计每门课程的学生选修人数(超过10人的课程才统计)要求输出课程号

和选修人数查询,结果按人数降序排列,若人数相同按课程号升序排列

select CNO,count(*)as人数from sc

groupby cno

having count(*)>1

orderby人数desc,cno

常用SQL语句大全

常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 DROP database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 DROP table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname DROP primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:DROP index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:DROP view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词

数据库SQL查询例题及解答

1 实验目的 1.熟悉数据库的交互式SQL工具。 2.熟悉通过SQL对数据库进行操作。 3.完成作业的上机练习。 2 实验工具sql server 利用Sql server及其交互式查询工具-查询分析器来熟悉SQL。 3 实验内容和要求 1)实验内容: 创建数据库boat,包括Sailors,Boats,Reserves三个表,表结构如下: Sailors(sid: integer, sname: string, rating: integer, age: real) 船员(船员编号,姓名,级别,年龄) Boats(bid: integer, bname: string, color: string) 船(船编号,名称,颜色) Reserves(sid: integer, bid: integer, day: date) 租赁(船员编号,船编号,日期) (注:下划线表示主键),并插入一定数据。 2)完成下列要求:

(1)查询所有船员的信息 (2)查询所有姓王的船员的信息 (3)查询租用过103号船的船员姓名 (4)查找租用过船只的船员编号 (5)查找rating>7且年龄>25的水手编号 (6)查找租用过红船和绿船的水手名字 (7)查找租用过红船或绿船的水手编号 (8)查找最年长的水手的年龄和名字 (9)在18岁以上水手中,对于每个rating级别中最少有两个水手以上的组中最年轻水手的年龄 (10)查找每条红色船只被租用的次数 (11)把30岁以上船员的级别调高一级 (12)删除所有年龄超过40岁的船员信息 (13)建立年龄超过25岁的船员的视图 (14)对(13)建立的视图,举一操作的例子(查询、删除、修改均可) 2)要求: a.建立boat数据库的SQL脚本,插入所有数据项的SQL脚本(包括所有的测试数据)。 b.记录完成查询要求的SQL语句脚本。 c.记录完成查询的查询结果。

SQLServer数据库试题九及答案

SQL Server数据库试题九及答案 一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:() A.CREAT TABLE B.CREAT CURSOR C.UPDA TE D.ALTER TABLE 2、SQL数据库中的视图与下列哪项是对应的()。 A.关系模式 B.存储模式 C.子模式 D.以上都不是 3、下列选项中不是数据库复制类型的是()。 A.快照复制 B.差异复制 C.事务复制 D.合并复制 4、下列说法错误的是: ()。 A.一个基本表可以跨一个或多个存储文件 B. 一个存储文件可以跨一个或多个基本表 C.每个存储文件与外部存储器上一个物理文件对应 D.每个基本表与外部存储器上一个物理文件对应 5.显示包含警告信息或其他信息的消息框,应该使用的操作是()。 A.Echo B.Message C.Warn D.MsgBox 6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。 A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引 7. SQL Server的字符型系统数据类型主要包括()。 A. Int、money、char B. char、varchar、text C. datetime、binary、int D. char、varchar、int 8、以下选项中哪一项不是访问数据库系统的接口()。 A.ODBC B.OLE DB C.API D.ADO 9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是() A.* B.% C.- D.? 10、SELECT语句中与HA VING子句同时使用的是()子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 11~15题使用如下数据: 当前盘当前目录下有数据库db_stock,其中有表stock的内容是: 股票代码股票名称单价交易所 600600 青岛啤酒7.48 上海 600601 方正科技15.20 上海 600602 广电电子10.40 上海 600603 兴业房产12.76 上海 600604 二纺机9.96 上海 600605 轻工机械14.59 上海 000001 深发展7.48 深圳 000002 深万科12.50 深圳 11、有如下SQL语句 create view stock_view as select * from stock where 交易所=”深圳” 执行该语句后产生的视图包含的记录个数是() A.1 B.2 C.3 D.4 12、有如下SQL语句

ORACLE常用SQL语句大全

ORACLE常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not nul l],..) 根据已有的表创建新表: A:select * into table_new from table_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle> 5、说明:删除表 drop table tablename

6、说明:增加一个列,删除一个列 A:alter table tabname add column col type B:alter table tabname drop column colname 注:DB2DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 8、创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、创建视图:create view viewname as select statement 删除视图:drop view viewname 10、几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C:INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、使用外连接

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

SQLServer选择题含答案去原题

第一套选择题 1.下列说法错误的是()。 A.内嵌表值函数没有函数主体,返回的表是单个SELECT语句的结果集B.多语句表值函数的调用与内嵌表值函数的调用方法相同 C.多语句表值函数的功能可以用标量函数来实现 D.在内嵌表值函数的定义中,不使用BEGIN…END块定义函数主体2.以下哪个事件不能激活DML触发器的执行()。 A.SELECT B. UPDATE C. INSERT D. DELETE 3.以下哪个数据库实例不属于系统数据库()。 A.master B.model C.msdb D.temp 4.执行以下语句: DECLARE @n int Set @n=3 WHILE @n<5 Begin IF @n=4 Print ltrim(@n)+‘的平方数为’+ltrim(@n*@n) Set @n=@n+1 End 执行完成后循环次数为()。

A.0次B.1次 C.2次D.死循环 5.利用游标来操纵数据时,所用的FOR UPDATE子句充分利用了事务的哪个特性()。 A.原子性B.一致性 C.永久性D.隔离性 6.关于触发器的描述,下列说法正确的是()。 A.触发器是在数据修改前被触发,约束是在数据修改后被触发 B.触发器是一个能自动执行的特殊的存储过程 C.触发器作为一个独立的对象存在,与数据库中其他对象无关D.inserted表和deleted表是数据库中的物理表 7.关于服务器角色与数据库角色,说法正确的是()。 A.只能将一个登录名添加为某个固定服务器角色的成员 B.只能将一个登录名添加为某个固定数据库角色的成员 C.sysadmin是固定数据库角色 D.db_owner是固定服务器角色 8.关于创建永久备份设备,下列说法错误的是()。 A.执行系统存储过程sp_addumpdevice创建永久备份设备 B.执行系统存储过程sp_dropdevice删除永久备份设备 C.若被删除的“命名备份设备”的类型为磁盘,那么必须指定DELFILE选项D.只须指定该命名备份设备的物理名,无须指定该命名备份设备的逻辑名9.能够将‘java’课的学分赋值给变量的语句是哪一个()。

SQL常用语句+举例

SQL 常用语句+举例 相关表: 1. distinct: 剔除重复记录 例:select distinct stroe_name from Store_information 结果: 2. And / or: 并且/或 例:在表中选出所有sales 高于$1000或是sales 在$275及$500之间的记录 Select store_name ,sales from Store_information Where sales>1000 Or (sales>275 and sales <500) 3. 例:在表中查找store_name 包含 Los Angeles 或San Diego 的记录 Select * from Store_information where store_name in (‘Los Angeles ’,’San Diego ’) 结果: 4. Between : 可以运用一个范围抓出表中的值

与in 的区别:in 依照一个或数个不连续的值的限制抓出表中的值 例:查找表中介于Jan-06-1999 及Jan-10-1999 中的记录 Select * from Store_information where date between ‘Jan-06-1999’ and ‘Jan-10-1999’ 结果: 5. Like : 让我们依据一个套式来找出我们要的记录 套式通常包含: ’A_Z ’: 所有以A 开头,中间包含一个字符,以Z 结尾的字串 ’ABC%’: 所有以ABC 起头的字串 ’%XYZ ’: 所有以XYZ 结尾的字串 ’%AN%’: 所有包含AN 的字串 例:Select * from Store_information where store_name like ‘%An%’ 结果: 6. Order by: 排序,通常与ASC (从小到大,升序)、DESC (从大到小,降序)结合使用 当排序字段不止一个时,先依据字段1排序,当字段1有几个值相同时,再依据字段2排序 例:表中sales 由大到小列出Store_information 的所有记录 Select Store_name, sales,date from Store_information order by sales desc 结果: 7. 函数:AVG (平均值)、COUNT (计数)、MAX (最大值)、MIN (最小值)、SUM(求和) 语句:select 函数名(字段名) from 表名 例:求出sales 的总和 Select sum(sales) from Store_information 结果 8. COUNT (计数) 例:找出Store_information 表中 有几个store_name 值不是空的记录

sql查询题目及答案

数据库中有如下三个表: 学生表(学号id,姓名name,性别sex,系部depart,年龄age)8个学生记录 选课表(学号id,课程号cid,成绩grade) 12门课程 课程表(课程号cid,课程名cname,学分Ccredit) 6门课程 学生-课程模式 S-T : 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade) 1.从学生表中查询所有同学的所有信息 select*from学生表 2.从学生表中查询所有学生的信息,并分别赋予一个别名 select学号as xuehao,姓名as xingming,性别as xingbie,系部as xibu,年龄as nianling from学生表 3.从学生表中查询姓名是Allen的学生的信息 select*from学生表 where姓名='Allen' 4.从学生表中查询 学号在1101到1199之间的所有学生的信息 select*from学生表 where学号between 1101 and 1199 5.从学生表中查询年龄小于18和大于20的所有学生的学号和姓名 select学号,姓名from学生表 where年龄<18 or年龄>20 6.从学生表中查询计算机系年龄小于20的所有学生的信息 select*from学生表 where系部='computer'and年龄<20 7.从学生表中查询姓名以A开头的学生的信息 select*from学生表 where姓名LIKE'A%'

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

一、单选题(共10 道试题,共50 分。)V 1. SQL Server中,保存着每个数据库对象的信息的系统表是(C)。 A. sysdatabases B. Syscolumns C. Sysobjects D. Syslogs 满分:5 分 2. 在存在下列关键字的SQL语句中,不可能出现Where子句的是(D )。 A. Update B. Delete C. Insert D. Alter 满分:5 分 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

满分:5 分 4. 如果要在一张管理职工工资的表中限制工资的输入范围,应使用(D )约束。 A. PDRIMARY KEY B. FOREIGN KEY C. unique D. check 满分:5 分 5. 记录数据库事务操作信息的文件是(D )。 A. 数据文件 B. 索引文件 C. 辅助数据文件 D. 日志文件 满分:5 分 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 产品名称=‘冰箱’ 满分:5 分 7. 储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是(D )。 A. 一对一的联系 B. 一对多的联系 C. 多对一的联系 D. 多对多的联系 满分:5 分 8. SQL的聚集函数COUNT、SUM、AVG、MAX、MIN不允许出现在查询语句的(D)子句之中。 A. SELECT B. HAVING C. GROUP BY… HAVING D. WHERE 满分:5 分

数据库基本SQL语句大全

数据库基本SQL语句大全 数据库基本----SQL语句大全 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围

sql查询练习题含答案

--(1)查询20号部门的所有员工信息。 select * from emp e where e.deptno=20; --(2)查询奖金(COMM)高于工资(SAL)的员工信息。 select * from emp where comm>sal; --(3)查询奖金高于工资的20%的员工信息。 select * from emp where comm>sal*0.2; --(4)查询10号部门中工种为MANAGER和20号部门中工种为CLERK的员工的信息。select * from emp e where (e.deptno=10 and e.job='MANAGER') or (e.deptno=20 and e.job='CLERK') --(5)查询所有工种不是MANAGER和CLERK, --且工资大于或等于2000的员工的详细信息。 select * from emp where job not in('MANAGER','CLERK') and sal>=2000; --(6)查询有奖金的员工的不同工种。 select * from emp where comm is not null; --(7)查询所有员工工资和奖金的和。 select (e.sal+nvl(https://www.wendangku.net/doc/fa8143080.html,m,0)) from emp e; --(8)查询没有奖金或奖金低于100的员工信息。 select * from emp where comm is null or comm<100; --(9)查询员工工龄大于或等于10年的员工信息。 select * from emp where (sysdate-hiredate)/365>=10; --(10)查询员工信息,要求以首字母大写的方式显示所有员工的姓名。 select initcap(ename) from emp; select upper(substr(ename,1,1))||lower(substr(ename,2)) from emp; --(11)显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序, --若月份相同则按入职的年份排序。 select ename,to_char(hiredate,'yyyy') year,to_char(hiredate,'MM') month from emp order by month,year; --(12)查询在2月份入职的所有员工信息。 select * from emp where to_char(hiredate,'MM')='02' --(13)查询所有员工入职以来的工作期限,用“**年**月**日”的形式表示。 select e.ename,floor((sysdate-e.hiredate)/365)||'年' ||floor(mod((sysdate-e.hiredate),365)/30)||'月' ||floor(mod(mod((sysdate-e.hiredate),365),30))||'日' from emp e; --(14)查询从事同一种工作但不属于同一部门的员工信息。

50个常用sql语句实例(学生表 课程表 成绩表 教师表)

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 create table Student(S# varchar(20),Sname varchar(10),Sage int,Ssex varchar(2)) 前面加一列序号: if exists(select table_name from information_schema.tables where table_name='Temp_Table') drop table Temp_Table go select 排名=identity(int,1,1),* INTO Temp_Table from Student go select * from Temp_Table go drop database [ ] --删除空的没有名字的数据库 问题: 1、查询“”课程比“”课程成绩高的所有学生的学号; 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、查询平均成绩大于分的同学的学号和平均成绩; 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

大数据库基本SQL语句大全

数据库基本_SQL语句大全 学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下... 其实一般用的就是查询,插入,删除等语句而已....但学学存储过程是好事...以后数据方面的东西就不用在程序里搞喽..而且程序与数据库只要一个来回通讯就可以搞定所有数据的操作.... 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice ‘disk‘, ‘testBack‘, ‘c:\mssql7backup\MyNwind_1.dat‘ --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col)说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围

数据库中SQL查询语句习题含的答案

.word 版本可编辑. 查询问题:设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT );学习关系SC (SNO ,CNO ,GRADE );课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS ”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno ,Sname ,Sex FROM S WHERE Sdept =’CS ’; (2)检索学习课程号为C2的学生学号与姓名; (1)首先在C 表中找出“DS ”课程的课程号Cno ; (2)然后在SC 表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno ; (3)最后在S 关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname 送入结果表列。 SELECT Sno ,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS ’)); (4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SC WHERE Cno=‘C2’ OR Cno=‘C4’; (5)检索至少选修课程号为C2和C4的学生学号; SELECT Sno FROM SC X ,SC Y WHERE X.Sno=Y.Sno AND https://www.wendangku.net/doc/fa8143080.html,o=‘C2’ AND https://www.wendangku.net/doc/fa8143080.html,o=‘C4’ ; (6)检索不学C2课的学生姓名和年龄; 有学。 SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.Sno=S.Sno AND https://www.wendangku.net/doc/fa8143080.html,o=https://www.wendangku.net/doc/fa8143080.html,o )); (8)查询所学课程包含学生S3所学课程的学生学号。 分析:不存在这样的课程Y ,学生S3选了Y ,而其他学生没有选。 SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.Sno=‘S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.Sno=X.Sno AND https://www.wendangku.net/doc/fa8143080.html,o=https://www.wendangku.net/doc/fa8143080.html,o )); 设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT ); 学习关系SC (SNO ,CNO ,GRADE ); 课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) 查询问题: 1:查所有年龄在20岁以下的学生姓名及年龄。 2:查考试成绩有不及格的学生的学号 3:查所年龄在20至23岁之间的学生姓名、系别及年龄。 4:查计算机系、数学系、信息系的学生姓名、性别。 5:查既不是计算机系、数学系、又不是信息系的学生姓名、性别 6:查所有姓“刘”的学生的姓名、学号和性别。 7:查姓“上官”且全名为3个汉字的学生姓名。 8:查所有不姓“张”的学生的姓名。 9:查DB_Design 课程的课程号。 10:查缺考的学生的学号和课程号。 11:查年龄为空值的学生的学号和姓名。 12:查计算机系20岁以下的学生的学号和姓名。 13:查计算机系、数学系、信息系的学生姓名、性别。 14:查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。 15:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。 16:查询学生总人数。 17:查询选修了课程的学生人数。 18:计算选修了C1课程的学生平均成绩。

sql考试题及答案

sql考试题及答案 【篇一:sql试题及答案】 题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共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语言中,条件年龄 between 15 and 35表示年龄在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

50个常用的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; ↑一对多,对组进行筛选 答案二:SELECT s ,scr FROM (SELECT sc.`S#` s,AVG(sc.`score`) scr FROM sc GROUP BY sc.`S#`) rs WHERE rs.scr>60 ORDER BY rs.scr DESC ↑嵌套查询可能影响效率 3、查询所有同学的学号、姓名、选课数、总成绩; 答案一:select Student.`S#`,Student.Sname,count(`C#`),sum(score) from Student left Outer join SC on Student.`S#`=SC.`S#` group by Student.`S#`,Sname ↑如果学生没有选课,仍然能查出,显示总分null(边界情况) 答案二:SELECT student.`S#`,student.`Sname`,COUNT(sc.`score`) 选课数,SUM(sc.`score`) 总分FROM Student,sc WHERE student.`S#`=sc.`S#` GROUP BY sc.`S#` ↑如果学生没有选课,sc表中没有他的学号,就查不出该学生,有缺陷! 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='叶平'); ↑反面思考Step1:先找学过叶平老师课的学生学号,三表联合查询 Step2:在用not in 选出没学过的 Step3:distinct以防叶平老师教多节课;否则若某同学的几节课都由叶平教,学号就会出现重复 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' ); ↑注意目标字段`S#`关联 exists subquery 可以用in subquery代替,如下 select Student.`S#`,Student.Sname from Student,Sc where Student.`S#`=SC.`S#` and SC.`C#`='001'and sc.`s#` in ( select sc_2.`s#` from sc as sc_2 where sc_2.`c#`='002' ); ↑不同之处,in subquery此处就不需要关联了

相关文档