SQL语句练习题(精品文档)
(完整版)sql语句练习题及答案

(完整版)sql语句练习题及答案⼀在数据库 school 中建⽴student , sc, course 表。
学⽣表、课程表、选课表属于数据库School ,其各⾃的数据结构如下:学⽣Student (Sno,Sname,Ssex,Sage,Sdept)课程表course(Cno,Cname,Cpno,Ccredit)学⽣选课SC(Sno,Cno,Grade)⼆设定主码1 Student表的主码:sno2 Course表的主码:cno3 Sc表的主码:sno,cno1写出使⽤ Create Table 语句创建表 student , sc, course 的SQL语句23 删除student表中的元组4在数据库school中删除关系student5在student表添加属性sbirthdate 类型datetimeDelete1 删除所有JSJ 系的男⽣delete from Student where Sdept=’JSJ’ and Ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);Update1 修改0001 学⽣的系科为: JSJ2 把陈⼩明的年龄加1岁,性别改为⼥。
2 修改李⽂庆的1001课程的成绩为93 分3 把“数据库原理”课的成绩减去1分Select 查询语句⼀单表1查询年龄在19⾄21岁之间的⼥⽣的学号,姓名,年龄,按年龄从⼤到⼩排列。
2查询姓名中第2个字为“明”字的学⽣学号、性别。
3查询 1001课程没有成绩的学⽣学号、课程号4查询JSJ 、SX、WL 系的年龄⼤于25岁的学⽣学号,姓名,结果按系排列5按10分制查询学⽣的sno,cno,10分制成绩(1-10分为1 ,11-20分为2 ,30-39分为3,。
90-100为10)6查询 student 表中的学⽣共分布在那⼏个系中。
sql语句考试题

1. 查询操作1.1 基础查询从表"employees" 中选择所有员工的姓名和工资。
sqlCopy codeSELECT name, salaryFROM employees;1.2 条件查询从表"products" 中选择价格在100 到200 之间的产品。
sqlCopy codeSELECT *FROM productsWHERE price BETWEEN 100 AND 200;2. 更新操作2.1 更新记录将员工"John" 的工资增加到5000。
sqlCopy codeUPDATE employeesSET salary = 5000WHERE name = 'John';3. 插入操作3.1 插入记录向表"customers" 中插入一条新记录,包含客户姓名为"Alice",电话为"555-1234"。
sqlCopy codeINSERT INTO customers (name, phone)VALUES ('Alice', '555-1234');4. 删除操作4.1 删除记录删除表"orders" 中订单编号为1001 的记录。
sqlCopy codeDELETE FROM ordersWHERE order_id = 1001;5. 聚合函数5.1 计算平均值计算表"sales" 中产品销售数量的平均值。
sqlCopy codeSELECT AVG(quantity)FROM sales;6. 联结操作6.1 内连接从"orders" 和"customers" 表中选择订单号、订单日期和客户姓名。
sqlCopy codeSELECT orders.order_id, orders.order_date, FROM ordersJOIN customers ON orders.customer_id = customers.customer_id;以上只是一些基础的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。
11393计算机信息管理课程实验(3合1)精品文档68页

