SQL习题2007
sql例子2007
SQL 命令练习例子1、建表 ( 建表后 ,可用 modify structure 修改表结构命令 来看表的结构 ) 前提条件 :create database SQLLX && 建立数据库 SQLLX ,该数据库是打开的 create table zgda1.dbf ;(编号c(6) not null,姓名c(6),年龄n(2,0),工资f(6,2),获奖次数I,出生日期d,工作时间t,婚否I,简历m,照片g)c(6) not null,姓名 c(6),年龄 n(2,0),工资 f(6,2))create table zgda3.dbf (编号 c(6) not null primary key,姓名 c(6),年龄 n(2,0),工资 f(6,2))create table zgda3.dbf (编号 c(6),姓名 c(6),年龄 n(2,0) check 年龄 >0 error "年龄要大于 0" default 30) create table zgda4 free (编号 c(6),姓名 c(6),年龄 n(2,0)) &&zgda4 是自由表 注意:(表 zgda1 ---- zgda4 是数据库表,并自动加到当前数据库 SQLLX 中) (1) c n f 类型需要指定宽度 n f b 类型要指定精度 (2) UNIQUE 候选索引 primary key 主索引2 、 alter table 修改表结构alter table zgda3 add column 性别 c(2) check 性别="女" or 性别="男" error "性别只能为男或者女 " default "男" 功能:添加性别字段并设置有效性规则,默认值为男。
c(4) default "女" && 无有效性规则,默认值为女c(4) check 性别="女" or 性别="男" error " 性别只能为男或者女 " default "女" drop default &&删除性别字段的默认值 drop check && 删除性别字段的有效性规则 set check 性别="男" or 性别="女" error " 男或女?"set default "男" && 设置或更改性别字段的默认值 && 删除性别字段 && 姓名字段改名为 namealter table zgda3 rename column name to NM 3、 d rop table zgda4 &&删除自由表 zgda4 (请用close database 把数据库关掉,否则删除不掉) 4、 i nsert into: open database SQLLX&& 请打开数据库 SQLLXcreate table zgda4.dbf (编号 c(6),姓名 c(6),年龄 n(2,0),出生日期 d,婚否 L)insert into zgda4(编号,姓名,年龄,出生日期,婚否)values ("990011","张三",35,{X975-7-25},.t.) insert into zgda4(编号,姓名,年龄,出生日期,婚否)values("990012","李四",40,{A 1966-7-25},.f.) insert into zgda4(编号,姓名,年龄,出生日期,婚否)values("990013","王五",46,{人1960-7-25},.1) 5、 d eletedele from zgda4 where 年龄 >=40 && 用 list 命令显示记录,可看到 2 条记录加上了删除标记。
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练习题及答案在学习SQL(Structured Query Language)时,练习题是非常重要的一部分。
通过练习题,我们可以巩固和应用所学的SQL知识,提高自己的实践能力。
本文将介绍几个常见的SQL练习题,并提供相应的答案,希望对大家的学习有所帮助。
1. 查询员工表中所有员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表;```2. 查询员工表中薪水大于5000的员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 薪水 > 5000;```3. 查询员工表中职位为经理的员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 职位 = '经理';```4. 查询员工表中薪水在4000到6000之间的员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 薪水 BETWEEN 4000 AND 6000;```5. 查询员工表中薪水最高的员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 薪水 = (SELECT MAX(薪水) FROM 员工表);```6. 查询员工表中没有分配部门的员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 部门 IS NULL;```7. 查询员工表中按照薪水从高到低排列的前5名员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表ORDER BY 薪水 DESCLIMIT 5;```8. 查询员工表中每个部门的员工数量。
答案:```sqlSELECT 部门, COUNT(*) AS 员工数量FROM 员工表GROUP BY 部门;```9. 查询员工表中薪水排名在第3到第5位的员工的姓名和薪水。
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练习题及答案SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
在数据库管理系统中,SQL被广泛应用于数据的查询、插入、更新和删除等操作。
掌握SQL语言对于数据库开发和数据分析非常重要。
在这篇文章中,我们将提供一些SQL练习题及其答案,帮助读者巩固和提升SQL的应用能力。
1. 查询员工表中所有员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表;```2. 查询员工表中工资大于5000的员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 > 5000;```3. 查询员工表中工资在3000到5000之间的员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 BETWEEN 3000 AND 5000;```4. 查询员工表中姓"张"的员工的姓名和工资。
```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 姓名 LIKE '张%';```5. 查询员工表中工资最高的员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 = (SELECT MAX(工资) FROM 员工表);```6. 查询员工表中每个部门的员工数量。
答案:```sqlSELECT 部门, COUNT(*) AS 员工数量 FROM 员工表 GROUP BY 部门;```7. 查询员工表中每个部门的平均工资。
答案:```sqlSELECT 部门, AVG(工资) AS 平均工资 FROM 员工表 GROUP BY 部门;```8. 查询员工表中工资高于部门平均工资的员工的姓名和工资。
答案:SELECT 姓名, 工资 FROM 员工表 WHERE 工资 > (SELECT AVG(工资) FROM 员工表 GROUP BY 部门);```9. 查询员工表中没有分配部门的员工的姓名和工资。
sql入门试题
sql入门试题SQL(Structured Query Language)是用于管理和操作关系数据库的标准化查询语言。
以下是一组SQL 入门试题,旨在测试对基本SQL 查询语句的理解和应用。
一、选择题1.下列哪个是SQL 的关键字?– A. SELECT– B. PRINT– C. SEARCH– D. FIND2.在SQL 中,用于从表中检索数据的命令是?– A. RETRIEVE– B. SELECT– C. GET– D. EXTRACT3.SQL 中用于过滤结果的子句是?– A. WHERE– B. FROM– C. SELECT– D. ORDER BY4.在SQL 中,用于按照某一列对结果进行排序的子句是?– A. GROUP BY– B. ORDER BY– C. SORT BY– D. ARRANGE BY5.在SQL 中,用于将结果按照某一列进行分组的子句是?– A. GROUP BY– B. ORDER BY– C. SORT BY– D. ARRANGE BY二、填空题6.编写一个SQL 查询,从"Employees" 表中选择所有员工的名字和薪水。
SELECT Name, SalaryFROM Employees;7.编写一个SQL 查询,从"Products" 表中选择产品的名称和价格,并按价格从高到低排序。
SELECT ProductName, PriceFROM ProductsORDER BY Price DESC;8.编写一个SQL 查询,统计"Orders" 表中订单的总数。
SELECT COUNT(*) AS TotalOrdersFROM Orders;9.编写一个SQL 查询,找到"Customers" 表中不重复的城市数量。
SELECT COUNT(DISTINCT City) AS UniqueCitiesFROM Customers;三、简答题10.解释SQL 中的WHERE 子句的作用。
sql习题及答案
sql习题及答案SQL习题及答案SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
它是许多软件开发人员和数据分析师必备的技能之一。
在学习SQL的过程中,练习是非常重要的,因为它可以帮助我们更好地理解和掌握这门语言。
以下是一些常见的SQL习题及答案,供大家练习和参考:1. 查询所有学生的信息```sqlSELECT * FROM students;```2. 查询所有学生的姓名和年龄```sqlSELECT name, age FROM students;```3. 查询所有学生的姓名和年龄,并按年龄从小到大排序```sqlSELECT name, age FROM students ORDER BY age;```4. 查询所有学生的平均年龄```sqlSELECT AVG(age) FROM students;```5. 查询所有学生的姓名和其所在班级的名称```sqlSELECT , c.class_nameFROM students sJOIN classes c ON s.class_id = c.class_id;```6. 查询所有学生的姓名和其所在班级的名称,如果没有班级则显示“未分配班级”```sqlSELECT , COALESCE(c.class_name, '未分配班级')FROM students sLEFT JOIN classes c ON s.class_id = c.class_id;```7. 查询每个班级的学生数量```sqlSELECT class_id, COUNT(*) AS student_countFROM studentsGROUP BY class_id;```以上是一些常见的SQL习题及答案,希望能够帮助大家更好地理解和掌握SQL 语言。
通过不断的练习和实践,相信大家一定能够成为SQL的高手!。
SQl强化训练题一
原创:老二牛车教育SQL强化训练题库一如果训练了五套题库后,能达到60分也不是很容易的哦数据库文件请到百度网盘下载:/s/1qWHg5o4答案请在百度文库中找……/s/1qWHg5o40:数据库还原---5分全部要求使用一条SQL语句1:ColumnValueMax表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列要求一条SQL语句输出结果: --5分2: ColumnValueMax表中D列类型为datetime要求按照年月日输出结果: --5分3: ColumnValueMax表中D列类型为datetime 包含日期与时间要求使用日期函数输出日期为‘“2008-1-2”的纪录 -5分4ColumnValueMax表,里面有3个字段:A语文,B数学,C英语。
其中有4条记录分别表示语文分,数学分,英语分,请用一条sql语句查询出这四条记录并按以下条件显示出来:大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
-5分Dept部门表5:输出按照月份进行汇总的销售额总值 -5分6 统计按照部门进行的统计销售额输出以下结果: -5分6-1 改造以上结果将没有销售额的金额转换为0:() -5分7使用一条SQL语句输出按照部门汇总后的销售额结果为: -5分8:使用一条SQL语句输出至少两个月都有销售额的部门结果为: -5分其中部门2有一月二月的销售记录,部门3有一月三月的销售记录9:CS游戏比赛Result表内容:如果要生成下列结果, 该如何写sql语句? -5分stuInfo学员信息表,stuName NVARCHAR(20) NOT NULL,--学员姓名stuNo NCHAR(6) NOT NULL,--学号stuSex NCHAR(4) NOT NULL,--性别stuAge SMALLINT NOT NULL,--年龄stuSeat SMALLINT IDENTITY(1,1),--座位号stuMark Nvarchar(200 ) --学员特点stuMarks学员考试成绩表ExamNo CHAR(7) NOT NULL, 考试编号stuNo NCHAR(6) NOT NULL, 学号writtenExam SMALLINT NOT NULL, --笔试成绩LabExam SMALLINT NOT NULL --机试成绩stuName ----学员姓名10.3要求输出以下结果:使用一条SQL查询出比李文才的年龄大的学员的信息10.4为了方便按照学员的名称查询学员的考试成绩,在stuMarks表中添加stuName字段,要求使用一条SQL 语句更新stuMarks表中stuName的值-5分10.5要求插入一个新学员,名称叫‘我考牛呀牛’在stuInfo表中,要求插入该学员的考试成绩在StuMarks表中-5分(两条SQL语句,不能手工添加)10.6要求一条SQL语句删除名称叫‘我考牛呀牛’的学员的考试成绩记录stuMarks表中的记录(假定stuMarks中没有stuName字段)。
2007sql
2007年数据库原理试卷(A)一、单项选择题(本大题共20小题,每小题1分,共20分)。
1.描述事物的符号记录称为__B______。
A、信息B、数据C、记录D、记录集合2.__B___是位于用户与操作系统之间的一层数据管理软件。
A、数据库系统B、数据库管理系统C、数据库D、数据库应用系统3.数据库系统不仅包括数据库本身,还要包括相应的硬件、软件和__D___。
A、数据库管理系统B、数据库应用系统C、数据库应用系统D、各类相关人员4.数据库系统阶段,数据__D___。
A、具有物理独立性,没有逻辑独立性B、有物理独立性和逻辑独立性C、独立性差D、有高度的物理独立性和一定程度的逻辑独立性5.__B___属于信息世界的模型,实际上是现实世界到机器世界的一个中间层次。
A、数据模型B、概念模型C、E-R图D、关系模型6.要保证数据库的数据独立性,需要修改的是( A )A.三层模式之间的两种映射B.模式与内模式C.模式与外模式D.三层模式7.下列四项中说法不正确的是( C )A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性8.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是(C )A.多对多B.一对一C.多对一D.一对多9.有12个实体类型,并且它们之间存在着15个不同的二元联系,其中4个是1:1联系类型,5个是1:N联系类型,6个M:N联系类型,那么根据转换规则,这个ER结构转换成的关系模式有( B )A.17个B.18个C.23个D.27个10.在视图上不能完成的操作是(C )A.更新视图B.查询C.在视图上定义新的基本表D.在视图上定义新视图11.现有一个关系:借阅(书号、书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一种书借多本。
则该关系模式的码是(D )。
07年下SQL数据库试题(通技062)
长沙通信职业技术学院二OO七年下学期期末考试《SQL Server 数据库管理与开发》 试题 (NO.1)命题时间:2007年12月 日 适用班级:通技062考试时间:120分钟______年__月__日(星期____)____午考一、填空题(每题1分,共10分) _______来表示实体及其联系,关系通过关系名和属性名来定义。
关系的每一行是一个________,表示一个实体;每一列是记录中的一个数据项,表示实体的一个属性。
2. 表达式Reverse (Substring (“奔腾586”,5,3))的结果是________ 3. 在SQL 中取消查询结果中重复值的短语是_________________。
4. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是_______5. 触发器按照触发时刻分为如下两种类型:__________ 和 __________6. 数据库中主文件的后缀是__________7. 在SQL 中记数和求平均的函数分别为__________ 和 __________二、单选题(每小题2分,共20分)1、关系模型中,实体和实体间的联系都是通过( )A.索引表示B.指针链表示C.关系表示D.文件表示 2、SQL 语句中修改表结构的命令是( )A. MODIFY TABLEB. MODIFY STRUCTUREC. ALTER TABLED. ALTER STRUCTURE3、模式查找like '_a%',下面哪个结果是可能的( )A.ailB. baiC.bbaa4、下列不能创建表的方法是( )A 、表设计器B 、表向导C 、Creat tableD 、Creat database 5、SQL 语言中,删除记录的命令是( )。
A. DELETEB. DROPC. CLEARD. REMOVE6、一数据库名为STUDENT ,要想打开该数据库,应使用命令是 ( ) A 、OPEN STUDENT B 、OPEN DATABASE STUDENT C 、USE DATABASE STUDENT D 、USE STUDENT7、如果在建立数据表stock.dbf 时,将单价字段的约束设为“单价>0”,通过该设置,能保证数据的 ( ) A 、实体完整性 B 、域完整性 C 、参考完整性 D 、表完整性 8、CEILING (56.78)的值是( )A 、56B 、57C 、58D 、559、下列哪项不是触发器可以指定的操作( )A 、INSERTB 、UPDATEC 、DROPD 、DELETE 10关于游标的叙述错误的是( )A 、游标可以有选择的按记录执行操作B 、申明游标使用DECLAREC 、CLOSE 一个游标将释放游标占用的内存D 、释放游标使用关键字DEALLOCATE 三、判断题(在你认为正确的题后打‘√’,错误的题后打‘Х’)(共10分)1. "xingming" 是SQL 中的字符串常量。
SQL语言练习题及答案
SQL语言练习题及答案第三章SQL语言一、选择题1.SQL语言是(B)的语言,容易学习。
A.过程化B.非过程化C.格式化D.导航式2.SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。
其中最重要的,也是使用最频繁的语句是(A)。
A.SELECTB.INSERTC.UPDATED.DELETE3.在视图上不能完成的操作是()。
A.更新视图B.查询C.在视图上定义新的表D.在视图上定义新的视图CREATE、4.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,DROP、ALTER语句是实现哪种功能()。
A.数据查询B.数据操纵C.数据定义D.数据控制5.SQL语言中,删除一个视图的命令是()。
6.在SQL语言中的视图VIEW是数据库的()。
7.下列的SQL语句中,()不是数据定义语句。
8.若要撤销数据库中已经存在的表S,可用()。
9.若要在基本表S中增加一列CN(课程名),可用()。
TABLE S(CN CHAR(8))TABLE S ALTER(CN CHAR(8))TABLE S ADD(CN CHAR(8))TABLE S(ADD CN CHAR(8))10.学生关系模式S(S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。
要在表S中删除一个属性“年龄”,可选用的SQL 语句是()。
A.DELETE Age from SB.ALTER TABLE S DROP AgeC.UPDATE S AgeD.ALTER TABLE S‘Age’11.有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S #,C#,GRADE)。
其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄,C#是课程号,CNAME是课程名称。
要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL 语句是SELECTSNAMEFROMS,C,SC WHERE子句。
2007级-DB试题-A卷new答案
2007级《数据库原理》试题参考答案---说明:有些题答案不惟一。
一、单项选择题(每小题1分,共15分)1-5:A A B C A 6-10: C B D D A 11-15: C A C A C 二、判断题(正确的打“√”,错误的打“×”。
每小题1分,共10分)1-5: ×√√√× 6-10: ××√√√三、查询设计题(每小题5分,共25分)1.关系代数(1)πCname,Date(σENAME=’张力’(E)⋈ EC ⋈ C)(2)πEno,Ename(E) ⋈ (πEno,Cno(EC) ÷πCno(C))2. SQL语句(1)SELECT Cname,Ename,SexFROM E,CWHERE E.Eno=C.Manager(2)SELECT Eno,Ename,Age 或者:SELECT Eno,Ename,AgeFROM E FROM EWHERE Eno NOT IN WHERE NOT EXISTS(SELECT Eno (SELECT *FROM EC) FROM ECWHERE E.Eno=EC.Eno)(3) SELECT Cno,Cname,COUNT(*)FROM C,ECWHERE o=oGROUP BY CnoHAVING COUNT(*)>=ALL(SELECT COUNT(*)FROM ECGROUP BY Cno)四、分析与设计题(共50分)1. (9分)(1) 侯选码:WX,WY 3NF(2) 侯选码:WY 1NF(3) 侯选码:WX,Y BCNF2. (12分)(1)Fm={ C→D,CA→E,E→A,B→A,B→C }侯选码:BG 分解ρ={CD,ACE,ABC,BG}(2) 令 R1=AC, R2=BC因为R1∩R2=C, R1-R2=A, R2-R1=B, C→A和C→B均不成立,所以分解ρ不是无损连接分解。
sql基础考试题及答案
sql基础考试题及答案一、单项选择题(每题2分,共10分)1. SQL代表什么?A. Structured Query LanguageB. Standard Query LanguageC. Simple Query LanguageD. Structured Question Language答案:A2. 在SQL中,哪个命令用于创建新表?A. CREATE TABLEB. CREATE DATABASEC. CREATE INDEXD. CREATE VIEW答案:A3. SQL中的主键是什么?A. 可以有多个值的列B. 可以为空值的列C. 表中每行的唯一标识符D. 用来排序数据的列答案:C4. 如何在SQL查询中选择所有列?A. SELECT *B. SELECT ALLC. SELECT ALL COLUMNSD. SELECT ALL FIELDS答案:A5. SQL中的LIKE操作符用于什么?A. 计算数值B. 进行算术比较C. 搜索列中的指定模式D. 连接两个或多个表答案:C二、多项选择题(每题3分,共15分)1. 下列哪些是SQL中的聚合函数?A. COUNTB. AVGC. SUMD. MAX答案:A, B, C, D2. 在SQL中,哪些关键字用于数据的更新?A. INSERTB. UPDATEC. DELETED. SELECT答案:B, C3. 下列哪些是SQL中用于数据检索的子句?A. WHEREB. GROUP BYC. HAVINGD. ORDER BY答案:A, B, C, D4. 在SQL中,哪些操作符用于比较?A. =B. <>C. >D. <=答案:A, B, C, D5. 下列哪些是SQL中的数据类型?A. INTB. VARCHARC. DATED. BOOLEAN答案:A, B, C, D三、填空题(每题2分,共10分)1. SQL中的________关键字用于删除表。
sql测试题和答案.docx
sql测试题和答案# SQL测试题1. 基础查询题- 题目:编写一个SQL查询,从`employees`表中选择所有员工的姓名和员工ID。
- 答案:`SELECT name, employee_id FROM employees;`2. 条件查询题- 题目:从`orders`表中选择所有订单金额超过1000的订单。
- 答案:`SELECT * FROM orders WHERE order_amount > 1000;`3. 排序题- 题目:从`products`表中选择所有产品的名称和价格,并按价格降序排列。
- 答案:`SELECT name, price FROM products ORDER BY price DESC;`4. 聚合函数题- 题目:计算`sales`表中所有销售额的总和。
- 答案:`SELECT SUM(sales_amount) AS total_sales FROM sales;`5. 分组查询题- 题目:从`sales`表中按产品ID分组,并计算每个产品的总销售额。
- 答案:`SELECT product_id, SUM(sales_amount) AStotal_sales_per_product FROM sales GROUP BY product_id;`6. 连接查询题- 题目:查询`customers`表和`orders`表,找出所有客户的姓名和他们下过的订单数量。
- 答案:`SELECT , COUNT(o.order_id) AS order_count FROM customers c JOIN orders o ON c.customer_id =o.customer_id GROUP BY ;`7. 子查询题- 题目:找出`employees`表中工资高于平均工资的员工的姓名和工资。
- 答案:`SELECT name, salary FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);`8. 多表连接查询题- 题目:查询`employees`表和`departments`表,找出所有员工的姓名、部门名称和部门ID。
数据库sql课后练习题及答案解析
数据库sql课后练习题及答案解析第一篇:数据库sql课后练习题及答案解析先创建下面三个表:(book表)(borrow表)(reader表)1)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。
2)列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。
3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。
4)查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。
5)查找书名以”计算机”开头的所有图书和作者(WRITER)。
6)检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。
##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。
8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。
9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。
##10)* 找出借阅了一书的借书证号。
11)找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。
12)查询2006年7月以后没有借书的读者借书证号、姓名及单位。
#13)求”科学出版社”图书的最高单价、最低单价、平均单价。
##14)* 求”信息系”当前借阅图书的读者人次数。
#15)求出各个出版社图书的最高价格、最低价格和总册数。
#16)分别找出各单位当前借阅图书的读者人数及所在单位。
17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。
18)分别找出借书人次数多于1人次的单位及人次数。
19)找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。
20)查询经济系是否还清所有图书。
如果已经还清,显示该系所有读者的姓名、所在单位和职称。
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课后练习题(1-9章答案)
SQL课后练习题(1-9章答案)第一章1、数据完整性是指( D )A.数据库存中的数据不存在重复B.数据库中所有的数据格式是一样的C.所有的数据全部保存在数据库中D.数据库中的数据能够正确反映情况2、SQL中pubs数据库属于(A )A.用户数据库B.系统数据库C.数据库模板D.数据库管理系统3、数据冗余指的是( D )A.数据与数据之间没有联系B.数据有丢失C.数据量太大D.存在重复的数据4、SQL Server数据库的主数据文件的扩展名为( B )A. .sqlB. .mdfC. .mdbD. .ldf5、下列关于关系数据库叙述错误的是(B )A.关系数据库的结构一般保持不变,但也可根据需要进行改变B.一个数据表组成一个关系数据库,多种不同数据则需要创建多个数据库C. 关系数据库表中的所有记录的关键字字段的值互不相同D. 关系数据库表中的外部关键字不能用于区别该表中的记录6、创建数据库时,需要指定( C )属性。
A.数据库初始大小B.数据库的存放位置C.数据库的物理名和逻辑名D.数据库的访问权限7、以下说法正确的是( A )A.通过SQL Server服务器对SQL Server的启动、停止和通过服务管理器对SQL Server的启动、停止是同等功效B.必须先启动服务管理器中的SQL Server服务之后才能通过SQL Server服务管理器启动SQL ServerC.必须先通过SQL Server服务管理器启动SQL Server之后才能启动服务管理器中的SQL Server服务D.只能通过服务管理器对SQL S erver进行启动和停止8、SQL Server提供的4个系统数据库,以下说法正确的是( D )A.tempdb数据库是一个空数据库,完全可以删除B.adventure works是用来做模板的一个数据库C.msdb数据库是用来做例子的数据库D.创建新的空白数据库时,将使用Model数据库所规定的默认值9、以下说法错误的是(C)A.数据完整性是指存储在数据库中数据的准确性B.SQL Server是一个DBMSC.ERP、CRM、MIS等都是DBMSD.设计数据库时允许必要的冗余第二章1、创建银行的贷款情况表时,“还款日期”默认为当天,且必须晚于“借款日期”,应采用(A)约束。
2007年7月数据库基础与应用试题及参考答案
2007年7月数据库基础与应用试题及参考答案D()规则。
A. 传递性B. 分解性C. 合并性D. 增广性5.在SQL的查询语句中,order by选项实现对结果表的()功能。
A. 分组统计B. 求和C. 查找D. 排序6.Access2000数据库文件的扩展名是()。
A.dbf B.dbt C.mdf D.mdb7.在下面所给的属性中,()属性适宜作为主关键字。
A.基本工资 B.职称 C.姓名 D.身份证号码8.下列()图标是Access中表对象的标志。
A. B. C.D.9.Access中包含有()种数据类型。
A.9 B.10 C.7D.810.可以通过Internet进行数据发布的对象是()。
A.窗体B.报表C.查询 D.数据访问页二、是非判断题,根据叙述正确与否在题目开始的括号内打对号“√”或叉号“×”(每小题2分,共20分)()1.在文件管理阶段,文件之间是相互联系的,在数据库管理阶段,文件之间是相互独立的。
()2.分布式数据库系统既支持客户的局部应用,又支持客户的全局应用。
()3.在对象数据模型中,对象不但能够继承,而且能够嵌套。
()4.设一个学生关系为S(学生号,姓名),课程关系为C(课程号,课程名),选课关系为X(学生号,课程号,成绩),求出所有选课的学生信息的运算表达式为(X)与S的自然连接。
学生号()5.在一个关系R中,“职工号”函数决定“姓名”是非平凡函数依赖,但不是完全函数依赖。
()6. SQL Server2000是运行在Windows 操作系统平台上的、逻辑模型为层次型的数据库管理系统。
()7. SQL Server2000系统中采用的结构化查询语言为Transact-SQL语言。
()8. 在网络多用户环境下,在停止SQL Server2000服务之前,最好先执行暂停操作。
()9. 在Transact-SQL语言中,可以使用DELETE命令来标识一个批处理的结束。
sql语句及其实现工具
sql语句及其实现工具笔试部分2007年4月考试真题一、(11) 以下不属于SQL 数据操作命令的是A)MODIFY B) INSERT C) UPDATE D) DELETE(15)SQL 的SELECT 语句中,“HAVING<条件表达式>”用来筛选满足条件的A) 列 B)行 C) 关系 D 分组(16)设有关系SC(SNO,CNO,GRADE),其中SNO、CNO 分别表示学号、课程号(两者均为字符型),GRADE 表示成绩(数值型),若要把学号为“S101”的同学,选修课程号为“C11”,成绩为98 分的记录插到表SC 中,正确的语句是A)INSERT INTO SC(SNO,CNO,GRADE)valueS(‘S101’,’C11’,’98’)B) INSERT INTO SC(SNO,CNO,GRADE)valueS(S101, C11, 98)C) INSERT (‘S101’,’C11’,’98’) INTO SCD) INSERT INTO SC valueS (‘S101’,’C11’,98)(17)以下有关SELECT 语句的叙述中错误的是A)SELECT 语句中可以使用别名B)SELECT 语句中只能包含表中的列及其构成的表达式C)SELECT 语句规定了结果集中的顺序D)如果FORM 短语引用的两个表有同名的列,则SELECT 短语引用它们时必须使用表名前缀加以限定(18)在SQL 语句中,与表达式“年龄 BETWEEN 12 AND 46”功能相同的表达式是A)年龄>=12 OR<=46 B)年龄>=12 AND<=46C) 年龄>=12OR 年龄<=46 D)年龄>=12 AND 年龄<=46(19)在SELEC 语句中,以下有关HAVING 语句的正确叙述是A)HAVING 短语必须与GROUP BY 短语同时使用B)使用HAVING 短语的同时不能使用WHERE 短语C) HAVING 短语可以在任意的一个位置出现D) HAVING 短语与WHERE 短语功能相同(20) 在SQL 的SELECT 查询的结果中,消除重复记录的方法是A) 通过指定主索引实现 B) 通过指定唯一索引实现C) 使用DISTINCT 短语实现 D) 使用WHERE 短语实现(25) 在Visual FoxPro 中,在数据库中创建表的CREATE TABLE 命令中定义主索引、实现实体完整性规则的短语是A) FOREIGN KEY B) DEFAULTC) PRIMARY KEY D) CHECK(26) 在Visual FoxPro 中,以下关于查询的描述正确的是A)不能用自由表建立查询 B) 只能使用自由表建立查询C)不能用数据库表建立查询 D)可以用数据库表和自由表建立查询(28)在Visual FoxPro 中,如果要将学生表S(学号,姓名,性别,年龄)中“年龄”属性删除,正确的SQL 命令是A)ALTER TABLE S DROP COLUMN 年龄 B)DELETE 年龄 FROM SC)ALTER TABLE S DELETE COLUMN 年龄 D)ALTEER TABLE S DELETE 年龄(30)设有学生表S(学号,姓名,性别,年龄),查询所有年龄小于等于18 岁的女同学,并按年龄进行降序生成新的表WS,正确的SQL 命令是A)SELECT *FROM SWHERE 性别='女'AND 年龄<=18 ORDER BY 4 DESC INTO TABLE WSB) SELECT *FROM SWHERE 性别='女'AND 年龄<=18 ORDER BY 年龄 INTO TABLE WSC) SELECT *FROM SWHERE 性别='女'AND 年龄<=18 ORDER BY‘年龄’ DESC INTO TABLE WSD) SELECT *FROM SWHERE 性别='女'OR 年龄<=18 ORDER BY‘年龄’ ASC INTO TABLE WS(31)设有学生选课表SC(学号,课程号,成绩),用SQL 检索同时选修课程号为”C1”和”C5”的学生的学号的正确命令是A)SELECT 学号 RORM SCWHERE 课程号=’C1’AND 课程号=’C5’B) SELECT 学号 RORM SCWHERE 课程号=’C1’AND 课程号=(SELECT 课程号 FROM SC WHERE 课程号=’C5’)C) SELECT 学号 RORM SCWHERE 课程号=’C1’AND 学号=(SELECT 学号 FROM SC WHERE 课程号=’C5’)D) SELECT 学号 RORM SCWHERE 课程号=’C1’AND 学号 IN (SELECT 学号 FROM SC WHERE 课程号=’C5’)(32)设学生表S(学号,姓名,性别,年龄),课程表C(课程号,课程名,学分)和学生选课表SC(学号,课程号,成绩),检索学号,姓名和学生所选课程名和成绩,正确的SQL 命令是A)SELECT 学号,姓名,课程名,成绩 FROM S,SC,CWHERE S.学号 =SC.学号 AND SC.学号=C.学号B)SELECT 学号,姓名,课程名,成绩FROM (S JOIN SC ON S.学号=SC.学号)JOIN C ON SC.课程号 =C. 课程号C)SELECT S. 学号,姓名,课程名,成绩FROM S JOIN SC JOIN C ON S.学号=SC.学号 ON SC.课程号 =C. 课程号D) SELECT S. 学号,姓名,课程名,成绩FROM S JOIN SC JOIN C ON SC.课程号=C.课程号 ON S.学号 =SC. 学号二、(11)“歌手”表中有“歌手号”、“姓名”、和“最后得分”三个字段,“最后得分”越高名次越靠前,查询前10 名歌手的SQL 语句是:SELECT * ________ FROM 歌手 ORDER BY 最后得分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S Q L 习题
姓名:彭亚川班级:1305172 学号:16
2检索定购商品号为‘S001’的顾客号和顾客名。
select Customer.顾客号,顾客名from Customer,OrderItem where Customer.顾客号=OrderItem.顾客号and OrderItem.商品号='S001'
3检索定购商品号为‘S001’或‘S002’的顾客号。
select distinct顾客号from OrderItem where商品号='S001'or商品号='S002';
4检索至少定购商品号为‘S001’和‘S002’的顾客号。
(用交的方法)
select顾客号from OrderItem where商品号='S001'and顾客号in(select顾客号from OrderItem where商品号='S002')
5检索至少定购商品号为‘S001’和‘S002’的顾客号。
(用自表连接方法)
select distinct A.顾客号from OrderItem A,OrderItem B
where A.顾客号=B.顾客号and A.商品号='0001' and B. 商品号='0002';
6 检索没定购商品的顾客号和顾客名。
select distinct Customer.顾客号,顾客名from OrderItem, Customer
where Customer.顾客号 not in(select顾客号from OrderItem);
7 检索一次定购商品号‘S001’商品数量最多的顾客号和顾客名。
select distinct Customer.顾客号,顾客名from Customer,Article where顾客号in
(select顾客号from OrderItem where商品号='S001'and数量=
(select MAX(数量)from OrderItem where商品号='S001'));
8 检索男顾客的人数和平均年龄。
select count(*)人数,avg(年龄)from Customer where性别='男';
9 检索至少订购了一种商品的顾客数。
select count(distinct 顾客号) from OrderItem;
10 检索订购了商品的人次数。
select count( 顾客号) from OrderItem;
11 检索顾客张三订购商品的总数量及每次购买最多数量和最少数量之差。
select sum(数量),MAX(数量)-MIN(数量)from Customer,OrderItem where OrderItem.顾客号=Customer.顾客号and顾客名='张三';
12 检索至少订购了3单商品的顾客号和顾客名及他们定购的商品次数和商品总数量,并按商品总数量降序排序。
select Custommer.顾客号,顾客名,count( *),Sum(数量) from OrderItem,Custommer
where OrderItem.顾客号=Custommer.顾客号group by Custommer.顾客号,顾客名
having count( *)>3 order by 4 desc;
13 检索年龄在30至40岁的顾客所购买的商品名及商品单价。
select商品名,单价from Article,OrderItem,Customer where Article.商品号=OrderItem.商品号
and年龄between 30 and 40;
14 创建一个视图GM,字段包括:顾客号,顾客名和定购的商品名,日期和金额(金额=数量*单价)。
指定用内连接方式做。
检索购买的商品的单价至少有一次高于或等于1000元的顾客号和顾客名。
15 检索购买的购买价都高于或等于1000元的顾客号和顾客名。
s elect distinct Customer.顾客号,顾客名from Customer,Article,OrderItem where Customer.顾客号=OrderItem.顾客号and单价>=1000
16检索女顾客购买的商品号,商品名和数量合计。
select distinct Article.商品号,商品名,OrderItem.数量from OrderItem,Article,Customer where Article.商品号=
OrderItem.商品号and OrderItem.顾客号=Customer.顾客号and Customer.性别='女'
17 检索所有的顾客号和顾客名以及它们所购买的商品号。
(包括没买商品的顾客)
select distinct Customer.顾客号,顾客名,商品号from Customer left join OrderItem on Customer.顾客号=OrderItem.顾客号
18 检索这样的顾客号,顾客名,他们定购了所有的商品(除法)select distinct Customer.顾客号,顾客名,商品号
from OrderItem right join Customer on Customer.顾客号=OrderItem.顾客号
19 检索这样的顾客号,他们至少订购了顾客号为“S002”所订购的所有商品(除法)
select distinct顾客号from OrderItem a where not exists(select*from OrderItem b where顾客号='S002'and not exists (select*from OrderItem c where c.顾客号=a.顾客号and c.商品号=b.商品号))
20 向Article表插入一条纪录。
删除无人购买的商品。
(检验一下刚插入的记录是否已被删除)
delete from Article where商品号not in(select商品号from OrderItem)
21 降低已售出的数量总合超过10件的商品单价为原价的95%。
22 检索购买的商品的单价至少有一次高于或等于1000元的顾客号和顾客名。
select Customer.顾客号,顾客名from Customer,OrderItem,Article where Customer.顾客号=OrderItem.顾客号and Article.商品=OrderItem.商品号and 单价>1000
23. 建立断言:顾客的年龄必须大于18岁。
Create assertion A1check
(not exists(select*from Customer where年龄<=18))
以下不做
24. 把修改商品单价的权限授给用户Wang, 用户Wang可以转授该权限。
25. 把修改商品单价的权限用户Wang收回,转授出去的也级联收回。