SQL查询(图书数据库-题目)
- 格式:doc
- 大小:107.50 KB
- 文档页数:3
SQL基础知识题库100道及答案(完整版)1. 在SQL 中,用于创建表的语句是()A. CREATE TABLEB. INSERT INTOC. UPDATED. DELETE答案:A2. 以下哪个关键字用于在SQL 中添加数据()A. ADDB. INSERTC. APPENDD. PUT答案:B3. 在SQL 中,用于从表中检索数据的语句是()A. SELECTB. GETC. FETCHD. REQUEST答案:A4. 以下哪个关键字用于在SQL 中更新数据()A. MODIFYB. CHANGEC. UPDATED. REPLACE答案:C5. 要从表中删除数据,应使用的SQL 语句是()A. DROPB. DELETEC. REMOVED. CLEAR答案:B6. SQL 中用于创建索引的关键字是()A. CREATE INDEXB. MAKE INDEXC. BUILD INDEXD. ESTABLISH INDEX答案:A7. 以下哪种数据类型用于存储整数()A. INTB. FLOATC. VARCHARD. DATE答案:A8. 用于存储字符串的常见数据类型是()A. CHARB. INTC. DECIMALD. DOUBLE答案:A9. 在SQL 中,用于对结果集进行排序的关键字是()A. SORTB. ORDER BYC. ARRANGED. ALIGN答案:B10. 以下哪个运算符用于等于比较()A. =B. ==C. <>D. >答案:A11. 用于不等于比较的运算符是()A.!=B. < >C. NOT EQUALSD. DIFFERENT答案:B12. 以下哪个运算符用于大于比较()A. >B. >=C. <D. <=答案:A13. 用于小于比较的运算符是()A. <B. <=C. >D. >=答案:A14. 以下哪个关键字用于在SQL 中进行分组操作()A. GROUP BYB. SORT BYC. CLASSIFY BYD. CATEGORIZE BY答案:A15. 聚合函数SUM 用于()A. 计算总和B. 计算平均值C. 计算数量D. 计算最小值答案:A16. 聚合函数AVG 用于()A. 计算总和B. 计算平均值C. 计算数量D. 计算最大值答案:B17. COUNT 函数用于()A. 计算总和B. 计算平均值C. 计算数量D. 计算最小值答案:C18. MAX 函数用于()A. 计算总和B. 计算平均值C. 计算最大值D. 计算最小值答案:C19. MIN 函数用于()A. 计算总和B. 计算平均值C. 计算最大值D. 计算最小值答案:D20. 在SQL 中,用于连接两个表的关键字是()A. JOINB. CONNECTC. LINKD. BIND答案:A21. 内连接使用的关键字是()A. INNER JOINB. LEFT JOINC. RIGHT JOIND. FULL JOIN答案:A22. 左连接使用的关键字是()A. INNER JOINB. LEFT JOINC. RIGHT JOIND. FULL JOIN答案:B23. 右连接使用的关键字是()A. INNER JOINB. LEFT JOINC. RIGHT JOIND. FULL JOIN答案:C24. 全连接使用的关键字是()A. INNER JOINB. LEFT JOINC. RIGHT JOIND. FULL JOIN答案:D25. 在SQL 中,用于限制结果集行数的关键字是()A. LIMITB. RESTRICTC. BOUNDD. CONSTRAINT答案:A26. 以下哪个子句用于在SQL 中进行条件筛选()A. WHEREB. HAVINGC. FROMD. GROUP BY答案:A27. HAVING 子句通常与()一起使用A. GROUP BYB. ORDER BYC. WHERED. FROM答案:A28. 在SQL 中,用于创建视图的语句是()A. CREATE VIEWB. MAKE VIEWC. BUILD VIEWD. ESTABLISH VIEW 答案:A29. 以下哪个关键字用于删除视图()A. DROP VIEWB. DELETE VIEWC. REMOVE VIEWD. CLEAR VIEW 答案:A30. 要在SQL 中添加注释,可以使用()A. //B. /* */C. #D. --答案:D31. 在SQL 中,以下哪种数据类型用于存储日期和时间()A. DATEB. TIMEC. DATETIMED. TIMESTAMP答案:C32. 用于提取日期部分的函数是()A. DATEPART()B. DAY()C. MONTH()D. YEAR()答案:A33. 以下哪个函数用于计算字符串的长度()A. LENGTH()B. SIZE()C. COUNT()D. LEN()答案:A34. 在SQL 中,用于将字符串转换为大写的函数是()A. UPPER()B. TO_UPPER()C. CAPITALIZE()D. BIGCASE()答案:A35. 用于将字符串转换为小写的函数是()A. LOWER()B. TO_LOWER()C. SMALLCASE()D. DECAPITALIZE()答案:A36. 以下哪个函数用于去除字符串两端的空格()A. TRIM()B. CLEAN()C. REMOVE_SPACES()D. STRIP()答案:A37. 在SQL 中,用于执行事务的语句是()A. BEGIN TRANSACTIONB. START TRANSACTIONC. OPEN TRANSACTIOND. INITIATE TRANSACTION答案:A38. 提交事务使用的语句是()A. COMMITB. SUBMITC. CONFIRMD. VALIDATE答案:A39. 回滚事务使用的语句是()A. ROLLBACKB. REVERTC. CANCELD. ABORT答案:A40. 以下哪个关键字用于在SQL 中创建存储过程()A. CREATE PROCEDUREB. MAKE PROCEDUREC. BUILD PROCEDURED. ESTABLISH PROCEDURE答案:A41. 调用存储过程使用的语句是()A. EXECUTEB. CALLC. INVOKED. RUN答案:B42. 在SQL 中,用于删除存储过程的语句是()A. DROP PROCEDUREB. DELETE PROCEDUREC. REMOVE PROCEDURED. CLEAR PROCEDURE答案:A43. 以下哪个关键字用于在SQL 中创建触发器()A. CREATE TRIGGERB. MAKE TRIGGERC. BUILD TRIGGERD. ESTABLISH TRIGGER44. 删除触发器使用的语句是()A. DROP TRIGGERB. DELETE TRIGGERC. REMOVE TRIGGERD. CLEAR TRIGGER答案:A45. 在SQL 中,用于授予权限的语句是()A. GRANTB. ALLOWC. PERMITD. AUTHORIZE答案:A46. 收回权限使用的语句是()A. REVOKEB. DENYC. REFUSED. FORBID答案:A47. 以下哪个关键字用于在SQL 中创建索引的唯一性约束()A. UNIQUEB. PRIMARY KEYC. FOREIGN KEYD. CHECK答案:A48. 用于定义主键约束的关键字是()A. PRIMARY KEYB. UNIQUE KEYC. FOREIGN KEYD. INDEX KEY答案:A49. 外键约束使用的关键字是()A. FOREIGN KEYB. OUTER KEYC. RELATED KEYD. REFERENCED KEY答案:A50. 以下哪个约束用于检查数据的有效性()A. CHECKB. VALIDATEC. INSPECTD. VERIFY答案:A51. 在SQL 中,以下哪个语句用于创建数据库()A. CREATE DATABASEB. MAKE DATABASEC. BUILD DATABASED. ESTABLISH DATABASE 答案:A52. 要删除数据库,应使用的语句是()A. DROP DATABASEB. DELETE DATABASEC. REMOVE DATABASED. CLEAR DATABASE 答案:A53. 以下哪个关键字用于在SQL 中切换数据库()A. USEB. SELECT DBC. CHANGE DBD. SWITCH DB答案:A54. 在SQL 中,以下哪种操作可以对多个表同时进行()A. 联合查询B. 子查询C. 交叉连接D. 内连接55. 子查询可以在以下哪个子句中使用()A. SELECTB. FROMC. WHERED. 以上都可以答案:D56. 以下哪个语句用于在SQL 中创建用户()A. CREATE USERB. MAKE USERC. BUILD USERD. ESTABLISH USER答案:A57. 删除用户使用的语句是()A. DROP USERB. DELETE USERC. REMOVE USERD. CLEAR USER答案:A58. 在SQL 中,用于修改表结构的语句是()A. ALTER TABLEB. MODIFY TABLEC. CHANGE TABLED. UPDATE TABLE答案:A59. 以下哪个操作可以添加列到表中()A. ADD COLUMNB. INSERT COLUMNC. APPEND COLUMND. PUT COLUMN答案:A60. 要删除表中的列,应使用()A. DROP COLUMNB. DELETE COLUMNC. REMOVE COLUMND. CLEAR COLUMN答案:A61. 在SQL 中,以下哪个关键字用于对结果集进行分页()A. PAGEB. PAGINGC. OFFSETD. LIMIT答案:D62. 以下哪个函数用于返回当前日期()A. CURDATE()B. NOW()C. CURRENT_DATE()D. TODAY()答案:C63. 用于返回当前时间的函数是()A. CURTIME()B. NOW()C. CURRENT_TIME()D. THIS_TIME()答案:C64. 在SQL 中,以下哪个关键字用于为表中的列设置默认值()A. DEFAULTB. INITIALC. BASED. START答案:A65. 以下哪个语句用于在SQL 中重命名表()A. RENAME TABLEB. MODIFY TABLE NAMEC. CHANGE TABLE NAMED. UPDATE TABLE答案:A66. 要获取表的结构信息,可以使用以下哪个语句()A. DESCRIBE TABLEB. SHOW TABLE STRUCTUREC. EXPLAIN TABLED. GET TABLE DETAILS答案:A67. 在SQL 中,以下哪个关键字用于在查询结果中去除重复行()A. DISTINCTB. UNIQUEC. SINGLED. ONLY答案:A68. 以下哪个函数用于对字符串进行拼接()A. CONCAT()B. JOIN()C. MERGE()D. COMBINE()答案:A69. 在SQL 中,用于创建临时表的关键字是()A. TEMPORARY TABLEB. TEMP TABLEC. TRANSIENT TABLED. SHORT_LIVED TABLE答案:A70. 以下哪个语句用于在SQL 中为列添加注释()A. COMMENT ON COLUMNB. NOTE ON COLUMNC. REMARK ON COLUMND. EXPLAIN COLUMN答案:A71. 在SQL 中,以下哪个关键字用于在子查询中引用外部查询的结果()A. CORRELATEDB. RELATEDC. CONNECTEDD. LINKED答案:A72. 以下哪个操作符用于在SQL 中进行范围查询()A. BETWEENB. INC. LIKED. EXISTS答案:A73. 用于模糊匹配的操作符是()A. LIKEB. SIMILARC. MATCHD. CLOSE_TO答案:A74. 在SQL 中,以下哪个关键字用于对查询结果进行排序时按照多个列进行()A. ORDER BY MULTIPLEB. SORT BY SEVERALC. ORDER BY MORE THAN ONED. ORDER BY MULTIPLE COLUMNS答案:D75. 以下哪个函数用于返回字符串的子串()A. SUBSTRING()B. PART()C. SEGMENT()D. SLICE()答案:A76. 在SQL 中,以下哪个关键字用于在存储过程中定义输入参数()A. INB. OUTC. INOUTD. PARAMETER答案:A77. 用于定义输出参数的关键字是()A. INB. OUTC. INOUTD. PARAMETER答案:B78. 以下哪个关键字用于在存储过程中定义既可以输入又可以输出的参数()A. INB. OUTC. INOUTD. PARAMETER答案:C79. 在SQL 中,以下哪个关键字用于在创建表时指定自增列()A. AUTO_INCREMENTB. SELF_INCREMENTC. AUTO_GROWD. SELF_GROW答案:A80. 以下哪个语句用于在SQL 中创建序列()A. CREATE SEQUENCEB. MAKE SEQUENCEC. BUILD SEQUENCED. ESTABLISH SEQUENCE 答案:A81. 要获取序列的下一个值,可以使用以下哪个函数()A. NEXTVAL()B. GET_NEXT()C. NEXT_VALUE()D. FOLLOWING_VALUE()答案:A82. 在SQL 中,以下哪个关键字用于锁定表()A. LOCKB. HOLDC. FREEZED. BLOCK答案:A83. 以下哪种锁类型用于防止其他事务读取或修改数据()A. 共享锁B. 排他锁C. 意向共享锁D. 意向排他锁答案:B84. 共享锁允许其他事务()A. 读取数据B. 修改数据C. 删除数据D. 以上都不行答案:A85. 在SQL 中,以下哪个关键字用于解锁表()A. UNLOCKB. RELEASEC. FREED. UNBIND答案:A86. 以下哪个函数用于计算两个日期之间的天数差()A. DATEDIFF()B. DATE_DIFFERENCE()C. DAY_DIFFERENCE()D. TIME_DIFFERENCE()答案:A87. 在SQL 中,以下哪个关键字用于在查询中使用别名()A. ASB. LIKEC. SAME ASD. EQUALS答案:A88. 以下哪个语句用于在SQL 中创建索引的唯一约束()A. UNIQUE INDEXB. PRIMARY INDEXC. FOREIGN INDEXD. CHECK INDEX答案:A89. 要在SQL 中创建全文索引,应使用()A. FULLTEXT INDEXB. COMPLETE TEXT INDEXC. ALL_TEXT INDEXD. WHOLE_TEXT INDEX 答案:A90. 在SQL 中,以下哪个关键字用于在存储过程中声明变量()A. DECLAREB. DEFINEC. STATED. ANNOUNCE答案:A91. 以下哪个语句用于在SQL 中为变量赋值()A. SETB. ASSIGNC. GIVED. PUT答案:A92. 在SQL 中,以下哪个关键字用于在存储过程中进行条件判断()A. IFB. WHENC. CASED. CHECK答案:A93. 以下哪种语句用于在SQL 中进行循环操作()A. FORB. WHILEC. LOOPD. 以上都是答案:D94. 在SQL 中,用于退出循环的语句是()A. BREAKB. EXITC. STOPD. END答案:A95. 以下哪个函数用于将数字转换为字符串()A. CAST()B. CONVERT()C. TO_STRING()D. NUM_TO_STR()答案:B96. 在SQL 中,用于获取当前会话的用户名称的函数是()A. CURRENT_USERB. SYSTEM_USERC. LOGGED_IN_USERD. SESSION_USER答案:A97. 以下哪个关键字用于在SQL 中创建存储函数()A. CREATE FUNCTIONB. MAKE FUNCTIONC. BUILD FUNCTIOND. ESTABLISH FUNCTION 答案:A98. 要删除存储函数,应使用的语句是()A. DROP FUNCTIONB. DELETE FUNCTIONC. REMOVE FUNCTIOND. CLEAR FUNCTION答案:A99. 在SQL 中,用于获取数据库版本信息的函数是()A. VERSION()B. DB_VERSION()C. DATABASE_VERSION()D. SYSTEM_VERSION()答案:A100. 以下哪个操作可以在SQL 中对表进行重命名()A. RENAME TABLEB. MODIFY TABLE NAMEC. CHANGE TABLE NAMED. UPDATE TABLE NAME答案:A。
SQL试题以及答案一、已知一个教学管理信息系统,其数据表间约束如下图所示:(一)要求:使用“教学管理数据库”,完成下列操作。
1、返回“班级表”中的所有行和所有列。
2、检索“学生表”中的学号、姓名、性别和籍贯字段。
3、求所有学生在2022年的年龄。
4、查找所有入学成绩大于等于600的同学的学号、姓名和入学成绩。
5、查找以姓“王”开头的学生学号和姓名。
6、查找第二个字符为“中”字的学生学号和姓名。
7、查询所有学生的入学成绩,查询结果按入学成绩的降序排列。
8、对所有学生按入学成绩排降序和出生日期排降序输出学号、姓名、入学成绩和出生日期。
9、查找来自于东北地区的学生信息,即籍贯为吉林、辽宁或黑龙江的学生,显示学号、姓名、性别和籍贯。
10、查找“计算机科学技术2022-02班”的人数和班主任。
(二)打开“教学管理数据库”,完成下列任务。
1、求成绩在90分以上人的学号、姓名和成绩。
2、将“学生表”、“成绩表”和“课程表”进行自然连接,求结果。
3、求“郭达雷”的成绩表。
4、求统计学081班的所有成绩单。
5、求每个同学所修课程的总学分,且按总学分降序输出。
6、求所修课程总学分在11分以上的姓名。
(三)打开“教学管理数据库”,其数据表间约束如上图所示,各个数据表的数据类型请自行查阅,完成下列任务。
1.查询全体学生的姓名、学号和年龄。
并将结果保存在C:\\reult.t 某t中。
2.查询选修了课程且成绩及格以上的学生学号。
3.输出学生表中所有的籍贯。
(去除重复的记录)4.统计少数民族且在1990年或1992年出生的同学人数。
5.查询查找成绩最高分的同学学号、课程号和成绩。
6.查询选课成绩最高的同学学号、姓名、课程号和相应的成绩。
应成绩,按学号排序输出。
9.查询至少选修课程的总分在30分以上的同学学号、姓名、班级名称和总分。
10.查询选修了“邓小平理论”课程的同学学号、选课成绩。
二、已知一个图书管理信息系统,其数据表间约束如下图所示:(一)打开“图书管理”数据库,完成下列工作。
已知一个图书管理信息系统,其数据表间约束如图1所示。
其中表借阅表中的字段"归还日期"当未归还图书时表示应还日期,当已还图书时表示还书时的日期。
图1:图书管理信息系统相关数据库
图书管理相关数据库各表结构如下:
读者
读者编号,姓名,性别, 身份证号,工作单位
借阅
读者编号,图书编号,借阅日期,归还日期,是否归还
图书
图书编号,分类号,图书名称,作者姓名,
出版社名, 出版号,单价,出版时间,
入库时间,库存数量
图书分类
分类号,分类名称
现设定该数据库已经打开
1.查询所有男性读者的姓名、性别和身份证号,结果按年龄从大到小(升序)排列。
2. 查询读者编号及其未归还图书的数量。
3.查询"高等教育出版社"各图书的图书编号,作者、单价和库存数量。
4.在入库图书中查询各分类号2006年后出版图书的册数(库存数量),结果按其册数由高到低列示。
6. 查询各工作单位中所有未还图书的读者姓名、工作单位、分类号、图书名称、作者、书名及应还日期。
7.查询工作单位在"江西财经大学会计学院"且为女性读者的编号、姓名和身份证。
8 .查询归还日期为“2012-2-9”的所有读者的信息。
先创建下面三个表:(book表)(borrow表)(reader表)1) 找出姓李的读者姓名(NAME)和所在单位(COMPANY)。
2) 列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。
3) 查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。
4) 查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OU TPUT)和单价(PRICE)升序排序。
5) 查找书名以”计算机”开头的所有图书和作者(WRITER)。
6) 检索同时借阅了总编号(BOOK_ID)为和两本书的借书证号(READER_ID)。
##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。
8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。
9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。
##10)* 找出借阅了<FoxPro大全>一书的借书证号。
11) 找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。
12) 查询2006年7月以后没有借书的读者借书证号、姓名及单位。
#13) 求”科学出版社”图书的最高单价、最低单价、平均单价。
##14)* 求”信息系”当前借阅图书的读者人次数。
#15) 求出各个出版社图书的最高价格、最低价格和总册数。
#16) 分别找出各单位当前借阅图书的读者人数及所在单位。
17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。
18) 分别找出借书人次数多于1人次的单位及人次数。
19) 找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。
20) 查询经济系是否还清所有图书。
如果已经还清,显示该系所有读者的姓名、所在单位和职称。
附录:建表语句创建图书管理库的图书、读者和借阅三个基本表的表结构:创建BOOK:(图书表)CREATE TABLE BOOK (BOOK_ID int,SORT VARCHAR(10),BOOK_NAME VARCHAR(50),WRITER VARCHAR(10),OUTPUT VARCHAR(50),PRICE int);创建READER:(读者表)CREATE TABLE READER (READER_ID int,COMPANY VARCHAR(10),NAME VARCHAR(10),SEX VARCHAR(2),GRADE VARCHAR(10),ADDR VARCHAR(50));创建BORROW:(借阅表)CREATE TABLE BORROW (READER_ID int,BOOK_ID int,BORROW_DATE datetime)插入数据:BOOK表:insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP5/10','计算机基础','李伟','高等教育出版社',18.00);insert into BOOK values(,'TP3/12','FoxBASE','张三','电子工业出版社',23.60);insert into BOOK values(,'TS7/21','高等数学','刘明','高等教育出版社',20.00);insert into BOOK values(,'TR9/12','线性代数','孙业','北京大学出版社',20.80);insert into BOOK values(,'TR7/90','大学英语','胡玲','清华大学出版社',12.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);insert into BOOK values(,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);insert into BOOK values(,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80);insert into BOOK values(,'TP4/15','计算机网络','黄力钧','高等教育出版社',2 1.80);READER表:insert into reader values(111,'信息系','王维利','女','教授','1号楼424'); insert into reader values(112,'财会系','李立','男','副教授','2号楼316 ');insert into reader values(113,'经济系','张三','男','讲师','3号楼105'); insert into reader values(114,'信息系','周华发','男','讲师','1号楼316'); insert into reader values(115,'信息系','赵正义','男','工程师','1号楼224 ');insert into reader values(116,'信息系','李明','男','副教授','1号楼318 ');insert into reader values(117,'计算机系','李小峰','男','助教','1号楼214 ');insert into reader values(118,'计算机系','许鹏飞','男','助工','1号楼216 ');insert into reader values(119,'计算机系','刘大龙','男','教授','1号楼318 ');insert into reader values(120,'国际贸易','李雪','男','副教授','4号楼506');insert into reader values(121,'国际贸易','李爽','女','讲师','4号楼510 ');insert into reader values(122,'国际贸易','王纯','女','讲师','4号楼512 ');insert into reader values(123,'财会系','沈小霞','女','助教','2号楼202'); insert into reader values(124,'财会系','朱海','男','讲师','2号楼210'); insert into reader values(125,'财会系','马英明','男','副教授','2号楼212 ');BORROW表:insert into borrow values(112,,'3-19-2006');insert into borrow values(125,,'2-12-2006');insert into borrow values(111,,'8-21-2006');insert into borrow values(112,,'3-14-2006');insert into borrow values(114,,'10-21-2006');insert into borrow values(120,,'11-2-2006');insert into borrow values(120,,'10-18-2006');insert into borrow values(119,,'11-12-2006');insert into borrow values(112,,'10-23-2006');insert into borrow values(115,,'8-21-2006');insert into borrow values(118,,'9-10-2006');现有关系数据库如下:数据库名:图书借阅管理系统读者表(读者编号 char(6),姓名,性别,年龄,单位,身份证号,职称)图书表(图书编号char(6),图书名称,出版社,作者)借阅表(读者编号,图书编号,借阅时间)用SQL语言实现下列功能的sql语句代码。
数据库sql查询语句练习4_习题_结果(单世民)图书_习题现有图书管理数据库的三个关系模式:图书(总编号, 分类号, 书名, 作者, 出版单位, 单价)读者(借书证号, 单位, 姓名, 性别, 职称, 地址)借阅(借书证号, 总编号, 借书⽇期)具体数据为:读者:根据以上描述,请完成:DDL1.写出创建上述表的语句命令:create table图书(总编号varchar(7)primary key,分类号varchar(8),书名varchar(18),作者varchar(8),出版单位varchar(18),单价float)create table读者(借书证号varchar(4)primary key,单位varchar(7),姓名varchar(8),性别varchar(2),职称varchar(8),地址varchar(18))create table借阅(借书证号varchar(3),总编号varchar(6),借书⽇期date,primary key(借书证号,总编号,借书⽇期))DML2.给出插⼊上述数据的insert语句命令:insert into图书values('445501','TP3/12','数据库导论','王强','科学出版社', insert into图书values('445502','TP3/12','数据库导论','王强','科学出版社', insert into图书values('445503','TP3/12','数据库导论','王强','科学出版社', insert into图书values('332211','TP5/10','计算机基础','李伟','⾼等教育出版社', insert into图书values('112266','TP3/12','FoxBASE','张三','电⼦⼯业出版社', insert into图书values('665544','TS7/21','⾼等数学','刘明','⾼等教育出版社', insert into图书values('114455','TR9/12','线性代数','孙业','北京⼤学出版社', insert into图书values('113388','TR7/90','⼤学英语','胡玲','清华⼤学出版社', insert into图书values('446601','TP4/13','数据库基础','马凌云','⼈民邮电出版社',insert into图书values('446602','TP4/13','数据库基础','马凌云','⼈民邮电出版社',insert into图书values('446603','TP4/13','数据库基础','马凌云','⼈民邮电出版社',insert into图书values('449901','TP4/14','FoxPro⼤全','周虹','科学出版社', insert into图书values('449902','TP4/14','FoxPro⼤全','周虹','科学出版社', insert into图书values('118801','TP4/15','计算机⽹络','黄⼒钧','⾼等教育出版社',insert into图书values('118802','TP4/15','计算机⽹络','黄⼒钧','⾼等教育出版社',insert into读者values('111','信息系','王维利','⼥','教授','1号楼')insert into读者values('112','财会系','李⽴','男','副教授','2号楼')insert into读者values('113','经济系','张三','男','讲师','3号楼')insert into读者values('114','信息系','周华发','男','讲师','1号楼')insert into读者values('115','信息系','赵正义','男','⼯程师','1号楼')insert into读者values('116','信息系','李明','男','副教授','1号楼')insert into读者values('117','计算机系','李⼩峰','男','助教','1号楼')insert into读者values('118','计算机系','许鹏飞','男','教授','1号楼')insert into读者values('119','计算机系','刘⼤龙','男','副教授','4号楼') insert into读者values('120','国际贸易','李雪','男','副教授','4号楼') insert into读者values('121','国际贸易','李爽','⼥','讲师','4号楼') insert into读者values('122','国际贸易','王纯','⼥','讲师','4号楼') insert into读者values('123','财会系','沈⼩霞','⼥','助教','2号楼') insert into读者values('124','财会系','朱海','男','讲师','2号楼')insert into读者values('125','财会系','马英明','男','副教授','2号楼')insert into借阅values('112','445501','1997-3-19')insert into借阅values('125','332211','1997-2-12')insert into借阅values('111','445503','1997-8-21')insert into借阅values('112','112266','1997-3-14')insert into借阅values('114','665544','1997-10-21')insert into借阅values('120','114455','1997-11-2')insert into借阅values('120','118801','1997-10-18')insert into借阅values('119','446603','1997-12-12')insert into借阅values('112','449901','1997-10-23')insert into借阅values('115','449902','1997-8-21')insert into借阅values('118','118801','1997-9-10')单表查询3.找出姓李的读者姓名和所在单位命令:select姓名,单位from读者where姓名like'李%'结果:4.列出图书库中所有藏书的书名以及出版单位命令:select distinct书名,出版单位from图书结果:5.查找出⾼等教育出版社的所有图书及单价,结果按单价降序排列命令:select distinct书名,单价from图书where出版单位='⾼等教育出版社' order by单价desc结果:6.查找出价格位于10元和20元之间的图书种类,结果按出版单位和单价升序排序命令:select*from图书where单价between 10 and 20 order by出版单位,单价结果:7.找出书名以“计算机”打头的所有图书和作者命令:select distinct书名,作者from图书where书名like'计算机%'结果:8.检索同时接借阅了总编号为112266和449901两本书的借书证号命令:select借书证号from借阅where总编号='112266'intersect select借书证号from借阅where总编号='449901'结果:9.求科学出版社图书的最⾼单价、最低单价和平均单价命令:select MAX(单价)最⾼单价,MIN(单价)最低单价,AVG(单价)平均单价from 图书where出版单位='科学出版社'结果:聚合查询10.找出藏书中各个出版社的册数、价值总额命令:select出版单位,COUNT(*)册数,SUM(单价)价值总额from图书group by 出版单位结果:11.求出各个出版社图书的最⾼价格、最低价格和册数命令:select出版单位,COUNT(*)册数,max(单价)最⾼价格,MIN(单价)最低价格from图书group by出版单位结果:多表查询12.查找所有借了书的读者的姓名以及所在单位命令:select distinct姓名,单位from读者join借阅on读者.借书证号=借阅.借书证号结果:13.找出李某所借图书的所有图书的书名及借书⽇期命令:select姓名,书名,借书⽇期from读者join借阅on读者.借书证号=借阅.借书证号join图书on借阅.总编号=图书.总编号where 姓名like'李%'结果:14.查询1997年10⽉以后借书的读者借书证号、姓名和单位命令:select distinct读者.借书证号,姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号whereDATEDIFF(MONTH,'1977-10-1',借书⽇期)>=0结果:15.找出借阅了FoxPro⼤全⼀书的借书证号命令:select借书证号from借阅join图书on借阅.总编号=图书.总编号where 书名='FoxPro⼤全'结果:16.分别找出借书⼈次超过1⼈次的单位及⼈次数命令:select单位,COUNT(*)⼈次数from借阅join读者on借阅.借书证号=读者.借书证号group by单位having COUNT(*)>1结果:⼦查询17.找出与赵正义在同⼀天借书的读者姓名、所在单位以及借书⽇期命令:select姓名,单位,借书⽇期from读者join借阅on读者.借书证号=借阅.借书证号where借书⽇期=(select借书⽇期from借阅join读者on借阅.借书证号=读者.借书证号where姓名='赵正义')结果:18.查询1997年7⽉以后没有借书的读者借书证号、姓名以及单位命令:select借书证号,姓名,单位from读者except select借阅.借书证号,姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号where DATEDIFF(DAY,'1997-7-1',借书⽇期)>=0结果:19.求信息系当前借阅图书的读者⼈次数命令:select COUNT(*)⼈次数from借阅join读者on借阅.借书证号=读者.借书证号where单位='信息系'结果:20.找出当前⾄少借阅了2本书的读者及所在单位命令:select姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号group by读者.姓名,单位having COUNT(*)>=2结果:21.查询经济系是否还清所有图书。
36.设教学用的四个基本表(S,C,T,SC)(2)查询年龄大于23岁的女同学的学号和姓名select 姓名,学号from swhere 性别='女' and 年龄>23(3)查询至少选修了刘老师所讲授课程中的一门课程的女同学姓名select s.姓名from s,scwhere s.性别='女'and s.学号=sc.学号and sc.课程编号in(select c.课程编号from c,twhere c.教师编号=t.教师编号and t.姓名='刘%')(4)查询至少选修了2门课程的学生学号select sc.学号from scgroup by 学号having count(课程编号)>2(5)查询全部学生都选修的课程号与课程名select c.课程编号,c.课程名称from c,scwhere sc.课程编号=c.课程编号and sc.学号=(select distinct s.学号from s)(6)计算机系每个教师讲授的课程号select t.教师编号,课程编号from c,twhere t.所在系='计算机系(7)查询没有选修过任何一门课程的学生的学号select s.学号from swhere s.学号not in(select distinct sc.学号from sc)(10)统计个系教师的人数select count (教师编号)from tgroup by 所在系(11)统计出教师人数超过10人的系的名称select t.所在系from tgroup by 所在系having count(教师编号)>10(12)在选课表SC中查询成绩为NULL的学生的学号和课程号select 学号课程编号from scwhere 成绩='NULL'(13)姓王的同学的年龄、姓名、选课名称、成绩select 年龄,姓名,课程名称,成绩from s,c,scwhere s.学号=sc.学号and c.课程编号=sc.课程编号and s.姓名='王%'(14)查询年龄大于女同学平均年龄的男同学姓名和年龄select 姓名,年龄from swhere 性别='男' and 年龄>(select avg(年龄)from swhere 性别='女')37.在数据库{USER、ORDER}中,用户需要查询“所有于2009年5月25日下订单的女顾客姓名”。
实训查询作业3—SQL查询
1. 在“图书管理系统”数据库中,使用SQL语句查询“图书库存表”中的“图书名称”和“价格”。
2.在“图书管理系统”数据库中,使用SQL数据查询语句查询“图书库存表”中入库时间在07年5月以后且价格大于30元的图书信息。
3.使用SQL数据查询语句统计“借书证表”中各借书证类型的读者人数。
4.使用SQL数据查询语句统计“图书库存表”价格最低的和价格最高的图书价格。
1.SELECT FROM 图书库存表WHERE图书名称AND价格
2.SELECT FROM 图书库存表WHERE 入库时间>#2007-05# AND 价
格>30
3.SELECT FROM借书证表FROM 借书证类型
4.SELECT图书库存表WEHRE 价格=MAX AND MIN。
SQL数据库查询练习题及答案(四⼗五道题)题⽬:设有⼀数据库,包括四个表:学⽣表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。
四个表的结构分别如表1-1的表(⼀)~表(四)所⽰,数据如表1-2的表(⼀)~表(四)所⽰。
⽤SQL语句创建四个表并完成相关题⽬。
表1-1数据库的表结构表(⼀)Student (学⽣表)属性名数据类型可否为空含义Sno varchar (20)否学号(主码)Sname varchar (20)否学⽣姓名Ssex varchar (20)否学⽣性别Sbirthday datetime可学⽣出⽣年⽉Class varchar (20)可学⽣所在班级表(⼆)Course(课程表)属性名数据类型可否为空含义Cno varchar (20)否课程号(主码)Cname varchar (20)否课程名称Tno varchar (20)否教⼯编号(外码)表(三)Score(成绩表)属性名数据类型可否为空含义Sno varchar (20)否学号(外码)Cno varchar (20)否课程号(外码)Degree Decimal(4,1)可成绩主码:表(四)Teacher(教师表)属性名数据类型可否为空含义Tno varchar (20)否教⼯编号(主码)Tname varchar (20)否教⼯姓名Tsex varchar (20)否教⼯性别Tbirthday datetime可教⼯出⽣年⽉Tbirthday datetime可教⼯出⽣年⽉Prof varchar (20)可职称Depart varchar (20)否教⼯所在部门表1-2数据库中的数据表(⼀)StudentSno Sname Ssex Sbirthday class 108曾华男1977-09-0195033 105匡明男1975-10-0295031 107王丽⼥1976-01-2395033 101李军男1976-02-2095033 109王芳⼥1975-02-1095031 103陆君男1974-06-0395031表(⼆)CourseCno Cname Tno3-105计算机导论8253-245操作系统8046-166数字电路8569-888⾼等数学831表(三)ScoreSno Cno Degree1033-245861053-245751093-245681033-105921053-105881093-105761013-105641073-105911073-105911083-105781016-166851076-166791086-16681表(四)TeacherTno Tname Tsex Tbirthday Prof Depart 804李诚男1958-12-02副教授计算机系856张旭男1969-03-12讲师电⼦⼯程系825王萍⼥1972-05-05助教计算机系831刘冰⼥1977-08-14助教电⼦⼯程系查询问题:1、查询Student表中的所有记录的Sname、Ssex和Class列。
数据库中SQL查询语句习题含答案查询问题:设教学数据库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 SWHERE Sdept =’CS ’;(2)检索学习课程号为C2的学生学号与姓名;(3)检索选修课程名为“DS ”的学生学号与姓名本查询涉及到学号、姓名和课程名三个属性,分别存放在S 和C 表中,但S 和C 表没有直接联系,必须通过SC 表建立它们二者的联系。
C → SC → S 基本思路:(1)首先在C 表中找出“DS ”课程的课程号Cno ;(2)然后在SC 表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno ;(3)最后在S 关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname 送入结果表列。
SELECT Sno ,Sname FROM SWHERE Sno IN (SELECT Sno FROM SCWHERE Cno IN (SELECT Cno FROM CWHERE Cname=‘DS ’));(4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SCWHERE Cno=‘C2’ OR Cno=‘C4’;(5)检索至少选修课程号为C2和C4的学生学号; SELECT SnoFROM SC X ,SC YWHERE X.Sno=Y.Sno AND/doc/d33e82944b7302768e9951e79b89680202d86b33.html o=‘C2’ AND /doc/d33e82944b7302768e9951e79b89680202d86b33.html o=‘C4’;(6)检索不学C2课的学生姓名和年龄;(7)检索学习全部课程的学生姓名;在表S 中找学生,要求这个学生学了全部课程。
1。
求总藏书量、藏书总金额,总库存册数、最高价、最低价。
select count(图书编号)as 总藏书量,sum(定价)as 藏书总金额,sum(实际数量) as 总库存册数,max(定价)as 最高价,min(定价) as 最低价from 图书卡片go2. 列出藏书在10本以上的书(书名、作者、出版社、年份)。
select 图书名称,作者姓名,出版社,出版日期from 图书卡片group by 图书编号having(coung(1)〉10)order by 图书名称go3. 哪些出版社的藏书种类数超过100种。
select 出版社as ’藏书种类数超过100种的出版社'from 图书卡片group by 出版社having(count(类别)>100)order by 出版社go4. 目前实际已借出多少册书?select sum(借出数量)as ’借出数量’from 图书卡片go5。
年份最久远的书。
select top 1 with ties 图书名称from 图书卡片order by 出版日期go6。
“数据库系统原理教程,王珊编,清华大学出版社,1998年出版”还有几本?select count(1)from 图书卡片where concaints(摘要,'”数据库系统原理教程,王珊编,清华大学出版社,1998年出版”')go7。
哪一年的图书最多?select top 1 with ties convert(substring(出版日期,1,4)) as 年份,count(1) as '图书数量' from 图书卡片group by 出版日期order by 图书数量descgo8. 哪本借书证未归还的图书最多?select top 1 with ties A。
读者编号,count(1)as ’借书数量’from 图书卡片A,借阅Bwhere A.图书编号=B。
实验5sql语句练习——图书馆数据库实验5sql语句练习——图书馆数据库实验目得(1)了解SQLServer数据库得逻辑结构与物理结构;(2)了解表得结构特点;(3)了解SQL Server得基本数据类型;(4)了解空值概念;(5)学会在企业管理器中创建数据库与表;(6)学会使用T—SQL语句创建数据库与表。
(7)学会使用T-SQL语句更新数据。
(7)学会使用T—SQL语句创建多种查询.实验准备首先要明确,能够创建数据库得用户必须就是系统管理员,或就是被授权使用CREATE DA TABASE语句得用户。
其次创建数据库必须要确定数据库名、数据库大小(最初得大小、最大得大小、就是否允许增长及增长方式)与存储数据库得文件.然后,确定数据库包含哪些表,以及所包含得各表得结构,还要了解SQL Server得常用数据类型,以创建数据库得表。
此外还要了解两种常用得创建数据库、表得方法,即在企业管理器中创建与使用T-SQL得CREATE DAT ABASE语句.实验内容假设有5本书设有一图书馆数据库,其中包括3个表,即图书表、读者表与借阅表。
三个表得结构如图:图书表结构列名说明数据类型约束说明书号图书唯一得编号定长字符串,长度为10 主键书名图书得名称定长字符串,长度为50 空值作者图书得编著者名定长字符串,长度为30 空值出版社图书得出版社定长字符串,长度为30 空值单价出版社确定得图书得单价浮点型,Float 空值读者表结构列名说明数据类型约束说明读者号读者唯一得编号定长字符串,长度为10 主键(1)用Sql语句创建图书馆数据库Create databaseLab05(2)用Sql语句创建上述3个表createtable book(ﻩbookId char(10)primary key,ﻩbookNamevarchar(50),ﻩbookWritervarchar(30),bookPublishvarchar(30),ﻩbookPricefloat)create tablereader(readerId char(10)primarykey,readerName varchar(8)notnull,readerSex char(2)not null,ﻩreaderOfficeTel char(8),readerDepartment varchar(30))create table借阅表(readerIdchar(10),bookIdchar(10),checkOutTime char(8),checkInTime char(8),primarykey(readerId,bookId),ﻩforeignkey (readerId) references reader(readerId),foreignkey (bookId)references book(bookId),)(3)基于图书馆数据库得3个表,用sql语言完成一下操作:1)为图书表增加一列“ISBN”,数据类型为CHAR(10)alter table book add ISBN char(10)2)为刚添加得ISBN列增加缺省值约束,约束名为ISBNDEF,缺省值为‘7111085949'ALTER TABLE bookADDCONSTRAINT ISBNDEFDEFAULT ('7111085949’) FORISBN3)删除图书表中ISBN列增加得缺省值约束alter table bookdrop ISBNDEF4)删除图书表中新增得ISBN列ALTER TABLE book DROPCOLUMNISBN5)查询全体图书得图书号、书名、作者、出版社与单价select bookId,bookName,bookWriter,bookPublish,bookPricefrom book6)查询全体图书得信息,其中单价打8折,并设置该列得别名为‘打折价’select bookId,bookName,bookWriter,bookPublish,(bookPrice*0、8)as打折价from book7)显示所有借阅者得读者号,并去掉重复行selectdistinct readerIdfrom 借阅表8)查询所有单价在20-30元之间得图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwhere bookPrice between 20and309)查询机械工业出版社、科学出版社、人民邮电出版社得图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwherebookPublish in('机械工业出版社’, '科学出版社',’人民邮电出版社’)10)查询既不就是机械工业出版社、人民邮电出版社、也不就是科学出版社出版得图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwhere bookPublish not in(’机械工业出版社’, '科学出版社','人民邮电出版社’)11)查询姓名得第二个字符就是'建’,并且只有2个字得读者得读者号及姓名select readerId,readerNamefromreaderwhere readerName like’_建'12)查询姓名不就是以‘王’、‘张'或‘李’开头得所有读者得读者号及姓名【方式一】查询出来得结果有问题!select readerId,readerNamefrom readerwhere readerName not in('王%','张%','李%')【方式二】select readerId,readerNamefrom readerwhere readerName not in(selectreaderNameﻩfromreaderwhere readerName like’王%’or readerName like'张%’orreaderNamelike'李%')13)查询无归还日期得借阅信息selectﻩbook、bookId,book、bookName,reader、readerId,reader、readerName,借阅表、checkOutTime as 借书时间,ﻩ借阅表、checkInTimeas 还书时间from借阅表,book,readerwhereﻩ借阅表、bookId = book、bookIdand借阅表、readerId=reader、readerIdand ﻩﻩ借阅表、checkInTimeisnull14)查询机械工业出版社图书得平均价格、最高价、最低价select avg(bookPrice)as 平均价格,max(bookPrice)as 最高价,min(bookPrice)as 最低价from bookwhere bookPublish =’机械工业出版社图书’15)查询读者得基本信息及借阅情况ﻩﻩselect reader、readerId,reader、readerName ,借阅表、bookId,book、bookName,book、bookPublishfrom reader ,借阅表,bookwherereader、readerId = 借阅表、readerIdﻩﻩﻩﻩandbook、bookId = 借阅表、bookIdﻩﻩand 借阅表、readerId='1000000007'16)查询至少借阅过1本机械工业出版社出版得图书得读者得读者号、姓名、书名及借阅本数,并按借阅本书多少降序排列selectr、Rno,Rname,count(borrow、Bno)借阅册数from borrow,b,rwhere b、bno=borrow、bnoand press='机械工业出版社' and borrow、rno=r、rnogroup by r、rno,Rnameorderbycount(borrow、Bno) desc17)查询与‘王小平'得办公电话相同得读者得姓名/* 使用“自连接方式”求解*/ﻩﻩselect b、readerName,b、readerId,a、readerOfficeTelfrom readera,reader bwhere a、readerName like ’王小平'anda、readerOfficeTel=b、readerOfficeTel/*18)查询所有单价小于平均单价得图书得书号、书名及出版社select bookId,bookName,bookPublish,bookPricefrom bookwhere bookPrice <(ﻩselectavg(bookPrice)as averagePriceﻩfrom book)19)查询‘科学出版社’得图书单价比‘机械工业出版社’最高单价还高得图书书名及单价select bookId,bookName,bookPublish,bookPricefrom bookwhere bookPublish like’科学出版社’and bookPrice〉(ﻩselectmax(bookPrice)ﻩfrom bookwhere bookPublish='机械工业出版社')20)查询‘科学出版社’得图书中单价比‘机械工业出版社'最低单价高得图书书名及单价select bookId,bookName,bookPublish,bookPricefrom bookwhere bookPrice 〈(ﻩselect max(bookPrice)ﻩfrom bookﻩwhere bookPublish ='机械工业出版社’ﻩ)and bookPublish like’科学出版社'21)创建机械工业出版社图书得视图CREATE VIEW 机械工业出版社ViewASSELECT bookId,bookName,bookPriceFROM bookWHERE bookPublish=’机械工业出版社'22)创建一个借阅统计视图,名为CountView,包含读者得读者号与总借阅本数CREATEVIEW CountViewASSELECT readerId as读者号,count(*) as 总借阅本数FROM借阅表GROUPBY readerId23)创建一个借阅统计视图,名为CountView10,包含借阅总本数打于2得读者号与总借阅本数CREATE VIEW借阅统计视图ViewASSELECT readerIdas读者号,count(*) as总借阅本数FROM 借阅表GROUP BY readerIdHAVINGCOUNT(*)〉2。
1实验目的1 .熟悉数据库的交互式SQL工具,2 . 熟悉通过SQL对数据库进行操作。
3 . 完成作业的上机练习。
2 实验工具sql server利用Sql server及其交互式查询工具-查询分析器来熟悉SQL。
3实验内容和要求1)实验内容:创建数据库boat,包括Sailors ,Boats,Reserves三个表,表结构如下:Sailors(sid: integer, sname: stri ng, rat ing: in teger, age:real)船员(船员编号,姓名,级别,年龄)Boats(bid: integer, bname: stri ng, color: stri ng)船(船编号,名称,颜色)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 •记录完成查询的查询结果。
数据库中有如下三个表:学生表(学号id,姓名name,性别sex,系部depart,年龄age)8个学生记录选课表(学号id,课程号cid,成绩grade) 12门课程课程表(课程号cid,课程名cname,学分Ccredit) 6门课程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 11995.从学生表中查询年龄小于18和大于20的所有学生的学号和姓名select学号,姓名from学生表where年龄<18 or年龄>206.从学生表中查询计算机系年龄小于20的所有学生的信息select*from学生表where系部='computer'and年龄<207.从学生表中查询姓名以A开头的学生的信息select*from学生表where姓名LIKE'A%'8.从学生表中查询姓名的第三个字符是A的学生的学号和姓名select学号,姓名from学生表where姓名LIKE'__A%'9.从学生表中查询姓名中包含“llen”的学生的学号和姓名select学号,姓名from学生表where姓名LIKE'%llen%'10.从学生表中查询姓名中包含“llen”且姓名只有5个字符的学生的学号和姓名select学号,姓名from学生表where姓名LIKE'%llen%'and len(姓名)=511.从学生表中查询有年龄信息的学生的学号和姓名select学号,姓名from学生表where年龄is not null12.从学生表中查询最大年龄和最小年龄select max(年龄)最大年龄,min(年龄)最小年龄from学生表13.从学生表中查询所有学生的平均年龄select avg(年龄)平均年龄from学生表14.从学生表中查询学校所有系的名字select distinct系部from学生表15.从学生表中查询学校共有多少个系select count(distinct系部)系部总和from学生表16.从选课表中查询所有学生的选课情况select distinct课程号from选课表17.从选课表中查询选修课程号为C01课程的学生的学号select学号from选课表where课程号='C01'18.从选课表中查询所有没有选C02课程的学生的学号select distinct学号from选课表where课程号!='C02'19.从选课表中查询有选修C01或C02课程的学生的学号select distinct学号from选课表where课程号='C01' or 课程号='C02'20.从选课表中查询学号为1101的学生的选课情况select课程号from选课表where学号='1101'21.从选课表中查询所有选课信息,即学号、课程号、成绩,并给成绩加8分select学号,课程号,成绩=成绩+8 from选课表22.从选课表中查询学号为1101的学生的所有选修课程成绩的总和select sum(成绩)成绩总和from选课表where学号='1101'23.从选课表中查询选修课程好为C02所有学生的成绩平均值并赋予“平均成绩”列名select avg(成绩)平均成绩from选课表where课程号='C02'24.从选课表中查询选修课程号C02且该门课程考试及格的学生的学号select学号from选课表where课程号='C02'and成绩>=6025.从选课表中查询所有无考试成绩的学生的学号和课程的课程号select学号,课程号from选课表where成绩is null26.从选课表中查询选修了课程号以C开头的学生的学号和所选课程的课程号select学号,课程号from选课表where课程号LIKE'C%'27.从选课表中查询选修了课程号以C、D或E开头学生的学号和所选课程的课程号select学号,课程号from选课表where课程号LIKE'[CDE]%'28.从选课表中查询选修了课程号中包含DB的学生的学号和课程号select学号,课程号from选课表where课程号LIKE'%DB%'29.从选课表中查询选修了课程的学生的学号select distinct学号from选课表where课程号is not null30.从选课表中查询选修了课程的学生的人数select count(distinct学号)总人数from选课表31.找出姓名以D开头的学生姓名和所有成绩select学生表.姓名,选课表.成绩from学生表join选课表on学生表.学号=选课表.学号where学生表.姓名LIKE'D%'32.查找的所有学生姓名与学号,结果按学号降序排序select 学号,姓名from学生表order BY学号DESC33.查找成绩介于80和90之间的学生姓名,结果按成绩和姓名升序排序select学生表.姓名from选课表join学生表on学生表.学号=选课表.学号where选课表.成绩between 80 and 90order BY选课表.成绩,学生表.姓名34.查找english系的所有学生姓名,结果按成绩和姓名升序排序select学生表.姓名,学生表.学号,选课表.成绩from选课表join学生表on学生表.学号=选课表.学号where学生表.系部='english'35.查找同时选修了C01及C02两门课程的学生姓名及学号select学生表.姓名,A.学号from选课表as A join选课表as B on A.学号=B.学号join学生表on学生表.学号=A.学号where A.课程号='C01'and B.课程号='C02'36.查找所有选修了课程的学生姓名及所在系别select distinct学生表.姓名,学生表.系部from学生表join选课表on学生表.学号=选课表.学号where选课表.课程号is not null37.查找成绩高于90分的学生姓名、学号及系别select学生表.姓名,学生表.学号,学生表.系部from学生表join选课表on学生表.学号=选课表.学号where选课表.成绩>=9038.找出选修了C01课程的学生姓名select学生表.姓名from学生表join选课表on学生表.学号=选课表.学号where选课表.课程号='C01'39.查询English系学生人数select count(*) English 系总人数from学生表where系部='English'40.分别查询各系的学生人数select系部,count(*)人数from学生表group by系部41.创建一个角色uus.CREATE ROLE uus;42.给uus授权SELECT,UPDATE,INSERT .GRANT SELECT,UPDATE,INSERTON StuTO uus43.增加一个登录,登录名为tp,密码为123,默认的数据库为stuEXEC sp_addlogin 'tp', '123', 'stu'44.将登录tp增加为test库的一个用户,并连接到test库。
SQL是一种用于管理关系型数据库的编程语言,因此常见的题目包括查询、插入、更新和删除数据等操作。
以下是一些常见的SQL题目:1. 查询某个表中的所有数据:```sqlSELECT * FROM table_name;```2. 查询某个表中的特定列的数据:```sqlSELECT column1, column2 FROM table_name;```3. 查询某个表中满足特定条件的行:```sqlSELECT * FROM table_name WHERE condition;```4. 插入一行数据到某个表中:```sqlINSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);```5. 更新某个表中满足特定条件的行的数据:```sqlUPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;```6. 删除某个表中满足特定条件的行:```sqlDELETE FROM table_name WHERE condition;```7. 查询某个表中的数据总数:```sqlSELECT COUNT(*) FROM table_name;```8. 对某个表中的数据进行排序:```sqlSELECT * FROM table_name ORDER BY column1;```9. 对某个表中的数据进行分组和聚合:```sqlSELECT column1, COUNT(*) FROM table_name GROUP BY column1;```10. 连接两个或多个表:```sqlSELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;```以上是一些常见的SQL题目,当然还有很多其他的题目,需要根据具体的数据库和应用场景来确定。
数据库管理系统专升本试题SQL查询与数据模型数据库管理系统(Database Management System,简称DBMS)是一种用于管理和组织数据的软件系统,它提供了对数据库进行创建、维护、查询和操作的功能。
作为一名数据库管理系统专升本考生,了解SQL查询和数据模型是必备的基础知识。
本文将围绕这两个主题展开讨论。
一、SQL查询SQL(Structured Query Language)是一种用于管理关系型数据库的语言。
通过SQL查询语句,我们可以对数据库中的数据进行检索和操作。
下面是一些常用的SQL查询语句及其功能介绍:1. SELECT查询SELECT语句是最常用的SQL查询语句,用于检索数据库中的数据。
它的基本格式如下:SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件;其中,列名表示需要检索的字段,可以使用通配符*表示所有字段;表名表示需要检索数据的表;条件用于筛选需要的数据。
2. INSERT插入INSERT语句用于向数据库的表中添加新的数据记录。
它的基本格式如下:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);其中,表名表示要插入数据的表,列1、列2表示要插入的字段名,VALUES后面跟着的是字段对应的值。
3. UPDATE更新UPDATE语句用于修改数据库表中的数据记录。
它的基本格式如下:UPDATE 表名 SET 列名1=新值1, 列名2=新值2 WHERE 条件;其中,表名表示要更新数据的表,SET后面跟着的是要更新的字段及对应的新值,WHERE条件用于筛选需要更新的数据。
4. DELETE删除DELETE语句用于删除数据库表中的数据记录。
它的基本格式如下:DELETE FROM 表名 WHERE 条件;其中,表名表示要删除数据的表,WHERE条件用于筛选需要删除的数据。
二、数据模型数据模型是数据库中数据的逻辑组织方式,它描述了数据之间的关系和约束。
sql 数据库题目当然可以,以下是一些关于 SQL 数据库的题目:1. 题目:假设有一个名为 "Students" 的表,包含以下列:StudentID, FirstName, LastName, Age。
请编写一个 SQL 查询,以获取年龄大于 20 的学生的所有信息。
```sqlSELECTFROM StudentsWHERE Age > 20;```2. 题目:假设有一个名为 "Orders" 的表,包含以下列:OrderID, ProductName, Quantity。
请编写一个 SQL 查询,以获取总数量大于 100 的产品名称。
```sqlSELECT ProductNameGROUP BY ProductNameHAVING SUM(Quantity) > 100;```3. 题目:假设有一个名为 "Employees" 的表,包含以下列:EmployeeID, FirstName, LastName, Department。
请编写一个 SQL 查询,以获取每个部门的员工数量。
```sqlSELECT Department, COUNT() as NumberOfEmployeesFROM EmployeesGROUP BY Department;```4. 题目:假设有一个名为 "Products" 的表,包含以下列:ProductID, ProductName, Price。
请编写一个 SQL 查询,以获取价格最高的前三个产品。
```sqlSELECT ProductName, PriceORDER BY Price DESCLIMIT 3;```5. 题目:假设有两个表,"Students" 和 "Courses",分别包含以下列:"StudentID", "FirstName", "LastName", "CourseID"。
SQL查询(图书数据库-题⽬)SQL查询设有⼀图书馆数据库,包括三个表:图书表、读者表、借阅表。
三个表的结构如下图所⽰。
要求:完成以下习题。
表1图书表结构表2读者表结构表3借阅表结构(1)创建图书馆数据库1.⽤SQL语句创建图书馆数据库。
答:CREATE DATABASE 图书馆(2)创建图书馆数据库的三个表。
(在SQL Server 2008平台环境下实现)2.创建图书表3.创建读者表4.创建借阅表(3)针对以上三个表,⽤SQL语⾔完成以下各项查询:5.查询全体图书的信息,其中单价打8折,并且将该列设置别名为’打折价’。
6.显⽰所有借阅者的读者号,并去掉重复⾏。
7.查询所有单价不在20到30之间的图书信息。
8.查询机械⼯业出版社、科学出版社、⼈民邮电出版社的图书信息9.查询既不是机械⼯业出版社、也不是科学出版社出版的图书信息10.查找姓名的第⼆个字符是’建’并且只有两三个字符的读者的读者号、姓名。
11.查找姓名不是以’王’、’张’或’李’开头的所有读者的读者号、姓名。
12.查询⽆归还⽇期的借阅信息。
13.查询机械⼯业出版社或科学出版社出版的图书名,出版社,单价。
14.求读者的总⼈数15.求借阅了图书的读者的总⼈数16.求机械⼯业出版社图书的平均价格、最⾼价、最低价。
17.查询借阅图书本数超过2本的读者号、总本数。
并按借阅本数值从⼤到⼩排序。
(4)针对以上三个表,⽤SQL语⾔完成以下各项多表连接查询、⼦查询、组合查询18.查询读者的读者号、姓名、借阅的图书名、借出⽇期、归还⽇期。
19.查询借阅了机械⼯业出版社出版,并且书名中包含’数据库’三个字的图书的读者,显⽰读者号、姓名、书名、出版社,借出⽇期、归还⽇期。
20.查询⾄少借阅过1本机械⼯业出版社出版的书的读者的读者号、姓名、书名,借阅本数,并按借阅本数多少降序排列。
21.查询与’王平’的办公电话相同的读者的姓名。
22.查询办公电话为’88320701’的所有读者的借阅情况,要求包括借阅了书籍的读者和没有借阅的读者,显⽰他们的读者号、姓名、书名、借阅⽇期。
实验八SQL数据查询参考答案实验八SQL 数据查询本实验以‘图书管理’数据库的‘图书’‘读者’‘借阅’3个表为基础进行查询操作。
1、查询‘高等教育出版社’和‘人民出版社’的图书的书名、作者和出版社。
SELECT 书名,作者,出版社FROM 图书WHERE 出版社="高等教育出版社" OR 出版社="人民出版社"SELECT 书名,作者,出版社FROM 图书WHERE 出版社in("高等教育出版社" ,"人民出版社")2、查询‘高等教育出版社’和‘中山大学出版社’图书的所有情况。
SELECT * FROM 图书WHERE 出版社="高等教育出版社" OR 出版社="中山大学出版社"3、查询各个出版社的图书最高价、平均价和种类数。
SELECT 出版社, MAX(单价) AS 最高价, A VG(单价) AS 平均价, COUNT(总编号) AS 种类数FROM 图书GROUP BY 出版社4、查询所有已借出的图书书名(不计重复图书)。
用多数据表连接方式**没有重复select distinct 书名from 图书, 借阅;where 图书.总编号=借阅.总编号SELECT DISTINCT 书名AS 已借出的图书;FROM 图书,借阅WHERE 图书.总编号=借阅.总编号注意,用不用DISTINCT,命令的结果是不一样的。
**用子查询形式select distinct 书名from 图书where 总编号in (select 总编号from 借阅)**用子查询形式select distinct 书名from 图书where 总编号in (select 总编号from 借阅)5、查询借书证号为A103003的读者姓名和所借图书的书名。
SELECT 姓名,书名,作者,出版社FROM 图书,借阅,读者;WHERE 图书.总编号=借阅.总编号;AND 读者.借书证号= 借阅.借书证号;AND 读者.借书证号="A103003"6、查询已借出的图书有多少种(不计重复图书)。
SQL查询语句常⽤⽰例SQL语⾔的应⽤1、找出姓李的读者姓名和所在单位。
2、列出图书库中所有藏书的书名及出版单位。
3、查找⾼等教育出版社的所有图书及单价,结果按单价降序排序。
4、查找价格介于10元和20元之间的图书种类,结果按出版单位和单价升序排序。
5、查找书名以计算机打头的所有图书和作者。
6、检索同时借阅了总编号为112266和449901两本书的借书证号。
7、查找所有借了书的读者的姓名及所在单位。
8、找出李某所借图书的所有图书的书名及借书⽇期。
9、查询1997年10⽉以后借书的读者借书证号、姓名和单位。
10、找出借阅了FoxPro⼤全⼀书的借书证号。
11、找出与赵正义在同⼀天借书的读者姓名、所在单位及借书⽇期。
12、查询1997年7⽉以后没有借书的读者借书证号、姓名及单位。
13、学会利⽤导出的⽅法创建图书管理数据库并完成下⾯SQL⾼级查询:14、求科学出版社图书的最⾼单价、最低单价、平均单价。
15、求信息系当前借阅图书的读者⼈次数。
16、求出各个出版社图书的最⾼价格、最低价格和册数。
17、分别找出各单位当前借阅图书的读者⼈数。
18、找出当前⾄少借阅了2本图书的读者及所在单位。
19、分别找出借书⼈次超过1⼈次的单位及⼈次数。
20、找出藏书中各个出版单位的册数、价值总额。
21、查询经济系是否还清所有图书。
如果还清,显⽰该系所有读者的姓名、所在单位和职称。
1 select姓名,单位from读者where姓名 like '李%'2 select书名,出版单位from图书3 select书名,单价from图书where出版单位 = '⾼等教育出版社' order by 单价 desc4 select分类号from图书where单价 >10 and 单价<20 order by 出版单位,单价5 select书名,作者from图书where书名 like '计算机%'6 select jy1.借书证号from借阅 jy1,借阅 jy2 where jy1.总编号='112266' and jy2.总编号='449901' and jy1.借书证号=jy2.借书证号7 select distinct 姓名,单位from读者,借阅where读者.借书证号=借阅.借书证号8 select distinct 书名,姓名,借书⽇期from读者,借阅,图书where读者.姓名 like '李%' and 读者.借书证号=借阅.借书证号 and 借阅.总编号=图书.总编号9 select distinct 借阅.借书证号,姓名,单位from借阅,读者where借阅.借书⽇期>='1997-10-01' and 借阅.借书证号=读者.借书证号10 select借书证号,书名from借阅,图书where图书.书名='FoxPro⼤全' and 图书.总编号=借阅.总编号11 select姓名,单位,借书⽇期from读者 ,借阅where借阅.借书证号=读者.借书证号 and 借阅.借书⽇期in (select借书⽇期from读者,借阅where读者.姓名='赵正义' and 读者.借书证号=借阅.借书证号)12 select distinct 借阅.借书证号,姓名,单位from借阅,读者where借阅.借书证号=读者.借书证号 and 借阅.借书⽇期<'1997-7-01'13 select出版单位, Max(单价)最⾼单价,Min(单价)最低单价,Avg(单价)平均单价from图书where出版单位='科学出版社'group by 出版单位14 select count(DISTINCT 借阅.借书证号)⼈数from读者,借阅where读者.单位='信息系' and 读者.借书证号=借阅.借书证号15 select出版单位, Max(单价)最⾼价格,Min(单价)最低价格,count(出版单位)册数from图书 group by 出版单位 order by count(出版单位)16 select单位,count(*)⼈数from读者,借阅where读者.借书证号=借阅.借书证号 group by 读者.单位17 select单位,count(*)⼈数from读者where读者.借书证号in (select借书证号from借阅) group by 单位18 select姓名,单位from读者,借阅where读者.借书证号=借阅.借书证号 group by 姓名,单位 Having count(借阅.借书证号) >=219 select单位,count(*)次数from读者where读者.借书证号in (select借书证号from借阅 ) group by 单位 Having count(*)>120 select出版单位,count(出版单位)册数 ,sum(单价)总价from图书 group by 出版单位21 if exists (select读者.借书证号from读者,借阅where读者.单位='经济系' and 读者.借书证号=借阅.借书证号) select'0'else select姓名,单位,职称from读者where读者. 单位='经济系'。
1.从USER表中查询所有用户的姓名和单位select姓名,单位From ers2.查询所有图书的信息select*From dbo.BookInfo3.查询单位为“计算机学院”的用户的全部信息select*From erswhere单位='计算机学院';4.查询已经预约但还没有借出的书的信息select*from dbo.Bookswhere状态='3'5.查询在这一星期之内借出且还没有归还的所有书的借阅证号、书号。
select借阅证号,书号From dbo.LoanWhere DATEDIFF(DAY,借阅日期,GETDATE())<=7;6.查询“清华出版社”出版的所有英文书的书名、作者、价格。
select书名,作者,价格From dbo.BookInfowhere出版社='清华大学出版社'AND语言='英文'7查询在流通总库或者是属于管理学院资料室的尚未借出的书select distinct BookInfo.书名from[dbo].[Books],[dbo].[BookInfo]where BookInfo.ISBN=Books.ISBN andBooks.状态='0'andBooks.位置IN('流通总库','管理学院资料室');8.查询价格在30元到50元之间的书select书名from[dbo].[BookInfo]where价格between30and50;9.查询2002年的借阅历史情况select*from[dbo].[LoanHist]where借阅日期between'2002-01-0100:00:00.000'and'2002-12-3100:00:00.000';10.查询李军、吴红、刘明三个人合作编写的书的书名、作者、出版社和价格select书名,作者,出版社,价格from[dbo].[BookInfo]where作者='李军,吴红,刘明';11.查询书名包含“数据库”的所有书名、作者、出版社和价格select书名,作者,出版社,价格from[dbo].[BookInfo]where书名LIKE'%数据库%'12.查询书名包含“数据库”的所有书名、作者、出版社及价格*1.5select书名,作者,出版社,1.5*价格from[dbo].[BookInfo]where书名LIKE'%数据库%'13.查询所有预约借书但还没有预约成功的信息,并按预约时间的先后排序。
SQL查询
设有一图书馆数据库,包括三个表:图书表、读者表、借阅表。
三个表的结构如下图所示。
要求:完成以下习题。
表1图书表结构
表2读者表结构
表3借阅表结构
(1)创建图书馆数据库
1.用SQL语句创建图书馆数据库。
答:CREATE DATABASE 图书馆
(2)创建图书馆数据库的三个表。
(在SQL Server 2008平台环境下实现)
2.创建图书表
3.创建读者表
4.创建借阅表
(3)针对以上三个表,用SQL语言完成以下各项查询:
5.查询全体图书的信息,其中单价打8折,并且将该列设置别名为’打折价’。
6.显示所有借阅者的读者号,并去掉重复行。
7.查询所有单价不在20到30之间的图书信息。
8.查询机械工业出版社、科学出版社、人民邮电出版社的图书信息
9.查询既不是机械工业出版社、也不是科学出版社出版的图书信息
10.查找姓名的第二个字符是’建’并且只有两三个字符的读者的读者号、姓名。
11.查找姓名不是以’王’、’张’或’李’开头的所有读者的读者号、姓名。
12.查询无归还日期的借阅信息。
13.查询机械工业出版社或科学出版社出版的图书名,出版社,单价。
14.求读者的总人数
15.求借阅了图书的读者的总人数
16.求机械工业出版社图书的平均价格、最高价、最低价。
17.查询借阅图书本数超过2本的读者号、总本数。
并按借阅本数值从大到小排序。
(4)针对以上三个表,用SQL语言完成以下各项多表连接查询、子查询、组合查询
18.查询读者的读者号、姓名、借阅的图书名、借出日期、归还日期。
19.查询借阅了机械工业出版社出版,并且书名中包含’数据库’三个字的图书的读者,显示
读者号、姓名、书名、出版社,借出日期、归还日期。
20.查询至少借阅过1本机械工业出版社出版的书的读者的读者号、姓名、书名,借阅本
数,并按借阅本数多少降序排列。
21.查询与’王平’的办公电话相同的读者的姓名。
22.查询办公电话为’88320701’的所有读者的借阅情况,要求包括借阅了书籍的读者和没
有借阅的读者,显示他们的读者号、姓名、书名、借阅日期。
(提示:外连接)
23.查询所有单价小于平均单价的图书号、书名、出版社
24.查询’科学出版社’的图书中单价比’机械工业出版社’最高单价还高的的图书书名、单
价。
25.查询'科学出版社'的图书中单价比'机械工业出版社'最低单价高的的图书书名、单价。
26.查询已被借阅过并已归还的图书信息。
27.查询从未被借阅过的图书信息。
28.查询正在借阅的图书信息。
29.查询借阅了机械工业出版社出版的书名中含有数'据库书'三个字的图书、或者借阅了
科学出版社出版的书名中含有数'据库书'三个字的图书的读者姓名、书名。
30.查询借阅了机械工业出版社出版的书名中含有数'据库书'三个字的图书并且也借阅了
科学出版社出版的书名中含有数'据库书'三个字的图书的读者姓名、书名。
31.查询借阅了机械工业出版社出版的书名中含有数'据库书'三个字的图书但没有借阅了
科学出版社出版的书名中含有数'据库书'三个字的图书的读者姓名、书名。