04735 数据库系统原理:1、设某工厂数据库中有2个基本表:车间基本表:DEPT(DNO,DNAME,MG2、R_ENO) 属性分别是车间编号、车间名、和车间主任职工号职工基本表:EMP(ENO,ENAME,AGE,SEX,SALRY,DNO)属性分别是职工号、姓名、年龄、性别、工资和所有车间编号(1)试用关系代数表达式写出下列查询:简述“金工车间”的男职工的职工号和姓名。
(2)建立一个有关车间的女职工号和姓名的视图,其结构如下:VIEW 6(ENO,ENAME).试写出创建视图VIEW6的SQL语句。
create view VIEW6asselect ENO,ENAME from EMPwhere SEX='女'2、3、4、5、6、7、关系模式为:学生STUDENT( 学号,姓名,年龄,班号)班CLASS (班号,专业名,系名,入学年份)系DEPARTMENT(系号,系名)A.请使用SQL语言完成以下功能(1) 每个表的主外码(2) 每个班级的人数不能超过20人;(3) 学生的年龄介于16到30岁之间;(4) 学生姓名不能为空;(5) 只有班里没有学生的时候,才能删除该班级. CREATE DATABASE SCHOOLUSE SCHOOLcreate table DEPARTMENT( 系号 int Primary key,系名 varchar(20) unique)create table CLASS(班号 int primary key,专业名 varchar(20),系名 varchar(20) ,FOREIGN key (系名)references DEPARTMENT 系(系名)) create table STUDENT(学号 int primary key,姓名 varchar(10) not null,年龄 int check(年龄>=16 and 年龄<=30),班号int,foreign key(班号) references CLASS(班号) ON DELETE no action check(20>=ALL(select count(学号) from STUDENT group by 班号))) B.插入如下数据:CLASS(101,软件,计算机,1995;102,微电子,计算机,1996STUDENT(8101,张三,18,101;8102,钱四,16,121;DEPARTMENT(001,数学INSERT INTO DEPARTMENT(系号,系名) VALUES ('001','数学')INSERT INTO DEPARTMENT(系号,系名) VALUES ('002','计算机') INSERT INTO DEPARTMENT(系号,系名) VALUES ('003','化学')INSERT INTO DEPARTMENT(系号,系名) VALUES ('004','中文')INSERT INTO DEPARTMENT(系号,系名) VALUES ('005','经济')GOINSERT INTO CLASS(班号,专业名,系名,入学年份) VALUES (101,'软件','计算机',1995)INSERT INTO CLASS(班号,专业名,系名,入学年份) VALUES (102,'微电子','计算机',1996)INSERT INTO CLASS(班号,专业名,系名,入学年份) VALUES (111,'无机化学','化学',1995)INSERT INTO CLASS(班号,专业名,系名,入学年份) VALUES (112,'分子化学','化学',1996)INSERT INTO CLASS(班号,专业名,系名,入学年份) VALUES (121,'统计数学','数学',1995)INSERT INTO CLASS(班号,专业名,系名,入学年份) VALUES (131,'现代语言','中文',1996)INSERT INTO CLASS(班号,专业名,系名,入学年份) VALUES (141,'国际贸易','经济',1997)INSERT INTO CLASS(班号,专业名,系名,入学年份) VALUES (142,'国际金融','经济',1996)GOINSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8101,'张三',18,101)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8102,'钱四',16,121)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8103,'王玲',17,131)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8105,'李飞',19,102)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8109,'赵四',18,141)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8110,'李可',20,142)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8201,'张飞',18,111)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8302,'周瑜',16,112)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8203,'王亮',17,111)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8305,'董庆',19,102)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8409,'赵龙',18,101)INSERT INTO STUDENT(学号,姓名,年龄,班号) VALUES (8510,'李丽',20,142)C.完成以下查询功能(1)找出所有姓李的学生,并按其年龄由小到大排序;SELECT * FROM STUDENT WHERE 姓名 like '李%' ORDER BY 年龄 ASC (2)列出所有开设超过两个专业的系的名字.SELECT 系名 FROM CLASS GROUP BY 系名 HAVING(COUNT(*)>=2)(3)列出学生人数大于等于2的系的编号和名称,第一种:SELECT * FROM DEPARTMENT WHERE 系名 in (SELECT 系名 FROM CLASS WHERE 班号 in (SELECT 班号 FROM STUDENT GROUP BY 班号 HAVINGCOUNT(*)>=2))第二种:SELECT 系号,系名 FROM DEPARTMENT WHERE 系名 IN (SELECT 系名 FROM CLASS AS C,STUDENT AS S WHERE C.班号=S.班号 GROUP BY C.系名HAVING(COUNT(*)>=2))D.学生张三转到化学系111班,请更新相关的表UPDATE STUDENT SET 班号=111 WHERE 姓名='张三'SELECT * FROM STUDENT WHERE 姓名='张三'8、已知一个关系数据库的模式如下:职工EMP(职工号,姓名,工资,所在部门)部门DEPT(部门号,部门名,部门经理的职工号)A.使用查询分析器创建上述表,要求声明:(1)每个表的主外码.(2)职工姓名和部门名不能为空;(3)工资取800到5000之间整数;CREATE DATABASE CompanyUSE CompanyCREATE TABLE DEPT( 部门号 varchar(10) Primary key,部门名 varchar(10) not null,部门经理的职工号 varchar(10))CREATE TABLE EMP(职工号 varchar(10) Primary key (这里去掉主键,因为重复的记录将不能增加)姓名 varchar(10) not null,工资 int check(工资>=800 and 工资<=5000),所在部门 varchar(10)FOREIGN KEY(部门号) REFERENCES DEPT(部门号)B、插入如下数据职工(E01,汤姆,4000,D02E05,比尔,3500,D01)部门(D01,人事,E04D04,财务,E06)INSERT INTO DEPT(部门号,部门名,部门经理的职工号) VALUES ('D01','人事','E04')INSERT INTO DEPT(部门号,部门名,部门经理的职工号) VALUES ('D02','信息','E01')INSERT INTO DEPT(部门号,部门名,部门经理的职工号) VALUES ('D03','销售','E05')INSERT INTO DEPT(部门号,部门名,部门经理的职工号) VALUES ('D04','财务','E06')INSERT INTO EMP(职工号,姓名,工资,所在部门) VALUES ('E01','汤姆',4000,'D02')INSERT INTO EMP(职工号,姓名,工资,所在部门) VALUES ('E02','丹尼',3000,'D02')INSERT INTO EMP(职工号,姓名,工资,所在部门) VALUES ('E03','约翰',1000,'D01')INSERT INTO EMP(职工号,姓名,工资,所在部门) VALUES ('E04','迪克',5000,'D03')INSERT INTO EMP(职工号,姓名,工资,所在部门) VALUES ('E04','迪克',5000,'D01')INSERT INTO EMP(职工号,姓名,工资,所在部门) VALUES ('E05','比尔',3500,'D04')C、用SQL表达以下查询:找出那些工资高于其所在部门经理工资的职工的姓名及其工资. SELECT S1.姓名,S1.工资FROM(SELECT * FROM EMP,DEPT WHERE EMP.所在部门=DEPT.部门号) AS S1, (SELECT * FROM EMP,DEPT WHERE EMP.职工号=DEPT.部门经理的职工号) AS S2WHERE S1.工资>S2.工资 AND S1.所在部门=S2.部门号D、用SQL完成:将D01号部门经理的工资改为该部门所有职工的平均工资UPDATE EMPSET 工资=(SELECT AVG(工资)FROM EMP WHERE 所在部门='D01')WHERE 职工号 IN (SELECT 部门经理的职工号FROM DEPTWHERE 部门号='D01')E、新增加一个广告部门,编号为D06Insert into DEPT((部门号,部门名,部门经理的职工号) values ('D06','广告','')select * from DEPT9、创建如下三个基本表,表结构如下:BORROWER:借书证号姓名系名班级03001 赵垒信管系 03-103002 刘诚信管系 03-103101 陈林计算机系 03-2LOANS:借书证号图书登记号借书日期03001 T00101 2004.04.0103002 T00102 2004.05.0104001 T00201 2004.05.31BOOKS索书号书名作者图书登记号出版社价格TP311.13 数据结构李卫T00101 科学19.00CREATE DATABASE LibraryGOUSE LibraryGOCREATE TABLE BORROWER借书证号 varchar(10) Primary key, 主码姓名 varchar(10) not null,系名 varchar(10),班级 varchar(10)GOCREATE TABLE BOOKS索书号 varchar(10)not null,书名 varchar(20) not null,作者 varchar(10),图书登记号 varchar(10) Primary key, 主码出版社 varchar(10),价格 decimal(8,2)GOCREATE TABLE LOANS借书证号 varchar(10) FOREIGN KEY REFERENCES BORROWER(借书证号), 外码图书登记号 varchar(10) FOREIGN KEY REFERENCES BOOKS(图书登记号), 外码借书日期 datetimeGOINSERT INTO BORROWER(借书证号,姓名,系名,班级) VALUES ('03001','赵垒','信管系','03-1')INSERT INTO BORROWER(借书证号,姓名,系名,班级) VALUES ('03002','刘诚','信管系','03-1')INSERT INTO BORROWER(借书证号,姓名,系名,班级) VALUES ('03101','陈林','计算机系','03-2')GOINSERT INTO BOOKS(索书号,书名,作者,图书登记号,出版社,价格) VALUES ('TP311.13','数据结构','李卫','T00101','科学','19.00')INSERT INTO BOOKS(索书号,书名,作者,图书登记号,出版社,价格) VALUES ('TP311.13','数据结构','李卫','T00102','科学','19.00')INSERT INTO BOOKS(索书号,书名,作者,图书登记号,出版社,价格) VALUES ('TP.065','数据结构导论','李卫','T00201','北航','16.50')INSERT INTO BOOKS(索书号,书名,作者,图书登记号,出版社,价格) VALUES ('TP.065','数据结构导论','李卫','T00202','北航','16.50')INSERT INTO BOOKS(索书号,书名,作者,图书登记号,出版社,价格) VALUES ('TP.1599','数据通信','扬志','T00301', '清华','28.50')INSERT INTO BOOKS(索书号,书名,作者,图书登记号,出版社,价格) VALUES ('TP.1600','计算机网络','扬志','T00401', '清华','38.50')INSERT INTO BOOKS(索书号,书名,作者,图书登记号,出版社,价格) VALUES ('TP.1600','计算机网络','扬志','T00402', '清华','38.50')INSERT INTO BOOKS(索书号,书名,作者,图书登记号,出版社,价格) VALUES ('TP.1610','软件工程','李新','T00501', '清华','18.50')GOINSERT INTO LOANS(借书证号,图书登记号,借书日期) VALUES ('03001','T00101','2004.04.01')INSERT INTO LOANS(借书证号,图书登记号,借书日期) VALUES ('03002','T00102','2004.04.01')INSERT INTO LOANS(借书证号,图书登记号,借书日期) VALUES ('03001','T00201','2004.04.01')INSERT INTO LOANS(借书证号,图书登记号,借书日期) VALUES ('03101','T00202','2004.05.31')INSERT INTO LOANS(借书证号,图书登记号,借书日期) VALUES ('03001','T00301','2004.04.01')INSERT INTO LOANS(借书证号,图书登记号,借书日期) VALUES ('03001','T00401','2004.04.01')INSERT INTO LOANS(借书证号,图书登记号,借书日期) VALUES ('03001','T00501','2004.04.01')INSERT INTO LOANS(借书证号,图书登记号,借书日期) VALUES ('03101','T00402','2004.05.31')1)检索借了5本书以上的学生的借书证号\姓名\系名和借书数量.SELECT B.借书证号, B.姓名, B.系名, COUNT(*) AS 借书数量FROM BORROWER AS B INNER JOIN LOANS AS L ON B.借书证号 = L.借书证号GROUP BY B.借书证号,B.姓名,B.系名HAVING (COUNT(*) >= 5)2)检索借书和赵垒同学所借图书中任意一本相同的学生的姓名\系名\书名和借书日期SELECT B.姓名,B.系名,K.书名,L.借书日期FROM BORROWER AS B,LOANS AS L,BOOKS AS KWHERE B.借书证号=L.借书证号AND L.图书登记号=K.图书登记号AND K.索书号 IN (SELECT 索书号FROM BORROWER AS B,LOANS AS L,BOOKS AS KWHERE B.借书证号=L.借书证号 AND L.图书登记号=K.图书登记号 AND B.姓名='赵垒')AND B.姓名<>'赵垒'3)建立信管系学生借书的视图SB,该视图的属性列由借书证号\姓名\班级\图书登记号\书名\出版社和借书日期组成CREATE VIEW SBAS SELECT X.借书证号,X.姓名,X.班级,Y.图书登记号,Z.书名,Z.出版社,Y.借书日期FROM BORROWER XINNER JOIN LOANS Y ON X.借书证号 = Y.借书证号INNER JOIN BOOKS Z ON Y.图书登记号 = Z.图书登记号WHERE (X.系名 = '信管系')GOSELECT * FROM SBGO样题四,现有一个学生选修课程的数据库,其中存放以下三个表:学生(学号,姓名,性别,年龄,系别);课程(课程号,课程名,任课教师);选修(学号,课程号,分数)请用SQL语言完成下列功能:1.建表,在定义中要求声明:(1)每个表的主外码;(2)学生的年龄介于16到30之间;(3)学生的姓名和课程名不能为空值;(4)选课成绩要么为空值,要么取0~100之间的整数CREATE DATABASE ElectiveGOUSE ElectiveGOCREATE TABLE 学生学号 int primary key, 主码姓名 varchar(10) NOT NULL,性别 char(2),年龄 Smallint CHECK(年龄>=16 AND 年龄<=30),系别 varchar(10)GOCREATE TABLE 课程课程号 int primary key, 主码课程名 varchar(20) NOT NULL,任课老师 varchar(10)GOCREATE TABLE 选修学号 int FOREIGN KEY REFERENCES 学生(学号), 外码课程号 int FOREIGN KEY REFERENCES 课程(课程号), 外码分数 int CHECK(分数 IS NULL OR (分数>=0 AND 分数<=100)) INSERT INTO 学生(学号,姓名,性别,年龄,系别) VALUES (101,'张三','男',18,'计算机')INSERT INTO 学生(学号,姓名,性别,年龄,系别) VALUES (102,'李四','男',16,'数学')INSERT INTO 学生(学号,姓名,性别,年龄,系别) VALUES (103,'王玲','女',17,'中文')INSERT INTO 学生(学号,姓名,性别,年龄,系别) VALUES (105,'李飞','男',19,'计算机')INSERT INTO 学生(学号,姓名,性别,年龄,系别) VALUES (109,'赵四','女',18,'历史')INSERT INTO 学生(学号,姓名,性别,年龄,系别) VALUES (110,'李平','男',20,'化学')GOINSERT INTO 课程(课程号,课程名,任课老师) VALUES (203,'操作系统','程羽')INSERT INTO 课程(课程号,课程名,任课老师) VALUES (279,'高等数学','王备')INSERT INTO 课程(课程号,课程名,任课老师) VALUES (210,'现代文学','王丹')INSERT INTO 课程(课程号,课程名,任课老师) VALUES (243,'有机化学','沈同')INSERT INTO 课程(课程号,课程名,任课老师) VALUES (204,'数据结构','张青')GOINSERT INTO 选修(学号,课程号,分数) VALUES (101,203,82)INSERT INTO 选修(学号,课程号,分数) VALUES (105,203,60) 不及格在4小题会被删除,但5小题中需要用到INSERT INTO 选修(学号,课程号,分数) VALUES (102,203,59) 另加INSERT INTO 选修(学号,课程号,分数) VALUES (102,279,90)INSERT INTO 选修(学号,课程号,分数) VALUES (101,279,88)INSERT INTO 选修(学号,课程号,分数) VALUES (105,279,82)INSERT INTO 选修(学号,课程号,分数) VALUES (110,279,68)INSERT INTO 选修(学号,课程号,分数) VALUES (109,210,72)INSERT INTO 选修(学号,课程号,分数) VALUES (103,210,90)INSERT INTO 选修(学号,课程号,分数) VALUES (110,243,92)INSERT INTO 选修(学号,课程号,分数) VALUES (101,204,85)INSERT INTO 选修(学号,课程号,分数) VALUES (105,204,91)INSERT INTO 选修(学号,课程号,分数) VALUES (102,204,56)GO3.用SQL语句完成下列查询:(1)列出张三同学选修的所有课程的名称及其成绩;SELECT 姓名,课程名,分数FROM 学生 AS S,课程 AS C,选修 AS EWHERE S.学号=E.学号 AND E.课程号=C.课程号 AND S.姓名='张三'GO(2)列出所有课程都及格了的同学的名字;SELECT 姓名FROM 学生WHERE 学号 NOT IN (SELECT 学号 FROM 选修 WHERE 分数<60)GO(3)列出在选修张青老师所教授课程的学生中,成绩最高的学生姓名及其成绩.SELECT 姓名,分数FROM 学生 AS S,选修 AS E,课程 AS CWHERE S.学号=E.学号 AND C.课程号=E.课程号 AND 任课老师='张青' AND 分数=(SELECT MAX(分数)FROM 选修 AS E,课程 AS CWHERE C.课程号=E.课程号 AND 任课老师='张青')GO4.删除所有成绩不及格的选课记录.DELETE FROM 选修 WHERE 分数<60SELECT * FROM 选修GO5.将105号同学选修203号课程的成绩改为该门课程的平均成绩. UPDATE 选修SET 分数=(SELECT AVG(分数) FROM 选修 WHERE 课程号='203') WHERE 学号='105' AND 课程号='203'SELECT * FROM 选修GO样题五.创建如下两个基本表,表结构如下:Employs:职工编号,姓名,工作年限,职务级别,工程代号Project:工程代号,工程名称,工程负责人CREATE DATABASE PlansGOUSE PlansGOCREATE TABLE Project工程代号 int primary key, 主码工程名称 varchar(30),工程负责人 varchar(10) 外码GOCREATE TABLE Employs职工编号 int primary key, 主码姓名 varchar(10),工作年限 datetime,职务级别 Smallint,工程代号 int FOREIGN KEY REFERENCES Project(工程代号) 外码GOINSERT INTO Project(工程代号,工程名称,工程负责人) VALUES (10,'人行天桥','梁家辉')INSERT INTO Project(工程代号,工程名称,工程负责人) VALUES (11,'东区D楼','朱世富')INSERT INTO Project(工程代号,工程名称,工程负责人) VALUES (12,'力学楼翻新','杨咏宏')INSERT INTO Project(工程代号,工程名称,工程负责人) VALUES (13,'中区校道','李家承')GOINSERT INTO Employs(职工编号,姓名,工作年限,职务级别,工程代号) VALUES (8146,'李燕华','1999-9-1',5,10)INSERT INTO Employs(职工编号,姓名,工作年限,职务级别,工程代号) VALUES (8234,'王宏伟','1996-8-21',2,11)INSERT INTO Employs(职工编号,姓名,工作年限,职务级别,工程代号) VALUES (6237,'宋晓岚','1997-6-10',4,11)INSERT INTO Employs(职工编号,姓名,工作年限,职务级别,工程代号) VALUES (7973,'吴敏霞','1998-9-15',3,12)GO1).对Employs表建立索引:(主键:职工编号,外键:工程代号)CREATE INDEX 职工索引 ON Employs(职工编号,工程代号)GO2).对Project表建立索引:(主键:工程代号)CREATE INDEX 工程索引 ON Project(工程代号)GO3).通过"工程代号"连接两个表SELECT E.职工编号,E.姓名,E.工作年限,E.职务级别,E.工程代号,P.工程代号,P.工程名称,P.工程负责人 FROM Employs AS E JOIN Project AS P ON E.工程代号=P.工程代号GO使用查询分析完成以下操作:4)查询列出职工编号\职工姓名\职务级别\工程名称.SELECT 职工编号,姓名,职务级别,工程名称FROM Employs AS E INNER JOIN Project AS PON E.工程代号=P.工程代号GO5).查询列出所有参加"东区D楼"工程的职工.SELECT 职工编号,姓名,职务级别,工程名称 FROM Employs AS E,Project AS PWHERE E.工程代号=P.工程代号 AND P.工程名称='东区D楼'GO6).建立视图查看:职工编号\姓名\职务级别\工程名称\并按职工编号排序.CREATE VIEW 职工与工程视图 AS (SELECT 职工编号,姓名,职务级别,工程名称FROM Employs AS E INNER JOIN Project AS P ON E.工程代号=P.工程代号)GOSELECT * FROM 职工与工程视图 ORDER BY 职工编号GO样题六.创建图书借阅关系数据库的三个基本表,其结构如下:图书:读者:借阅:CREATE DATABASE Library1GOUSE Library1GOCREATE TABLE 图书图书号 varchar(10) primary key, 主码书名 varchar(20),作者 varchar(20),单价 decimal(8,1),库存量 smallintGOCREATE TABLE 读者读者号 varchar(10) primary key, 主码姓名 varchar(20),工作单位 varchar(30),地址 varchar(30),GOCREATE TABLE 借阅图书号 varchar(10) FOREIGN KEY REFERENCES 图书(图书号), 外码读者号 varchar(10) FOREIGN KEY REFERENCES 读者(读者号), 外码借期 datetime,还期 datetime,备注 varchar(30)GOINSERT INTO 图书(图书号,书名,作者,单价,库存量) VALUES ('B1','数据结构','严苇铭','22.5',35)INSERT INTO 图书(图书号,书名,作者,单价,库存量) VALUES ('B2','数据通信','梁景宏','26.5',44)INSERT INTO 图书(图书号,书名,作者,单价,库存量) VALUES ('B3','计算机网络','谢西芬','21.0',38)INSERT INTO 图书(图书号,书名,作者,单价,库存量) VALUES ('B4','离散数学','叶晓光','18.0',65)INSERT INTO 图书(图书号,书名,作者,单价,库存量) VALUES ('B5','C程序设计','谭昊强','16.5',36)INSERT INTO 图书(图书号,书名,作者,单价,库存量) VALUES ('B6','Java 程序设计','李文君','23.0',52)GOINSERT INTO 读者(读者号,姓名,工作单位,地址) VALUES ('R001','王海','数学系','园西区48号')INSERT INTO 读者(读者号,姓名,工作单位,地址) VALUES ('R003','刘宝林','科计系','东北区23号')INSERT INTO 读者(读者号,姓名,工作单位,地址) VALUES ('R004','程伟林','科计系','东北区25号')INSERT INTO 读者(读者号,姓名,工作单位,地址) VALUES ('R005','汪道晗','物理系','园西区13号')INSERT INTO 读者(读者号,姓名,工作单位,地址) VALUES ('R016','卞靖宇','电子系','蒲园区78号')GOINSERT INTO 借阅(图书号,读者号,借期,还期) VALUES ('B3','R004','2004-6-30',NULL)INSERT INTO 借阅(图书号,读者号,借期,还期) VALUES ('B1','R003','2004-3-14','2004-5-14')INSERT INTO 借阅(图书号,读者号,借期,还期) VALUES ('B6','R003','2004-3-14',NULL)INSERT INTO 借阅(图书号,读者号,借期,还期) VALUES ('B5','R016','2004-5-17',NULL)GO用SQL语言实现下列查询:1)检索读者号为R016的读者姓名\工作单位SELECT 姓名,工作单位 FROM 读者 WHERE 读者号='R016'GO2)检索借阅图书号为B5的读者姓名SELECT 姓名,图书号 FROM 读者 AS R,借阅 AS LSELECT 姓名,图书号 FROM 读者 AS R,借阅 AS LWHERE R.读者号=L.读者号 AND 图书号='B5'GO3)检索读者"刘宝林"所借图书的书名SELECT 书名 FROM 读者 AS R,借阅 AS L,图书 AS BWHERE R.读者号=L.读者号 AND L.图书号=B.图书号 AND 姓名='刘宝林' GO4)检索读者"刘宝林"所借图书中未还的书名;SELECT 书名FROM 读者 AS R,借阅 AS L,图书 AS BWHERE R.读者号=L.读者号 AND L.图书号=B.图书号 AND 姓名='刘宝林' AND 还期 IS NULLGO5)将读者"刘宝林"已还图书的信息从借阅表中删除;DELETE FROM 借阅WHERE 读者号 IN (SELECT 读者号 FROM 读者 WHERE 姓名='刘宝林') AND 还期 IS NOT NULLGOSELECT * FROM 借阅GO6)建立未还图书的读者姓名和单位视图.CREATE VIEW 借阅视图 AS (SELECT 姓名,工作单位FROM 读者 AS R,借阅 AS L WHERE (R.读者号 = L.读者号) AND (L.还期IS NULL))GOSELECT * FROM 借阅视图样题七.设某工厂数据库中有两个基本表:车间基本表:DEPT(DNO,DNAME, MGR_ENO), 其属性分别表示车间编号\车间名和车间主任的职工号.职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY,DNO),其属性分别表示职工号\姓名\年龄\性别\工资和所在车间的编号.1.创建上述基本表,并插入必要的数据记录;CREATE DATABASE FactoryGOUSE FactoryGOCREATE TABLE DEPTDNO int primary key, 主码DNAME varchar(20),MGR_ENO intGOCREATE TABLE EMPENO int primary key, 主码ENAME varchar(20),AGE smallint,SEX varchar(2),SALARY decimal(8,2),DNO int FOREIGN KEY REFERENCES DEPT(DNO) 外码GOINSERT INTO DEPT(DNO,DNAME,MGR_ENO) VALUES ('01','第一车间',001) INSERT INTO DEPT(DNO,DNAME,MGR_ENO) VALUES ('02','第二车间',005) INSERT INTO DEPT(DNO,DNAME,MGR_ENO) VALUES ('03','第三车间',004) INSERT INTO DEPT(DNO,DNAME,MGR_ENO) VALUES ('04','第四车间',013) INSERT INTO DEPT(DNO,DNAME,MGR_ENO) VALUES ('05','金工车间',035) INSERT INTO DEPT(DNO,DNAME,MGR_ENO) VALUES ('06','第六车间',053) GOINSERT INTO EMP(ENO,ENAME,AGE,SEX,SALARY,DNO) VALUES (001,'王一',53,'男','3800',01)INSERT INTO EMP(ENO,ENAME,AGE,SEX,SALARY,DNO) VALUES (004,'李二',35,'男','3500',03)INSERT INTO EMP(ENO,ENAME,AGE,SEX,SALARY,DNO) VALUES (005,'张三',33,'女','3000',02)INSERT INTO EMP(ENO,ENAME,AGE,SEX,SALARY,DNO) VALUES (013,'陈五',33,'男','2800',04)INSERT INTO EMP(ENO,ENAME,AGE,SEX,SALARY,DNO) VALUES (035,'刘六',32,'女','2500',05)INSERT INTO EMP(ENO,ENAME,AGE,SEX,SALARY,DNO) VALUES (053,'赵七',31,'男','2300',06)INSERT INTO EMP(ENO,ENAME,AGE,SEX,SALARY,DNO) VALUES (002,'连八',30,'男','2000',05)INSERT INTO EMP(ENO,ENAME,AGE,SEX,SALARY,DNO) VALUES (003,'蔡九',29,'男','1800',05)INSERT INTO EMP(ENO,ENAME,AGE,SEX,SALARY,DNO) VALUES (006,'何十',25,'女','1800',01)GO2.使用查询分析器检索"金工车间"的男职工的职工号和姓名.SELECT ENO,ENAME FROM EMP AS E,DEPT AS DWHERE E.DNO=D.DNO AND D.DNAME='金工车间' AND SEX='男'GO3.建立一个有关女车间主任的职工号和姓名的视图,其结构如下:VIEW6(ENO,ENAME).编写出创建视图VIEW6的SQL语句.CREATE VIEW VIEW6 AS(SELECT ENO,ENAME FROM EMP WHERE SEX='女' AND ENO IN(SELECT MGR_ENO FROM DEPT))或:CREATE VIEW VIEW6 AS(SELECT ENO,ENAME FROM EMP INNER JOIN DEPT ON ENO=MGR_ENO WHERE SEX='女')GOSELECT * FROM VIEW6GO样题八.设某企业数据库中有如下三个基本表:职工(职工号,姓名,性别,职务,家庭地址,部门编号)部门(部门编号,部门名称,地址,电话)保健(保健卡编号,职工号,检查身体日期,健康状况) 1.创建上述基本表,并插入必要的数据记录; CREATE DATABASE EnterpriseGOUSE EnterpriseGOCREATE TABLE 部门部门编号 int primary key, 主码部门名称 varchar(20),地址 varchar(40),电话 varchar(12),GOCREATE TABLE 职工职工号 int primary key, 主码姓名 varchar(20),性别 varchar(2),职务 varchar(10),家庭地址 varchar(40),部门编号 int FOREIGN KEY REFERENCES 部门(部门编号) 外码GOCREATE TABLE 保健保健卡编号 int primary key, 主码职工号 int FOREIGN KEY REFERENCES 职工(职工号), 外码检查身体日期 datetime,健康状况 varchar(10)GOINSERT INTO 部门(部门编号,部门名称,地址,电话) VALUES (01,'办公室','一号楼','800100')INSERT INTO 部门(部门编号,部门名称,地址,电话) VALUES (02,'财务科','二号楼','800200')INSERT INTO 部门(部门编号,部门名称,地址,电话) VALUES (03,'采购部','三号楼','800300')INSERT INTO 部门(部门编号,部门名称,地址,电话) VALUES (04,'工程部','四号楼','800400')INSERT INTO 部门(部门编号,部门名称,地址,电话) VALUES (05,'人事科','五号楼','800500')GOINSERT INTO 职工(职工号,姓名,性别,职务,家庭地址,部门编号) VALUES (3061,'王一','男','科长','天河区',01)INSERT INTO 职工(职工号,姓名,性别,职务,家庭地址,部门编号) VALUES(3062,'李二','男','经理','天河区',02)INSERT INTO 职工(职工号,姓名,性别,职务,家庭地址,部门编号) VALUES (3063,'张三','女','秘书','越秀区',01)INSERT INTO 职工(职工号,姓名,性别,职务,家庭地址,部门编号) VALUES (3064,'陈五','男','经理','海珠区',03)INSERT INTO 职工(职工号,姓名,性别,职务,家庭地址,部门编号) VALUES (3065,'刘六','女','经理助理','荔湾区',02)INSERT INTO 职工(职工号,姓名,性别,职务,家庭地址,部门编号) VALUES (3016,'赵七','男','工程师','越秀区',04)INSERT INTO 职工(职工号,姓名,性别,职务,家庭地址,部门编号) VALUES (3067,'连八','男','人事主管','黄埔区',05)INSERT INTO 职工(职工号,姓名,性别,职务,家庭地址,部门编号) VALUES (3068,'蔡九','男','出纳','白云区',02)INSERT INTO 职工(职工号,姓名,性别,职务,家庭地址,部门编号) VALUES (3069,'何十','女','会计','荔湾区',02)GOINSERT INTO 保健(保健卡编号,职工号,检查身体日期,健康状况) VALUES (01,3061,'2005-9-1','良好')INSERT INTO 保健(保健卡编号,职工号,检查身体日期,健康状况) VALUES (02,3062,'2005-9-1','良好')INSERT INTO 保健(保健卡编号,职工号,检查身体日期,健康状况) VALUES (03,3063,'2005-9-8','一般')INSERT INTO 保健(保健卡编号,职工号,检查身体日期,健康状况) VALUES (04,3064,'2005-9-8','差')INSERT INTO 保健(保健卡编号,职工号,检查身体日期,健康状况) VALUES (05,3065,'2005-9-9','良好')INSERT INTO 保健(保健卡编号,职工号,检查身体日期,健康状况) VALUES (06,3016,'2005-9-9','差')INSERT INTO 保健(保健卡编号,职工号,检查身体日期,健康状况) VALUES (07,3067,'2006-1-1','一般')INSERT INTO 保健(保健卡编号,职工号,检查身体日期,健康状况) VALUES (08,3068,'2006-1-1','差')INSERT INTO 保健(保健卡编号,职工号,检查身体日期,健康状况) VALUES (09,3069,'2006-1-1','良好')GO2.使用查询分析器检索"办公室"的科长姓名和家庭地址;SELECT 姓名,家庭地址 FROM 职工 AS E,部门 AS DWHERE E.部门编号=D.部门编号 AND E.职务='科长' AND D.部门名称='办公室'GO3.使用查询分析器检索"财务科"中健康状况为"良好"的职工姓名和家庭地址;SELECT 姓名,家庭地址 FROM 职工 AS E,部门 AS D,保健 AS BWHERE E.部门编号=D.部门编号 AND E.职工号=B.职工号 AND 部门名称='财务科' AND 健康状况='良好'GO4.用SQL语句写出,删除职工关系表中职工号为"3016"DELETE FROM 保健 WHERE 职工号='3016'DELETE FROM 职工 WHERE 职工号='3016'SELECT * FROM 职工GO5.用SQL语句写出,将职工号为"3061"的职工号的健康状况改为"一般" UPDATE 保健 SET 健康状况='一般' WHERE 职工号='3061'SELECT * FROM 保健GO6.建立健康状况为"差"的职工的视图;CREATE VIEW 健康状况差视图 AS(SELECT E.职工号,姓名,部门名称,检查身体日期FROM 职工 AS E,部门 AS D,保健 AS B WHERE E.职工号=B.职工号 AND E.部门编号=D.部门编号 AND B.健康状况='差')GOSELECT * FROM 健康状况差视图GO样题九.设某高校数据库中有如下两个基本表:学生关系S(学号,姓名,年龄,班级)选课关系SC(学号, 课程号,成绩)1.创建上述基本表,并插入必要的数据记录;CREATE DATABASE HschoolGOUSE HschoolGOCREATE TABLE S学号 Smallint primary key, 主码姓名 varchar(10) not null,年龄 Smallint,班级 SmallintGOCREATE TABLE SC学号 Smallint FOREIGN KEY REFERENCES S(学号), 外码课程号 varchar(10),成绩 SmallintGOINSERT INTO S(学号,姓名,年龄,班级) VALUES (8101,'张三',18,101) INSERT INTO S(学号,姓名,年龄,班级) VALUES (8102,'钱四',16,121) INSERT INTO S(学号,姓名,年龄,班级) VALUES (8103,'王玲',17,131) INSERT INTO S(学号,姓名,年龄,班级) VALUES (8105,'李林',19,102) INSERT INTO S(学号,姓名,年龄,班级) VALUES (8109,'赵四',18,141) INSERT INTO S(学号,姓名,年龄,班级) VALUES (8110,'李可',20,142)INSERT INTO S(学号,姓名,年龄,班级) VALUES (8201,'张飞',18,111) INSERT INTO S(学号,姓名,年龄,班级) VALUES (8302,'周瑜',16,112) INSERT INTO S(学号,姓名,年龄,班级) VALUES (8203,'王明',17,111) INSERT INTO S(学号,姓名,年龄,班级) VALUES (8305,'董庆',19,102) INSERT INTO S(学号,姓名,年龄,班级) VALUES (8409,'赵龙',18,101) INSERT INTO S(学号,姓名,年龄,班级) VALUES (8510,'李丽',20,142) GOINSERT INTO SC(学号,课程号,成绩) VALUES (8105,'C1',80) INSERT INTO SC(学号,课程号,成绩) VALUES (8101,'C1',61) INSERT INTO SC(学号,课程号,成绩) VALUES (8101,'C2',81) INSERT INTO SC(学号,课程号,成绩) VALUES (8102,'C3',66) INSERT INTO SC(学号,课程号,成绩) VALUES (8102,'C3',61) INSERT INTO SC(学号,课程号,成绩) VALUES (8103,'C3',73) INSERT INTO SC(学号,课程号,成绩) VALUES (8105,'C2',92) INSERT INTO SC(学号,课程号,成绩) VALUES (8109,'C3',84) INSERT INTO SC(学号,课程号,成绩) VALUES (8110,'C4',42) INSERT INTO SC(学号,课程号,成绩) VALUES (8201,'C5',81) INSERT INTO SC(学号,课程号,成绩) VALUES (8302,'C6',62) INSERT INTO SC(学号,课程号,成绩) VALUES (8203,'C2',71)GO2.使用查询分析器检索没有选C1或C2课的学生的学号;SELECT DISTINCT 学号 FROM SCWHERE 学号 NOT IN (SELECT 学号 FROM SC WHERE 课程号='C1' OR 课程号='C2')GO3.用SQL语句查询李林选了而王明没有选的课程号.SELECT 课程号 FROM S,SCWHERE S.学号=SC.学号 AND 姓名='李林'AND 课程号 NOT IN(SELECT 课程号 FROM S,SC WHERE S.学号=SC.学号 AND 姓名='王明') SQL 语句操作(50分)1.查询“教育系”学生的学号,姓名,性别,选修过的课程号,课程名,考试成绩,2.计算出每位学生的选课门数和平均成绩;3.检索出没有选修课程“数据库原理”和“数据结构”的学生的信息;4.重新计算出每位学生的总收入(总收入=打工收入+奖金); 5. 计算出所有单位的打工收入和奖励的总额;6.建立视图course,显示出每个学生选课的学号、选课门数、平均成绩,最高成绩。
14秋北语《数据库系统和应用》作业---精品管理资料

