SQL学生管理系统题库与答案
SQL基础知识题库100道及答案(完整版)
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考试题及答案
用sql语句完成下面题目:1.创建数据库db_Student,在db_Student中创建四张表:学生表tb_Student,字段:SID(编号),SName(姓名),Sage(年龄),SSex(性别)教师表tb_Teacher,字段:TID(编号),TName(姓名)课程表tb_Course,字段:CID(编号),CName(名称),TID(教师编号)成绩表tb_Score,字段:SID(编号),CID(课程编号),Score(成绩)要求:分析添加约束,如:主键约束,外键约束等(15分)2.给表添加一些数据。
(10分)3.完成下列查询:(30分)①查询姓李的老师有多少位。
②查询c#课程的平均分。
③查询sql最高分的学生编号,学生姓名及分数。
④查询sql课程超平均分的学生姓名及分数。
⑤查询没有考sql的学生编号及姓名。
⑥查询没有学王老师课程的学生编号及姓名。
⑦查询课程表的第5到第10条记录,条件为编号不连续。
写两种方法。
⑧查询每个学生的编号,姓名,课程名称,成绩,老师信息。
⑨查询c#考试成绩前三名的学生,包含并列的行。
(可能查询的结果超过三行)⑩查询c#课程比sql课程的考试分数高的学生编号及姓名。
4.写存储过程完成下列问题,并写出存储过程执行语句:(15分)①根据学生编号查询学生的各科成绩及所教课程的老师②根据教师编号,查询所教课程(教师编号,姓名,课程编号,课程名)。
③写一种分页的存储过程。
5.将第3 题的查询⑧⑨两题写成视图,然后执行查询视图。
(10分)6.创建存储过程,在存储过程里创建事务,执行删除课程表的行时,同时删除成绩表的相应行。
(10分)7.创建触发器,实现删除教师表的行时,同时删除课程表的相应行。
(首先删除相应表的约束)(10分)-----------------------------------答案-------------------------------------------------------------------------------第一题create database db_Studenton primary(name='db_Student.mdf',filename='D:\db_Student.mdf',size=10mb,maxsize=unlimited,filegrowth=10%)log on(name='db_Student.ldf',filename='D:\db_Student.ldf',size=2mb,maxsize=unlimited,filegrowth=10%)gouse db_Student--学生表if exists(select*from sysobjects where name='tb_Student') drop table tb_Studentgocreate table tb_Student([SID]int primary key,SName varchar(10),Sage int,SSex bit)--教师表if exists(select*from sysobjects where name='tb_Teacher') drop table tb_Teachergocreate table tb_Teacher(TID int primary key,TName varchar(10))--课程表if exists(select*from sysobjects where name='tb_Course') drop table tb_Coursegocreate table tb_Course(CID int primary key,CName varchar(20),TID int foreign key references tb_Teacher(TID))--成绩表if exists(select*from sysobjects where name='tb_Score') drop table tb_Scoregocreate table tb_Score([SID]int foreign key references tb_Student([SID]), CID int foreign key references tb_Course(CID),Score float)--第题insert into tb_Student values(1,'张山',18,0)insert into tb_Student values(2,'李四',16,1)insert into tb_Student values(3,'王五',21,1)insert into tb_Student values(4,'傻笑',20,0)select*from tb_Studentinsert into tb_Teacher values(1,'于老师')insert into tb_Teacher values(2,'於老师')insert into tb_Teacher values(3,'雷老师')select*from tb_Teacherinsert into tb_Course values(1,'VF课程',1)insert into tb_Course values(2,'VB课程',2)insert into tb_Course values(3,'C#课程',3)insert into tb_Course values(4,'SQL课程',3)select*from tb_Courseinsert into tb_Score values(1,1,80)insert into tb_Score values(1,2,70)insert into tb_Score values(1,3,70)insert into tb_Score values(1,4,70)insert into tb_Score values(2,1,90)insert into tb_Score values(2,2,50)insert into tb_Score values(2,3,80)insert into tb_Score values(2,4,50)insert into tb_Score values(3,1,50)insert into tb_Score values(3,2,50)insert into tb_Score values(3,3,90)insert into tb_Score values(3,4,90)insert into tb_Score values(4,1,50)insert into tb_Score values(4,2,50)insert into tb_Score values(4,3,100)insert into tb_Score values(4,4,90)select*from tb_Score--第题--①查询姓李的老师有多少位select COUNT(*)from tb_Teacher where TName like'李%'--②查询c#课程的平均分select AVG(SCore)C#课程平均分from tb_Score where CID=(select CIDfrom tb_Course where CName='c#课程')--③查询sql最高分的学生编号,学生姓名及分数。
sql考试题及答案
sql考试题及答案SQL考试题及答案一、选择题(每题2分,共20分)1. 下列哪个SQL语句用于查询数据?A. SELECTB. INSERTC. UPDATED. DELETE答案:A2. 以下哪个SQL语句用于删除表中的数据?A. DROP TABLEB. DELETE FROMC. TRUNCATE TABLED. ALTER TABLE答案:B3. SQL中的主键约束是什么?A. UNIQUEB. PRIMARY KEYC. FOREIGN KEYD. CHECK答案:B4. 以下哪个函数用于计算字符串的长度?A. CONCAT()B. SUBSTRING()C. LENGTH()D. UPPER()答案:C5. 以下哪个语句用于添加新的数据表?A. CREATE DATABASEB. CREATE TABLEC. ALTER TABLED. DROP TABLE答案:B6. SQL中的LIKE语句用于什么?A. 排序B. 条件搜索C. 聚合数据D. 连接表答案:B7. 以下哪个语句用于修改表结构?A. CREATE TABLEB. ALTER TABLEC. DROP TABLED. TRUNCATE TABLE答案:B8. SQL中的GROUP BY语句用于什么?A. 排序结果B. 聚合数据C. 过滤数据D. 连接表答案:B9. 以下哪个语句用于删除数据库?A. DROP TABLEB. DROP DATABASEC. DELETE FROMD. TRUNCATE TABLE答案:B10. SQL中的INNER JOIN用于什么?A. 内连接B. 外连接C. 全连接D. 交叉连接答案:A二、填空题(每空2分,共20分)1. SQL中的______语句用于插入数据到表中。
答案:INSERT INTO2. 要查询所有列,可以使用SQL中的______关键字。
答案:*3. SQL中的______语句用于删除表。
大一sql数据库考试题及答案
大一sql数据库考试题及答案一、单项选择题(每题2分,共20分)1. SQL(Structured Query Language)是一种用于_______的语言。
A. 数据库管理B. 操作系统C. 网络通信D. 编程开发答案:A2. 在SQL中,用于查询数据库中数据的语句是_______。
A. INSERTB. UPDATEC. DELETED. SELECT答案:D3. 如果需要向数据库表中插入新的数据行,应使用_______语句。
A. SELECTB. INSERTC. UPDATED. DELETE答案:B4. 在SQL中,用于修改表中数据的语句是_______。
A. INSERTB. UPDATEC. DELETED. SELECT5. 用于删除数据库表中数据的SQL语句是_______。
A. INSERTB. UPDATEC. DELETED. SELECT答案:C6. SQL中的_______关键字用于定义查询结果中返回的列。
A. WHEREB. FROMC. SELECTD. INTO答案:C7. 在SQL查询中,使用_______关键字可以对结果进行排序。
A. ORDER BYB. GROUP BYC. HAVINGD. WHERE答案:A8. 当需要从多个表中查询数据时,应使用_______语句。
A. SELECTB. INSERTC. UPDATED. JOIN答案:D9. SQL中的_______子句用于指定查询条件。
B. FROMC. GROUP BYD. HAVING答案:A10. 在SQL中,使用_______关键字可以将查询结果存储到一个新表或现有表中。
A. INTOB. FROMC. SELECTD. INSERT答案:A二、多项选择题(每题3分,共15分)1. SQL支持的数据类型包括_______。
A. 整型B. 浮点型C. 字符型D. 日期型答案:A, B, C, D2. 在SQL中,以下哪些操作可以用于数据的更新?A. INSERTB. UPDATEC. DELETED. SELECT答案:B, C3. 下列哪些关键字用于SQL查询中分组数据?A. WHEREB. GROUP BYC. HAVINGD. ORDER BY答案:B, C4. 在创建数据库表时,以下哪些约束是常用的?A. PRIMARY KEYB. FOREIGN KEYC. UNIQUED. CHECK答案:A, B, C, D5. SQL中用于数据聚合的函数包括_______。
sql考试题及答案
sql考试题及答案一、选择题1. SQL是什么意思?a. Structured Query Languageb. Sequential Query Languagec. Structured Question Languaged. Sequential Question Language答案:a. Structured Query Language2. 下列哪个关键词用于在SQL中创建新表?a. UPDATEb. INSERTc. CREATEd. SELECT答案:c. CREATE3. 在SQL中,用于查找符合一定条件的记录的关键词是?a. SELECTb. UPDATEc. INSERTd. DELETE答案:a. SELECT4. 在SQL中,如何在表中添加新的数据?a. INSERT INTOb. ADD INTOc. UPDATEd. MODIFY答案:a. INSERT INTO5. 在SQL中,如何删除表中的数据?a. DELETE ROWb. REMOVEc. DELETE FROMd. ERASE FROM答案:c. DELETE FROM二、填空题1. SQL中用于选择所有列的通配符是______。
答案:*2. SQL中用于指定唯一键的关键词是______。
答案:PRIMARY KEY3. SQL中用于按照某一列对结果进行排序的关键词是______。
答案:ORDER BY4. SQL中用于更新数据的关键词是______。
答案:UPDATE5. SQL中用于计算某一列的总和的函数是______。
答案:SUM三、简答题1. 请解释SQL中的JOIN操作。
答案:JOIN操作用于连接两个或多个表,基于表之间的关联关系获取相关数据。
常用的JOIN类型包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。
2. 什么是SQL注入?如何防止SQL注入?答案:SQL注入是一种恶意的攻击方式,通过在用户输入的数据中插入恶意的SQL代码,以获取、修改或删除数据库中的数据。
sql期末试题及答案
sql期末试题及答案在下面的文章中,我将为您呈现一份SQL期末试题及答案,以便您进行学习和复习。
请注意,我会尽力满足您对整洁美观排版和流畅语句的要求,同时保持准确性和阅读体验。
祝您阅读愉快!SQL期末试题及答案一、选择题1. 下列哪个是SQL的关键字?a) SELECTb) OPTIONc) VALUESd) JOIN答案:a) SELECT2. SQL是什么的缩写?a) Simple Query Language(简单查询语言)b) Structured Query Language(结构化查询语言)c) Sequential Query Language(顺序查询语言)d) Systematic Query Language(系统化查询语言)答案:b) Structured Query Language(结构化查询语言)3. 下面哪个SQL函数用于返回指定字符的长度?a) COUNTb) LENGTHc) MAXd) AVG答案:b) LENGTH4. 在SQL中,以下哪个关键字用于过滤查询结果?a) GROUP BYb) ORDER BYc) WHEREd) HAVING答案:c) WHERE5. 下面哪个SQL关键字用于对结果集进行排序?a) LIMITb) SORTc) ORDER BYd) ASC答案:c) ORDER BY二、填空题1. 在数据库中,用于创建新表的关键字是____。
答案:CREATE2. 以下是MySQL数据库管理系统的一些函数:- SUM:用于计算指定列的总和。
- MAX:用于返回指定列的最大值。
- MIN:用于返回指定列的最小值。
请补充缺失的函数名称:____。
答案:AVG(用于返回指定列的平均值)三、简答题1. 什么是SQL注入攻击?如何防止SQL注入攻击?答:SQL注入攻击是指恶意用户通过在用户输入的数据中插入恶意的SQL代码来破坏、篡改或者获取数据库中的数据。
2018年sql考试题及答案
2018年sql考试题及答案1. 题目:如何使用SQL语句查询出所有学生的姓名和年龄?答案:可以使用如下SQL语句进行查询:```sqlSELECT name, age FROM students;```2. 题目:如果需要找出所有学生的姓名和他们所选课程的名称,应该如何编写SQL查询?答案:可以使用JOIN语句来关联学生表和课程表,如下所示:```sqlSELECT , c.course_nameFROM students sJOIN enrollment e ON s.student_id = e.student_idJOIN courses c ON e.course_id = c.course_id;```3. 题目:如何更新数据库中某个学生的邮箱地址?答案:可以使用UPDATE语句来更新学生的邮箱地址,如下所示:```sqlUPDATE studentsSETemail='*********************'WHERE student_id = 123;```4. 题目:如何删除数据库中不再需要的课程记录?答案:可以使用DELETE语句来删除课程记录,如下所示:```sqlDELETE FROM coursesWHERE course_id = 456;```5. 题目:如何插入一条新的课程记录到数据库中?答案:可以使用INSERT语句来插入新的课程记录,如下所示:```sqlINSERT INTO courses (course_id, course_name, credit_hours) VALUES (789, 'New Course', 3);```6. 题目:如何查询出所有选修了特定课程的学生的姓名和学号?答案:可以使用子查询来实现这一查询,如下所示:```sqlSELECT , s.student_idFROM students sWHERE s.student_id IN (SELECT e.student_idFROM enrollment eWHERE e.course_id = (SELECT course_id FROM courses WHERE course_name = 'Specific Course'));```7. 题目:如何统计每个课程的平均成绩?答案:可以使用GROUP BY和AVG函数来统计每个课程的平均成绩,如下所示:```sqlSELECT c.course_name, AVG(g.grade) AS average_gradeFROM courses cJOIN enrollment e ON c.course_id = e.course_idJOIN grades g ON e.student_id = g.student_id AND e.course_id = g.course_idGROUP BY c.course_name;```8. 题目:如何查询出所有没有选修任何课程的学生的姓名?答案:可以使用NOT IN子查询来找出没有选修任何课程的学生,如下所示:```sqlSELECT nameFROM studentsWHERE student_id NOT IN (SELECT student_id FROM enrollment);```9. 题目:如何为学生表添加一个新的字段,例如“入学年份”?答案:可以使用ALTER TABLE语句来添加新字段,如下所示:```sqlALTER TABLE studentsADD COLUMN entry_year YEAR;```10. 题目:如何将数据库中所有学生的邮箱地址更新为小写?答案:可以使用UPDATE语句和LOWER函数来更新邮箱地址,如下所示:```sqlUPDATE studentsSET email = LOWER(email);```。
sql数据库习题与答案
sql数据库习题与答案SQL数据库习题与答案SQL(Structured Query Language)是一种用于管理关系型数据库的标准化语言。
在数据库管理系统中,SQL可以用于执行各种操作,如插入、更新、删除和查询数据。
对于学习SQL的人来说,练习SQL数据库习题是非常重要的。
下面将为大家提供一些常见的SQL数据库习题以及相应的答案。
1. 查询所有学生的信息答案:SELECT * FROM students;2. 查询所有学生的姓名和年龄答案:SELECT name, age FROM students;3. 查询所有学生的姓名,并按照年龄从小到大进行排序答案:SELECT name FROM students ORDER BY age;4. 查询学生表中年龄大于18岁的学生信息答案:SELECT * FROM students WHERE age > 18;5. 查询学生表中姓“张”的学生信息答案:SELECT * FROM students WHERE name LIKE '张%';6. 查询学生表中的姓名和对应的课程名称答案:SELECT , FROM students INNER JOIN course ON students.course_id = course.id;7. 查询学生表中每个班级的学生人数答案:SELECT class, COUNT(*) FROM students GROUP BY class;通过以上SQL数据库习题与答案的练习,可以帮助大家更好地理解和掌握SQL语言的基本操作和常用查询。
同时,也可以帮助大家提升解决实际问题的能力,为今后的数据库管理工作打下坚实的基础。
希望大家能够认真对待SQL数据库习题,不断提升自己的技能水平。
SQL考试试题含答案
SQL考试试题含答案1.选择题:以下哪个SQL命令用于创建一个新的数据库?A.CREATE TABLEB.CREATE DATABASEC.DROP DATABASED.ALTER DATABASE答案:B2.填空题:在SQL中,使用____关键字可以删除一个已经存在的表。
答案:DROP TABLE3.判断题:以下SQL语句是否正确?"SELECT*FROM users WHERE name='John';"A.正确B.错误答案:A4.简答题:解释SQL中的主键(PRIMARY KEY)是什么?答案:主键是一个或多个字段的组合,用于在数据库表中唯一标识每条记录。
一个表只能有一个主键,且主键的值不能为NULL。
5.选择题:在SQL中,哪个函数用于计算表中所有记录的总数?A.COUNT(*)B.SUM(*)C.AVG(*)D.MAX(*)答案:A6.填空题:在SQL中,使用____关键字可以更新表中的记录。
答案:UPDATE7.判断题:以下SQL语句是否正确?"INSERT INTO customers(name,email)VALUES('Alice','*****************');"A.正确B.错误答案:A8.简答题:解释SQL中的外键(FOREIGN KEY)是什么?答案:外键是一个字段(或一组字段),它在一个表中引用另一个表的主键。
外键用于建立两个表之间的关系,并确保数据的引用完整性。
9.选择题:在SQL中,哪个命令用于删除数据库中的表?A.DELETE TABLEB.DROP TABLEC.REMOVE TABLED.CLEAR TABLE答案:B10.填空题:在SQL中,使用____关键字可以添加一个新列到现有的表中。
答案:ALTER TABLE。
SQL数据库管理与开发》试题及习题参考答案M
《SQL数据库管理与开发教程与实训》试题(M卷)王鹏老师一、单项选择题(每小题1分,共10分)1. 下列四项中,不属于数据库特点的是( )。
A.数据共享B.数据完整性C.数据冗余很高D.数据独立性高2. 反映现实世界中实体及实体间联系的信息模型是( )。
A.关系模型B.层次模型C.网状模型D.E-R模型3. 下列四项中,不正确的提法是( )。
A.SQL语言是关系数据库的国际标准语言B.SQL语言具有数据定义、查询、操纵和控制功能C.SQL语言可以自动实现关系数据库的规范化D.SQL语言称为结构查询语言4. 在SQL中,SELECT语句的"SELECT DISTINCT"表示查询结果中 ( )A.属性名都不相同B.去掉了重复的列C.行都不相同D.属性值都不相同5.在数据操作语言(DML)的基本功能中,不包括的是 ( )A.插入新数据B.描述数据库结构C.修改数据D.删除数据6. 在采用客户机/服务器体系结构的数据库应用系统中,应该将用户应用程序安装在 ( )A.客户机端B.服务器端C.终端D.系统端7、实体型学生与任课教师之间具有()联系。
A 一对一B 一对多C 多对一D 多对多8. 数据库系统的日志文件用于记录下述哪类内容()A) 程序运行过程 B) 数据查询操作C) 程序执行结果 D) 数据更新操作9. 数据库管理系统的英文缩写是()。
A.DB B.DBS C.DBA D.DBMS10. SQL语言中,删除一个表的命令是( )A. DELETEB. DROPC. CLEARD. REMOVE二、判断题(每空1分,共10分)1. 在查询分析器中执行SQL语句的快捷键是F1。
2. 计算ASCII('also')结果为97。
3. UNION运算符是用于将两个或多个检索结果合并成一个结果。
4. 在事务中包含create database语句吗?5. Lock权限不是数据库的访问权限。
SQL程序练习题及答案
已知一学生成绩信息库,其中库里包含以下四个数据表,按要求完成以下各题的代码程序设计。
学生基本信息表:表名:student 说明:学生基本信息表课程信息表:表名:couse 说明:课程信息表选课表:表名:slt_couse 说明:选课表院系信息表:表名:dept 说明:院系信息表代码要求如下:1、分别用T-SQL语句写出上述几个表的创建过程。
学生基本信息表USE testGOCREATE TABLE student(st_id nVarChar(9) primary key NOT NULL ,st_nm nVarChar(8) NOT NULL ,st_sex nVarChar(2) NULL ,st_birth datetime NULL ,st_score int NULL ,st_date datetime NULL ,st_ from nVarChar(20) NULL ,st_dpid nVarChar(2) NULL ,st_ mnt tinyint NULL)创建课程信息表:CREATE TABLE couse(cs_id nVarChar(4) primary key NOT NULL ,cs_nm nVarChar(20) NOT NULL ,cs_tm int NULL ,cs_sc int NULL)选课表:CREATE TABLE couse(cs_id nVarChar(4) NOT NULL ,st_id nVarChar(9) NOT NULL ,score int NULL ,sltdate datetime NULL)院系信息表:USE testGOCREATE TABLE dept(dp_id nVarChar(2) NOT NULL ,dp_nm nVarChar(20) NOT NULL ,dp_drt nVarChar(8) NULL ,dp_tel nVarChar(12) NULL)2、向dept表插入一条记录,系号11,系名自动控制系,系主任为李其余,电话81234567。
数据库期末考试题SQL及答案
数据库期末考试题SQL及答案一、单项选择题(每题2分,共10分)1. 在SQL中,用于创建新表的语句是:A. CREATE TABLEB. CREATE DATABASEC. INSERT INTOD. SELECT答案:A2. 如果想要查询所有学生的姓名和成绩,应该使用以下哪个SQL语句?A. SELECT name, score FROM students;B. SELECT * FROM students;C. SELECT name FROM students;D. SELECT score FROM students;答案:A3. 在SQL中,用于更新表中数据的语句是:A. INSERTB. UPDATEC. DELETED. SELECT答案:B4. 下列哪个函数用于计算字段值的平均值?A. AVG()B. SUM()C. COUNT()D. MAX()答案:A5. 如果想要删除名为“students”的表,应该使用以下哪个SQL语句?A. DROP TABLE students;B. REMOVE TABLE students;C. DELETE TABLE students;D. DESTROY TABLE students;答案:A二、多项选择题(每题3分,共15分)1. 下列哪些SQL语句用于查询数据?A. SELECTB. INSERTC. UPDATED. DELETE答案:A2. 在SQL中,以下哪些选项是数据类型?A. INTB. VARCHARC. DATED. BOOLEAN答案:A, B, C3. 以下哪些关键字用于连接表?A. JOINB. UNIONC. INTERSECTD. EXCEPT答案:A4. 在SQL中,哪些语句用于删除数据?A. DELETEB. DROPC. REMOVED. TRUNCATE答案:A, B, D5. 下列哪些函数用于字符串操作?A. CONCAT()B. LENGTH()C. SUBSTRING()D. SUM()答案:A, B, C三、填空题(每题3分,共15分)1. 在SQL中,使用________关键字来定义主键。
sql经典练习题库(附答案)
SQL练习题库表结构Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表试题:1、查询“0001”课程比“C002”课程成绩高的所有学生的学号;Select s# from scWhere c#='0001' and score>any(select score from sc c#='0002')2、查询平均成绩大于60分的同学的学号和平均成绩;select s#,avg(score) from SCgroup by s#having avg(score)>603、查询所有同学的学号、姓名、选课数、总成绩;select student.s#,student.sname,count(sc.c#)as 选课数,sum(score)总成绩from student,scwhere student.s#=sc.s#group by student.s#,student.sname4、查询姓“张”的老师的个数;select count(*)人数from teacherwhere tname like'张%'5、查询没学过“叶平”老师课的同学的学号、姓名;select student.s#,student.sname from student,course,teacher,scwhere student.s#=sc.s# and course.t#=teacher.t# and teacher.t# not in(select t# from teacher where tname='张丽芬') group by student.s#,student.sname6、查询学过“0001”并且也学过编号“0002”课程的同学的学号、姓名;select sc.s#,sname from sc,studentwhere sc.c# = '0001' and student.s# = sc.s# and sc.s# in (select s# from sc where sc.c# = '0002')--并(两表值)select student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0001'unionselect student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0002'--交(有相同值)select student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0001'intersectselect student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0002'--差(不同值)select student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0001'exceptselect student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0002'7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select student.s#,student.sname from student,course,teacher,scwhere student.s#=sc.s# and course.t#=teacher.t# and teacher.t# in(select t# from teacher where tname='张丽芬')group by student.s#,student.sname8、查询课程编号“001”的成绩比课程编号“002”课程低的所有同学的学号、姓名;select student.s#,sname,score from student,scwhere student.s#=sc.s# and score in(( select score from sc where c#='0001' )<all( select score from sc where c#='0002' )) 9、查询所有课程成绩小于60分的同学的学号、姓名;select student.s#,sname from studentwhere s# in(select s# from sc where score<60)10、查询没有学全所有课的同学的学号、姓名;select student.s#,student.sname from student,scwhere student.s#=sc.s#group by student.s#,student.snamehaving count(c#)<(select count(c#) from course)11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;select student.s#,student.sname from student,scwhere student.s#=sc.s# and c#=any(select c# from scwhere s#='1001')group by student.s#,student.sname12、查询至少学过学号为“0001”同学所有一门课的其他同学学号和姓名;Select sc.s#,sname from sc inner join student on sc.s#=student.s#Where c# in (select c# from sc where s#=’0001’)13、把“SC”表中“赵雁南”老师教的课的成绩都更改为此课程的平均成绩;update scset score=(select avg(sc.score) from sc,teacher,coursewhere sc.c#=course.c# and course.t#=teacher.t# and teacher.tname='赵雁南')where sc.c#=(select c# from course,teacher where course.t#=teacher.t# and tname='赵雁南' )14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select student.s#,sname from student,scwhere student.s#=sc.s# and sc.c#=all(select c# from sc where s#='1005') and student.s#<>'1005'15、删除学习“朱玉文”老师课的SC表记录;delete from scwhere c# in(select c# from sc where c# in (select c# from course,teacher where teacher.t#=course.t# and teacher.tname='朱玉文' ) )16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“0002”课程的同学学号、号课的平均成绩;insert into scvaluesselect s# from sc where s# not in (select s# from sc where c#='0002'select avg(score) as 平均成绩from sc where c#='0002'17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分select sc.s#,ame,sc.score,avg(score)as 平均成绩from sc inner join course on sc.c#=course.c#where sc.c# in(select c# from course where cname=any(select cname from course where cname in('计算机基础','Oracle','软件工程')))group by sc.s#,ame,sc.scoreorder by avg(score) descSELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='0001') AS 计算机基础,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='0002') AS Oracle,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='0011') AS 软件工程,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM sc AS tGROUP BY S#ORDER BY avg(t.score) desc18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分select c# 课程ID,max(score) 最高分,min(score) 最低分from scgroup by c#19、按各科平均成绩从低到高和及格率的百分数从高到低顺序select c#, avg(score) from scwhere score>60group by c#20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(),马克思(),OO&UML (),数据库()21、查询不同老师所教不同课程平均分从高到低显示select course.t#,avg(sc.score) as 平均分from sc,coursewhere sc.c#=course.c#group by course.t#order by avg(sc.score) desc22、查询如下课程成绩第3 名到第6 名的学生成绩单:企业管理,马克思,UML,数据库[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩select student.s#,student.sname,sc.score,ame from student inner join sc on student.s#=sc.s#inner join course on sc.c#=course.c#where ame in('oracle','电路分析','计算机基础')order by ame,sc.score desc23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]select sc.c#,ame,count(*)人数from sc,coursewhere course.c#=sc.c#group by sc.c#,ame24、查询学生平均成绩及其名次select sc.s#,avg(score) from scgroup by sc.s#order by avg(score) desc25、查询各科成绩前三名的记录考虑成绩并列情况select s#,c# ,score from scwhere score in (select distinct top 3 score from scgroup by c#,score)order by score desc26、查询每门课程被选修的学生数select c# as 课程号,count(c#)as 选修人数from scgroup by c#order by count(c#) desc27、查询出只选修了一门课程的全部学生的学号和姓名select sc.s#,student.sname from sc inner join student on student.s#=sc.s#group by sc.s#,student.snamehaving count(c#)=128、查询男生、女生人数select ssex, count(*) as 总人数from studentgroup by ssex29、查询姓“张”的学生名单select sname from studentwhere sname like '张%'30、查询同名同性学生名单,并统计同名人数select ssex,count(*) from studentgroup by ssex31、同年出生的学生名单(注:Student表中Sage列的类型是datetime)32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列select c#,avg(score)平均成绩from scgroup by c#order by avg(score) asc33、查询平均成绩大于的所有学生的学号、姓名和平均成绩select top 1 student.s#,student.sname,avg(score)平均成绩from student inner join sc on student.s#=sc.s#group by student.s#,student.snameorder by avg(score) desc34、查询课程名称为“数据库”,且分数低于80的学生姓名和分数select student.sname,sc.score from sc,student,coursewhere student.s#=sc.s# and sc.c#=course.c# and ame='计算机基础' and sc.score<80group by student.sname,sc.score35、查询所有学生的选课情况;select student.s#,sname,c# from student left join sc on student.s#=sc.s#36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;select student.sname,ame,sc.score from student,sc,coursewhere student.s#=sc.s# and sc.c#=course.c# and sc.score>70order by score desc37、查询不及格的课程,并按课程号从大到小排列select c#,score from scwhere score<60order by c#38、查询课程编号为0001且课程成绩在70分以上的学生的学号和姓名;select student.s#,sname from sc,studentwhere c#='0001' and score>70 and student.s#=sc.s#39、求选了课程的学生人数select count(s#)人数from scwhere sc.score<>040、查询选修“oracle”课程的学生中,成绩最高的学生姓名及其成绩select top 1 student.sname,max(sc.score)成绩最高from student inner join sc on student.s#=sc.s# inner join course on sc.c#=course.c#where ame='oracle'group by student.snameorder by max(sc.score) desc41、查询各个课程及相应的选修人数select ame,count(sc.c#) as 选修人数from sc inner join course on sc.c#=course.c#group by ameorder by count(sc.c#) desc,ame asc42、查询不同课程成绩相同的学生的学号、课程号、学生成绩43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 score FROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#44、统计每门课程的学生选修人数(超过人的课程才统计)。
SQL题库及参考答案
SQL题库1.下列四项中,不属于数据库特点的是()。
A.数据共享(查询)B.数据完整性(实体,域,引用完整性,自定义完整性)C.数据冗余很高D.数据独立性高(关系型数据库,E-R,实体(table)和了解(表和表的关联关系))2.SQL Server安装程序创建4个系统数据库,下列哪个不是()系统数据库。
A.master (系统信息比如帐号密码)B.model(模型)C.pubD.msdb(调度作业等)tempdb(临时数据和存储过程)3.()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。
数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMS(数据库管理系统)B.DBC.DBS(System 系统:DB,DBMS,DBA,用户,软硬件)D.DBA(administrator 管理员)4.下列哪个不是sql 数据库文件的后缀( )。
A..mdf(主数据文件推荐扩展名)B..ldf(log日志日志文件推荐扩展名)C..tifD..ndf(次数据文件推荐扩展名)5.数据定义语言的缩写词为( )。
A.DDL(data definintion language:create)B.DCL(data control language :select语句)C.DML(data manipulation language:insert update delete truncate)D.DBL6.数据库管理系统的英文缩写是()。
A.DBMSB.DBSC.DBAD.DB7.用于获取系统日期的函数是()。
A.YEAR():select YEAR('2012-2-2')B.GETDATE():演示C.COUNT():聚合函数之统计函数D.SUM():聚合函数之求和函数8.SQL Server系统中的所有服务器级系统信息存储于哪个数据库()。
A. masterB. modelC. tempdbD. msdb9.以下关于外键和相应的主键之间的关系,正确的是( )。
(完整版)sql练习题+答案
(一)新建以下几个表student(学生表):其中约束如下:(1)学号不能存在相同的(2)名字为非空(3)性别的值只能是'男'或'女'(4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系(5)出生日期为日期格式(6)年龄为数值型,且在0~100 之间create table student (age smallint constraint d check ( age between 0cs(成绩表):其中约束如下:1)sno 和cno 分别参照student 和course 表中的sno,cno 的字段2)cj(成绩)只能在0~100之间,可以不输入值create table cs (sno smallint not null referencesstudent( sno ),- 定义成外键cno smallint not null referencescourse ( cno ), -定义成外键cj smallint constraint e check ( cj between 0 and100 ), 检查约束——cj( 成绩) 只能在~100 之间,可以不输入值constraint f primary key ( sno , cno ) ----- 定义学生学号和课程号为sc 表的主键)course 课程表)其约束如下:1)课程号( cno)不能有重复的2)课程名( cname)非空三)针对学生课程数据库查询(1)查询全体学生的学号与姓名。
(2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。
(3)查询全体学生的详细记录。
select * from student(4)查全体学生的姓名及其出生年份。
select sname , birth from student(5)查询学校中有哪些系。
select distinct dept from student(6)查询选修了课程的学生学号。
SQL题库(有答案)
一、选择题:1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(_B__)A、只存在一对多的实体关系,以图形方式来表示。
B、以二维表格结构来保存数据,在关系表中不允许有重复行存在。
C、能体现一对多、多对多的关系,但不能体现一对一的关系。
D、关系模型数据库是数据库发展的最初阶段。
2、在“连接”组中有两种连接认证方式,其中在(_B__)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。
A、Windows身份验证B、SQL Server 身份验证C、以超级用户身份登录时D、其他方式登录时3、SQL Server 2000 在安装之前,应注意的事项:(_C__)A、SQL Server 2000的任何版本在安装时都不用考虑操作系统的制约。
B、SQL Server 2000的安装对硬件的要求不作任何限制。
C、SQL Server 2000 在安装之前,必须在操作系统级启用TCP/IP。
D、在Windows NT Server 4.0上安装SQL Server 2000时,最低的要求是必须安装Service Pack 4(SP4)以上。
4、关系数据库中,主键是(1_A__),主键的建立有(2_C__)种方法,当运用Transact-SQL语句创建主键时,可以是(3_B__)。
⑴A、为标识表中唯一的实体B、创建唯一的索引,允许空值C、只允许以表中第一字段建立D、允许有多个主键的⑵A、一B、二C、三D、四⑶A、create table table1(column1 char(13) not null primary,column2 int not) on primary;B、alter table table1 with notcheck addconstraint [PK_table1] primary key nonclustered( column1) on primary;C、alter table table1 column1 primary key ;5、表在数据库中是一个非常重要的数据对象,它是用来(1_C__)各种数据内容的,数据库创建后就可以创建表了,创建表可以用(2_D__)等方法来创建。
大学sql试题及答案
大学sql试题及答案一、单项选择题(每题2分,共20分)1. SQL中用于查询数据的语句是:A. SELECTB. INSERTC. UPDATED. DELETE答案:A2. 在SQL中,用于添加新记录的语句是:A. SELECTB. INSERTC. UPDATED. DELETE答案:B3. SQL中用于修改数据的语句是:A. SELECTB. INSERTC. UPDATED. DELETE答案:C4. SQL中用于删除数据的语句是:A. SELECTB. INSERTC. UPDATED. DELETE答案:D5. SQL中用于创建新表的语句是:A. CREATE TABLEB. INSERT INTOC. UPDATE TABLED. DROP TABLE答案:A6. 在SQL中,哪个关键字用于指定查询结果中列的别名?A. ASB. FROMC. WHERED. SELECT答案:A7. SQL中用于指定查询条件的关键字是:A. SELECTB. FROMC. WHERED. INTO答案:C8. SQL中用于连接两个或多个表的关键字是:A. JOINB. UNIONC. INTERSECTD. EXCEPT答案:A9. 在SQL中,用于分组数据的关键字是:A. GROUP BYB. ORDER BYC. HAVINGD. LIMIT答案:A10. SQL中用于排序查询结果的关键字是:A. GROUP BYB. ORDER BYC. HAVINGD. LIMIT答案:B二、多项选择题(每题3分,共15分)1. 在SQL中,以下哪些关键字用于数据定义语言(DDL)?A. CREATEB. INSERTC. DROPD. ALTER答案:A, C, D2. 在SQL中,以下哪些关键字用于数据操纵语言(DML)?A. SELECTB. INSERTC. UPDATED. DELETE答案:A, B, C, D3. 在SQL中,以下哪些关键字用于数据控制语言(DCL)?A. GRANTB. REVOKEC. COMMITD. ROLLBACK答案:A, B4. 在SQL中,以下哪些语句可以用于数据的聚合操作?A. COUNTB. SUMC. AVGD. MAX答案:A, B, C, D5. 在SQL中,以下哪些关键字用于查询优化?A. INDEXB. JOINC. WHERED. GROUP BY答案:A, B, C, D三、填空题(每题3分,共30分)1. SQL中的________关键字用于创建新数据库。
SQL试题精选及答案
SQL试题精选及答案1. 请写出SQL中创建新表的语句。
答案:CREATE TABLE 表名 (列1 类型, 列2 类型, ...);2. 如何在SQL中查询特定列的数据?答案:SELECT 列名 FROM 表名 WHERE 条件;3. 请解释SQL中的JOIN操作。
答案:JOIN操作用于将两个或多个表中的行组合起来,基于一个共同的列。
4. 写出SQL中更新表中数据的语句。
答案:UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件;5. 如何在SQL中删除表中的数据?答案:DELETE FROM 表名 WHERE 条件;6. 请描述SQL中的GROUP BY子句的作用。
答案:GROUP BY子句用于将取回的记录分组,可以与聚合函数一起使用,如COUNT、SUM等。
7. SQL中如何使用子查询?答案:子查询是嵌套在另一个查询中的查询,可以出现在SELECT、INSERT、UPDATE或DELETE语句中。
8. 请写出SQL中创建索引的语句。
答案:CREATE INDEX 索引名 ON 表名 (列名);9. 如何在SQL中使用事务?答案:可以使用BEGIN TRANSACTION开始事务,然后执行一系列操作,最后使用COMMIT提交事务或ROLLBACK回滚事务。
10. 请解释SQL中的主键和外键。
答案:主键是表中用来唯一标识每行数据的列或列组合,而外键是一个表中的列或列组合,它在另一个表中作为主键。
11. SQL中如何进行数据排序?答案:使用ORDER BY子句,如SELECT * FROM 表名 ORDER BY 列名ASC 或 DESC。
12. 如何在SQL中使用聚合函数?答案:聚合函数如SUM、COUNT、AVG等,可以与GROUP BY子句一起使用,对数据进行汇总。
13. 请写出SQL中插入数据的语句。
答案:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);14. 请解释SQL中的视图。
学生选课数据库SQL语句练习题(详细分解答案)
一、设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。
四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。
用SQL语句创建四个表并完成相关题目。
表1-1数据库的表结构表(一)Student含义属性名数据类型可否为空Sno Char(3) 否学号(主键)Sname Char(8) 否学生姓名Ssex Char(2) 否学生性别Sbirthday datetime 可学生出生年月Class Char(5) 可学生所在班级表(二)Course含义属性名数据类型可否为空Cno Char(5) 否课程号(主键)Cname Varchar(10) 否课程名称Tno Char(3) 否教师编号(外键)表(三)Score含义属性名数据类型可否为空Sno Char(3) 否学号(外键)Cno Char(5) 否课程号(外键)Degree Decimal(4,1) 可成绩主码:Sno+ Cno表(四)Teacher含义属性名数据类型可否为空Tno Char(3) 否教师编号(主键)Tname Char(4) 否教师姓名Tsex Char(2) 否教师性别Tbirthday datetime 可教师出生年月Prof Char(6) 可职称Depart Varchar(10) 否教师所在部门表1-2数据库中的数据表(一)StudentSno Sname Ssex Sbirthday class95033108 曾华男1977-09-01105 匡明男1975-10-950310295033107 王丽女1976-01-2395033101 李军男1976-02-20109 王芳女1975-02-950311095031103 陆君男1974-06-03表(二)CourseCno Cname Tno3-105 计算机导论8253-245 操作系统8046-166 数字电路8569-888 高等数学831表(三)ScoreSno Cno Degree103 3-245 86105 3-245 75109 3-245 68103 3-105 92105 3-105 88109 3-105 76101 3-105 64107 3-105 91108 3-105 78101 6-166 85107 6-166 79108 6-166 81表(四)TeacherTno Tname Tsex Tbirthday Prof Depart804 李诚男1958-12-02 副教授计算机系856 张旭男1969-03-12 讲师电子工程系825 王萍女1972-05-05助教计算机系831 刘冰女1977-08-14 助教电子工程系-- 1、查询Student表中的所有记录的Sname、Ssex和Class列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL学生管理系统题库/*一、数据库和表的创建*/CREATE DATABASE 学生管理ON PRIMARY ( NAME=学生管理, FILENAME ='F:\Temp\学生管理题库\JKX1112\学生管理.MDF', SIZE=3MB, MAXSIZE=100MB, FILEGROWTH=5% ) LOG ON ( NAME=学生管理_log, FILENAME ='F:\Temp\学生管理题库\JKX1112\学生管理_log.LDF', SIZE=3MB, MAXSIZE=50MB, FILEGROWTH=1MB ) GO USE 学生管理GO CREATE TABLE 学生信息( 学号char(12) NOT NULL , 姓名nvarchar(10) NOT NULL, 性别nchar(1), 出生日期datetime, 政治面貌bit, 学校履历ntext ) GO CREATE TABLE 课程信息( 课程编号char(6) NOT NULL , 课程名称nvarchar(20) NOT NULL, 学分tinyint, 限选人数tinyint, 已选人数tinyint ) GO CREATE TABLE 成绩信息( 学号char(12) NOT NULL , 课程编号char(6) NOT NULL, 成绩decimal(5,2) ) GO /*二、表约束的创建*//*1.为学生信息表声明主码:将学号字段设置为学生信息表的主键。
*/ ALTER TABLE 学生信息ADD CONSTRAINT PK_XSXX_XH PRIMARY KEY (学号) GO/*2.为课程信息表声明主码:将课程编号字段设置为课程信息表的主键。
*/ ALTER TABLE 课程信息ADD CONSTRAINT PK_KCXX_KCBH PRIMARY KEY (课程编号) GO/*3.为成绩信息表声明主码:将(学号,课程编号)联合字段设置为成绩信息表的主键。
*/ ALTER TABLE 成绩信息ADD CONSTRAINT PK_CJXX_XHKCBH PRIMARY KEY (学号,课程编号) GO/*4.为成绩信息表声明外码:为学生信息表和成绩信息表创建关联关系。
*/ ALTER TABLE 成绩信息ADD CONSTRAINT FK_CJXX_XH FOREIGN KEY (学号) REFERENCES 学生信息(学号) GO/*5.为成绩信息表声明外码:为课程信息表和成绩信息表创建关联关系。
*/ ALTER TABLE 成绩信息ADD CONSTRAINT FK_CJXX_KCBH FOREIGN KEY (课程编号) REFERENCES 课程信息(课程编号) GO/*6.为学生信息表设置约束:性别字段只能输入“男”或“女”。
*/ ALTER TABLE 学生信息ADD CONSTRAINT CK_XSXX_XB CHECK (性别='男'OR 性别='女') GO/*7.为学生信息表设置约束:学生入学年龄必须在0~25岁之间。
*/ ALTER TABLE 学生信息ADD CONSTRAINT CK_XSXX_CSRQ CHECK (DA TEDIFF(YYYY,出生日期,GETDATE()) BETWEEN 0 AND 25 ) GO/*8.为课程信息表设置约束:学分必须介于0~5之间。
*/ ALTER TABLE 课程信息ADD CONSTRAINT CK_KCXX_XF CHECK (学分BETWEEN 0 AND 5 ) GO/*9.为课程信息表设置约束:已选人数必须介于0到限选人数之间。
*/ ALTER TABLE 课程信息ADD CONSTRAINT CK_KCXX_YXRS CHECK (已选人数BETWEEN 0 AND 限选人数) GO/*10.为成绩信息表设置约束:成绩必须介于0~100之间。
*/ ALTER TABLE 成绩信息ADD CONSTRAINT CK_CJXX_CJ CHECK (成绩BETWEEN 0 AND 100) GO/*11.为学生信息表设置约束:将性别字段的默认值设置为“女”。
*/ALTER TABLE 学生信息ADD CONSTRAINT DF_XSXX_XB DEFAULT '女' FOR 性别GO/*12.为学生信息表设置约束:将政治面貌字段的默认值设置为0。
*/ALTER TABLE 学生信息ADD CONSTRAINT DF_XSXX_ZZMM DEFAULT 0 FOR 政治面貌GO/*13.为课程信息表设置约束:将限选人数字段的默认值设置为250。
*/ALTER TABLE 课程信息ADD CONSTRAINT DF_KCXX_XXRS DEFAULT 250 FOR 限选人数GO/*14.为课程信息表设置约束:将已选人数字段的默认值设置为0。
*/ALTER TABLE 课程信息ADD CONSTRAINT DF_KCXX_YXRS DEFAULT 0 FOR 已选人数GO/*三、数据查询、视图的创建*//*1.列示学生信息表中前3条学生的基本信息。
*/SELECT TOP 3 * FROM 学生信息GO/*2.列示学生信息表中学生的学号、姓名、年龄字段的基本信息。
*/SELECT 学号,姓名,DATEDIFF(YYYY,出生日期,GETDATE()) AS 年龄FROM 学生信息GO/*3.列示性别为“女”并且是党员的学生的基本信息。
*/SELECT * FROM 学生信息WHERE 性别='女'AND 政治面貌=1 GO/*4.列示学分超过2的课程的课程编号、课程名称、学分、已选人数等信息。
*/ SELECT 课程编号,课程名称,学分,已选人数FROM 课程信息WHERE 学分>2 GO/*5.列示姓“王”的学生的所有信息。
*/ SELECT * FROM 学生信息WHERE 姓名LIKE '王%' GO/*6.列示姓名中带“俊”字的学生的所有信息。
*/ SELECT * FROM 学生信息WHERE 姓名LIKE '%俊%' GO/*7.列示所有课程的基本信息,并按降序排列。
*/ SELECT * FROM 课程信息ORDER BY 学分DESC GO/*8.列示所有学生的基本信息并按照年龄升序排列。
*/ SELECT * ,DATEDIFF(YYYY,出生日期,GETDATE())AS 年龄FROM 学生信息ORDER BY 年龄GO/*9.列示学号为“200801010001”的学生选修课程的课程编号、课程名称、学分、成绩等信息,并按照成绩的降序排列。
*/ SELECT 课程信息.课程编号,课程名称,学分,成绩FROM 课程信息,成绩信息WHERE 课程信息.课程编号=成绩信息.课程编号ORDER BY 成绩DESC GO/*10.列示选修了课程编号为“A08001”的学生的学号、姓名、性别、出生日期等信息,并按照出生日期升序排列。
*/ SELECT 学生信息.学号,姓名,性别,出生日期FROM 学生信息,成绩信息,课程信息WHERE 学生信息.学号= 成绩信息.学号AND 成绩信息.课程编号= 课程信息.课程编号AND 课程信息.课程编号='A08001' ORDER BY 出生日期ASC GO /*11.统计并列示每门课程的课程编号以及选修该课程的总人数。
*/ SELECT 课程编号,COUNT (学号)AS 人数FROM 成绩信息GROUP BY 课程编号GO/*12.统计并列示每个学生的学号、姓名以及该学生选修课程的门数信息。
*/ SELECT 学生信息.学号,姓名,COUNT(*) AS 课程的门数FROM 学生信息JOIN 成绩信息ON 学生信息.学号=成绩信息.学号JOIN 课程信息ON 成绩信息.课程编号=课程信息.课程编号GROUP BY 学生信息.学号,姓名GO/*13.列示每个学生的学号、姓名以及该学生目前所有选修课程的平均成绩信息。
*/ SELECT 学生信息.学号,姓名,A VG(成绩) AS 平均成绩FROM 学生信息JOIN 成绩信息ON 学生信息.学号=成绩信息.学号GROUP BY 学生信息.学号,姓名GO/*14.统计并列示每个学生的学号、姓名以及该学生选修课程的总学分。
*/ SELECT 学生信息.学号,姓名,SUM(学分) AS 总学分FROM 学生信息JOIN 成绩信息ON 学生信息.学号=成绩信息.学号JOIN 课程信息ON 课程信息.课程编号=成绩信息.课程编号GROUP BY 学生信息.学号,姓名GO/*15.列示学分最高的课程编号、课程名称。
*/ SELECT 课程编号,课程名称FROM 课程信息WHERE 学分=(SELECT MAX(学分) FROM 课程信息) GO/*16.列示'200801010001'学生成绩最高的课程编号。
*/ SELECT 课程编号FROM 成绩信息WHERE 成绩=(SELECT MAX(成绩)FROM 成绩信息WHERE 学号='200801010001') GO /*17.列示'200801010001'学生成绩最高的课程编号、课程名称。
*/ SELECT 课程信息.课程编号,课程名称FROM 成绩信息JOIN 课程信息ON 成绩信息.课程编号=课程信息.课程编号WHERE 成绩=(SELECT MAX(成绩)FROM 成绩信息WHERE 学号='200801010001') GO/*18.统计至少选修两门课程的学生学号。
*/ SELECT 学号FROM 成绩信息GROUP BY 学号HA VING COUNT (学号)>=2 GO/*19.统计选修了'A08001'课程的学生的平均年龄。
*/ SELECT A VG(DATEDIFF(YYYY,出生日期,GETDATE()))AS 平均年龄FROM 学生信息JOIN 成绩信息ON 学生信息.学号=成绩信息.学号WHERE 课程编号='A08001' GO/*20.创建课程成绩信息查询的视图,其视图名为:CGQuery 视图功能:列示学号、姓名、性别、政治面貌、课程编号、成绩的信息。
*/ IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME ='CGQuery' AND TYPE='V') DROP VIEW CGQuery GO CREATE VIEW CGQuery AS SELECT 学生信息.学号,姓名,性别,政治面貌,成绩信息.课程编号,成绩FROM 学生信息JOIN 成绩信息ON 学生信息.学号=成绩信息.学号GO --查看视图SELECT * FROM CGQuery GO/*21.创建学生成绩信息查询的视图,其视图名为:SGQuery 视图功能:列示课程编号、课程名称、学分、成绩信息。