SELECT语句练习题答案
select命令答案
提供的“学生管理数据库练习用”文件夹下的“学生管理”数据库附加1、查看学生表中有哪些班级的同学select distinct 班级 from 学生2 、显示“学生”表中的前3行记录的所有列,select top 3 * from 学生3、显示“学生”表中的前3行记录的姓名列,显示标题为学生姓名select top 3 姓名 as 学生姓名 from 学生4、查询“学生”表中所有男生的姓名、性别。
select 姓名,性别=case 性别when 0 then '女' else '男'endfrom 学生where 性别=15、查询“学生”表中所有姓名中包含“李”记录的姓名、所属院系。
select 姓名, 所属院系from 学生where 姓名 like '%李%'6、查询“学生”表中所有一班的女生。
select 姓名,case 性别when 0 then '女'else '男'end, 班级 from 学生where 性别=0 and 班级='一班'7 、查询“学生”表中所有一班和二班的学生的姓名和班级。
select 姓名, 班级from 学生where 班级='二班'or 班级='一班'8、查询“学生”表中所有入学成绩在550~580之间的学生记录的姓名、入学成绩、所属院系。
select 姓名,入学成绩, 所属院系from 学生where 入学成绩 between 550 and 580或:select 姓名,入学成绩, 所属院系from 学生where 入学成绩 >= 550 and 入学成绩<=5809、查询所有学生的入学成绩。
select 姓名,入学成绩from 学生10 、显示学生表中姓名和性别列的内容。
select 姓名, 性别from 学生11、对“学生”表中“性别”列的值进行处理,当值等于0时返回“女”,当值等于1时返回“男”。
数据库select例题
数据库select例题当涉及数据库的SELECT查询时,我们可以从多个角度来回答这个问题。
下面是一个例题,我们将以全面的方式回答这个问题。
假设我们有一个名为"Customers"的表,其中包含以下列,CustomerID、FirstName、LastName、Email和Age。
现在,我们来解答以下问题。
1. 查询所有客户的信息:SELECT FROM Customers;这将返回Customers表中的所有行和列,包括CustomerID、FirstName、LastName、Email和Age。
2. 查询特定客户的信息:SELECT FROM Customers WHERE CustomerID = 1;这将返回CustomerID为1的客户的所有信息。
3. 查询特定客户的姓名和邮箱:SELECT FirstName, LastName, Email FROM Customers WHERE CustomerID = 1;这将返回CustomerID为1的客户的姓名和邮箱。
4. 查询所有年龄大于等于30岁的客户的信息:SELECT FROM Customers WHERE Age >= 30;这将返回年龄大于等于30岁的所有客户的信息。
5. 查询所有姓氏以"Smith"开头的客户的信息:SELECT FROM Customers WHERE LastName LIKE 'Smith%';这将返回姓氏以"Smith"开头的所有客户的信息。
6. 查询所有邮箱包含"gmail"的客户的信息:SELECT FROM Customers WHERE Email LIKE '%gmail%';这将返回邮箱中包含"gmail"的所有客户的信息。
7. 查询所有客户的信息,并按照年龄降序排序:SELECT FROM Customers ORDER BY Age DESC;这将返回所有客户的信息,并按照年龄降序排列。
SOL语言练习试卷2(题后含答案及解析)
SOL语言练习试卷2(题后含答案及解析)全部题型 3. 主观题主观题工厂的信息管理数据库中有两个关系模式:职工(职工号,姓名,年龄,月工资,部门号,电话,办公室) 部门(部门号,部门名,负责人代码,任职时间)1.查询每个部门中月工资最高的“职工号”的SQL查询语句如下:SELECT 职工号FROM 职工 E WHERE 月工资=(SELECT MAX(月工资) FROM 职工AS M WHERE M.部门号=E.部门号); ①请用30字以内的文字简要说明该查询语句对查询效率的影响。
②对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。
正确答案:此问考查的是查询效率的问题。
在涉及相关查询的某些情形中,构造临时。
关系可以提高查询效率。
①对于外层的职工关系E中的每一个元组,都要对内层的整个职工关系M进行检索,因此查询效率不高。
②解答方法一(先把每个部门最高工资的数据存入临时表,再对临时表进行查询):SELECT MAX (月工资) As最高工资,部门号Into Temp FROM 职工GROUP BY 部门号; SELECT 职工号FROM 职工,Temp WHERE 月工资=最高工资AND职工.部门号=Temp.部门号; 解答方法二(直接在FROM 子句中使用临时表结构):SELECT 职工号FROM职工,(SELECT MAX(月工资) As最高工资,部门号FROM 职工GROUP BY 部门号) As depMax WHERE 月工资=最高工资AND职工.部门号=depMax.部门号; 涉及知识点:SOL语言2.假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select查询语句可能不会促使查询优化器使用索引,从而降低了查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL语句。
SELECT 姓名,年龄,月工资FROM职工WHERE 年龄>45 OR月工资<1000;正确答案:此问主要考察在查询中注意WHERE子句中使用索引的问题。
SQL语句练习参考答案(教学数据库)
以下为SQL查询练习参考答案(查询用到的表参照教材P82)。
1.查询全体学生的姓名和所在系。
Select Sno,SdeptFrom Student;2.查询所有课程的详细信息。
Select *From Course;或者Select Cno,Cname,Cpno,CcreditFrom Course;3.查询选修了课程的学生学号。
Select Distinct SnoFrom SC;注意:select子句中需要指定Distinct 关键词4.查询有学生选修的课程号。
Select Distinct CnoFrom SC;5.检索年龄在 18到 20之间(含18和20)的女生的学号、姓名及年龄。
Select Sno,Sname,SageFrom StudentWhere Ssex=’女’ and (Sage between 18 and 20);注意: where子句性别的常量值——女,需用英文状态下的单引号或双引号。
或者Select Sno,Sname,SageFrom StudentWhere Ssex=’女’ and (Sage >=18 and Sage<= 20);6.检索“200215121”学生选修课程号及成绩。
Select Cno,GradeFrom SCWhere Sno=’200215121’;7.检索选修了“1”号或“3”号课程的学生学号、课程号及成绩。
Select *From SCWhere Cno=’1’ or Cno=’3’;注意: where子句若用Cno=’1’ or ’3’是错误的,or连接的是两个布尔表达式。
8.检索所有姓王的同学的姓名、性别和所在系。
Select Sname,Ssex,SdeptFrom StudentWhere Sname like ’王*’;注意: Access中的通配符为’*’ 和’?’标。
准SQL中的通配符为’%’ 和’_’9.检索课程名中包括“数据库”的课程详细信息,结果按学分降序排列。
数据库练习题(答案)
数据库练习题(答案)第四章练习题⼀、选择题1、设有两个关系R(A,B)和S(B,C),与下列SELECT语句SELECT A,B FROM RWHERE B NOT IN(SELECT B FROM S WHERE C='C56');等价的关系代数表达式是 [ C]A.πA,B(σC≠'C56'(R?S))B.πA,B(R ? S)C≠'C56' C.R-πA,B(σC= 'C56'(R?S))D.R-πA,B(σC≠'C56'(R?S))2、嵌⼊式SQL的预处理⽅式,是指[ B]A.识别出SQL语句,加上前缀标识和结束标志B.把嵌⼊的SQL语句处理成函数调⽤形式C.对源程序进⾏格式化处理D.把嵌⼊的SQL语句编译成⽬标程序3、SQL中,“DELETE FROM 表名”表⽰ [ A]A.从基本表中删除所有元组B.从基本表中删除所有属性C.从数据库中撤消这个基本表D.从基本表中删除重复元组4、SQL中,聚合函数COUNT(列名)⽤于[ C]A.计算元组个数B.计算属性的个数C.对⼀列中的⾮空值计算个数D.对⼀列中的⾮空值和空值计算个数5、在传统SQL技术中,使⽤“ORDER BY”⼦句的SELECT语句查询的结果,实际上为 [B]A.数组 B.列表 C.包 D.集合6、在数据库中,能提⾼查询速度的是(C )A. 数据依赖B. 视图C. 索引D. 数据压缩7、语句 delete from sc 表明( A )A. 删除sc中的全部记录B. 删除基本表scC. 删除基本表sc中的列数据D. 删除基本表sc中的部分⾏8、在DB应⽤中,⼀般⼀条SQL 语句可产⽣或处理⼀组记录,⽽DB主语⾔语句⼀般⼀次只能处理⼀条记录,其协调可通过(B )实现。
A. 指针B. 游标C. 数组D. 栈9、在下列基本表的定义中,数值5表⽰( C )CREATE TABLE student (Sno char(5) not null unique,Sname char(2));A. 表中有5条记录B. 表中有5列C. 表中字符串Sno 的长度D. 表格的⼤⼩10、在视图上不能完成的操作是( C )A. 更新视图B. 查询C. 在视图上定义新的基本表D. 在视图上定义新视图11、下列聚合函数中不忽略空值 (null) 的是(C)A、SUM (列名)B、MAX (列名)C、COUNT ( * )D、AVG (列名)12、SQL的查询语句的where⼦句中,对空值的操作,不正确的是( C )A、where AGE IS NULLB、where AGE IS NOT NULLC、where AGE = NULLD、where NOT (AGE IS NULL)13、Transact-SQL对标准SQL的扩展主要表现为( A )。
数据库第4章习题参考答案
第4章习题解答1.选择题(1)在SELECT语句中,需显示的内容使用“*”,则表示()。
BA.选择任何属性B.选择所有属性C.选择所有元组D.选择主键(2)查询时要去掉重复的元组,则在SELECT语句中使用()。
DA.All B.UNION C.LIKE D.DISTINCT (3)在SELECT语句中使用GROUP BY NO时,NO必须()。
CA.在WHERE子句中出现B.在FROM子句出现C.在SELECT子句中出现D.在HAVING子句中出现(4)使用SELECT语句进行分组检索时,为了去掉不满足条件的分组,应当()。
BA.使用WHERE子句B.在GROUP BY后面使用HAVING子句C.先使用WHERE子句,再使用HA VING子句D.先使用HA VING子句,再使用WHERE子句(5)在SQL语句中,与表达式“仓库号Not In("wh1","wh2")”功能相同的表达式是()。
DA.仓库号="wh1" And 仓库号="wh2" B.仓库号<>"wh1" Or 仓库号<>"wh2"C.仓库号<>"wh1" Or 仓库号="wh2" D.仓库号<>"wh1" And 仓库号<>"wh2"第6~10题使用如下3个表:部门:部门号Char (8),部门名Char (12),负责人Char (6),电话Char (16)职工:部门号Char (8),职工号C har(10),姓名Char (8),性别Char (2),出生日期Datetime工资:职工号Char (10),基本工资Numeric (8,2),津贴Numeric (8,2),奖金Numeric (8,2),扣除Numeric (8,2)(6)查询职工实发工资的正确命令是()。
select的练习题
select的练习题在学习SQL语言中,SELECT语句是非常重要的一部分。
它被用于从数据库中检索数据,并根据特定的条件筛选和排序结果。
为了加深对SELECT语句的理解和熟练运用,下面将提供一些SELECT语句的练习题,以帮助读者巩固知识。
1. 从"students"表中选择所有的学生信息。
SELECT * FROM students;2. 从"products"表中选择产品名称和价格。
SELECT product_name, price FROM products;3. 从"orders"表中选择所有已完成的订单。
SELECT * FROM orders WHERE order_status = 'Completed';4. 从"employees"表中选择属于部门ID为2的员工信息。
SELECT * FROM employees WHERE department_id = 2;5. 从"customers"表中选择年龄大于等于25岁的客户姓名和电话号码。
SELECT customer_name, phone_number FROM customers WHEREage >= 25;6. 从"books"表中选择数量小于10本的图书信息。
SELECT * FROM books WHERE quantity < 10;7. 从"sales"表中选择销售金额在1000到5000之间的销售记录。
SELECT * FROM sales WHERE amount BETWEEN 1000 AND 5000;8. 从"orders"表中选择按订单日期倒序排列的前10个订单。
SELECT * FROM orders ORDER BY order_date DESC LIMIT 10;9. 从"employees"表中选择按工资从高到低排列的前5名员工。
多表联合查询与子查询练习试卷
多表联合查询与子查询练习试卷(答案见尾页)一、选择题1. 在SQL中,关于SELECT语句,以下哪个说法是正确的?A. SELECT语句只能从一个表中检索数据B. SELECT语句可以从多个表中检索数据C. SELECT语句不能从多个表中检索数据D. SELECT语句只能检索固定数量的数据2. 在进行多表联合查询时,以下哪个关键字用于连接两个或多个表?A. JOINB. WHEREC. GROUP BYD. ORDER BY3. 关于内连接(INNER JOIN),以下哪个说法是正确的?A. 内连接只返回两个表中匹配的数据行B. 内连接只返回左表中的所有数据行C. 内连接只返回右表中的所有数据行D. 内连接只返回右表和左表中的匹配数据行4. 关于外连接(OUTER JOIN),以下哪个说法是正确的?A. 外连接返回左表中的所有数据行,即使右表中没有匹配的数据行B. 外连接返回右表中的所有数据行,即使左表中没有匹配的数据行C. 外连接返回两个表中的所有数据行,包括没有匹配的数据行D. 外连接只返回匹配的数据行5. 关于子查询,以下哪个说法是正确的?A. 子查询必须放在SELECT语句的FROM子句中B. 子查询必须放在SELECT语句的WHERE子句中C. 子查询可以放在SELECT语句的FROM子句或WHERE子句中D. 子查询只能放在SELECT语句的WHERE子句中6. 在多表联合查询中,以下哪个关键字用于指定连接条件?A. JOINB. WHEREC. GROUP BYD. ORDER BY7. 关于多表联合查询的结果集,以下哪个说法是正确的?A. 结果集包含来自所有参与连接表的行B. 结果集仅包含来自左表的所有行C. 结果集仅包含来自右表的所有行D. 结果集仅包含来自特定表的数据行8. 在子查询中,以下哪个说法是正确的?A. 子查询的结果集可以作为一个临时表使用B. 子查询的结果集不能作为临时表使用C. 子查询的结果集只能用于WHERE子句D. 子查询的结果集只能用于HAVING子句9. 关于多表联合查询和子查询的综合应用,以下哪个说法是正确的?A. 可以在一个多表联合查询中使用子查询来过滤结果B. 只能在子查询中使用多表联合查询C. 不能在多表联合查询中使用子查询D. 两者不能结合使用10. 在实际工作中,以下哪种情况更适合使用子查询?A. 当需要从多个表中检索部分数据时B. 当需要从单个表中检索大量数据时C. 当需要将多个表的数据合并成一个结果集时D. 当需要根据某个表的记录数来过滤其他表的数据时11. 在SQL中,以下哪个语句用于从多个表中检索数据?A. SELECTB. INSERTC. UPDATED. DELETE12. 在执行多表联合查询时,以下哪个关键字用于指定连接类型?A. JOINB. WHEREC. GROUP BYD. ORDER BY13. 在多表联合查询中,哪个关键字用于限制返回的结果集?A. LIMITB. WHEREC. JOIND. ORDER BY14. 以下哪个关键字用于在子查询中筛选结果?A. INB. LIKEC. SELECTD. FROM15. 在子查询中,以下哪个关键字用于从外部查询的结果集中获取满足条件的值?A. INB. EXISTSC. SELECTD. WHERE16. 在多表联合查询中,哪个关键字用于指定连接条件?A. ONB. WHEREC. JOIND. UNION17. 在多表联合查询中,哪个关键字用于指定连接类型(如INNER JOIN, LEFT JOIN等)?A. JOINB. WHEREC. GROUP BYD. ORDER BY18. 在多表联合查询中,哪个关键字用于指定返回哪些列?A. SELECTB. WHEREC. JOIND. ORDER BY19. 在子查询中,以下哪个关键字用于将内部查询的结果作为外部查询的条件?A. INB. LIKEC. SELECTD. WHERE20. 在多表联合查询中,哪个关键字用于对结果进行排序?A. LIMITB. WHEREC. JOIND. ORDER BY二、问答题1. 什么是SQL注入攻击?如何防范SQL注入攻击?2. 什么是事务?事务的ACID特性是什么?3. 什么是索引?索引有哪些类型?4. 什么是视图?视图有什么作用?5. 什么是存储过程?存储过程有什么优点?6. 什么是触发器?触发器有哪些类型?7. 什么是数据库范式?数据库范式有哪些?8. 什么是分布式数据库?分布式数据库有哪些特点?参考答案选择题:1. B2. A3. A4. C5. C6. B7. A8. A9. A 10. A11. A 12. A 13. A 14. A 15. A 16. A 17. A 18. A 19. A 20. D问答题:1. 什么是SQL注入攻击?如何防范SQL注入攻击?SQL注入攻击是利用SQL语言的缺陷,通过输入恶意代码来影响数据库操作的一种攻击方式。
计算机思维与数据库练习题
一、填空1.在用SELECT语句进行数据库查询时,可使用_____子句给出查询选择的条件.答案:WHERE2.用任何计算机高级语言编写的程序(未经过编译)习惯上称为_____.答案:源程序/程序/源代码3.用_____编制的程序计算机能直接识别. 答案:机器语言4.所有指令的有序集合叫_____. 答案:程序5.从软件的开发、使用到它走向消亡,这个时间周期称为该软件的_____.答案:生命周期6.分析某个算法的优劣时,从需要占用的计算机资源角度,应考虑的两个方面是_____.答案:空间代价和时间代价/时间代价和空间代价/空间、时间代价/时间、空间代价/空间时间代价/时间空间代价7.解决某一问题的算法也许有多种,但它们都必须满足确定性、有穷性、能行性等性质,其中输出的个数n应大于等于_____.(填一个数字)答案:1二、判断1.关系数据结构不包含平面数据. 答案:N2.可以向二维表中重复插入相同的元组.答案:N3.Java语言是一种面向对象的程序设计语言,特别适用于网络环境的软件开发.答案:Y4.编译程序对源程序编译正确时,产生目标程序.答案:Y5.高级语言的控制结构主要包含①顺序结构②自顶向下结构③重复结构答案:N6.高级语言是人们习惯使用的自然语言和数学语言.答案:N7.结构化方法将信息系统软件生命分为系统规划、系统分析、系统设计、系统实施和系统维护五个阶段.答案:Y8.解释程序产生了目标程序,而汇编程序和编译程序不产生目标程序.答案:N9.一般将使用高级语言编写的程序称为源程序,这种程序不能直接在计算机中运行,需要有相应的语言处理程序翻译成机器语言程序才能执行.答案:Y10.一般使用高级语言编写的程序称源程序.答案:Y三、单选1.Visual FoxPro和SQL Server等数据库管理系统所采用的数据模型是().A:层次模型B:关系模型C:网状模型D:面向对象模型答案:B2.关于数据库系统的叙述中,错误的是().A:物理数据库指长期存放在外存上的可共享的相关数据的集合B:数据库中还存放'元数据'C:数据库系统软件支持环境不包括操作系统D:用户使用DML语句实现对数据库中数据的基本操作答案:C3.汇编语言是一种()语言.A:高级B:低级C:机器D:可视化答案:B4.汇编语言源程序须经()翻译成目标程序.A:监控程序B:汇编程序C:机器语言程序D:诊断程序答案:B5.数据库系统的核心软件是().A:数据库B:数据库管理系统C:建模软件D:开发工具答案:B6.数据库系统是由数据库,数据库管理系统,应用程序,() ,用户等构成的人——机系统. A:数据库管理员B:程序员C:高级程序员D:软件开发商答案:A7.微型计算机中使用的关系数据库,就其应用领域而言属于().A:科学计算 B:数据处理C:计算机辅助设计 D:实时控制答案:B8.下列()不是数据库管理系统.A:SQLServer B:NetscapeNavigatorC:FoxPro D:Oracle答案:B9.下面列出的特点中,()不是数据库系统的特点.A:无数据冗余B:采用一定的数据模型C:数据共享D:数据具有较高的独立性答案:A10.选取关系中满足某个条件的元组组成一个新的关系,这种关系运算称之为(). A:连接B:选择C:投影D:搜索答案:B11.用二维表来表示实体集及实体集之间联系的数据模型称为().A:层次模型B:网状模型C:面向对象模型D:关系模型答案:D12.用于存放数据库数据的是().A:表B:查询C:窗体D:报表答案:A13.在SQL中,视图不能从()导出.A:存储模式B:视图自身C:基本表D:视图连接基本表的关系答案:A14.在关系型数据库中,二维表中的一行被称为 () .A:字段B:数据C:记录D:数据视图答案:C15.在数据库系统中,位于用户和数据库之间的一层数据管理软件是().A:DBS B:DBC:DBMS D:CAD答案:C16.在下列数据库管理系统中,不属于关系型的().A:Microsoft Access B:SQL ServerC:Oracle D:DBTG系统答案:D17.以下关于矢量图和位图的说法中,不正确的是().A:位图是由若干像素点构成的,矢量图则是通过计算方法生成的B:位图放大时会变得模糊不清,矢量图放大时则不会产生失真C:位图和矢量图都可以用软件绘制出来D:位图和矢量图之间不能相互转换答案:D18."针对不同专业用户的需要所编制的大量的应用程序,进而把它们逐步实现标准化、模块化所形成的解决各种典型问题的应用程序的组合"描述的是().A:软件包B:软件集C:系列软件D:以上都不是答案:A19.()不是高级语言的特征.A:源程序占用内存少B:通用性好C:独立于微机D:易读、易懂答案:A20.()不是计算机高级语言.A:BASICB:FORTRANC:CD:DOS答案:D21.()属于面向对象的程序设计语言.A:COBOLB:FORTRANC:PASCALD:C++答案:D22.()语言和汇编语言是低级语言.A:机器B:二进制C:十六进制D:八进制答案:A23.()语言内置面向对象的机制,支持数据抽象,已成为当前面向对象程序设计的主流语言之一.A:FORTRANB:ALGOLC:CD:C++答案:D24.把高级语言编写的源程序变为目标程序,要经过().A:汇编B:解释C:编译D:编辑答案:C25.对于汇编语言的评述中,不正确的是().A:汇编语言采用一定的助记符来代替机器语言中的指令和数据,又称为符号语言B:汇编语言运行速度快,适用编制实时控制应用程序C:汇编语言有解释型和编译型两种D:机器语言、汇编语言和高级语言是计算机语言发展的三个阶段答案:C26.高级语言编写的程序必须将它转换成()程序,计算机才能执行.A:汇编语言B:机器语言C:中级语言D:算法语言答案:B27.高级语言程序的编译执行方式是().A:逐条语句边解释边执行,即每解释一条语句就执行一条语句B:将整个程序编译完成后再执行,且不生成目标程序C:将源程序编译成机器语言的目标程序,然后执行,生成并保留目标程序D:将整个程序解释完毕再执行,且保留解释结果答案:C28.高级语言的控制结构主要包含().①顺序结构②自顶向下结构③条件选择结构④重复结构A:①②③B:①③④C:①②④D:②③④答案:B29.机器语言程序在机器内是以()形式表示的.A:BDCB:二进制编码C:字母码D:符号码答案:B30.机器语言使用的编码是().A:ASCII码B:二进制码C:英文字母D:汉字国标码答案:B31.计算机的编译系统主要是将源程序翻译成().A:机器语言系统B:系统程序C:目标程序D:数据库系统答案:C32.计算机能够直接识别和处理的程序是()程序.A:汇编语言B:源C:机器语言D:高级语言答案:C33.计算机能够直接执行的程序是()程序.A:汇编语言B:源C:机器语言D:高级语言答案:C34.计算机能直接处理的语言是由0与1组合而成的语言,这种语言称为(). A:汇编语言B:人工语言C:机器语言D:高级语言答案:C35.计算机能直接识别的语言是().A:C语言B:高级程序语言C:机器语言D:汇编语言答案:C36.将高级语言编写的程序翻译成机器语言程序,所采用的两种翻译方式是(). A:编译和解释B:编译和汇编C:编译和链接D:解释和汇编答案:A37.将汇编语言源程序转换成等价的目标程序的过程称为().A:汇编B:编译C:解释D:源程序答案:A38.结构化程序设计的三种基本结构是 ().A:选择结构、过程结构、顺序结构B:选择结构、循环结构、顺序结构C:递归结构、循环结构、选择结构D:选择结构、递归结构、输入输出结构答案:B39.解释程序的功能是().A:将高级语言程序转换为目标程序B:将汇编语言程序转换为目标程序C:解释执行高级语言程序D:解释执行汇编语言程序答案:C40.扩展名为BAT的文件是().A:高级语言源程序文件B:文书文件C:不可执行的文本文件D:批处理文件答案:D41.能把汇编语言源程序翻译成目标程序的程序称为().A:编译程序B:解释程序C:编辑程序D:汇编程序答案:D42.能将高级语言的源程序转换成目标程序的是().A:调试程序B:解释程序C:编译程序D:编辑程序答案:C43.能直接让计算机识别的语言是().A:CB:BASICC:汇编语言D:机器语言答案:D44.人们使用高级语言编写出来的程序,一般首先应当翻译成(). A:编译程序B:解释程序C:执行程序D:目标程序答案:D45.使用高级语言编写的程序为().A:应用程序B:源程序C:目标程序D:系统程序答案:B46.为方便记忆、阅读和编程,把机器语言进行符号化,相应的语言称为().A:高级语言B:汇编语言C:C语言D:VB语言答案:B47.为解决某一特定问题而设计的指令序列称为().A:文件B:语言C:程序D:软件答案:C48.下列属于语言是解释性语言的是().A:FORTRANB:CC:PASCALD:BASIC答案:D49.下列语言编写的程序执行速度最快的是().A:机器语言B:高级语言C:面向对象的程序设计语言D:汇编语言程序答案:A50.下面的叙述正确的是().A:程序测试的目的是要找出程序中的错误B:程序测试的目的是要证明程序没有错误C:黑盒测试一般由计算机专业人员来完成D:软件开发商推出的软件β版,即为测试版,免费提供给用户使用,属于白盒测试答案:A51.下面关于解释程序和编译程序的叙述中正确的是().A:编译程序和解释程序均能产生目标程序B:编译程序和解释程序均不能产生目标程序C:编译程序能产生目标程序而解释程序则不能D:解释程序能产生目标程序而编译程序则不能答案:C52.以下()应用程序最合适作为源程序输入的编辑程序.A:WordB:ExcelC:记事本D:写字板答案:C53.以下关于高级语言的描述中,正确的是().A:高级语言诞生于20世纪60年代中期B:高级语言的"高级"是指所设计的程序非常高级C:C++语言采用的是"编译"的方法D:高级语言可以直接被计算机执行答案:C54.以下关于汇编语言的描述中,错误的是().A:汇编语言诞生于20世纪50年代初期B:汇编语言不再使用难以记忆的二进制代码C:汇编语言使用的是助记符号D:汇编程序是一种不再依赖于机器的语言答案:D55.以下属于高级语言的有().A:汇编语言B:C 语言C:机器语言D:以上都是答案:B56.以下文件类型中,属于程序类型的是().A:cfcB:exeC:iniD:txt答案:B57.以下叙述有错误的是().A:Java Script是脚本语言,将脚本代码嵌入HTML代码中,可扩展网页应用能力B:Java Applet被嵌入到Web页面中,用来产生动态、交互性页面效果的小程序,所以也是脚本语言C:Java Script嵌入到Web页面中的是源代码,所以在IE浏览器窗口可以查看到源代码D:Java Applet被嵌入到Web页面中的是字节代码,因此在IE浏览器窗口查看不到源代码答案:B58.以下叙述有错误的是().A:XML是SGML的一个精简的子集B:HTML是SGML的一个精简的子集C:HTML是以一种通用的方法来显示数据;而XML则提供了一种通用的方法来描述数据D:HTML是以一种通用的方法来描述数据;而XML则提供了一种通用的方法来显示数据答案:C59.以下叙述正确的是().A:Java语言既是编译性语言又是解释性语言B:Java Script语言既是编译性语言又是解释性语言C:Java Script是编译性语言D:以上叙述都错误答案:A60.用高级语言编写的程序为().A:源程序B:编译程序C:可执行程序D:编辑程序答案:A61.用户使用计算机高级语言编写的程序,通常称为().A:二进制代码B:程序目标程序C:源程序D:汇编程序答案:C62.用户使用计算机高级语言编写的程序,通常称为().A:源程序B:汇编程序C:二进制代码程序D:目标程序答案:A63.语言编译软件按软件分类来看是属于().A:系统软件B:操作系统C:应用软件D:数据库管理系统答案:A64.语言处理程序的发展经历了()三个发展阶段.A:机器语言、BASIC语言和C语言B:二进制代码语言、机器语言和FORTRAN语言C:机器语言、汇编语言和高级语言D:机器语言、汇编语言和C抖语言答案:C65.在Windows中,当程序因某种原因陷入死循环,下列中()方法能较好地结束该程序. A:按Ctrl+Alt+Del键B:按Ctrl+Del键C:按Alt+Del键D:直接Reset计算机结束该程序的运行答案:A66.在语言处理程序中,按照不同的翻译处理对象和方法,可把翻译程序分为几类,而()不属于翻译程序.A:汇编程序B:解释程序C:编译程序D:编辑程序答案:D67.早期的BASIC语言采用的()方法将源程序转换成机器语言.A:汇编B:解释C:编译D:编辑答案:B68.只有当程序要执行时,它才会去翻译成机器语言,并且一次只能读取、翻译,并执行源程序中的一行语句,此程序称为().A:目标程序B:编辑程序C:解释程序D:汇编程序答案:C四、多选1.计算机程序设计语言大致可以分为()三大类.A:自然语言B:机器语言C:汇编语言D:高级语言答案:BCD。
VF中select语句练习
VF中select语句练习一、选择题1. 假设”订单”表中有订单号、职员号、客户号和金额字段,正确的SQL语句只能是。
A.SELECT职员号FROM订单GROUP BY职员号HA VING COUNT(*)>3 AND A VG_金额>200B.SELECT职员号FROM订单GROUP BY职员号HA VING COUNT(*)>3 AND A VG (金额)>200C.SELECT职员号FROM订单GROUP,BY职员号HA VING COUNT(*)>3 WHERE A VG(金额)>200D.SELECT职员号FROM订单GROUP BY职员号WHERE COUNT(*)>3 AND A VG_金额>2002. 假设同一名称的产品有不同的型号和产地,则计算每种产品平均单价的SQL语句是。
A.SELECT产品名称,A VG(单价) FROM产品GROUP BY单价B.SELECT产品名称,A VG(单价) FROM产品ORDERBY单价C.SELECT产品名称,A VG(单价) FROM产品ORDER BY产品名称D.SELECT产品名称,A VG(单价) FROM产品GROUP BY产品名称3. “图书”表中有字符型字段“图书号”。
要求用select命令将图书号以字母A 开头的图书记录全部找出,正确的命令是。
A.select FROM图书FOR图书号LIKE”A%”B.select from图书WHILE图书号LIKE”A%”C.select FROM图书WHERE图书号=“A*”D.select FROM图书WHERE图书号LIKE”A%”二、填空题1. SQL SELECT语句的功能是。
2.“职工”表有工资字段,计算工资合计的SQL语句是SELECTFROM 职工。
3. 在SQL SELECT中,字符串匹配运算符用表示,可用来表示0个或多个字符。
数据库应用基础--SELECT语句练习
数据库应用基础——Access2010 SELECT语句练习(一)
班级:________________ 姓名:__________________
在数据库school 中建立“学生”、“成绩”表,学生表包含的字段有学号、姓名、性别、年龄、系别,成绩表包含的字段有学号、课程号、成绩。
1.查询年龄在19至21岁之间的女生的学号、姓名、年龄,按年龄从大到小排序。
2.查询姓名中第2个字为“明”字的学生学号、姓名、性别。
3.查询“1001”课程没有成绩的学生学号、课程号。
4.查询成绩在60到80之间的所有记录,按成绩降序排列。
5.查询“计算机”“数学”“物理”系的年龄大于25岁的学生学号、姓名,并按系别排序。
6.查询分数低于“0001”的学生成绩的记录
7.统计“计算机”系的学生人数。
8.计算“计算机”系和“数学”系的平均年龄及最大年龄。
9.查询学生中姓名为张明、赵英的人数。
10.计算每一门课的总分、平均分,最高分、最低分,按平均分由高到低排列。
11.计算“1001”、“1002”两门课程的平均分。
12.查询平均分大于80分的学生学号及平均分。
13.查询男学生学号、姓名、课程号、成绩。
实验七SELECT语句查询实验(答案)
实验七SELECT语句查询实验(答案)实验七SELECT语句查询实验(1)实验目的:1、理解查询的机制2、使用SELECT 语句进行条件查询3、在查询中返回限制行、进行查询排序4、在查询中使用表达式、运算符和函数实验准备:1、Sql server 20002、class表的字段和内容(图1)。
图1 class表的字段和内容②【实验库】→【表】→【新建表】,完成表的设计,以class作为表名进行保存。
③【实验库】→【表】→【class】→【打开表】→【返回所有行】,输入class表的数据内容3、同学表:【同学表】表结构:学号char(6), 姓名nchar(4), 性别nchar(1), 出生日期datetime, 身高decimal(5,2), 民族nchar(5), 身份证号char(18), 宿舍编号char(6)实验内容与步骤:要求:在查询分析器的查询窗口中输入SQL语句,通过SQL语句的执行,实现查询功能。
1.基本的SELECT查询:①请检索出class表中学生的所有信息。
执行查询语句后结果窗格中的信息(如图4示):Select *from class图4 class表中所有学生的信息②请检索出class表中所有学生的学号、姓名信息。
执行查询语句后结果窗格中的信息(如图5示):Select xh,xm from class图5 class表中所有学生的学号、姓名信息2.请用带AS的子句在显示查询学生所有信息时加上相应的标题信息。
执行查询语句后结果窗格中的信息(如图6示):Select xh as 学号,xm as 姓名,sex as 性别,bj as 班级,csrq as 出生日期,jtdz as 家庭地址,lxdh as 联系电话From class图6 加上相应标题信息的class表所有学生信息3.查询class表中出生在1985年后的所有学生信息。
执行查询语句后结果窗格中的信息(如图7示):图7 class表中出生在1985年后1986年前的所有学生信息Select *from class where csrq>'1985-01-01'andcsrq<'1986-1-1'4.查询出class表中出生在1983年到1985年之间的所有学生信息。
SELECT语句基本查询作业答案
SELECT语句基本查询作业答案SELECT语句基本查询作业一、写出下列语句的功能1、select * from 基本信息答:查询基本信息表中的全部数据列2、select 姓名,家庭住址 from 基本信息查询基本信息表中的姓名,家庭住址两列数据3、select 货品编码编码, 货品名称名称, 货品库存量库存量from 货品信息答:选择货品信息表中的货品编码、货品名称、货品库存量三列数据,显示时分别冠以列名编码、名称、库存量4、select distinct 编码 from 订单答:不重复地显示订单表中的编码列数据5、select TOP 3 from 学生查询学生表中前3行的姓名,地址,电话列数据6、select top 30 percent 学号,姓名 from学生查询学生表中前30%行的学号,姓名列数据7、select * from 货品信息where 订货日期between '2003/01/01' and '2003/10/31'查询货品信息表中订货日期在'2003/01/01' 和 '2003/10/31'之间的全部数据列8、select * from 订单信息 where 数量>=10查询订单信息表中数量>=10的全部数据列9、select * from 订单信息 order by 售价desc查询订单信息表中的全部数据,按售价降序显示10、SELECT 姓名,year(getdate())-Year(出生年月日) FROM 基本信息查询基本信息表中的姓名列,并根据出生年月日列计算其年龄二、写出实现下列功能的语句1、查询“学生”表学号,姓名,入学成绩三列数据,并分别冠以列名XH,XM,RXCJSelect 学号 XH,姓名 XM,入学成绩 RXCJ from 学生2、查询“学生”表中前三行的学号,姓名,入学成绩三列数据Select 学号,姓名,入学成绩 from 学生3、查询“学生”表中学号,姓名,入学成绩三列数据,并以入学成绩升序显示答:select 学号,姓名,入学成绩 from 学生 order by 入学成绩4、查询“学生”表中性别为“男”并且政治面目列为党员的所有数据Select * from 学生 where 性别=’男’ and 政治面目=’党员’。
数据库第4章习题参考答案
第4章习题解答1.选择题(1)在SELECT语句中,需显示的内容使用“*”,则表示()。
BA.选择任何属性B.选择所有属性C.选择所有元组D.选择主键(2)查询时要去掉重复的元组,则在SELECT语句中使用()。
DA.All B.UNION C.LIKE D.DISTINCT (3)在SELECT语句中使用GROUP BY NO时,NO必须()。
CA.在WHERE子句中出现B.在FROM子句出现C.在SELECT子句中出现D.在HAVING子句中出现(4)使用SELECT语句进行分组检索时,为了去掉不满足条件的分组,应当()。
BA.使用WHERE子句B.在GROUP BY后面使用HAVING子句C.先使用WHERE子句,再使用HA VING子句D.先使用HA VING子句,再使用WHERE子句(5)在SQL语句中,与表达式“仓库号Not In("wh1","wh2")”功能相同的表达式是()。
DA.仓库号="wh1" And 仓库号="wh2" B.仓库号<>"wh1" Or 仓库号<>"wh2"C.仓库号<>"wh1" Or 仓库号="wh2" D.仓库号<>"wh1" And 仓库号<>"wh2"第6~10题使用如下3个表:部门:部门号Char (8),部门名Char (12),负责人Char (6),电话Char (16)职工:部门号Char (8),职工号C har(10),姓名Char (8),性别Char (2),出生日期Datetime工资:职工号Char (10),基本工资Numeric (8,2),津贴Numeric (8,2),奖金Numeric (8,2),扣除Numeric (8,2)(6)查询职工实发工资的正确命令是()。
select 练习3多表查询_答案
多表查询以下题目使用数据库xk,包括表:表1 Department表2 Course表3 Class表4 Student表5 StuCout--嵌套查询--1类:带有比较运算符的查询,查询结果为单值--查询报名人数大于平均报名人数的课程信息--1步.假如平均报名人数是30select*from coursewhere willnum>30--2步.查询出平均报名人数,查询结果是个数值型数据,凡是数值可以出现的地方,该select语句就可以出现select avg(willnum)from course --查询出平均报名人数--3步.替换select*from coursewhere willnum>(select avg(willnum)from course)--错误:where willnum>avg(willnum)--查询出学分最大的课程的名称--1步.假如最大学分是10分select counamefrom coursewhere credit=10--2步.查询出学分最大值select max(credit)from course--3步. 替换select counamefrom coursewhere credit=(select max(credit)from course)--查询出‘00电子商务’班的学生的姓名--1步.假如班号是'20000001'号select stunamefrom studentwhere classno='20000001'--2步.查询出‘电子商务’班的班号select classno from class where classname='00电子商务'--3步.替换select stunamefrom studentwhere classno=(select classno from class where classname= '00电子商务')--查询出'世界旅游'课程的选课信息--1步.假如'世界旅游'课程的课程号是'001',查询出'001'号课程的选课信息select*from stucou where couno='001'--2步.查询出'世界旅游'课程的课程号select couno from course where CouName='世界旅游'select*from stucou where couno=(select couno from course w here CouName='世界旅游')--查询出班级个数最多的院系名称--1步.假如'01'号学院班级最多,查询出'01'号学院的院系名称select departname from department where departno='01'--2步.查询出班级个数最多的院系编号selecttop 1 departnofrom classgroupby departnoorderby count(*)desc--3步.替换--查询结果是个院系编号,凡是院系编号可以出现的地方,该select 语句就可以出现select departnamefrom departmentwhere departno=(selecttop 1 departnofrom classgroupby departnoorderby count(*)desc)--where 列in(该列的集合)--查询结果为集合--查询出选课表中报名状态state为报名的课程名称--假如('001','002','003') 报名状态state为报名select counamefrom coursewhere couno in('001','002','003')--2:查询出选课表中报名状态为报名的课程编号的集合,select distinct counofrom stucou --凡是课程编号的集合出现的地方都可以用该select语句取代where state='报名'--替换:select counamefrom coursewhere couno in(selectdistinct counofrom stucouwhere state='报名')--查询出‘01’号学院的学生姓名--1步.查询出‘01’号学院的班号集合select classno from class where departno='01'--2步.查询出这些班的学生姓名select stunamefrom studentwhere classno in(select classno--‘1’号学院的班号集合from classwhere departno='01')--查询出'20000001'班学生的选课信息--1步.查询出'20000001'班的学号集合select stuno from student where classno='20000001' --2步.查询这些学生的选课信息select*from stucouwhere stuno in(select stunofrom studentwhere classno='20000001')--查询出'00电子商务'班学生的选课信息--1步.查出'00电子商务'班的班号select classnofrom classwhere classname='00电子商务'--2步.查出该班的学号集合select stunofrom studentwhere classno=(select classnofrom classwhere classname='00电子商务')--3步.查询这些学生的选课信息select*from stucouwhere stuno in(select stuno--2.查出该班的学号集合from studentwhere classno=(select classno--1.查出'00电子商务'班的班号from classwhere classname='00电子商务'))--查询出与学号是1号的学生选修课程数相等的学生的学号select stuno --选修了5门课的学生的学号的集合from stucougroupby stunohaving count(*)=5select stuno --选修了与学号是1号的学生选修课程数相等的学生的学号的集合from stucougroupby stunohaving count(*)=(select count(*)from stucou where stuno='00000001')--查询出与学号是1号的学生选修课程数相等的学生的姓名select stunamefrom studentwhere stuno in(select stuno --选修了与学号是号的学生选修课程数相等的学生的学号的集合from stucougroupby stunohaving count(*)=(select count(*)from stucou wherestuno='00000001'))--查询出与'林斌'选修课程数相等的学生的姓名select stunamefrom studentwhere stuno in(select stuno--选修了与学号是号的学生选修课程数相等的学生的学号的集合from stucougroupby stunohaving count(*)=(select count(*)from stucou where stuno=(select stuno f rom student where stuname='林斌')))--any/some/all--where 列>any/some(集合子查询) : 列值比子查询结果中的某个值大就为真--where 列>all(集合子查询) : 列值比子查询结果中的所有值大才为真--查询出比号班中某一个学生年龄小的其他班的学生的学号和姓名select stuno,stunamefrom studentwhere bir>any(select bir from student whereclassno='20000001')and classno<>'20000001'--或:select stuno,stunamefrom studentwhere bir>some(select bir from student whereclassno='20000001')and classno<>'20000001'--查询出比号班中所有学生年龄都小的其他班的学生的学号和姓名select stuno,stunamefrom studentwhere bir>all(select bir from student whereclassno='20000001')and classno<>'20000001'--exists:存在--当子查询结果不为空时where为真,否则为假--查询已经报名选修课程的学生姓名--方法1:in--1步.查询出已经报名选修课程的学生学号的集合selectdistinct stunofrom stucouwherestate='报名'--2步.查询出这些学生的姓名select stunamefrom studentwhere stuno in(selectdistinct stunofrom stucouwherestate='报名')--方法2:exists:存在--格式:where exists (子查询select)--当子查询结果不为空时where为真,否则为假--表的列名看成变量,变量值是表的当前行的该列值--student.stuno: 表示student表中当前行的stuno列的值select stunamefrom studentwhere exists(select*from stucou where stuno=student.stu no and state='报名')--查询所有选修了号课程的学生的学号和姓名select stuno,stunamefrom studentwhere exists(select*from stucou wherestuno=student.stuno and couno='001')--多表连接查询--交叉连接cross join:左表每行依次与右表所有行连接--结果表包括两个表的所有列--左表有m行,右表有n行,结果表中有mXn行--from 左表cross join 右表--笛卡尔积:交叉连接的结果称为笛卡尔积--例:列出所有可能的选课情况select stuno,stuname,couno,counamefrom student crossjoin course--内连接select*into stu2from studentwhere stunoin('00000001','00000002','00000011','00000012','000 00021','00000021')select*into class2from classwhere classno in('20000001','20000002','20000003') --内连接: 左表[inner] join 右表--公共列:主表的主键=从表的外键--from 左表join 右表--on 左表.列=右表.列(共同列)--on作用同where,对行的筛选,从笛卡尔积中选出满足on条件的行--查看学生基本信息及所在班级信息select* --两个表的所有列都显示from class join studenton class.classno=student.classno--表名.*:表示某个表的所有列--查看学生基本信息及所在班级的班级名称select student.*,class.classnamefrom class join studenton class.classno=student.classno--表的别名,一旦为表起了别名,表名不能再使用,只能使用别名select s.*,classname班级名称from student2s join classcon s.classno=c.classno--列出每个学生的学号、姓名,以及他选修的课程号、志愿号(willorder)select student.stuno,stuname,couno,willorderfrom student join stucouon student.stuno=stucou.stuno--列出‘01’号学院的所有学生的姓名、班级名称selecttop 5 stuname,classnamefrom class join studenton class.classno=student.classnowhere departno='01'order by classname--多表(>=3)连接--列出每个学生的姓名、班级名称、所在院系名称select stuname,classname,departnamefrom student join classon student.classno=class.classnojoin departmenton class.departno=department.departno--列出每个学生的学号、姓名,以及他选修的课程号、课程名称、志愿号select student.stuno,stuname,stucou.couno,couname,wi llorderfrom student join stucouon student.stuno=stucou.stunojoin courseon stucou.couno=course.couno--查询出‘林斌’选修的课程名称及课程所在院系的名称select couname,departnamefrom department as d join course con d.departno=c.departnowhere couno in(select couno from stucou where stuno=(select stuno from student where stuname='林斌'))--或:select couname,departnamefrom department as d join course con d.departno=c.departnojoin stucou scon c.couno=sc.counojoin student son sc.stuno=s.stuno and stuname='林斌'--where stuname='林斌'--查询出每个学生的姓名、选修的课程名称及课程所在院系的名称select stuname,couname,departnamefrom department as d join course con d.departno=c.departnojoin stucou scon c.couno=sc.counojoin student son sc.stuno=s.stuno--查询出每个学生选修课程门数,按学生学号、门数两列显示select stuno,count(*)from stucougroupby stuno--查询出每个学生选修课程门数,按学生姓名、门数两列显示,前提是学生没有重名的Select stuname,count(*)门数from student join stucouon student.stuno=stucou.stunogroupby student.stuname--自连接:表与自身进行连接--必须为表起别名--查询出每门课的名称以及其前驱课的名称select a.couname,b.counamefrom coursea join coursebon a.cpno=b.couno--外连接--左外连接(left join):除了内连接的结果行,还包括左表剩余的行--右外连接(right join):除了内连接的结果行,还包括右表剩余的行--全外连接(full join):除了内连接的结果行,还包括左、右两表剩余的行--列出所有学生信息以及其所在班级信息select*from student2join classon student2.classno=class.classnoselect*from student2leftjoin classon student2.classno=class.classnoselect*from student2rightjoin classon student2.classno=class.classnoselect*from student2full join classon student2.classno=class.classno--列出所有学生的学号、姓名,以及其选修的课程号;未选修课程的学号也要列出,left joinselect student.stuno,stuname,counofrom student leftjoin stucouon studnet.stuno=stucou.stuno--列出所有课程号、课程名称、选修该课程的学号,没被选修的课程也要列出,right joinselect course.couno,couname,stunofrom stucou rightjoin courseon stucou.couno=course.couno--子查询在delete、update中的应用--将‘00多媒体’班的‘杜晓静’姓名改为‘杜小静’update studentset stuname='杜小静'where stuname='杜晓静'and classno=(select classno from class where classname=' 00多媒体')select*from student where stuname='杜小静'and classno=(select classno from class where classname=' 00多媒体')--‘00电子商务’班的‘林斌’申请将已选修的‘网站信息检索原理与技术’课程改为‘Linux操作系统’update stucouset couno=(select couno from course where couname='Linux操作系统')where couno=(select couno from course where couname='网络信息检索原理与技术') and stuno=(select stuno from studentwhere stuname='林斌'and classno=(select classno from class where classname='00电子商务'))selecttop nintofromonwheregroupbyhavingorderby。
select试题参考答案
----答案网上下载,未经检验,仅供参考。
--------简单查询1 显示所有部门名select dnamefrom dept;2 显示存在雇员的所有部门号select distinct deptnofrom emp;3 显示工资超过2850的雇员名和工资select ename,salfrom empwhere sal > 2850;4 显示工资不在1500到2850之间的所有雇员名及工资select ename,salfrom empwhere sal not between 1500 and 2850;5 显示雇员代码为7566的雇员名及所在部门号select ename,deptnofrom empwhere empno = 7566;6 显示部门代码为10和30中工资超过1500的雇员名及工资select ename,salfrom empwhere sal > 1500 and deptno in (10,30)7 显示无管理者的雇员名及岗位select ename,jobfrom empwhere mgr is null;8 显示获得补助的所有雇员名、补助额以及所在部门号select deptno,ename,commfrom empwhere comm is not null;9 显示部门代码为20的部门的所有雇员名、雇员工资及岗位select ename,sal,jobwhere deptno = 20;10 显示所有雇员的姓名、部门编号、工资,并且列名要显示为中文select ename as 姓名,deptno as 部门编号,sal as 工资from emp;11 显示工资大于1500的雇员名和工资,并且按照工资的降序排列select ename,salfrom empwhere sal > 1500order by sal desc;12 显示雇员部门编号为10或20的信息(要求使用IN关键字)select *from empwhere deptno in (10,20);13 显示雇员名的第二个字母为A的信息select enamefrom empwhere ename like '_A%';14 显示没有发放补助的雇员信息select *from empwhere comm is null;15 显示所有雇员名及其全年收入(工资+补助),并指定列别名"年收入"select ename,nvl2(comm,sal+comm,sal) as 年收入from emp;--NVL2(x,v1,v2):如果x不为NULL,返回v1,否则返回v2。
select语句题大学计算机数据库
查询xscj表中的学号,姓名,计算机三项信息,结果按计算机成绩的降序排列。
select 学号,姓名,计算机from xscj order by 计算机desc统计xsda表中男女生的人数select 性别,count(*) as 人数from xsda group by 性别select * from 图书where year(出版日期) >=2018计算xsda表中男女生的平均身高。
select 性别,avg(身高) as 平均身高from xsdagroup by 性别查询zgda表中的工号,姓名,性别,职称4项信息,显示结果时首先按照女性在前的顺序,如果性别相同则按照职称的升序排列。
select 工号,姓名,性别,职称from zgdaorder by 性别desc ,职称本题目要求编写SQL语句,查询图书表中条形码左边开始三个字符是“TP3”的图书的全部信息要求:不能用like运算符构成条件表达式。
select *from 图书where 条形码like "TP3%"本题目要求编写SQL语句,查询图书表中书名为“C语言程序设计”和“VB程序设计”的两本书的全部信息要求:使用in 运算符构成条件表达式提示:请使用SELECT语句作答。
select *from 图书where 书名in ("C语言程序设计","VB程序设计")题目要求编写SQL语句,查询图书表中未录入出版社信息的图书,要求结果中包含条形码,书名,出版社3列提示:请使用SELECT语句作答,“未录入”表示该项为空。
select 条形码,书名,出版社from 图书where 出版社is null本题目要求编写SQL语句,查询图书表中不是科学出版社出版的图书的全部信息提示:请使用SELECT语句作答。
SELECT *FROM 图书WHERE 出版社NOT IN ("科学出版社")本题目要求编写SQL语句,查询图书表中各出版社图书的数目,结果按图书数目降序排序提示:请使用SELECT语句作答。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SELECT 语句练习题
有下列四个表:
1、学生表
S_NO S_NAME S_SEX S_BIRTHDAY CLASS
108曾华男1905-5-2295033
105匡明男1905-5-1895031
107王丽女1905-5-795033
101李军男1905-5-995033
109王芳女1905-5-1895031
103陆君男1905-5-2095031
2、教师表
T_NO T_NAME TSEX T_BIRTHDAY PROF DEPART 804李诚男1958-12-2副教授计算机系856张旭男1969-3-12讲师电子工程系825王萍女1972-5-5助教计算机系831刘冰女1977-8-14助教电子工程系
3、课程表
C_NO C_NAME T_NO
3-105计算机导论825
3-245操作系统804
6-166数据电路856
9-888高等数学100
4、成绩表
S_NO C_NO DEGREE
1033-24586
1053-24575
1093-24568
1033-10592
1053-10588
1093-10576
1013-10564
1073-10591
1083-10578
1016-16685
1076-10679
1086-16681
Select 语句的最基本结构:Select …. From ….where
order by:排序子句(ASC:升序,DESC:降序)
like:模式匹配(通配符:% 可以匹配任意类型和长度的字符;
_ 任意单个字符。
聚合函数(SUM A VG、COUNT、COUNT(*)、MAX、MIN)
GROUP BY:分组
1、查询Student表中的所有记录的S_NAME、S_SEX和Class列。
2、查询教师所有的单位即不重复的Depart列。
3、查询Student表的所有记录。
4、查询Score表中成绩在60到80之间的所有记录。
5、查询Score表中成绩为85,86或88的记录。
6、查询Student表中“95031”班或性别为“女”的同学记录。
7、以Class降序查询Student表的所有记录。
8、以C_NO升序、Degree降序查询Score表的所有记录。
9、查询“95031”班的学生人数。
10、查询Score表中的最高分的学生学号和课程号。
11、查询‘3-105’号课程的平均分。
12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
13、查询最低分大于70,最高分小于90的S_NO列。
14、查询所有学生的S_NAME、C_NO和Degree列。
15、查询所有学生的S_NO、C_NAME和Degree列。
16、查询所有学生的S_NAME、C_NAME和Degree列。
17、查询“95033”班所选课程的平均分。
SQL语句练习题参考答案
1、select S_NAME,S_SEX,Class from Student;
2、select distinct depart from teacher;
3、select S_NO as '学号',S_NAME as '姓名',S_SEX as '性别',S_BIRTHDAY as'出生日期',Class as'班号'from student;
或
select S_NO as 学号,S_NAME as 姓名,S_SEX as 性别,S_BIRTHDAY as 出生日期,Class as 班号from student;
4、select * from score where degree between 60 and 80;
或select * from score where degree>=60 and degree<=80;
5、select * from score where degree in (85,86,88);
6、select * from student where class='95031'or S_SEX='女';
7、select * from student order by class desc;
8、select * from score order by C_NO asc ,degree desc;
或select * from score order by C_NO ,degree desc;
9、select count(*) as CNT from student where class='95031';
10、select S_NO as '学号',C_NO as '课程号', degree as '最高分' from score
where degree=(select max(degree) from score)
11、select avg(degree)as 课程平均分from score where C_NO='3-105';
12、select C_NO,avg(degree) from score where C_NO like'3%'group by C_NO having count(*) >5;
13、select S_NO from score group by S_NO having min(degree)>70 and max(degree)<90;
14、select student.S_NAME,score.C_NO,score.degree from student,score where student.S_NO=score.S_NO;
15、select x.S_NO,y.C_NAME,x.degree from score x,course y where x.C_NO=y.C_NO;
16、select x.S_NAME,y.C_NAME,z.degree from student x,course y,score z where x.S_NO=z.S_NO and z.C_NO=y.C_NO;
17、select y.C_NO,avg(y.degree) from student x,score y where x.S_NO=y.S_NO and x.class='95033'group by y.C_NO;。