SQL学生管理系统题库与答案

合集下载

SQL基础知识题库100道及答案(完整版)

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考试题及答案

用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考试题及答案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数据库考试题及答案

大一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考试题及答案

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期末试题及答案,以便您进行学习和复习。

请注意,我会尽力满足您对整洁美观排版和流畅语句的要求,同时保持准确性和阅读体验。

祝您阅读愉快!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考试题及答案

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数据库习题与答案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数据库习题,不断提升自己的技能水平。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 视图功能:列示课程编号、课程名称、学分、成绩信息。

相关文档
最新文档