14秋《数据库系统和应用》作业1试卷总分:100 测试时间:—- 试卷得分:100单选题包括本科在内的各校各科复习资料,可以联系屏幕右上的“文档贡献者"一、单选题(共20 道试题,共100 分。
)得分:100V 1。
数据库系统中的数据模型通常由( )三部分组成.A.数据结构、数据操作和完整性约束B。
数据定义、数据操作和安全性约束C. 数据结构、数据管理和数据保护D。
数据定义、数据管理和运行控制满分:5 分得分:52. DBS中“第三级存储器"是指( ).A。
磁盘和磁带B。
磁带和光盘C。
光盘和磁盘D. 快闪存和磁盘满分:5 分得分:53。
有关系R和S,R∩S的运算等价于( )。
A。
S-(R—S)B。
R—(R-S)C。
(R-S)∪SD。
R∪(R—S)满分:5 分得分:54。
常见的数据模型是_______.A. 层次模型、网状模型、关系模型B。
概念模型、实体模型、关系模型C。
对象模型、外部模型、内部模型D. 逻辑模型、概念模型、关系模型满分:5 分得分:55。
数据库的开发控制,完整性检查,安全性检查等是对数据库的()。
A. 设计B. 保护C。
操纵D. 维护满分:5 分得分:56。
在关系代数中,对一个关系做操作后,新关系的元数个数()原来关系的元素个数.A. 小于B。
等于C。
大于D。
小于或等于满分:5 分得分:57. 视图是一个“虚表",视图的构造基于()。
A。
基本表B。
视图C。
基本表或视图D. 数据字典满分:5 分得分:58。
一个结点可以有多个双亲,结点之间可以有多种联系的模型是_______.A。
网状模型B。
关系模型C。
层次模型D。
以上都有满分:5 分得分:59. 子模式DDL用来描述()。
A。
数据库的总体逻辑结构B。
数据库的局部逻辑结构C。
数据库的物理存储结构D. 数据库的概念结构满分:5 分得分:510。
在关系模型中,关系的“元数”(arity)是指()。
A. 行数B。
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练习题及答案1(合集五篇)

