SQL Server 基础练习题及答案
SQL Server基础查询练习(附答案)
--创建数据库USE[master]GOCREATEDATABASE[test]ONPRIMARY(NAME=N'test',FILENAME=N'D:\SQL\DataBase\test.mdf',SIZE=3072KB,MAXSIZE=UNLIMITED,FILEGROWTH= 1024KB)LOG ON(NAME=N'test_log',FILENAME=N'D:\SQL\DataBase\test_log.ldf',SIZE= 1024KB,MAXSIZE= 2048GB,FILEGROWTH= 10%)GOALTERDATABASE[test]SETCOMPATIBILITY_LEVEL= 90GOIF (1 =FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))beginEXEC[test].[dbo].[sp_fulltext_database]@action='enable'endGOALTERDATABASE[test]SETANSI_NULL_DEFAULTOFFGOALTERDATABASE[test]SETANSI_NULLSOFFGOALTERDATABASE[test]SETANSI_PADDINGOFFGOALTERDATABASE[test]SETANSI_WARNINGSOFFGOALTERDATABASE[test]SETARITHABORTOFFGOALTERDATABASE[test]SETAUTO_CLOSEOFFGOALTERDATABASE[test]SETAUTO_CREATE_STATISTICSONGOALTERDATABASE[test]SETAUTO_SHRINKOFFGOALTERDATABASE[test]SETAUTO_UPDATE_STATISTICSONGOALTERDATABASE[test]SETCURSOR_CLOSE_ON_COMMITOFFGOALTERDATABASE[test]SETCURSOR_DEFAULTGLOBALGOALTERDATABASE[test]SETCONCAT_NULL_YIELDS_NULLOFFGOALTERDATABASE[test]SETNUMERIC_ROUNDABORTOFFGOALTERDATABASE[test]SETQUOTED_IDENTIFIEROFFGOALTERDATABASE[test]SETRECURSIVE_TRIGGERSOFFGOALTERDATABASE[test]SETDISABLE_BROKERGOALTERDATABASE[test]SETAUTO_UPDATE_STATISTICS_ASYNCOFF GOALTERDATABASE[test]SETDATE_CORRELATION_OPTIMIZATIONOFF GOALTERDATABASE[test]SETTRUSTWORTHYOFFGOALTERDATABASE[test]SETALLOW_SNAPSHOT_ISOLATIONOFFGOALTERDATABASE[test]SETPARAMETERIZATIONSIMPLEGOALTERDATABASE[test]SETREAD_COMMITTED_SNAPSHOTOFFGOALTERDATABASE[test]SETREAD_WRITEALTERDATABASE[test]SETRECOVERYSIMPLEGOALTERDATABASE[test]SETMULTI_USERGOALTERDATABASE[test]SETPAGE_VERIFY CHECKSUMGOALTERDATABASE[test]SETDB_CHAININGOFFGO--创建表USE testCREATETABLE emp(EMPNO NUMERIC(5, 0)NOTNULL,ENAME NVARCHAR(10),JOB NVARCHAR(9),MGR NUMERIC(5, 0),HIREDATE DATETIME,SAL NUMERIC(7, 2),COMM NUMERIC(7, 2),DEPTNO NUMERIC(2, 0),)CREATETABLE dept(DEPTNO NUMERIC(2),DNAME NVARCHAR(14),LOC NVARCHAR(13),)--插入数据INSERTINTO EMP VALUES(7369,'SMITH','CLERK', 7902,'2000-12-17', 800,NULL, 20)。
《SQL-SERVER数据库基础》期终考试试卷(B卷)及答案
适用专业:1、在SQL SERVER中建立自己的数据库TEST,该数据库属于()。
a) 用户数据库b) 系统数据库c) 数据库模板d) 数据库管理系统2、数据冗余是指()a)数据和数据之间没有联系b) 数据有丢失c) 数据量太大d) 存在重复的数据3、通过数据库的选项可以设置数据库()。
a)是否是只读的b) 物理文件是否允许被删除c) 允许创建的表的数目d)表中所允许的最大数据行的数目4、数据库管理员为用户创建了一个存储市场有关信息的数据库,按要求创建了数据库之后就把这件事忘记了。
后来用户问数据库管理员为什么无法向数据库输入数据,这可能是因为()。
a)数据库太多b) 数据库的约束不起作用c) 用户输入数据行太多d)还没有创建数据表,因此无法输入数据5、主键用来实施()a) 实体完整性约束b) 引用完整性约束c) 域完整性约束d) 自定义完整性约束6、表Course和Teachers建立了主外键关系,Course为主表,Teachers为子表,以下说法正确的选项是()。
a) Teachers表中存在Course表的外键b) Course表中存在外键c) Teachers表中存在外键d) Course表中存在Teachers表的外键7、假设原来做的一个管理系统使用的是SQL SERVER数据库,现在想把它简化为Access数据库,但是数据库的格式、数据项都不能变化,应当保持一样,此时可以采用()方法来实施。
a)把数据复制、粘贴到Access数据库中b)Access数据库使用SQL Server的数据库文件c)使用数据导入、导出操作d)直接在Access中打开SQL Server的数据库文件8、在Employee表中有一列为EmpName,执行删除语句:DELETE FROM Employee WHERE EmpName LIKE ‘-[ae]%’下列包含EmpName列的()值的数据可能被删除。
a)Whyteb)Carsonc)Annetd)Hunyer9、假设正在设计一个数据库应用程序,在设计过程中,数据库进行了重新规划,对原来的数据库做了调整。
SQL_Server复习题汇总带答案
SQL Server复习题一、选择题1、数据库系统的主要特征是()A、数据的冗余度小B、数据的结构化C、数据独立性高D、数据可以共享2、下面不属于关系数据库管理系统的是( B )A、OracleB、IMSC、SQL ServerD、DB23、数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(A)。
A、DBS包括DB和DBMSB、DBMS包括DB和DBSC、DB包括DBS和DBMSD、DBS就是DB,也就是DBMS4、(C)是数据库系统的核心,它负责数据库的配置、存取、管理和维护等工作。
A、操作系统B、关系模型C、数据库管理系统D、数据库5、下列四项说法中不正确的是(C ) 。
A、数据库减少了数据冗余B、数据库中的数据可以共享C、数据库避免了一切数据的重复D、数据库具有较高的数据独立性6、下列特点中哪个不是数据库系统阶段的特点( B)。
A.数据共享B.数据冗余大C.完善的数据控制D.数据和程序相互独立7、数据库设计中概念模型设计阶段的主要描述工具是(C)。
A. 数据字典B. 流程图C. E-R图D.二维表格8、关系模型的基本数据结构是(B)A、树B、二维表C、图D、二叉树9、将E-R模型转换成关系模型的过程,属于数据库设计的( C)阶段。
A、需求分析B、概念设计C、逻辑设计D、物理设计10、在E-R模型中,实体间的联系用(C)表示A、矩形B、直线C、菱形D、椭圆11、为了防止多个用户对数据库的同一数据进行非法存取操作,DBMS必须提供(A).A、安全性保护B、完整性保护C、故障恢复D、并发控制12、按照数据模型分类,数据库管理系统可分为(C)。
A.关系型,概念型,网状B.模式,概念模式,外模式C.关系型,层次型,网状模型D.SQL Server,oracle,DB213、SQL Server安装程序创建4个系统数据库,下列哪个不是系统数据库(C)。
A. masterB. modelC. AdventureWorksD. msdb14、SQL server数据库文件有三类,其中主数据文件的后缀为(D)A、NDFB、LDFC、MDFD、IDF15、SQL server 数据库文件有3类,其中日志文件的后缀为(D)。
SQLServer数据库考试试题与答案(doc8页)
SQLServer数据库考试试题与答案(doc8页)SQLServer数据库考试试题与答案(doc 8页)选择题:(20分)1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的⼀项:(___)A、只存在⼀对多的实体关系,以图形⽅式来表⽰。
B、以⼆维表格结构来保存数据,在关系表中不允许有重复⾏存在。
C、能体现⼀对多、多对多的关系,但不能体现⼀对⼀的关系。
D、关系模型数据库是数据库发展的最初阶段。
2、在“连接”组中有两种连接认证⽅式,其中在(___)⽅式下,需要客户端应⽤程序连接时提供登录时需要的⽤户标识和密码。
A、Windows⾝份验证B、SQL Server ⾝份验证C、以超级⽤户⾝份登录时D、其他⽅式登录时3、SQL Server 2000 在安装之前,应注意的事项:(___)A、SQL Server 2000的任何版本在安装时都不⽤考虑操作系统的制约。
B、SQL Server 2000的安装对硬件的要求不作C、alter table table1 column1 primary key ;5、表在数据库中是⼀个⾮常重要的数据对象,它是⽤来(1___)各种数据内容的,数据库创建后就可以创建表了,创建表可以⽤(2___)等⽅法来创建。
⑴ A、显⽰ B、查询 C、存放 D、检索⑵ A、企业管理器 B、查询分析器C、OSQLD、企业管理器和CREATE TABLE语句6、为数据表创建索引的⽬的是(1___),可以在创建表时⽤(2___)来创建唯⼀索引,也可以⽤(2___)来创建唯⼀索引。
⑴ A、提⾼查询的检索性能 B、创建唯⼀索引C、创建主键D、归类⑵ A、设置主键约束,设置唯⼀约束B、Create table,Create indexC、设置主键约束,Create indexD、以上都可以7、在Transact-SQL语法中,⽤来插⼊数据的命令是(___),⽤于更新的命令是(___)。
A、INSERT,UPDATEB、UPDATE,INSERTC、DELETE,UPDATED、CREATE,INSERT INTO8、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但⾄少包括的部分(1___),使⽤关键字(2___)可以把重复⾏屏蔽,将多个查询结果返回⼀个结果集合的运算符是(3___),如果在SELECT语句中使⽤集合函数时,⼀定在后⾯使⽤(4___)。
SQLserver复习题库及答案
SQLserver复习题库及答案SQLserver 复习题库及答案1. ()可以同一个表的不同字段进行联接。
( 选一项 )A 、内联接B 、自联接 ( 正确答案 )C 、外联接D 、左联接2. 在 SQL Server 数据库中 ,UNIQUE 约束与 PRIMARY KEY 约束之间最主要的区别是()( 选一项 )A 、 UNIQUE 约束要求数据库中至少存在一行数据 , 因此必须在创建数据库表之后才能创建 , 而 PRIMARY KEY 约束无此限制B 、 UNIQUE 约束允许有空值 , 而 PRIMARY KEY 约束不允许有空值C 、创建 UNIQUE 约束后 , 该数据行允许被更改 , 而PRIMARY KEY 约束的数据行不允许更改D 、 UNIQUE 约束列不能创建外键 , 而 PRIMARY KEY 约束可以创建外键引用 ( 正确答案 )3. 查询 student 表中的所有非空 email 信息 , 以下语句正确的是()( 选一项 )A 、 Select email from student where email !=nullB 、 Select email from student where email not is nullC 、 Select email from student where email <> nullD 、 Select email from student where email is not null ( 正确答案 )4. SQL 语句 :select from students where SNO like'010[^0]%[A,B,C]%', 可能会查询出的 SNO 是 ( )( 选两项 )A 、 01053090A ( 正确答案 )B 、 01003090A01C 、 01053090D 、 0101A01 ( 正确答案 )5. 查找 student 表中所有电话号码 ( 列名 :telephone) 的第一位为8 或6, 第三位为0 的电话号码()(‘[86]_0%’等同于'[8,6]_0%')( 选一项 )A 、 SELECT telephone FROM student WHERE telephone LIKE '[86]%0'B 、 SELECT telephone FROM student WHERE telephone LIKE '(8,6)0%'C 、 SELECT telephone FROM student WHERE telephone LIKE '[8,6]_0'D 、 SELECT telephone FROM student WHERE telephone LIKE '[86]_0%' ( 正确答案 )6. 查找 authors 表中的所有电话号码的首位为 4, 第二位为0 或 1 的电话号码()( 选一项 )A 、SELECT phone FROM authors WHERE phone LIKE '4[1,0]%' ( 正确答案 )B 、SELECT phone FROM authors WHERE phone in '4[^10]%'C 、SELECT phone FROM authors WHERE phone LIKE '4_[1,0]%'D 、 SELECT phone FROM authors WHERE phone between '41%' and '40%'7. 查找 student 表中所有电话号码 ( 列名 :telephone)的第一位为 8 或 6, 第三位为 0 的电话号码()( 选一项 )A 、 SELECT telephone FROM student WHERE telephone LIKE '[86]%0'B 、 SELECT telephone FROM student WHERE telephone LIKE '(8,6)0%'C 、 SELECT telephone FROM student WHERE telephone LIKE'[8,6]_0'D 、 SELECT telephone FROM student WHERE telephone LIKE '[86]_0%' ( 正确答案 )8. 成绩表 grade 中字段 score 代表分数 , 以下 ( ) 语句返回成绩表中的最低分。
SQLServer基础练习题及
SQL Server基础练习题及答案【幻天火焰】目录一、单表盘问练习 (1)二、聚合函数练习 (3)三、分组盘问练习 (3)四、嵌套盘问练习 (4)五、联接盘问练习 (6)六、外联接盘问 (7)七、补充提高 (7)一、单表盘问练习1、盘问 <学生信息表 >,盘问学生 "张三 "的全部根本信息Select *from A_studentinfowhere sname=' 张三 '2、盘问 <学生信息表 >,盘问学生 "张三 "和〞李四〞的根本信息Select *from A_studentinfowhere sname=' 张三 'or sname=' 李四 '3、盘问 <学生信息表 >,盘问姓 " 张 "学生的根本信息Select *from A_studentinfowhere sname like ' 张%'4、盘问 <学生信息表 >,盘问姓名中含有 "四 " 字的学生的根本信息Select *from A_studentinfowhere sname like '% 四 %'5、盘问 <学生信息表 >,盘问姓名长度为三个字,姓“李〞,且最后一个字是“强〞的全部学生信息。
select *from A_studentinfowhere sname like ' 李_强 '6、盘问 <学生信息表 >,盘问姓 " 张 "也许姓〞李〞的学生的根本信息。
Select *from A_studentinfowhere sname like ' 张%'or sname like ' 李 %'7、盘问 <学生信息表 >,盘问姓 " 张 "并且 " 所属省份 " 是 "北京 "的学生信息Select *from A_studentinfowhere sname like ' 张%'and province=' 北京 '8、盘问 <学生信息表 >,盘问 "所属省份 "是 " 北京 " 、〞新疆〞、〞山东〞也许 "上海 " 的学生的信息 Select *from A_studentinfowhere province in (' 北京 ',' 上海 ',' 新疆 ','山东 ')9、盘问 <学生信息表 >,盘问姓 " 张 ",但是 " 所属省份 " 不是 " 北京 "的学生信息Select *from A_studentinfowhere sname like ' 张%'and province !=' 北京 '10、盘问 <学生信息表 >,盘问全部学生信息,并依照“性别〞排序,性别相同的情况下依照“所属省份〞排序,所属省份相同的情况下再依照“班级〞排序select *from A_studentinfoorder by sex,province,class11、盘问 <学生信息表 >,盘问现有学生都来自于哪些不相同的省份select distinct province as省份from A_studentinfo12、盘问 <学生选修信息表 >,盘问没有填写成绩的学生的学号、课程号和成绩Select *from A_studentcoursewhere score is null13、盘问 <学生选修信息表 >,盘问全部填写了成绩的学生的选修信息,并依照“成绩〞从高到低进行排序Select *from A_studentcoursewhere score is not nullorder by score desc二、聚合函数练习1、统计 <学生信息表 >,统计共有多少个学生Select count (*) as 学生数量from A_studentinfo2、统计 <学生信息表 >,统计年龄大于20 岁的学生有多少个Select count(*) as 学生数量from A_studentinfowhere (2021-yearofbirth)>203、统计 <学生信息表 >,统计入学时间在1980 年至 1982 年的学生人数select count(*) as学生数量from A_studentinfowhere enrollment between '1998-01-01' and '2003-12-30'对照以下盘问方式,看看有何不相同,为什么?select count(*) as学生数量from A_studentinfowhere enrollment between '1998' and '2003'4、统计 <学生选修信息表>,统计学号为"S001"的学生的平均成绩Select avg(score) as 平均成绩from A_studentcoursewhere sno='S001'5、统计 <学生选修信息表>,统计学号为"S001"的学生的总成绩select sum(score) as 总成绩from A_studentcoursewhere sno ='S001'6、统计 <学生选修信息表>,盘问课程号为〞C001〞的课程的最高成绩select max(score) as 最高成绩from A_studentcoursewhere cno='C001'7、统计 <学生信息表 >,盘问全部学生中的最大年龄是多少select 2021-min(yearofbirth) as最大年龄from A_studentinfo三、分组盘问练习1、统计 <学生选修信息表>,统计每个课程的选修人数select cno,count(*)as 学生数量from A_studentcoursegroup by cno2、统计 <学生选修信息表>,统计每个同学的总成绩select sno,sum(score) as 总成绩from A_studentcoursegroup by sno3、统计 <学生信息表 >,统计每个班级中每种性其余学生人数,并依照班级排序select class as 班级 ,sex as 性别 , count(*) as 人数 from A_studentinfogroup by class,sexorder by class4、统计 <学生选修信息表>,统计每门课程的平均成绩,并依照成绩降序排序Select cno,avg(score) as 平均成绩from A_studentcoursegroup by cnoorder by avg(score) desc5、统计 <学生选修信息表>,显示有两门以上课程不及格的学生的学号Select sno as 不及格学生学号from A_studentcoursewhere score<60group by snohaving count(*)>16、统计 <学生信息表 >,统计每个班级中的最大年龄是多少select class as班级, 2021-min(yearofbirth) as最大年龄from A_studentinfogroup by class四、嵌套盘问练习1、用子盘问实现,盘问选修“高等数学〞课的全部学生的总成绩select sum(score) as 高等数学总成绩from A_studentcoursewhere cno =(select cnofrom A_courseinfowhere subject=' 高等数学 ')2、用子盘问实现,统计 <学生选修信息表 >,显示学号为 "S001"的学生在其各科成绩中,最高分成绩所对应的课程号和成绩select score,cnofrom A_studentcoursewhere sno='S001'and score =(select max(score)from A_studentcoursewhere sno ='S001')思虑:若是该学号学生有两个课程分数都为最高的100 分,盘问会有什么结果3、用子盘问实现,盘问 2 班选修 " 数据库技术 " 课的全部学生的成绩之和select sum(score) as 数据库技术总成绩 from A_studentcoursewhere cno =(select cnofrom A_courseinfowhere subject=' 数据库技术 ')and sno in(select snofrom A_studentinfowhere class='2')4、用子盘问实现,盘问 3 班 "张三 "同学的 " 测试管理 " 成绩select scorefrom A_studentcoursewhere cno=(select cnofrom A_courseinfowhere subject=' 测试管理 ')and sno in(select snofrom A_studentinfowhere class='3'and sname=' 张三 ')五、联接盘问练习1、盘问 " 张三 " 的各科考试成绩,要求显示姓名、课程号和成绩 select sname as 姓名 ,cno as 课程号 ,score as 成绩 fromA_studentinfo,A_studentcourseand sname='张三 '2、盘问 " 张三 " 的各科考试成绩中,哪科没有记录考试成绩,要求显示姓名、课程号和成绩 select sname as 姓名 ,cno as 课程号 ,score as 成绩 fromA_studentinfo,A_studentcourseand sname='张三 'and score is null3、盘问 " 张三 " 的各门课程成绩,要求显示姓名、课程名称和成绩 select sname as 姓名 ,subject as 课程名称 ,score as 成绩 fromA_studentinfo,A_courseinfo,A_studentcourseandand A_studentinfo.sname=' 张三 '4、盘问 3 班" 张三 " 的" 测试管理 " 成绩,要求显示姓名、成绩select sname as 姓名 ,score as 成绩from A_studentcourse,A_courseinfo,A_studentinfoandand subject=' 测试管理 'and class='3'and sname='张三 '5、盘问全部 2000 年以前入学的,各班男生的各科考试平均成绩select class as 班级 ,avg(score) as 男生平均成绩 fromA_studentcourse,A_courseinfo,A_studentinfoandand sex='男 'and enrollment<'2000-01-01'group by class六、外联接盘问盘问李刚毅全部课程的成绩,并显示学号、姓名、课程号和成绩,没有成绩记录的学号包括:('S009','S010','S011') 1、使用左联接select A_studentinfo.sno as 学生表学号 ,sname as 姓名 ,A_studentcourse.sno as 成绩表学号 , cno as 课程号 ,score as成绩from A_studentinfoleft join A_studentcoursewhere sname='李刚毅 '2、使用右联接select A_studentinfo.sno as 学生表学号 ,sname as 姓名 ,A_studentcourse.sno as 成绩表学号 , cno as 课程号 ,score as 成绩from A_studentcourseright join A_studentinfowhere sname='李刚毅 '3、对照等值连接select sname,scorefrom A_studentinfo,A_studentcourseand sname='李刚毅 '七、补充提高1、盘问“张三〞比“王三〞入学早几年select A.sname as 姓名 ,year(A.enrollment) asB.sname as 姓名 ,year(B.enrollment) as 入学时间入学时间,,datediff(year,A.enrollment,B.enrollment) as年差from A_studentinfo A,A_studentinfo Bwhere A.sname=' 张三 'and B.sname='王三 '2、盘问所在班级和该班内学生的年龄之和,其中每个人的年龄都大于20 岁,每个班的年龄之和大于60 岁select class as 班级 ,sum(2021-yearofbirth) as 年龄和from A_studentinfowhere (2021-yearofbirth) >20group by classhaving sum(2021-yearofbirth)>60order by class3、从学生表中盘问第 2 到 5 条数据〔以学号排序〕select top 4 *from a_studentinfowhere sno not in(select top 1 snofrom a_studentinfoorder by sno)order by sno4、计算每种产品的节余库存量表 1,为产品进货表,产品名称 name[char(10)] ,产品数量 amount[int] 表 2,为产品出货表,产品名称 name[char(10)] ,产品数量 amount[int]业务逻辑:表 1 储藏产品的总进货量,表 2储藏每种产品每次的出货量,如产品 A 进货为 100,出货了 3 次,每次分别为 10、 20、 30,那么 A 产品的库存就为40表 A1|表 A2---------------------------------|---------------------------name amount|name amountA100|A10B100|A20|A30|B10|B40--方法 1--建立视图create view A2Sumasselect name,sum(amount) as thesumfrom A2group by name--关系盘问from A1,A2Sum--方法 2select ,A1.amount-A2Table.A2amount as stocks--方法 3--定义单个产品变量declare @aa int(select sum(amount)from A2where name='A'group by name)--计算单个产品节余select name,amount-@aa as leavefrom A1where name='A'5、盘问学生表,在结果中将性别为“男〞的显示为“先生〞,将性别为“女〞的显示为“女士〞,否那么显示为空。
SQLServer选择题答案
SQL Server选择题第一章数据库基础1.DBMS的全称是()A.数据库系统B.业务管理系统C.数据库管理系统D.数据库信息系统2.下列关于SQL Server数据库分离和附加的说法,正确的是()A.分离出来的数据库文件有mdf文件和ldf文件B.分离出来的数据库文件只有mdf文件C.分离出来的数据库文件只有ldf文件D.不能对分离出来的数据库文件进行重命名,否则附加不成功3.目前,主流的模型数据库系统是()A.关系模型数据库系统B.网状模型数据库系统C.层次模型数据库系统D.面向对象模型数据库系统4.下列关于SQL Server身份认证模式的说法,错误的是()A.S QL Server提供了Windows身份认证和SQL Server身份认证两种模式B.S QL Server身份认证模式是默认的身份认证模式C.采用SQL Server身份认证,用户名和密码均由SQL Server 创建并存储在SQL Server中D.采用Windows身份认证,用户身份由Windows进行确认,SQL Server不要求提供密码5.主数据库文件的后缀名是()A..ndfB..logC..masterD..mdf第二章创建和管理数据表1.商品表的商品名属于()数据类型A.整型B.字符类型C.日期类型D.小数类型2.下列关于主键的说法,错误的是()A.一个表只能有一个主键B.主键值不能重复C.一个表可以有多个主键D.主键约束是一种重要的实体完整性约束3.有关varchar和nvarchar的比较,下列说法正确的有()A.它们都是字符类型数据B.它们都是可变长度字符类型数据C.Varchar存储Unicode字符数据D.nvarchar存储Unicode字符数据4.关于外键约束,下列说法正确的是()A.外键约束建立在主表的字段上B.外键约束建立在从表的字段上C.外键列的值不能为空D.外键一定要与相应的主键同名5.表A中的列B是标识列,属于自动增长数据类型,标识种子是2,标识递增量为3。
(有答案)SQLServer复习题.doc
SQL Server复习题一、填空题1.在SQL Server2000的____ 查询编辑器窗U _______ 中,既可以输入、执行Transact-SQL命令语句,也可以创逮查询命令文件,查询命令文件的扩展名为_.sql_。
2.默认约束指定在插入操作中如果没有提供输入值时,则系统自动指定值。
默认约束可以包括_常:W: 、函数、不带变量的內建函数或者空值。
3.SQL Server2000的“身份脸证模式”分为两种,分别是“ Windows身份验证_______ ”和“ Windows和SQL Server混合身份验证_____ ”。
Z1.在Transact-SQL语言中变量分为_局部变S _________ 和全局变量。
5.在SQL Server中,用来显示数掘库信息的系统存储过程是_sp_helpdp ________ 。
6.DROP TABLE语句可以删除一个表和表中的 _数据 _______ 及其与表有关的所有_索引_、触发器、约朿、许可对象。
7.视图可以看成是从一个或几个_____ 基本表 ____ 导出的虚表或存储在数据库中的查询。
8.可以使用______ CREATE INDEX语句__________ 创建独立于约束的索引。
9. _______ 以_______ @@ 符号开头的变S:为全局变:S:。
10.定义局部变量需要使用命令_________ @ ____________ 。
11.在CREATE PROCEDURE语句屮可以声明一个或多个参数,用户必须在执行(调川)过程时提供每个所声明参数的_值_。
12.数据库中只存放视图的_____ 定义______ ,而不存放视图对应的数据,数据存放在原来的基本表中,当基本表屮数据发生变化时,从视图屮查询出的数据是_随之变化_的。
13.在数据表中创建主键约束时,会自动产生____ 唯一性的聚集______ 索引。
14.存储过程有多种调用方式,其屮比较常用的是使用EXECUTE 语句。
SQLServer数据库试题十及答案
SQLServer数据库试题十及答案SQL Server数据库试题及答案一、单项选择题(每题2分,共15题)1. SQL Server 2005是一个(C)的数据库系统。
(A)网状型(B)层次型(C)关系型(D)以上都不是2. DTS 是一个简称,它的全称是(B)。
A. 数据运输系统B. 数据传输服务C. 数据库传输系统D. 数据库运输服务3. SQL Server 2005 采用的身份验证模式有(D)。
(A)仅Windows身份验证模式(B)仅SQL Server身份验证模式(C)仅混合模式(D)Windows身份验证模式和混合模式4. SQL 语言按照用途可以分为三类,下面选项中哪一种不是的:(C)(A)DML (B)DCL (C)DQL (D)DDL5. 在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是(B)(A) * (B)% (C)- (D)?6. SQL Server提供的单行注释语句是使用(B)开始的一行内容。
(A)“/*” (B)“--” (C)“{” (D)“/”7. 以下那种类型能作为变量的数据类型(C)。
(A)text (B)ntext (C)table (D)image8. 下面不属于数据定义功能的SQL语句是:(C)A.CREATE TABLEB.CREATE CURSORC.UPDATED.ALTER TABLE9. 如果希望完全安装SQL Server,则应选择(A)。
A. 典型安装B. 最小安装C. 自定义安装D. 仅连接10. 在SQL SERVER中局部变量前面的字符为:(D )(A)* (B)# (C)@@ (D) @11. 假如有两个表的连接是这样的:table_1 INNER JOIN table_2 其中table_1和table_2是两个具有公共属性的表,这种连接会生成哪种结果集?(D)(A)包括table_1中的所有行,不包括table_2的不匹配行(B)包括table_2中的所有行,不包括table_1的不匹配行(C)包括和两个表的所有行(D)只包括table_1和table_2满足条件的行12. 对视图的描述错误的是:(C)(A)是一张虚拟的表(B)在存储视图时存储的是视图的定义(C)在存储视图时存储的是视图中的数据(D)可以像查询表一样来查询视图13. 在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是(A )。
sqlserver练习题参考答案
1第1章 数据库基础数据库基础练习题一一、 单项选择题1.C 2.A 3.C 4.D 5.D6.B 7.A 8.B 9.B 10.D 1111..C 12.A 13.C 14.B 15.A 1616..B 17.A 18.D 19.B 20.B 2121..A; D 22.A 23.C 24.D 25.B 2626..B 27.B 28.D 29.B 30.B 二、 填空题1.概念.概念 ; 数据数据 2.属性.属性 3.码.码4.一对一联系;一对多(或多对一)联系;多对多联系.一对一联系;一对多(或多对一)联系;多对多联系 5.候选码.候选码 6.候选码.候选码7.关系名(属性1,属性2,…,属性n )8.关系数据结构;关系操作集合;关系完整性约束.关系数据结构;关系操作集合;关系完整性约束9.实体;参照;用户定义的;实体;参照.实体;参照;用户定义的;实体;参照 10.空值.空值11.需求分析阶段;.需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运行和维护阶段数据库实施阶段;数据库运行和维护阶段1212.准确了解并分析用户对系统的要求,尤其是用户的信息要求、处理要求、安全性.准确了解并分析用户对系统的要求,尤其是用户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应用系统的目标,产生用户和设计者都能接受的需求说明书,做为下一步数据库概念结构设计的依据。
书,做为下一步数据库概念结构设计的依据。
13.将需求分析得到的用户需求抽象为信息结构即概念模型。
.将需求分析得到的用户需求抽象为信息结构即概念模型。
1414.将概念结构进一步转化为某一.将概念结构进一步转化为某一DBMS 支持的数据模型,并对其进行优化。
支持的数据模型,并对其进行优化。
1515.为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据库在物理设备上.为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据库在物理设备上的存储结构和存取方法。
SQL_Server测试题及答案(10套)
绿色刚开始选对的,红色没有选对的,黄色一直没有写……SQL Server试题1班级: _______ 姓名: _______ 学号: _______ 成绩: _______一、填空题( 30*1 分)1.SQL server 2005 从设计结构来看,是按 _________ 进行设计的。
2.根据模型应用目的的不同,数据模型可以分为两类:一类是 _________ ,是按用户的观点来对数据和信息进行抽象;另一类是 _________ ,是按计算机的观点建模。
3.结构数据模型直接描述数据库中数据的逻辑结构,常用的结构数据模型有 _________ ,_________ , _________ , _________ 。
4.在给数据库改名之前,必须设置数据库处于 ____________ 状态。
命令 truncate table 的功能是 _______________ 。
5.数据完整性实质,存储在数据库中的数据正确无误并且相关数据具有一致性,根据完整性机制所作用的数据库对象和范围不同,可以分为: _________ , _________ , _________ , _________ 四种,其中标志列可以实现 _________ 数据完整性。
6.SQL 语言中行注释的符号为 _________ ;块注释的符号为 _________ 。
使用索引可以减少检索时间,根据索引的存储结构不同将其分为两类: _________ 和 _________ 。
____________ 是将用户组成一个集体授权的单一单元。
7.为了实现安全性,每个网络用户在访问 SQL server 数据库之前,都必须经过两个阶段的检验:_________ 和 _________ 。
事务有两种类型 _________ 和 _________ 。
8.SQL server 中的变量分为两种,全局变量和局部变量。
其中全局变量的名称以 _________ 字符开始,有系统定义和维护。
数据库技术(SQLServer)习题与参考答案
数据库技术(SQLServer)习题与参考答案第一章:1、SQL Server 2005有哪些新增特性?答:SQL Server 2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。
企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在Common Language Runtime集成、集成XML、Transact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。
2、SQL Server 2005安装的软件和硬件环境是什么?答:SQL Server 2005安装的软件和硬件环境参见教材6。
3、SQL Server 2005有哪些版本?有哪些服务组件?答:SQL Server 2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。
4、什么是实例?经常提到的SQL Server 2005服务器和服务器实例是否具有相同的含义?答:实例就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。
一个SQL Server服务器就是一个实例,一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是一个实例。
5、默认实例和命名实例有何差别?在安装和使用上有何不同?答:实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQL SERVER 2005命名设置保持默认的话,那这个实例就是默认实例。
一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。
除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。
SQLServer数据库的练习题和答案6共6份
一、上机题一、上机题1. 在Student 数据库的以下表中数据库的以下表中 学生表(Student)基本数据表的字段 字段名字段名 类型类型 长度长度 StudentID Int (Identity) StudentCode Char 8 StudentName V archar 20 Sex Bit Phone V archar 20 Address V archar 100 Parent V archar 20 Birthdate Smalldatetime Remark V archar 500 Photo Image RegisterDateDatetime成绩表(Score)基本数据的字段字段名字段名类型类型长度长度 小数位小数位 ScoreID Int(Identity) StudentCodeChar 8 ExamType Char 1 Chinese Decimal 5 1 Math Decimal 5 1 English Decimal 5 1 Physics Decimal5 1 ChemistDecimal51(1) 在Student 表的StudentCode 字段创建聚集索引Index_StudentCode ,并且该索引为唯一索引,然后向Student 表中插入一条与表中记录的StudentCode 字段相同的记录,检查能否插入成功。
录,检查能否插入成功。
Create union index index_studentcode on student (studenrcode) (2) 在Student 表的StudentName 字段创建非聚集索引。
字段创建非聚集索引。
Create nonclustered index index_studentcode on student(studentname) (3) 在Score 表的StudentCode 字段创建聚集索引。
SQLsever基础试题及答案
SQLsever基础试题及答案SQL Server基础试题及答案1. 什么是SQL Server?SQL Server是由Microsoft开发的关系数据库管理系统(RDBMS),它用于存储、管理、检索和分析数据。
2. SQL Server的主要组件有哪些?SQL Server的主要组件包括SQL Server数据库引擎、SQL Server Analysis Services、SQL Server Reporting Services、SQL Server Integration Services和SQL Server Notification Services。
3. 如何在SQL Server中创建一个新数据库?使用以下SQL语句可以创建一个新数据库:```CREATE DATABASE DatabaseName;```4. 如何在SQL Server中添加一个新表?使用以下SQL语句可以添加一个新表:```CREATE TABLE TableName (Column1 DataType,Column2 DataType,...);```5. 如何在SQL Server中插入数据?使用以下SQL语句可以插入数据:```INSERT INTO TableName (Column1, Column2, ...) VALUES (Value1, Value2, ...);```6. 如何在SQL Server中查询数据?使用SELECT语句可以查询数据:```SELECT Column1, Column2, ...FROM TableNameWHERE Condition;```7. 如何在SQL Server中更新数据?使用UPDATE语句可以更新数据:```UPDATE TableNameSET Column1 = Value1, Column2 = Value2, ... WHERE Condition;```8. 如何在SQL Server中删除数据?使用DELETE语句可以删除数据:```DELETE FROM TableNameWHERE Condition;```9. 如何在SQL Server中创建一个索引?```CREATE INDEX IndexNameON TableName (ColumnName);```10. 如何在SQL Server中备份数据库?使用以下SQL语句可以备份数据库: ```BACKUP DATABASE DatabaseNameTO DISK = 'BackupPath';```11. 如何在SQL Server中恢复数据库?使用以下SQL语句可以恢复数据库: ```RESTORE DATABASE DatabaseNameFROM DISK = 'BackupPath'WITH REPLACE;```12. 如何在SQL Server中创建一个视图?使用以下SQL语句可以创建一个视图: ```CREATE VIEW ViewName ASSELECT Column1, Column2, ...FROM TableNameWHERE Condition;```13. 如何在SQL Server中使用事务?```BEGIN TRANSACTION;-- SQL StatementsCOMMIT TRANSACTION;```如果需要回滚事务,可以使用:```ROLLBACK TRANSACTION;```14. 如何在SQL Server中创建一个存储过程?使用以下SQL语句可以创建一个存储过程: ```CREATE PROCEDURE ProcedureNameASBEGIN-- SQL StatementsEND;```15. 如何在SQL Server中使用触发器?使用以下SQL语句可以创建一个触发器: ```CREATE TRIGGER TriggerNameON TableNameAFTER INSERT, UPDATE, DELETEASBEGIN-- SQL StatementsEND;```以上是SQL Server基础试题及答案的示例。
SQL Server习题及答案
7. 希望浏览SQL Server数据库中对象的元数据。那么你应该使用什么方法?
答: 可以查询信息架构视图、执行系统存储过程或使用系统函数。也可以直接查询系统表,但不推荐使用这种方法,原因是在产品的后续版本中,这些表可能会发生变化。
8. 希望引用同一个服务器上的不同数据库中的两个表。从Inventory数据库中,希望引用Sales数据库中的某个表。那么如何在一个查询中引用Sales数据库中的该表?
(1) 软件使用的数据库帐号采用Windows认证还是SQL Server认证,如何实现该目标?
(2)在采用三层架构(3-Tier)的软件开发时,客户端程序会不会出现该问题?
答:(1)不能采用Windows认证,只能采用SQL Server认证。因为商场收银软件若采用Windows认证,收银员登录到Windows系统后,不光商场收银软件可以访问数据库,收银员也可以用SQL Server 2000的查询分析器等软件以Windows认证方式来访问数据库。
A. 客户端的数据库API
B. 客户端的NET-LIBRARY
C. 服务器端的开放式数据服务
D. 服务器端的关系引擎
E. 服务器端的存储引擎
SQL Server数据库的练习题和答案3 共6份
一、有以下三个关系:SALESPERSON(销售人员)Number CustName SalespersonName Amount(1)显示所有Salespeople的Ages和salary但是去掉重复的行。
Select distinct Ages, salaryfrom salespeople(2)显示所有和ABERNATHY CONSTRUCTION有订单的Salespeople。
SELECT DISTINCT , SALESPERSON.Age, SALESPERSON.Salary FROM [ORDER], SALESPERSONWHERE [ORDER].SalespersonName = AND [ORDER].CustName = 'Abernathy Construction'(3)显示所有的和ABERNATHY CONSTRUCTION没有订单的Salespeople,按工资的升序进行排列。
SELECT DISTINCT Name, Age, SalaryFROM SALESPERSONWHERE (Name NOT IN(SELECT NameFROM [ORDER] INNER JOINSALESPERSON ON[ORDER].SalespersonName = WHERE ([ORDER].CustName='Abernathy Construction')))ORDER BY Salary(4)显示所有的和ABERNATHY CONSTRUCTION有订单的Salepeople的年龄和姓名,按年龄的降序进行排列(使用子查询)。
SELECT DISTINCT Name, AgeFROM SALESPERSONWHERE (Name IN(SELECT SalespersonNameFROM [ORDER]WHERE CustName LIKE 'Abernathy Construction%'))ORDER BY Age DESC(5)显示所有的和ABERNATHY CONSTRUCTION有订单的Salepeople的年龄和姓名,按年龄的降序进行排列(使用连接)。
SQLServer基础练习题及答案
6、统计<学生选修信息表>,查询课程号为”C001”的课程的最高成绩 select max(score) as 最高成绩 from A_studentcourse where cno='C001'
一、单表查询练习 1、查询<学生信息表>,查询学生"张三"的全部基本信息 Select * from A_studentinfo where sname='张三'
2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息 Select * from A_studentinfo where sname='张三' or sname='李四'
3、查询<学生信息表>,查询姓"张"学生的基本信息 Select * from A_studentinfo where sname like '张%'
4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息 Select * from A_studentinfo where sname like '%四%'
11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份 select distinct province as 省份 from A_studentinfo
12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩 Select * from A_studentcourse where score is null
SQLServer数据库考试试题与答案(doc 8页)
SQLServer数据库考试试题与答案(doc 8页)选择题:(20分)1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(___)A、只存在一对多的实体关系,以图形方式来表示。
B、以二维表格结构来保存数据,在关系表中不允许有重复行存在。
C、能体现一对多、多对多的关系,但不能体现一对一的关系。
D、关系模型数据库是数据库发展的最初阶段。
2、在“连接”组中有两种连接认证方式,其中在(___)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。
A、Windows身份验证B、SQL Server 身份验证C、以超级用户身份登录时D、其他方式登录时3、SQL Server 2000 在安装之前,应注意的事项:(___)A、SQL Server 2000的任何版本在安装时都不用考虑操作系统的制约。
B、SQL Server 2000的安装对硬件的要求不作C、alter table table1 column1 primary key ;5、表在数据库中是一个非常重要的数据对象,它是用来(1___)各种数据内容的,数据库创建后就可以创建表了,创建表可以用(2___)等方法来创建。
⑴ A、显示 B、查询 C、存放 D、检索⑵ A、企业管理器 B、查询分析器C、OSQLD、企业管理器和CREATE TABLE语句6、为数据表创建索引的目的是(1___),可以在创建表时用(2___)来创建唯一索引,也可以用(2___)来创建唯一索引。
⑴ A、提高查询的检索性能 B、创建唯一索引C、创建主键D、归类⑵ A、设置主键约束,设置唯一约束B、Create table,Create indexC、设置主键约束,Create indexD、以上都可以7、在Transact-SQL语法中,用来插入数据的命令是(___),用于更新的命令是(___)。
A、INSERT,UPDATEB、UPDATE,INSERTC、DELETE,UPDATED、CREATE,INSERT INTO8、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1___),使用关键字(2___)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3___),如果在SELECT语句中使用集合函数时,一定在后面使用(4___)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL Server 基础练习题及答案【幻天火焰】目录一、单表查询练习 (1)二、聚合函数练习 (3)三、分组查询练习 (3)四、嵌套查询练习 (4)五、联接查询练习 (6)六、外联接查询 (7)七、补充提高 (7)一、单表查询练习1、查询<学生信息表>,查询学生"张三"的全部基本信息Select *from A_studentinfowhere sname='张三'2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息Select *from A_studentinfowhere sname='张三'or sname='李四'3、查询<学生信息表>,查询姓"张"学生的基本信息Select *from A_studentinfowhere sname like '张%'4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息Select *from A_studentinfowhere sname like '%四%'5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。
select *from A_studentinfowhere sname like '李_强'6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。
Select *from A_studentinfowhere sname like '张%'or sname like '李%'7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息Select *from A_studentinfowhere sname like '张%'and province='北京'8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息Select *from A_studentinfowhere province in ('北京','上海','新疆','山东')9、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息Select *from A_studentinfowhere sname like '张%'and province !='北京'10、查询<学生信息表>,查询全部学生信息,并按照“性别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序select *from A_studentinfoorder by sex,province,class11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份select distinct province as 省份from A_studentinfo12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩Select *from A_studentcoursewhere score is null13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序Select *from A_studentcoursewhere score is not nullorder by score desc二、聚合函数练习1、统计<学生信息表>,统计共有多少个学生Select count (*) as 学生数量from A_studentinfo2、统计<学生信息表>,统计年龄大于20岁的学生有多少个Select count(*) as 学生数量from A_studentinfowhere (2008-yearofbirth)>203、统计<学生信息表>,统计入学时间在1980年至1982年的学生人数select count(*) as 学生数量from A_studentinfowhere enrollment between '1998-01-01' and '2003-12-30'对比以下查询方式,看看有何不同,为什么?select count(*) as 学生数量from A_studentinfowhere enrollment between '1998' and '2003'4、统计<学生选修信息表>,统计学号为"S001"的学生的平均成绩Select avg(score) as 平均成绩from A_studentcoursewhere sno='S001'5、统计<学生选修信息表>,统计学号为"S001"的学生的总成绩select sum(score) as 总成绩from A_studentcoursewhere sno ='S001'6、统计<学生选修信息表>,查询课程号为”C001”的课程的最高成绩select max(score) as 最高成绩from A_studentcoursewhere cno='C001'7、统计<学生信息表>,查询所有学生中的最大年龄是多少select 2009-min(yearofbirth) as 最大年龄from A_studentinfo三、分组查询练习1、统计<学生选修信息表>,统计每个课程的选修人数select cno,count(*) as 学生数量from A_studentcoursegroup by cno2、统计<学生选修信息表>,统计每个同学的总成绩select sno,sum(score) as 总成绩from A_studentcoursegroup by sno3、统计<学生信息表>,统计每个班级中每种性别的学生人数,并按照班级排序select class as 班级,sex as 性别, count(*) as 人数from A_studentinfogroup by class,sexorder by class4、统计<学生选修信息表>,统计每门课程的平均成绩,并按照成绩降序排序Select cno,avg(score) as 平均成绩from A_studentcoursegroup by cnoorder by avg(score) desc5、统计<学生选修信息表>,显示有两门以上课程不及格的学生的学号Select sno as 不及格学生学号from A_studentcoursewhere score<60group by snohaving count(*)>16、统计<学生信息表>,统计每个班级中的最大年龄是多少select class as 班级, 2008-min(yearofbirth) as 最大年龄from A_studentinfogroup by class四、嵌套查询练习1、用子查询实现,查询选修“高等数学”课的全部学生的总成绩select sum(score) as 高等数学总成绩from A_studentcoursewhere cno =(select cnofrom A_courseinfowhere subject='高等数学')2、用子查询实现,统计<学生选修信息表>,显示学号为"S001"的学生在其各科成绩中,最高分成绩所对应的课程号和成绩select score,cnofrom A_studentcoursewhere sno='S001'and score =(select max(score)from A_studentcoursewhere sno ='S001')思考:如果该学号学生有两个课程分数都为最高的100分,查询会有什么结果3、用子查询实现,查询2班选修"数据库技术"课的所有学生的成绩之和select sum(score) as 数据库技术总成绩from A_studentcoursewhere cno =(select cnofrom A_courseinfowhere subject='数据库技术')and sno in(select snofrom A_studentinfowhere class='2')4、用子查询实现,查询3班"张三"同学的"测试管理"成绩select scorefrom A_studentcoursewhere cno=(select cnofrom A_courseinfowhere subject='测试管理')and sno in(select snofrom A_studentinfowhere class='3'and sname='张三')五、联接查询练习1、查询"张三"的各科考试成绩,要求显示姓名、课程号和成绩select sname as 姓名,cno as 课程号,score as 成绩from A_studentinfo,A_studentcoursewhere A_studentinfo.sno=A_studentcourse.snoand sname='张三'2、查询"张三"的各科考试成绩中,哪科没有记录考试成绩,要求显示姓名、课程号和成绩select sname as 姓名,cno as 课程号,score as 成绩from A_studentinfo,A_studentcoursewhere A_studentinfo.sno=A_studentcourse.snoand sname='张三'and score is null3、查询"张三"的各门课程成绩,要求显示姓名、课程名称和成绩select sname as 姓名,subject as 课程名称,score as 成绩from A_studentinfo,A_courseinfo,A_studentcoursewhere A_studentcourse.sno=A_studentinfo.snoand A_o=A_oand A_studentinfo.sname='张三'4、查询3班"张三"的"测试管理"成绩,要求显示姓名、成绩select sname as 姓名,score as 成绩from A_studentcourse,A_courseinfo,A_studentinfowhere A_o=A_oand A_studentcourse.sno=A_studentinfo.snoand subject='测试管理'and class='3'and sname='张三'5、查询所有2000年以前入学的,各班男生的各科考试平均成绩select class as 班级,avg(score) as 男生平均成绩from A_studentcourse,A_courseinfo,A_studentinfowhere A_o=A_oand A_studentcourse.sno=A_studentinfo.snoand sex='男'and enrollment<'2000-01-01'group by class六、外联接查询查询李坚强所有课程的成绩,并显示学号、姓名、课程号和成绩,没有成绩记录的学号包括:('S009','S010','S011') 1、使用左联接select A_studentinfo.sno as 学生表学号,sname as 姓名,A_studentcourse.sno as 成绩表学号, cno as 课程号,score as 成绩from A_studentinfoleft join A_studentcourseon A_studentinfo.sno=A_studentcourse.snowhere sname='李坚强'2、使用右联接select A_studentinfo.sno as 学生表学号,sname as 姓名,A_studentcourse.sno as 成绩表学号, cno as 课程号,score as 成绩from A_studentcourseright join A_studentinfoon A_studentinfo.sno=A_studentcourse.snowhere sname='李坚强'3、对比等值连接select sname,scorefrom A_studentinfo,A_studentcoursewhere A_studentinfo.sno=A_studentcourse.snoand sname='李坚强'七、补充提高1、查询“张三”比“王三”入学早几年select A.sname as 姓名,year(A.enrollment) as 入学时间,B.sname as 姓名,year(B.enrollment) as 入学时间,datediff(year,A.enrollment,B.enrollment) as 年差from A_studentinfo A,A_studentinfo Bwhere A.sname='张三'and B.sname='王三'2、查询所在班级和该班内学生的年龄之和,其中每个人的年龄都大于20岁,每个班的年龄之和大于60岁select class as 班级,sum(2008-yearofbirth) as 年龄和from A_studentinfowhere (2008-yearofbirth) >20group by classhaving sum(2008-yearofbirth)>60order by class3、从学生表中查询第2到5条数据(以学号排序)select top 4 *from a_studentinfowhere sno not in(select top 1 snofrom a_studentinfoorder by sno)order by sno4、计算每种产品的剩余库存量表1,为产品进货表,产品名称name[char(10)],产品数量amount[int]表2,为产品出货表,产品名称name[char(10)],产品数量amount[int]业务逻辑:表1存储产品的总进货量,表2存储每种产品每次的出货量,如产品A进货为100,出货了3次,每次分别为10、20、30,那么A产品的库存就为40表A1 | 表A2---------------------------------|---------------------------name amount | name amountA 100 | A 10B 100 | A 20| A 30| B 10| B 40--方法1--建立视图create view A2Sumasselect name,sum(amount) as thesumfrom A2group by name--关联查询select ,A1.amount-A2Sum.thesumfrom A1,A2Sumwhere =--方法2select ,A1.amount-A2Table.A2amount as stocksfrom A1,(select name,sum(amount) as A2amount from A2 group by name) as A2Tablewhere =--方法3--定义单个产品变量declare @aa int(select sum(amount)from A2where name='A'group by name)--计算单个产品剩余select name,amount-@aa as leavefrom A1where name='A'5、查询学生表,在结果中将性别为“男”的显示为“先生”,将性别为“女”的显示为“女士”,否则显示为空。