查询典型题(有答案)dain6
数据库-查询练习1~52(含参考答案)
查询练习题第一部分:【1】从fruits表中检索所有字段的数据Select * from fruits;【2】查询fruits表中f_name列所有水果名称Select f_name from fruits;【3】从fruits表中获取f_name和f_price两列Select f_name,f_price from fruits;【4】查询价格为10.2元的水果的名称Select f_name from fruits where f_price=10.2;【5】查找名称为“apple”的水果的价格Select f_price from fruits where f_name=’apple’;【6】查询价格小于10的水果的名称Select f_name from fruits where f_peice<10;【7】s_id为101和102的记录Select * from fruits where s_id=101 or s_id=102;【8】查询所有s_id不等于101也不等于102的记录Select * from fruits where s_id!=101 and s_id!=102;【9】查询价格在2.00元到10.20元之间的水果名称和价格Select f_name,f_price from fruits where f_price>2.00 and f_price<10.20;【10】查询价格在2.00元到10.20元之外的水果名称和价格Select f_name,f_price from fruits where f_price<2.00 or f_price>10.20;【11】查找所有以’b’字母开头的水果Select f_name from fruits where f_name like ‘b%’;【12】在fruits表中,查询f_name中包含字母’g’的记录Select * from fruits where f_name like “%g%”;【13】查询以’b’开头,并以’y’结尾的水果的名称Select * from fruits where f_name like “b%y”;【14】在fruits表中,查询以字母’y’结尾,且’y’前面只有4个字母的记录Select * from fruits where f_name like “____y”;第二部分:SELECT COUNT(*) AS cust_num FROM customers;【15】查询customers表中c_email为空的记录的c_id、c_name和c_email字段值Select c_id,c_name,c_email from customers where c_email is null;【16】查询customers表中c_email不为空的记录的c_id、c_name和c_email字段值Select c_id,c_name,c_email from customers where c_email is not null;【17】在fruits表中查询s_id = 101,并且f_price大于等于5的水果价格和名称Select f_name,f_price from fruits where s_id=101 and f_price>=5;【18】在fruits表中查询s_id = 101或者102,且f_price大于5,并且f_name=‘apple’的水果价格和名称Select f_name,f_price from fruits where s_id in (101,102) and f_price>5 and f_name=’apple’;【19】查询s_id=101或者s_id=102的水果供应商的f_price和f_nameSelect f_price,f_name from fruits where s_id=101 or s_id=102;【20】查询s_id=101或者s_id=102的水果供应商的f_price和f_name(用不同的方法)Select f_price,f_name from fruits where s_id in (101,102);【21】查询fruits表中s_id字段的值,返回s_id字段值且不得重复(使用distinct去重复)SELECT DISTINCT s_id FROM fruits;【22】查询fruits表的f_name字段值,并对其进行排序Select f_name from fruits order by f_name;【23】查询fruits表中的f_name和f_price字段,先按f_name排序,再按f_price排序Select f_name,f_price from fruits order by f_name,f_price;【24】查询fruits表中的f_name和f_price字段,对结果按f_price降序方式排序Select f_name,f_price from fruits order by f_price desc;【25】查询fruits表,先按f_price降序排序,再按f_name字段升序排序Select * from fruits order by f_price desc,f_name;【26】根据s_id对fruits表中的数据进行分组,并显示每个分组的总记录数。
SELECT查询练习(50题)
SELECT 查询练习(50题)数据库表如下:Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表练习及参考答案:1、查询“001”课程比“002”课程成绩高的所有学生的学号;select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#;2、查询平均成绩大于60分的同学的学号和平均成绩;select S#,avg(score)from scgroup by S# having avg(score) >60;3、查询所有同学的学号、姓名、选课数、总成绩;select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S#group by Student.S#,Sname4、查询姓“李”的老师的个数;select count(distinct(Tname))from Teacherwhere Tname like '李%';5、查询没学过“叶平”老师课的同学的学号、姓名;select Student.S#,Student.Snamefrom Studentwhere S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# andSC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select S#,Snamefrom Studentwhere S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平'));8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 <score;9、查询所有课程成绩小于60分的同学的学号、姓名;select S#,Snamefrom Studentwhere S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);10、查询没有学全所有课的同学的学号、姓名;select Student.S#,Student.Snamefrom Student,SCwhere Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;select distinct SC.S#,Snamefrom Student,SCwhere Student.S#=SC.S# and C# in (select C# from SC where S#='001');13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;update SC set score=(select avg(SC_2.score)from SC SC_2where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# andCourse.T#=Teacher.T# and Teacher.Tname='叶平');14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select S# from SC where C# in (select C# from SC where S#='1002')group by S# having count(*)=(select count(*) from SC where S#='1002');15、删除学习“叶平”老师课的SC表记录;Delect SCfrom course ,Teacherwhere Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、号课的平均成绩;Insert SC select S#,'002',(Select avg(score)from SC where C#='002') from Student where S# not in (Select S# from SC whereC#='002');17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分SELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM SC AS tGROUP BY S#ORDER BY avg(t.score)18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.C# = R.C# andL.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.C# = IL.C# and IM.S#=IL.S#GROUP BY IL.C#)ANDR.Score = (SELECT MIN(IR.score)FROM SC AS IRWHERE R.C# = IR.C#GROUP BY IR.C#);19、按各科平均成绩从低到高和及格率的百分数从高到低顺序SELECT t.C# AS 课程号,max(ame)AS 课程名,isnull(AVG(score),0) AS 平均成绩,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数FROM SC T,Coursewhere t.C#=course.C#GROUP BY t.C#ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数FROM SC21、查询不同老师所教不同课程平均分从高到低显示SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(ame) AS 课程名称,AVG(Score) AS 平均成绩FROM SC AS T,Course AS C ,Teacher AS Zwhere T.C#=C.C# and C.T#=Z.T#GROUP BY C.C#ORDER BY AVG(Score) DESC22、查询如下课程成绩第3 名到第6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩SELECT DISTINCT top 3SC.S# As 学生学号,Student.Sname AS 学生姓名,T1.score AS 企业管理,T2.score AS 马克思,T3.score AS UML,T4.score AS 数据库,ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as总分FROM Student,SC LEFT JOIN SC AS T1ON SC.S# = T1.S# AND T1.C# = '001'LEFT JOIN SC AS T2ON SC.S# = T2.S# AND T2.C# = '002'LEFT JOIN SC AS T3ON SC.S# = T3.S# AND T3.C# = '003'LEFT JOIN SC AS T4ON SC.S# = T4.S# AND T4.C# = '004'WHERE student.S#=SC.S# andISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)NOT IN(SELECTDISTINCTTOP 15 WITH TIESISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) FROM scLEFT JOIN sc AS T1ON sc.S# = T1.S# AND T1.C# = 'k1'LEFT JOIN sc AS T2ON sc.S# = T2.S# AND T2.C# = 'k2'LEFT JOIN sc AS T3ON sc.S# = T3.S# AND T3.C# = 'k3'LEFT JOIN sc AS T4ON sc.S# = T4.S# AND T4.C# = 'k4'ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) +ISNULL(T4.score,0) DESC);23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]SELECT SC.C# as 课程ID, Cname as 课程名称,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85],SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70],SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60],SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -]FROM SC,Coursewhere SC.C#=Course.C#GROUP BY SC.C#,Cname;24、查询学生平均成绩及其名次SELECT 1+(SELECT COUNT( distinct 平均成绩)FROM (SELECT S#,AVG(score) AS 平均成绩FROM SCGROUP BY S#) AS T1WHERE 平均成绩> T2.平均成绩) as 名次, S# as 学生学号,平均成绩FROM (SELECT S#,AVG(score) 平均成绩FROM SCGROUP BY S#) AS T2ORDER BY 平均成绩desc;25、查询各科成绩前三名的记录:(不考虑成绩并列情况)SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 3 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;26、查询每门课程被选修的学生数select c#,count(S#) from sc group by C#;27、查询出只选修了一门课程的全部学生的学号和姓名select SC.S#,Student.Sname,count(C#) AS 选课数from SC ,Studentwhere SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;28、查询男生、女生人数Select count(Ssex) as 男生人数from Student group by Ssex having Ssex='男';Select count(Ssex) as 女生人数from Student group by Ssex having Ssex='女';29、查询姓“张”的学生名单SELECT Sname FROM Student WHERE Sname like '张%';30、查询同名同性学生名单,并统计同名人数select Sname,count(*) from Student group by Sname having count(*)>1;;31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime)select Sname, CONVERT(char (11),DATEPART(year,Sage)) as agefrom studentwhere CONVERT(char(11),DATEPART(year,Sage))='1981';32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ;33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩select Sname,SC.S# ,avg(score)from Student,SCwhere Student.S#=SC.S# group by SC.S#,Sname having avg(score)>85;34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数Select Sname,isnull(score,0)from Student,SC,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# and ame='数据库'and score <60;35、查询所有学生的选课情况;SELECT SC.S#,SC.C#,Sname,CnameFROM SC,Student,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# ;36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;SELECT distinct student.S#,student.Sname,SC.C#,SC.scoreFROM student,ScWHERE SC.score>=70 AND SC.S#=student.S#;37、查询不及格的课程,并按课程号从大到小排列select c# from sc where scor e <60 order by C# ;38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#='003';39、求选了课程的学生人数select count(*) from sc;40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩select Student.Sname,scorefrom Student,SC,Course C,Teacherwhere Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC where C#=C.C# );41、查询各个课程及相应的选修人数select count(*) from sc group by C#;42、查询不同课程成绩相同的学生的学号、课程号、学生成绩select distinct A.S#,B.score from SC A ,SC B where A.Score=B.Score and A.C# <>B.C# ;43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;44、统计每门课程的学生选修人数(超过10人的课程才统计)。
查询专项练习4-2参考答案
1.查询出所有上海市同学的成绩,删除掉这些成绩记录。
Delete 学生.*From 学生Where 学生.简历="上海市"2.查询出所有助教的老师信息,删除掉这些记录。
Delete 教师.*From 教师Where 职称="助教"3.将所有19岁女同学的姓名后添加"女士"Update 学生Set 姓名=姓名 & "女士"Where 年龄=19 And 性别="女"4.查询出所有公共选修课的成绩,将这些成绩上扶15%。
Update 选课成绩 Inner Join 课程 On 选课成绩.课程编号=课程.课程编号Set 选课成绩.成绩=选课成绩.成绩*1.15Where 课程.课程类别="公共选修课"5.往成绩表中追加一条记录:学生编号为900106的同学,110那门课的成绩为78分。
Insert Into 选课成绩(选课成绩.学生编号,选课成绩.课程编号,选课成绩.成绩) Values ("900106","110",78) 6.往教师表中追加一条记录:教师编号为98088,女老师名叫李丹丹,2000年9月1日参加工作,中医专业的副教授,Insert Into 教师(教师.教师编号,教师.姓名,教师.工作时间,教师.职称,教师.系别) Values ("98088","李丹丹",#2000/09/01#,"中医")7.查询出课程编号为101的学生学生编号与成绩。
Select 选课成绩.学生编号 , 选课成绩.成绩From 选课成绩Where 选课成绩.课程编号="101"8.查询出课程编号为104的学生学生编号与姓名。
Select 学生.学生编号 , 学生.姓名From 学生 INNER JOIN 选课成绩 ON 学生.学生编号=选课成绩.学生编号Where 选课成绩.课程编号="104"9.查询出选修课程名为 计算机基础 的学生学生编号与姓名。
查询(答案)
Access查询专项训练(笔试)1.查询“书名”字段中包含“等级考试”字样的记录,应该使用的条件是_____DA)Like "等级考试"B)Like "*等级考试C)Like "等级考试*"D)Like "*等级考试*"2.下列表达式计算结果为日期类型的是_____CA)#2012-1-23#-#2011-2-3# B)year(#2011-2-3#)C)DateV alue("2011-2-3") D)Len("2011-2-3")3.若要将“产品”表中所有供货商是“ABC”的产品单价下调50,则正确的SQL语句是_____BA)UPDATE 产品SET 单价=50 WHERE 供货商="ABC"B)UPDATE 产品SET 单价=单价-50 WHERE 供货商="ABC"C)UPDATE FROM 产品SET单价=50 WHERE 供货商="ABC"D)UPDATE FROM 产品SET单价=单价-50 WHERE 供货商="ABC"4.若查询的设计如下,则查询的功能是_____CA)设计尚未完成,无法进行统计B)统计班级信息仅含Null(空)值的记录个数C)统计班级信息不包括Null(空)值的记录个数D)统计班级信息包括Null(空)值全部记录个数5.在Access查询的条件表达式中要表示任意单个字符,应使用通配符_____。
?6.在SELECT语句中,HA VING子句必须与_____子句一起使用。
Group by7.在SQL语言的SELECT语句中,用于实现选择运算的子句是_____DA)FOR B)IF C)WHILE D)WHERE8.在成绩中要查找成绩≥80且成绩≤90的学生,正确的条件表达式是_____AA)成绩Between 80 And 90B)成绩Between 80 To 90C)成绩Between 79 And 91D)成绩Between 79 To 919.“学生表”中有“学号”、“姓名”、“性别”和“入学成绩”等字段。
查询作业及参考答案
查询作业及参考答案说明:学生管理库中主要表结构如下:学生表(学号, 姓名, 性别, 出生日期, 政治面目, 入学成绩, 照片, 简历)教师表(教师编号, 姓名, 性别, 学历, 政治面目, 工作时间, 职称, 系别, 联系电话, 邮箱地址, 婚否)课程表(课程代码, 课程名称, 教师编号, 学分)成绩表(选课ID,学号,课程代码,成绩)根据要求写SQL语句1.查询年龄介于20-22岁的学生的学号、姓名、年龄和入学成绩Select 学号, 姓名, year(date( )-year(出生日期) as 年龄,入学成绩from 学生表where year(date( )-year(出生日期) between 20 and 22;说明1:“year(date( )-year(出生日期) between 20 and 22”也可表示成“year(date( )-year(出生日期) >=20 and year(date( )-year(出生日期) <=22”,但一定不能写成“year(date( )-year(出生日期)>=20 and <=22”的形式说明2:year(出生日期)”也可写成“year([出生日期])”形式。
同理,后面各题中,函数中的字段名均可加”[ ]”界定2.查询姓“李”和姓“王”的教授Select * from 老师表where(left(姓名,1)=”李” or left(姓名,1)=”王”)and职称=”教授”;或者: Select * from 老师表where (left(姓名,1)=”李” and 职称=”教授”) or (left(姓名,1)=”王”and 职称=”教授”);说明1:where 子句中的小括号,一定不能省略说明2:left(姓名,1)=”李”也可表示成姓名like “李*”,left(姓名,1)=”王”与上类同。
3.查询每个学生学号、姓名、总成绩、平均成绩、最高成绩和最低成绩Select 学生表.学号, 姓名, sum(成绩) as 总成绩, avg(成绩) as 平均成绩,max(成绩) as 最高成绩, min(成绩) as 最低成绩from 学生表inner join成绩表on 学生表.学号=成绩表.学号group by 学生.学号;说明1:第1并可出现的“学生表.学号”也可表示成“成绩表.学号”说明2:“from 学生表inner join 成绩表on 学生表.学号=成绩表.学号”也可表示成:“from 成绩表inner join 学生表on 成绩表..学号=学生表.学号”4.查询每门课程的选课情况,显示包括课程号、课程名和选课人数select 成绩表.课程代码as 课程号, 课程表.课程名称as 课程名, count(成绩表.课程代码) as 选课人数from 课程表inner join 成绩表on 课程表.课程代码=成绩表.课程代码group by 成绩表.课程代码,课程表.课程名称;5.将成绩表中低于60分的成绩提升10%,并按成绩降序显示记录Select *, 成绩*(1+0.1) from 成绩表where 成绩<60 order by 成绩desc;说明:此处10%不能直接用于命令中,只能用0.1的方式转换.6.查询班级号(注:班级号为学号的前4位)Select distinct left(学号,4) as 班级号from 学生表;说明:此题主要考查distinct 的应用,用以不显示重复项7.查询入学成绩前20名的学生的学号和姓名Select top 20学号, 姓名from 学生表order by入学成绩desc;说明:此题主要考查top 与order by 的配合的应用评分标准:1. 每个小题大约15分,2.根据得分的情况分成A、B+、B、C+、C、D六个等级,对应的分值大致为98、90、85、75和65分和50分.如果学生所做很差,就给个D.实验指导书P107,第2题,添加要求如下:1)设库中有名为tTeacher的表(该表可从实验第10章的第4题库中导入)2)在(4)后增加要求:运行窗体时,单击“确定”按钮时,显示选项组中选定性别的tTeacher1内容。
SQL查询及答案
SQL查询及答案一、单表查询练习1、查询<学生信息表>,查询学生"张三"的全部基本信息Select *from A_studentinfowhere sname='张三'2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息Select *from A_studentinfowhere sname='张三'or sname='李四'3、查询<学生信息表>,查询姓"张"学生的基本信息Select *from A_studentinfowhere sname like '张%'4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息Select *from A_studentinfowhere sname like '%四%'5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。
select *from A_studentinfowhere sname like '李_强'6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。
Select *from A_studentinfowhere sname like '张%'or sname like '李%'7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息Select *from A_studentinfowhere sname like '张%'and province='北京'8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息Select *from A_studentinfowhere province in ('北京','上海','新疆','山东')9、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息Select *from A_studentinfowhere sname like '张%'and province !='北京'10、查询<学生信息表>,查询全部学生信息,并按照“性别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序select *from A_studentinfoorder by sex,province,class11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份select distinct province as 省份from A_studentinfo12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩Select *from A_studentcoursewhere score is null13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序Select *from A_studentcoursewhere score is not nullorder by score desc二、聚合函数练习1、统计<学生信息表>,统计共有多少个学生Select count (*) as 学生数量from A_studentinfo2、统计<学生信息表>,统计年龄大于20岁的学生有多少个Select count(*) as 学生数量from A_studentinfowhere (2021-yearofbirth)>203、统计<学生信息表>,统计入学时间在1980年至1982年的学生人数select count(*) as 学生数量from A_studentinfowhere enrollment between '1998-01-01' and '2021-12-30'对比以下查询方式,看看有何不同,为什么?select count(*) as 学生数量from A_studentinfowhere enrollment between '1998' and '2021'。
数据结构(查找)习题与答案
一、单选题1、对于查找表(13,27,38,49,50 ,65,76,97)采用顺序查找,在等概率情况下查找成功的平均查找长度是( )。
A.4.5B.9C.4D.8正确答案:A2、在关键字序列( 10,20,30,40,50)中采用折半查找20 ,挨次与( )关键字进行了比较。
A.30,10,20B.20C.30,20D.40,20正确答案:A3、在关键字序列(8,12,20,25,33)中,采用二分查找25 ,关键字之间比较需要( ) 次。
A.2B.1C.3D.4正确答案:A4、对于长度为11 的有序表,按折半查找,在等概率情况下查找成功时,其平均查找长度是( )。
A.3B.4C.1D.2正确答案:A5、对于长度为11 的有序表,按折半查找,在查找失败时,待查找值域表中关键字比较的次数是( )。
A.3 次或者4 次B.2 次或者3 次C.4 次或者5 次D.1 次或者2 次正确答案:A6、对于长度为n 的有序表,按折半查找,在等概率情况下查找成功平均时间复杂度是( )。
A.O(㏒n)B.O(n)C.O(1)D.O(n ㏒n)正确答案:A7、索引顺序查找也叫分块查找,其查找过程分为是( )个步骤。
A.1B.3C.4D.2正确答案:D8、对于长度为n 的关键字序列创建一颗二叉排序树,该树可能的最大高度是( )。
A.n+1B.n-1C.㏒nD.n正确答案:D9、对于关键字序列(30,25,40,35,45) ,按序列次序创建一颗二叉排序树,在等概率情况下查找成功时,其平均查找长度是( )。
A.8/3B.11/5C.8D.11正确答案:B10、影响散列查找时间效率的主要因素( )。
A.仅与散列表中实际元素个数相关B.仅与散列表长相关C.与散列表长和散列表中实际元素个数均相关D.与散列表长和散列表中实际元素个数均不相关正确答案:C11、一组关键字序列为(27,17,9,19,16,43,53,8,63) ,用哈希函数H(key)=key MOD 8 和链地址法处理冲突,查找关键字43 ,与散列表中关键字进行了( )次比较。
查询练习2(附答案)
一、选择题1.在Visual FoxPro系统中,数据库表的字段默认值保存在______.A.项目文件中B.数据库表文件中C.数据库文件中D.数据库表的备注文件中2.在Visual FoxPro系统中,下列有关查询和视图的叙述错误的是______.A.查询文件是一种包含SELECT-SQL语句的文本文件,其扩展名为.QPRB.查询的输出去向可以为EXCEL文件,即可以将查询结果直接储存为Excel格式C.视图不以文件形式独立保存,视图的定义保存在数据库文件中D.可以使用USE命令打开和关闭视图3、XS(学生)表中有XM(姓名,字符型)和XB(性别,字符型)等字段。
如果要将所有男生记录的姓名字段值清空,则可以使用命令_______________。
A、UPDATE xs SET xm=”” WHERE “XB”=男B、UPDATE xs SET xm=SPACE(0) WHERE xb=”男”C、UPDATE xs SET xm=SPACE(0) FOR xb=”男”D、UPDATE xs SET xm=”” FOR “xb”=男4、从语法格式上看,SELECT-SQL语句可以分为多个子句,但是它不包含_______________。
A、WHERE子句B、INTO子句C、FOR子句D、UNION子句5、首先执行CLOSE TABLES ALL命令,然后执行______________命令,可逻辑删除JS(教师)表中年龄超过60岁的所有记录(注:csrq为日期型字段,含义为出生日期)A、DELETE FOR YEAR(DATE()-YEAR(csrq))>60B、DELETE FROM js WHERE YEAR(DATE())-YEAR(csrq)>60C、DELETE FROM js FOR YEAR(DATE()-YEAR(csrq))>60D、DELETE FROM js WHILE YEAR(DATE())-YEAR(csrq)>606、设变量x的值为”abc ”(其长度为4,末尾为一空格字符),变量y的值为” abc”(基长度为4,第一个字符为空格),则表达式LEN(x+y)和LEN(x-y)的返回值分别是___________。
sql查询题库
sql查询题库
以下是一些SQL查询题,可用于练习和提高SQL查询技能:
1. 查询所有学生的姓名、年龄和性别。
2. 查询年龄大于等于18岁的学生姓名和年龄。
3. 查询所有学生的平均成绩。
4. 查询平均成绩最高的学生姓名和平均成绩。
5. 查询选修了"数学"课程的学生姓名和成绩。
6. 查询选修了多于3门课程的学生姓名。
7. 查询选修了"英语"课程且成绩在90分以上的学生姓名和成绩。
8. 查询选修了"计算机科学"课程的学生的最高成绩和最低成绩。
9. 查询没有选修"英语"课程的学生姓名。
10. 查询选修了最少一门课程的学生姓名。
11. 查询选修了课程数量最多的学生姓名。
12. 查询选修了课程数量少于3门的学生姓名。
13. 查询所有学生的学号、姓名和班级。
14. 查询班级人数最多的学生姓名和班级。
15. 查询选修了"计算机科学"课程的学生的平均成绩。
查询练习试卷2(题后含答案及解析)
查询练习试卷2(题后含答案及解析)全部题型 2. 填空题填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡上。
注意:以命令关键字填空的必须拼写完整。
1.创建分组统计查询时,总计项应选择______。
正确答案:Groupby 涉及知识点:查询2.根据对数据源操作方式和结果的不同,查询可以分为5类;选择查询、交叉表查询、______操作查询和SQL查询。
正确答案:参数查询涉及知识点:查询3.“查询”设计视图窗口分为上下两部分,上半部分为______区;下半部分为设计网格。
正确答案:字段列表涉及知识点:查询4.书写查询准则时,日期值应该用______括起来。
正确答案:“#”涉及知识点:查询5.SQL查询就是用户使用SQL语句来创建的一种查询。
SQL查询主要包联合查询、传递查询、______和子查询等。
正确答案:数据定义查询涉及知识点:查询6.操作查询共有4种类型,分别是删除查询、______、追加查询和生成表查询。
正确答案:更新查询涉及知识点:查询7.若要查找最近20天之内参加工作的职工记录,查询准则为______。
正确答案:betweendate( )anddate( )-20 涉及知识点:查询8.创建查询的方法有两种,分别为“使用向导”创建和______。
正确答案:使用设计器涉及知识点:查询9.Access中,查询不仅具有查找的功能,还具有______功能。
正确答案:计算涉及知识点:查询10.窗体有6种类型;纵栏式窗体、______、数据表窗体、主/子窗体、图表窗体和数据透视窗体。
正确答案:表格式窗体涉及知识点:查询11.创建纵栏式窗体,可以在“数据库”窗口中的对象列表中单击“窗体”对象,再单击工具栏上的“新建”按钮,出现“新建窗体”对话框,从列表中选择______选项。
正确答案:“自动创建窗体:纵栏式”涉及知识点:查询12.控件的类型可以分为:结合型、非结合型与计算型。
结合型控件主要用于显示、输入、更新数据库中的字段:非结合型控件______;计算型控件用表达式作为数据源。
查询作业部份题目参考答案精选全文
可编辑修改精选全文完整版1找出至少被两个顾客订购的产品的pid值select pid,count(cid) as 订购产品的顾客数量from orders group by pid having count(cid)>=2select distinct x1.pid from orders x1, orders x2 where x1.pid=x2.pid and x1.cid <x2.cid2求出通过住在Duluth或Dallas的代理商订货的所有顾客的姓名和折扣select cname,discnt from customers where cid in (select cid from orders where aid in ( select aid from agents where city='Duluth' or city='Dallas') )3检索由住在Duluth的顾客和住在New York 的代理商组成的所有订货记录的ordno值()select ordno from orders where cid in (select cid from customers where city='Dul uth') and aid in (select aid from agents where city='New York')4求出住在New York 或Duluth 并订购了价格超过一美元的所有产品的代理商的aid值select aid from agents where aid in (select aid from orde rs where dollars/qty>1) and city='New York' or city='Dulu th'5找出具有以下性质的顾客的cid 值:如果顾客c006订购了某种产品,那要检索的顾客也订购了该产品select cname,cid from customers where cid in (select cid from orders where pid in (sel ect pid from orders where cid='c006'))6检索对同一产品至少订购了两次的所有顾客的名字select cname from customers where cid in (select cid fro m orders group by cid,pid having count(pid)>=2)7求出既订购了产品p01又订购了产品p07的顾客的cid值select distinct cid from orders xwhere pid='p01' and exists (select * from orders where ci d=x.cid and pid='p07')8求出住在同一城市的顾客对select c1.cid,c2.cid from customers c1,customers c2 where c1.city=c2.city and c1.cid <c2.cid9、检索所有满足以下条件的顾客-代理商姓名对(cname,aname),其中的cname 通过aname订了货select distinct ame,AGENTS.aname from CUSTOMERS,AGE NTS,ORDERS where CUSTOMERS.cid=ORDERS.cid and AGENTS.aid=ORD ERS.aid。
mysql查询例题
mysql查询例题当涉及到MySQL查询例题时,有很多不同类型的问题可以提出。
以下是一些常见的MySQL查询例题,我将从多个角度给出详细的回答。
1. 查询表中的所有数据:要查询表中的所有数据,可以使用SELECT语句。
例如,假设有一个名为"users"的表,包含"ID"、"Name"和"Age"三列,可以使用以下查询语句获取所有数据:SELECT FROM users;这将返回表中所有行的所有列。
2. 查询满足特定条件的数据:如果你只想查询满足特定条件的数据,可以在SELECT语句中使用WHERE子句。
例如,假设你想查询年龄大于等于18岁的用户,可以使用以下查询语句:SELECT FROM users WHERE Age >= 18;这将返回年龄大于等于18岁的所有用户的数据。
3. 查询特定列的数据:有时候你可能只对表中的某些列感兴趣,而不是所有列。
在这种情况下,可以在SELECT语句中指定要查询的列。
例如,如果你只想查询用户的姓名和年龄,可以使用以下查询语句:SELECT Name, Age FROM users;这将返回所有用户的姓名和年龄列。
4. 查询排序数据:如果你想按照某一列的值对结果进行排序,可以使用ORDER BY 子句。
例如,假设你想按照用户的年龄从小到大排序,可以使用以下查询语句:SELECT FROM users ORDER BY Age ASC;这将返回按照年龄从小到大排序的所有用户数据。
5. 查询统计数据:有时候你可能需要对数据进行统计,例如计算平均值、总和或计数。
在这种情况下,可以使用聚合函数,如AVG、SUM或COUNT。
例如,如果你想计算用户的平均年龄,可以使用以下查询语句:SELECT AVG(Age) FROM users;这将返回用户的平均年龄。
6. 查询关联数据:如果你有多个表,并且想根据某些条件关联它们的数据,可以使用JOIN语句。
大学MySQL查找考试题及答案
大学MySQL查找考试题及答案一、选择题(每题2分,共20分)1. MySQL数据库系统中,以下哪个命令用于查询数据?A. INSERTB. SELECTC. UPDATED. DELETE答案:B2. 在MySQL中,如果要从一个表中查询所有记录和所有字段,应该使用哪个SQL语句?A. SELECT *B. SELECT ALLC. SELECT ALL *D. SELECT ALL FIELDS答案:A3. 如果想要查询学生表中姓“李”的学生,应该使用哪个WHERE子句?A. WHERE name = '李'B. WHERE surname = '李'C. WHERE student_name = '李'D. WHERE student_surname = '李'答案:B4. 在MySQL中,以下哪个关键字用于分组查询?A. GROUPB. GROUP BYC. CLASSIFYD. CATEGORIZE答案:B5. 以下哪个命令用于在MySQL中创建新表?A. CREATE TABLEB. NEW TABLEC. ADD TABLED. BUILD TABLE答案:A6. 如果要查询某个学生的成绩,并且只显示成绩在90分以上的学生,应该使用哪个SQL语句?A. SELECT * FROM students WHERE score > 90B. SELECT * FROM scores WHERE score > 90C. SELECT * FROM students JOIN scores ON students.id = scores.id WHERE score > 90D. SELECT * FROM students INNER JOIN scores ON students.id = scores.id WHERE scores.score > 90答案:D7. 在MySQL中,以下哪个命令用于删除表?A. REMOVE TABLEB. DELETE TABLEC. DROP TABLED. EXCLUDE TABLE答案:C8. 以下哪个SQL语句用于更新学生表中的记录?A. UPDATE students SET name = '张三'B. MODIFY students SET name = '张三'C. CHANGE students SET name = '张三'D. ALTER students SET name = '张三'答案:A9. 在MySQL中,以下哪个命令用于添加新的数据到表中?A. INSERT INTOB. ADD INTOC. PUT INTOD. NEW INTO答案:A10. 以下哪个命令用于在MySQL中创建索引?A. CREATE INDEXB. INDEX CREATEC. MAKE INDEXD. BUILD INDEX答案:A二、填空题(每题3分,共30分)11. 在MySQL中,使用________命令可以查看所有数据库。
多表测试题及答案
多表测试题及答案一、单选题1. 多表查询中,用于连接两个表的关键字是:A. 外键B. 索引C. 连接词D. 主键答案:C2. 在SQL中,以下哪个操作符用于返回两个表中都存在的行?A. UNIONB. INTERSECTC. EXCEPTD. JOIN答案:B3. 以下哪个选项不是多表查询的类型?A. 内连接B. 外连接C. 交叉连接D. 子查询答案:D二、多选题1. 在多表查询中,以下哪些选项可以用于连接表?A. INNER JOINB. LEFT JOINC. RIGHT JOIND. FULL OUTER JOIN答案:A, B, C, D2. 多表查询中,以下哪些选项可以作为连接条件?A. 相等条件B. 不相等条件C. 大于条件D. 小于条件答案:A, B, C, D三、判断题1. 多表查询时,必须使用连接词来连接两个表。
(对/错)答案:对2. 在多表查询中,可以使用WHERE子句来限制查询结果。
(对/错)答案:对3. 多表查询的结果集大小一定比任何一个参与查询的表都要小。
(对/错)答案:错四、简答题1. 描述多表查询中内连接和外连接的区别。
答案:内连接只返回两个表中匹配的行,而外连接会返回至少在一个表中存在的所有行,包括不匹配的行。
2. 解释多表查询中使用交叉连接的目的。
答案:交叉连接用于生成两个表的所有可能的行组合,即使两个表之间没有共同的列。
结束语:通过以上题目的练习,可以加深对多表查询操作的理解和应用。
希望这些题目能够帮助你更好地掌握多表查询的相关知识。
嵌套查询练习题
嵌套查询练习题嵌套查询是数据库查询语言中重要的一种查询方式,它可以在查询中嵌套使用子查询来获取更精确的查询结果。
嵌套查询的应用非常广泛,特别在需要复杂条件判断或多个条件交互的查询中,嵌套查询能够发挥其强大的优势。
嵌套查询的基本语法结构如下:```sqlSELECT 列名1, 列名2, ...FROM 表1WHERE 列名 IN (SELECT 列名FROM 表2WHERE 条件)```在上述例子中,子查询(SELECT 列名 FROM 表2 WHERE 条件)被嵌套在主查询的WHERE子句中,用于筛选出符合条件的查询结果。
下面将通过一些实际应用场景来练习使用嵌套查询:1. 查询特定条件下的员工信息假设有两个表格,一个是员工表格Employee,还有一个是部门表格Department。
我们希望找到部门名称为"Sales"的所有员工的姓名和工资。
```sqlSELECT 姓名, 工资FROM EmployeeWHERE 部门ID IN (SELECT 部门IDFROM DepartmentWHERE 部门名称 = 'Sales')```2. 查询总销售额最高的员工信息假设有两个表格,一个是员工表格Employee,还有一个是销售表格Sales。
我们希望找到销售总额最高的员工的姓名和总销售额。
```sqlSELECT 姓名, SUM(销售额) AS 总销售额FROM EmployeeWHERE 员工ID IN (SELECT 员工IDFROM SalesGROUP BY 员工IDORDER BY SUM(销售额) DESCLIMIT 1)```3. 查询没有完成任何销售的员工信息假设有两个表格,一个是员工表格Employee,还有一个是销售表格Sales。
我们希望找到没有完成任何销售的员工的姓名和工资。
```sqlSELECT 姓名, 工资FROM EmployeeWHERE 员工ID NOT IN (SELECT 员工IDFROM Sales)```4. 查询参加两个以上考试的学生信息假设有两个表格,一个是学生表格Student,还有一个是考试表格Exam。
多表联合查询与子查询练习试卷
多表联合查询与子查询练习试卷(答案见尾页)一、选择题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、A A D 2 A 3、B 4、D 5、C 6、B7、B 8、D 9、C 10、C 11、D 12、C 13、D14、D 15、D 16、C 17、B二、填空题1、大于或等于2、查询3、数学4、数据表、SQL5、 36、参数7、 update 学生 set 成绩=[成绩]+10 where 性别=“女”8、生成表查询、追加查询、更新查询9、数据定义查询、联合查询 10、列标题11、查询成绩表中所有成绩大于平均成绩的记录12、UNION、UNION ALL13、设计视图 14、日期时间、数值 15、操作查询 16、SQL 17、删除查询18、1 19、Ctrl+Break 20、数值表达式、绝对值 21、空格 22、数据源23、参数查询 24、数据定义查询 25、”” 26、假 27、# 28、表或查询29、对话框30、表31、行和列32、报表和窗体33、数据检索34、空值35、group by 36、表 37、选择查询 38、参数、生成表39、更新、追加、删除、生成表 40、DISTINCT 41、TOP 5 42、多、1、143、2020、整型44、与、或45、is null 46、<date()-15< p="">47、计算字段的和、计算字段平均值、数字、日期/时间、货币、自动编号、NULL48、*:表示由0个或任意多个字符组成的字符串。
在字符串中可以用做第一个字符或最后一个字符:表示任意一个字符[ ]:表示位于方括号内的任意一个字符[!]:表示不在方括号内的任意一个字符[-]:表示指定范围内的任意一个字符(必须以升序排列字母范围)#:表示任意一个数字字符三、简答题1、查询的作用是什么?查询有哪几种视图?答案:查询的作用是从大量的数据中查找符合条件的记录。
查询一共有5种视图,分别是设计视图、数据表视图、SQL视图、数据透视表视图、数据透视图视图。
access查询作业(有答案)
课堂练习:●查询医生的名单。
SELECT 姓名FROM 医生;●查询医生的姓名,性别,出生日期,职称。
(注意查询中要求的顺序)SELECT 姓名, 性别, 出生日期, 职称FROM 医生;●查询医生的所有信息。
SELECT * FROM 医生;●查询女性或正主任医生的姓名,性别,职称,科室号SELECT 姓名, 性别, 职称, 科室号FROM 医生WHERE 性别='女' Or 职称='正主任医生';●查询女性正主任医生的姓名,科室号SELECT 姓名, 科室号FROM 医生WHERE 性别='女' And 职称='正主任医生';●按科室号升序对医生排序SELECT *FROM 医生ORDER BY科室号;●查询男性医生的姓名、职称,并将查询结果生成一张新表“男性医生”。
SELECT 姓名,职称into 男性医生FROM 医生where 性别='男'●查询某种性别的医生的姓名、职称、性别。
运行查询时要求输入性别,输入”男”查询男性医生,输入”女”查询女性医生。
SELECT 姓名,职称,性别FROM 医生where 性别=x●计算-3的绝对值SELECT ABS(-3) as -3的绝对值●查询今天的日期SELECT date() as 今日日期●查询今年年份SELECT year(date()) as 今年年份●查询1990-4-28出生的人至今生存了多少年、天、小时、秒SELECT datediff('yyyy',#1990-4-28#,date()) as 年●查询医生的姓名,年龄SELECT 姓名, year(date())-year(出生日期) AS 年龄FROM 医生;●查询45岁以上的医生的姓名,性别,年龄,科室号:SELECT 姓名, 性别, YEAR(DA TE())-YEAR(出生日期) AS 年龄, 科室号FROM 医生WHERE YEAR(DA TE())-YEAR(出生日期)>=45;●查询正主任医生的姓名,年龄,科室号SELECT 姓名, YEAR(DA TE())-YEAR(出生日期) AS 年龄, 科室号FROM 医生WHERE 职称='正主任医生';●查询李医生的情况:SELECT *FROM 医生WHERE 姓名Like '李*';●查询姓张的且名字是二个字的医生的信息SELECT *FROM 医生WHERE 姓名Like '张??';●查询出1970年以前出生(不含1970年)的男医生的科室号、科室名称、医生号和姓名,并按科室号升序排序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.在Access有以下哪几种查询操作方式(1) 选择查询;(2) 参数查询;(3) 交叉表查询;(4) 操作查询;(5) SQL查询.A) (1)(2)B) (1)(2)(3)C) (1)(2)(3)(4)D) (1)(2)(3)(4)(5)参考答案:D提示:(1)(2)(3)(4)(5)全部属于Access的查询方式2.在Access中,以一哪个不属于查询操作方式A) 选择查询B) 参数查询C) 准则查询D) 操作查询参考答案:C3.下列属于操作查询的是(1) 删除查询; (2) 更新查询; (3) 生成表查询; (4) 追加查询; (5)交叉表查询.A) (1)(2)(3)(4)B) (1)(3)(4)(5)C) (2)(3)(4)(5)D) (1)(2)(3)(5)参考答案:A提示:交叉表查询不属于操作查询4.以下查询中,除了从表中选择数据外,可以对数据进行修改的是A) 选择查询B) 交叉表查询C) 操作查询D) 参数查询参考答案:C5.在查询时会弹出对话框,提示用户输入必要的信息,再按照这些信息进行查询的是A) 选择查询B) 参数查询C) 交叉表查询D) 操作查询参考答案:B6.可以从一个或多个表中检索数据,可以在一定条件限制条件下检索数据、对检索的数据进行修改、分组、总计、计数、均值等的查询是A) 选择查询B) SQL查询C) 操作查询参考答案:A提示:选择查询是最常见的查询类型,它从一个或多个表中检索数据,并且在可以更新记录(有一些限制条件)的数据表中显示结果。
也可以使用选择查询来对记录进行分组,并且对记录作总计、计数、平均值以及其他类型的总和计算。
7.可以在一种紧凑的、类似电子表格的格式中,显示来源于表中某个字段的合计值、计算值、均值等的查询方式是A) SQL查询B) 参数查询C) 操作查询D) 交叉表查询参考答案:D提示:使用交叉表查询可以计算并重新组织数据的结构,这样可以更加方便地分析数据。
交叉表查询计算数据的总计、平均值、计数或其他类型的总和,这种数据可分为两组信息:一类在数据表左侧排列,另一类在数据表的顶端。
8.可以用结构化查询语言来进行查询、更新和管理Access数据库,并与设计视图创建的查询等效的查询是。
A) 选择查询B) 操作查询C) SQL查询D) VBA查询参考答案:C提示:9.使用一个表或多个表中的全部或部分数据来建立新表的查询是A) 生成表查询B) 删除查询C) 追加查询D) 更新查询参考答案:A提示:10.适合于将“数学”成绩不及格的学生从“学生成绩表”中删除的查询是A) 更新查询B) 追加查询C) 删除查询D) 生成表查询参考答案:C提示:11.可以从一个或多个表中的一组记录添加到一个或多个表的尾部的查询是A) 生成表查询B) 更新查询C) 追加查询D) 删除查询参考答案:C12.以下选项中,不属于SQL查询的是B) 联合查询C) 子查询D) 数据定义查询参考答案:A提示:SQL 查询是用户使用SQL 语句创建的查询。
可以用结构化查询语言(SQL) 来查询、更新和管理Access 这样的关系数据库。
在查询“设计”视图中创建查询时,Access 将在后台构造等效的SQL 语句。
实际上,在查询“设计”视图的属性表中,大多数查询属性在SQL 视图中都有等效的可用子句和选项。
如果需要,可以在SQL 视图中查看和编辑SQL 语句。
但是,在对SQL 视图中的查询做更改之后,查询可能无法以以前在“设计”视图中所显示的方式进行显示。
有一些SQL 查询,称为“SQL 特定查询”,无法在设计网格中进行创建。
对于传递查询、数据定义查询和联合查询,必须直接在SQL 视图中创建SQL 语句。
对于子查询,可以在查询设计网格的“字段”行或“条件”行输入SQL 语句。
传递查询:SQL 特定查询,可以用于直接向ODBC 数据库服务器发送命令。
通过使用传递查询,可以直接使用服务器上的表,而不用让Microsoft Jet 数据库引擎处理数据。
)、数据定义查询(数据定义查询:包含数据定义语言(DDL) 语句的SQL 特有查询。
这些语句可用来创建或更改数据库中的对象。
)联合查询(联合查询:该查询使用UNION 运算符来合并两个或更多选择查询的结果。
),子查询(子查询:在另一个选择查询或操作查询内的SQL SELECT 语句。
)13.检索价格在30~60万元间的产品,可以设置条件为A) “>30 Not <60”B) “>30 or <60”C) “>30 and <60”D) “>30 Like <60”参考答案:C14.设置排序可以使查询结果按一定的顺序排列,如果所有的查询字段都设置了排序,那么查询结果的排序方式是A) 从最中间开始B) 从右向左C) 从左向右D) 随机参考答案:C提示:从左向右,先按最左边的,然后左边第二个,依次向右15.特殊运算符"In"的含义是A) 用于指定一个字段值的范围B) 用于指定一个字段值的列表,列表中的任一值都可以与查询的字段相匹配C) 用于指定一个字段为空D) 用于指定一个字段为非空参考答案:B提示:A选项用And; C选项用Is Null; D选项为Is Not Null16.要将“选课成绩“表中学生的成绩取整,可以使用A) Abs([成绩])B) Int([成绩])D) Sgn([成绩])参考答案:B提示:abs为取绝对值函数, sqr为取平方根函数, sgn为符号函数.17.下列关于查询的叙述中,正确的是A) 只能根据已建查询创建新查询B) 只能根据数据库表创建查询C) 可根据数据库创建查询,但不能根据已建查询创建查询D) 可根据数据表创建查询,也可根据已建查询创建查询参考答案:D18.在查询的“设计”视图中A) 可以添加数据库表,也可以添加查询B) 只能添加数据库表C) 只能添加查询D) 以上两者都不能添加参考答案:A19.关于准则Like “北京?”与Like “北京*”, 正确的叙述是A) 两都没区别B) 前者查询的结果包含后者查询的结果C) 后者查询的结果包含前者查询的结果D) 后者只能查询与三个字符“北京?”完全匹配的结果参考答案:D20.关于选择查询的叙述中,错误的是A) 根据查询准则,从一个或多个表中获取数据并显示结果B) 可以对记录进行分组C) 可以对查询记录进行总计、计数、求均值等计算D) 查询结果不会根据数据库表的数据的变化改变参考答案:D21.查找“姓名”字段中不是张三的记录的准则是A) Not “张三*”B) Not “张三”C) Like “张三”D) “张三”参考答案:B22.通配符”*”可以A) 可以匹配零个或多个字符B) 匹配任何一个字符C) 匹配一个数字D) 匹配空值参考答案:A提示:* 与任何个数的字符匹配。
在字符串中,它可以当作第一个或最后一个字符使用。
wh*可以找到what、white 和why? 与任何单个字母的字符匹配。
B?ll可以找到ball、bell 和bill[ ] 与方括号内任何单个字符匹配。
B[ae]ll可以找到ball 和bell 但找不到bill! 匹配任何不在方括号之内的字符。
b[!ae]ll可以找到bill 和bull 但找不到ball 或bell- 与某个范围内的任一个字符匹配。
必须按升序指定范围(A 到Z,而不是Z 到A)。
b[a-c]d可以找到bad、bbd 和bcd# 与任何单个数字字符匹配。
1#3可以找到103、113、12323.Access提供了多少种关系运算符A) 5B) 6C) 7D) 8参考答案:B提示:分别是:>,>=,<,<=,<>,=24.Access提供了多少种逻辑运算符A) 2B) 3C) 4D) 5参考答案:B提示:分别是:and,or, not,可参看教材73页第9行的内容。
25.在显示查询结果时,如果要将数据表中的“籍贯”字段名显示为“出生地”,可以查询设计视图中改动A)排序B)条件C)显示D)字段参考答案: D26.在Access中如果删除一条记录,则被删除的记录A)可以恢复到原来的位置B)被恢复为最后一条记录C)被恢复为第一条记录D)不能恢复参考答案: D27.对Access的表创建索引的主要作用是A)节省数据库的存储空间B)便于管理C)防止数据丢失D)提高查询速度参考答案: D28.在Access中创建一个新表,使用的SQL语句为A) Create TableB) Create IndexC) Create DataBaseD) Alter Table参考答案: A29.假设有一组数据:工资为800元,职称为“讲师”,性别为“男”,在下列逻辑表达式中结果为“假”的是A)工资>800 and 职称=”助教” or职称=”讲师”B) 性别=”女” or not 职称=”助教”C) 工资=800 and (职称=”讲师” or性别=”女”)D) 工资>800 and (职称=”讲师” or性别=”男”)参考答案: D创建参数查询时,在查询设计视图准则中应将参数提示文本放置在参考答案 CA){ }中B)( )中C)[ ]中D)< >中。