SQL练习题及答案1(合集五篇)第一篇:SQL练习题及答案1SQL练习题:商品销售数据库商品销售数据库Article(商品号 char(4),商品名char(16),单价 Numeric(8,2),库存量 int)Customer(顾客号char(4),顾客名 char(8),性别 char(2),年龄 int)OrderItem(顾客号 char(4),商品号 char(4),数量 int, 日期date)1.用SQL建立三个表,须指出该表的实体完整性和参照完整性,对性别和年龄指出用户自定义的约束条件。
(性别分成男女,年龄从10到100)。
顾客表的数据用插入语句输入数据,其它两表可用任意方式输入数据。
create table OrderItem(顾客号char(4),商品号char(4),日期datetime,数量 smallint,primary key(顾客号,商品号,日期),foreign key(商品号)references Article(商品号), foreign key(顾客号)references Custommer(顾客号));2.检索定购商品号为…0001‟的顾客号和顾客名。
select distinct 顾客号,顾客名from OrderItem where 商品号='0001'3.检索定购商品号为…0001‟或…0002‟的顾客号。
select distinct 顾客号 from OrderItem where 商品号='0001' or 商品号='0002';4.检索至少定购商品号为…0001‟和…0002‟的顾客号。
select 顾客号 from OrderItem where 商品号='0001' and 顾客号 in(select 顾客号 from OrderItem where 商品号='0002');5.检索至少定购商品号为…0001‟和…0002‟的顾客号。
SQL语句练习题(精品文档)

S Q L语言一、选择题1.S Q L语言是()的语言,容易学习。
A.过程化B.非过程化C.格式化D.导航式2. S Q L语言的数据操纵语句包括S E L E C T、I N S E R T、U P D A T E、D E L E T E等。
其中最重要的,也是使用最频繁的语句是()。
A.S E L E C TB.I N S E R TC.U P D A T ED.D E L E T E3.在视图上不能完成的操作是()。
A.更新视图B.查询C.在视图上定义新的表D.在视图上定义新的视图4.S Q L语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,C R E A T E、D R O P、A L T E R语句是实现哪种功能()。
A.数据查询B.数据操纵C.数据定义D.数据控制5.S Q L语言中,删除一个视图的命令是()。
A.D E L E T EB.D R O PC.C L E A RD.R E M O V E6.在S Q L语言中的视图V I E W是数据库的()。
A.外模式B.模式C.内模式D.存储模式7.下列的S Q L语句中,()不是数据定义语句。
A.C R E A T E T A B L EB.D R O P V I E WC.C R E A T E V I E WD.G R A N T8.若要撤销数据库中已经存在的表S,可用()。
A.D E L E T E T A B L E SB.D E L E T E SC.D R O P T A B L E SD.D R O P S9.若要在基本表S中增加一列C N(课程名),可用()。
A.A D D T A B L E S(C N C H A R(8))B.A D D T A B L E S A L T E R(C N C H A R(8))C.A L T E R T A B L E S A D D(C N C H A R(8))D.A L T E R T A B L E S(A D D C N C H A R(8))10.学生关系模式S(S#,S n a m e,S e x,A g e),S的属性分别表示学生的学号、姓名、性别、年龄。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S Q L语言一、选择题1.S Q L语言是()的语言,容易学习。
A.过程化B.非过程化C.格式化D.导航式2. S Q L语言的数据操纵语句包括S E L E C T、I N S E R T、U P D A T E、D E L E T E等。
其中最重要的,也是使用最频繁的语句是()。
A.S E L E C TB.I N S E R TC.U P D A T ED.D E L E T E3.在视图上不能完成的操作是()。
A.更新视图B.查询C.在视图上定义新的表D.在视图上定义新的视图4.S Q L语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,C R E A T E、D R O P、A L T E R语句是实现哪种功能()。
A.数据查询B.数据操纵C.数据定义D.数据控制5.S Q L语言中,删除一个视图的命令是()。
A.D E L E T EB.D R O PC.C L E A RD.R E M O V E6.在S Q L语言中的视图V I E W是数据库的()。
A.外模式B.模式C.内模式D.存储模式7.下列的S Q L语句中,()不是数据定义语句。
A.C R E A T E T A B L EB.D R O P V I E WC.C R E A T E V I E WD.G R A N T8.若要撤销数据库中已经存在的表S,可用()。
A.D E L E T E T A B L E SB.D E L E T E SC.D R O P T A B L E SD.D R O P S9.若要在基本表S中增加一列C N(课程名),可用()。
A.A D D T A B L E S(C N C H A R(8))B.A D D T A B L E S A L T E R(C N C H A R(8))C.A L T E R T A B L E S A D D(C N C H A R(8))D.A L T E R T A B L E S(A D D C N C H A R(8))10.学生关系模式S(S#,S n a m e,S e x,A g e),S的属性分别表示学生的学号、姓名、性别、年龄。
要在表S中删除一个属性“年龄”,可选用的S Q L语句是()。
A.D E L E T E A g e f r o m SB.A L T E R T A B L E S D R O P A g eC.U P D A T E S A g eD.A L T E R T A B L E S‘A g e’11.有关系S(S#,S N A M E,S A G E),C(C#,C N A M E),S C(S#,C#,GR A D E)。
其中S#是学生号,S N A M E是学生姓名,S A G E是学生年龄,C#是课程号,C N A M E是课程名称。
要查询选修“A C C E S S”课的年龄不小于20的全体学生姓名的S Q L语句是S E L E C T S N A M E F R O M S,C,S C W H E R E子句。
这里的W H E R E 子句的内容是()。
A.S.S#=S C.S#a n d C.C#=S C.C#a n d S A G E>=20a n dC N A M E=‘A C C E S S’B.S.S#=SC.S#a n d C.C#=S C.C#a n d S A G E i n>=20a n dC N A M E i n‘A C C E S S’C.S A G E i n>=20a n d C N A M E i n‘A C C E S S’D.S A G E>=20a n d C N A M E=’A C C E S S’12.设关系数据库中一个表S的结构为S(S N,C N,g r a d e),其中S N为学生名,C N为课程名,二者均为字符型;g r a d e为成绩,数值型,取值范围0-100。
若要把“张二的化学成绩80分”插入S中,则可用()。
A.A D DI N T O SV A L U E S(’张二’,’化学’,’80’)B.I N S E R TI N T O SV A L U E S(’张二’,’化学’,’80’)C.A D DI N T O SV A L U E S(’张二’,’化学’,80)D.I N S E R TI N T O SV A L U E S(’张二’,’化学’,80)13.设关系数据库中一个表S的结构为:S(S N,C N,g r a d e),其中S N为学生名,C N为课程名,二者均为字符型;g r a d e为成绩,数值型,取值范围0-100。
若要更正王二的化学成绩为85分,则可用()。
A.U P D A T E SS E T g r a d e=85W H E R E S N=’王二’A N D C N=’化学’B.U P D A T E SS E T g r a d e=’85’W H E R E S N=’王二’A N D C N=’化学’C.U P D A T E g r a d e=85W H E R E S N=’王二’A N D C N=’化学’D.U P D A T E g r a d e=’85’W H E R E S N=’王二’A N D C N=’化学’14.在S Q L语言中,子查询是()。
A.返回单表中数据子集的查询语言B.选取多表中字段子集的查询语句C.选取单表中字段子集的查询语句D.嵌入到另一个查询语句之中的查询语句15.S Q L是一种()语言。
A.高级算法B.人工智能C.关系数据库D.函数型16.有关系S(S#,S N A M E,S E X),C(C#,C N A M E),S C(S#,C#,GR A D E)。
其中S#是学生号,S N A M E是学生姓名,S E X是性别,C#是课程号,C N A M E是课程名称。
要查询选修“数据库”课的全体男生姓名的S Q L语句是S E L E C T S N A M EF R O M S,C,S C W H E R E子句。
这里的W H E R E子句的内容是()。
A.S.S#= S C.S# a n d C.C#= S C.C# a n d S E X=’男’ a n d C N A M E=’数据库’B.S.S#=SC.S#a n d C.C#=S C.C#a n d S E X i n’男’a n d C N A M E i n’数据库’C.S E X’男’a n d C N A M E’数据库’D.S.S E X=’男’ a n d C N A M E=’数据库’17.若用如下的S Q L语句创建了一个表S C:C R E A T E T A B L E S C(S# C H A R(6)N O T N U L L,C# C H A R (3)N O T N U L L,S C O R E I N T E G E R,N O T E C H A R(20));向S C表插入如下行时,()行可以被插入。
A.(’’,’111’,60,必修)B.(’’,’101’,N U L L,N U L L)C.(N U L L,’103’,80,’选修’)D.(’’,N U L L,86,’’)18.假设学生关系S(S#,S N A M E,S E X),课程关系C(C #,C N A M E),学生选课关系S C(S#,C#,G R A D E)。
要查询选修“C o m p u t e r”课的男生姓名,将涉及到关系()。
A.SB.S,S CC.C,SCD.S,C,SC选择题答案:(1)B(2)A(3)C(4)C(5)B(6)A(7)D(8)C(9)C(10)B(11)A(12)D(13)A(14)D(15)C(16)A(17)B(18)D二、简答题1.试述S Q L语言的特点。
答:(1)综合统一。
S Q L语言集数据定义语言D D L、数据操纵语言D M L、数据控制语言D C L的功能于一体。
(2)高度非过程化。
用S Q L语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及S Q L语句的操作过程由系统自动完成。
(3)面向集合的操作方式。
S Q L语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
(4)以同一种语法结构提供两种使用方式。
S Q L语言既是自含式语言,又是嵌入式语言。
作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用。
(5)语言简捷,易学易用。
2.试述S Q L的定义功能。
答:S Q L的数据定义功能包括定义表、定义视图和定义索引。
S Q L语言使用C R E A T E T A B L E语句定义建立基本表,;A L T E R T A B L E语句修改基本表定义,D R O P T A B L E语句删除基本表;建立索引使用C R E A T E I N D E X语句建立索引,D R O P I N D E X语句删除索引表;S Q L语言使用C R E A T E V I E W命令建立视图,DR O P V I E W 语句删除视图。
3.用S Q L语句建立第3章习题3中的四个表。
答:对于S表:S(S N O,S N A M E,S T A T U S,C I T Y);建S表C R E A T E T A B L E S(S N O C H A R(3),S N A M E C H A R(10),S T A T U S C H A R(2),C I T Y C H A R(10));P(P N O,P N A M E,C O L O R,W E I G H T);建P表C R E A T E T A B L E P(P N O C H A R(3),P N A M E C H A R(10),C O L O R C H A R(4),W E I G H T I N T);J(J N O,J N A M E,C I T Y);建J表C R E A T E T A B L E J(J N O C H A R(3),J N A M E C H A R(10),C I T Y C H A R(10));S P J(S N O,P N O,J N O,Q T Y);建S P J表C R E A T E T A B L E S P J(S N O C H A R(3),P N O C H A R(3),J N O C H A R(3),Q T Y I N T);4.针对上题中建立的四个表试用S Q L语言完成第3章习题3中的查询。