sql语句练习题及答案
(完整版)sql语句练习题及答案
(完整版)sql语句练习题及答案⼀在数据库 school 中建⽴student , sc, course 表。
学⽣表、课程表、选课表属于数据库School ,其各⾃的数据结构如下:学⽣Student (Sno,Sname,Ssex,Sage,Sdept)课程表course(Cno,Cname,Cpno,Ccredit)学⽣选课SC(Sno,Cno,Grade)⼆设定主码1 Student表的主码:sno2 Course表的主码:cno3 Sc表的主码:sno,cno1写出使⽤ Create Table 语句创建表 student , sc, course 的SQL语句23 删除student表中的元组4在数据库school中删除关系student5在student表添加属性sbirthdate 类型datetimeDelete1 删除所有JSJ 系的男⽣delete from Student where Sdept=’JSJ’ and Ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);Update1 修改0001 学⽣的系科为: JSJ2 把陈⼩明的年龄加1岁,性别改为⼥。
2 修改李⽂庆的1001课程的成绩为93 分3 把“数据库原理”课的成绩减去1分Select 查询语句⼀单表1查询年龄在19⾄21岁之间的⼥⽣的学号,姓名,年龄,按年龄从⼤到⼩排列。
2查询姓名中第2个字为“明”字的学⽣学号、性别。
3查询 1001课程没有成绩的学⽣学号、课程号4查询JSJ 、SX、WL 系的年龄⼤于25岁的学⽣学号,姓名,结果按系排列5按10分制查询学⽣的sno,cno,10分制成绩(1-10分为1 ,11-20分为2 ,30-39分为3,。
90-100为10)6查询 student 表中的学⽣共分布在那⼏个系中。
sql语句期末试题及答案
sql语句期末试题及答案```一、单项选择题(共10题,每题2分,共20分)1. 在SQL中,下列哪个命令用于创建数据库?A. CREATE DATABASEB. CREATE TABLEC. CREATE INDEXD. CREATE VIEW答案:A2. 在SQL中,用于删除表的命令是?A. DELETEB. DROP TABLEC. REMOVE TABLED. TRUNCATE TABLE答案:B3. 在SQL中,用于在表中插入新记录的命令是?A. INSERT INTOB. UPDATEC. ADDD. SET答案:A4. 下列语句中,哪一个用于从表中选择特定的行?A. SELECTB. FILTERC. SEARCHD. FIND答案:A5. 在SQL中,用于更新表中记录的命令是?A. MODIFYB. CHANGEC. UPDATED. ALTER答案:C6. 在SQL中,用于删除表中记录的命令是?A. DELETEB. DROPC. REMOVED. TRUNCATE答案:A7. 下列哪个关键字用于从表中选择唯一的记录?A. UNIQUEB. DISTINCTC. UNIQUEKEYD. PRIMARY答案:B8. 在SQL中,用于指定表的新名称的命令是?A. RENAME TABLEB. ALTER TABLEC. MODIFY TABLED. CHANGE TABLE答案:A9. 在SQL中,用于修改表中列定义的命令是?A. RENAME COLUMNB. ALTER COLUMNC. MODIFY COLUMND. CHANGE COLUMN答案:C10. 下列哪个操作符用于在WHERE子句中判断一个值是否在指定的列表中?A. INB. NOTC. LIKED. BETWEEN答案:A二、判断题(共5题,每题2分,共10分)1. 在SQL中,SELECT语句用于删除表中的记录。
SQL经典习题及答案(新手必看)
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#,scorefrom SC where C#='002') bwhere 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# and SC.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# and Course.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 where C#='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)>=60THEN 1ELSE 0END)/COUNT(*) DESC20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0END)/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>80and 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人的课程才统计)。
数据库常用SQL语句练习(含答案)
Emp(员工表)和Dept(部门表)简单题1. 案例:查询没有上级领导的员工的编号,姓名,工资select empno,ename,sal from emp where mgr is null;2. 案例:查询emp表中没有奖金的员工的姓名,职位,工资,以及奖金select ename,job,sal,comm from emp where comm is null or comm=0;既可以是null,也可以是03. 案例:查询emp表中含有奖金的员工的编号,姓名,职位,以及奖金select ename,job,sal,comm from emp where comm>0;4. 案例:查询含有上级领导的员工的姓名,工资以及上级领导的编号select ename,sal,mgr from emp where mgr is not null;5. 案例:查询emp表中名字以‘S’开头的所有员工的姓名select ename from emp where ename like 's%'6. 案例:查询emp表中名字的最后一个字符是'S'的员工的姓名select ename from emp where ename like '%s'7. 案例:查询倒数的第2个字符是‘E’的员工的姓名select ename from emp where ename like '%e_'8. 案例:查询emp表中员工的倒数第3个字符是‘N’的员工姓名select ename from emp where ename like '%n__'9. 案例:查询emp表中员工的名字中包含‘A’的员工的姓名select ename from emp where ename like '%a%'10. 案例:查询emp表中名字不是以'K'开头的员工的所有信息select * from emp where ename not like 'k%';11. 案例:查询emp表中名字中不包含‘A’的所有员工的信息select * from emp where ename not like '%a%'12. 案例:做文员的员工人数(job= CLERK 的)select count(*) from emp where job='clerk';13. 案例:销售人员job: SALESMAN 的最高薪水select max(sal) from emp where job='salesman';14. 案例:最早和最晚入职时间select min(hiredate),max(hiredate) from emp;15. 案例:查询emp表中员工的编号,姓名,职位,工资,并且工资在1000~2000之间。
sql考试题及答案
sql考试题及答案SQL考试题及答案一、选择题(每题2分,共20分)1. 下列哪个SQL语句用于查询数据?A. SELECTB. INSERTC. UPDATED. DELETE答案:A2. 以下哪个SQL语句用于删除表中的数据?A. DROP TABLEB. DELETE FROMC. TRUNCATE TABLED. ALTER TABLE答案:B3. SQL中的主键约束是什么?A. UNIQUEB. PRIMARY KEYC. FOREIGN KEYD. CHECK答案:B4. 以下哪个函数用于计算字符串的长度?A. CONCAT()B. SUBSTRING()C. LENGTH()D. UPPER()答案:C5. 以下哪个语句用于添加新的数据表?A. CREATE DATABASEB. CREATE TABLEC. ALTER TABLED. DROP TABLE答案:B6. SQL中的LIKE语句用于什么?A. 排序B. 条件搜索C. 聚合数据D. 连接表答案:B7. 以下哪个语句用于修改表结构?A. CREATE TABLEB. ALTER TABLEC. DROP TABLED. TRUNCATE TABLE答案:B8. SQL中的GROUP BY语句用于什么?A. 排序结果B. 聚合数据C. 过滤数据D. 连接表答案:B9. 以下哪个语句用于删除数据库?A. DROP TABLEB. DROP DATABASEC. DELETE FROMD. TRUNCATE TABLE答案:B10. SQL中的INNER JOIN用于什么?A. 内连接B. 外连接C. 全连接D. 交叉连接答案:A二、填空题(每空2分,共20分)1. SQL中的______语句用于插入数据到表中。
答案:INSERT INTO2. 要查询所有列,可以使用SQL中的______关键字。
答案:*3. SQL中的______语句用于删除表。
SQL语句练习题 部分答案
1、用SQL语句建立以下四个表:供应商表S表:S(SNO,SNAME,STATUS,CITY)零件表P表:P(PNO,PNAME,COLOR,WEIGHT)工程表J表:J(JNO,JNAME,CITY)供应情况表SPJ表:SPJ(SNO,PNO,JNO,QTY)2、针对第1题的四表,用SQL语言完成下列查询1)求供应工程J1零件的供应商号码SNO。
SELECT SNO FROM SPJ WHERE JNO=”JI”2)求供应工程J1零件P1的供应商号码SNO。
SELECT SNO FROM SPJ WHERE JNO=”JI” AND PNO=”P1”3)求供应工程J1零件为红色的供应商号码SNO。
●SELECT SNO FROM SPJ,P WHERE JNO=”JI”AND SPJ.PNO=P.PNOAND P.COLOR=”红色”●SELECT SNO FROM SPJ WHERE JNO=”JI”AND PNO IN (SELECT PNO FROM P WHERE COLOR=”红色”)3、针对第1题的四表,用SQL语言完成下列查询1)求出所有供应商的姓名及其所在城市。
SELECT SNAME,CITY FROM S2)找出所有零件的名称、颜色、重量。
SELECT PNAME,COLOR,WEIGHT FROM P3)找出使用供应商S1所供应零件的工程项目代码。
SELECT JNO FROM SPJ WHERE SNO=”JI”4)找出工程项目J2所使用的各种零件的名称及其数量。
SELECT P.PNAME,SPJ.QTY FROM P,SPJWHERE P.PNO=SPJ.PNO AND SPJ.JNO=”J2”5)找出上海厂商供应的所有零件的代码。
SELECT DISTINCT PNO FROM SPJWHERE SNO IN(SELECT SNO FROM S WHERE CITY=”上海”)6)找出所有使用上海产的零件的工程项目名。
SQL语句练习及参考答案
SQL语句练习及参考答案SQL 语句练习1.设学⽣选课数据库有关系S (sno,sname,age,sex )、SC (sno,cno,grade )和C(cno,cname,teacher ),分别表⽰学⽣、选课和课程,sno 代表学号,sname 代表学⽣姓名,age 代表年龄,sex 代表性别,grade 代表成绩,cno 代表课程号,teacher 代表任课教师。
试完成表⽰下列查询。
(1)检索年龄⼤于21的男学⽣学号(sno)和姓名(sname)。
(2)建⽴性别只能为“男”、“⼥”的约束。
(3)创建⼀个视图v1,该视图⽤来查询学⽣的选课情况,要求包含:学⽣姓名(sname),课程名(cname),任课教师teacher 和成绩grade 。
(4)检索选修课程号为k1和k5的学⽣学号(sno)。
(5)检索全部学⽣都选修的课程的课程号(cno)和课程名(cname)。
(6)删除所有男同学的选课记录。
1.(1)select sno,snae from s where sex=’男’ and age>21 (2)alter table s add constraint c1 check sex in (‘男’,’⼥’)(3)create view v1 as select sname,cname,teacher,grade from s,sc,c where s.sno=sc.sno and/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o (4)select sno fromsc sc1 where cno=’k1’ and exists (se lect * fromsc sc2 where sc1.sno =sc2.sno and/doc/62176c89fe4733687e21aaca.html o=’k5’)(5)select cno,cnam from c where not exists (select * from s where not exists (select * from sc where/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o and s.sno=sc.sno)(6)delete from sc where sno in (select sno from s where sex=’男’)或delete sc from sc,s where s.sno=sc.sno and sex=’男’2.设图书借阅数据库有关系图书(图书编号,书名,作者,出版社,出版时间,图书类别)、读者(读者编号,姓名,读者类别)和借阅(读者编号, 图书编号, 借阅⽇期,还期)。
3-SQL语句练习题参考答案
标准SQL语言一、选择题1、下面关于SQL标准的叙述中,不正确的是(B )。
A.SQL语言是集数据定义、数据操纵、数据控制功能为一体的语言。
B.SQL语言是一种高度过程化的语言。
C.SQL标准规定数据库是按三级模式结构构建。
D.SQL语言是关系型数据库的标准语言。
E.SQL语言是面向集合的语言。
2、SQL语言中,修改基本表结构的语句是( B )。
A.UPDATE B.ALTER C.DROP D.CREATE3、SQL语言中,删除基本表结构的语句是( C )。
A.DELETE B.ALTER C.DROP D.CREATE4、下面关于“视图”的叙述中,不正确的是( C )。
A.视图是一种“虚表”,它的数据被存放在基本表中。
B.视图提供了逻辑数据独立性。
C.不能通过视图来更新数据库中的数据。
D.视图能提供对数据的安全保护。
5、下面关于SELECT语句的叙述中,不正确的是(C)。
A.SELECT产生的结果是一个集合。
B.HA VING子句必须与GROUP BY子句一起使用。
C.可以省略FROM子句。
D.可以省略WHERE子句。
二、填空题1、在使用INSERT语句向一个表中插入元组时,“值列表”中值的个数、(顺序)、类型必须与“列名表”保持一致。
2、在向一个表中插入元组时,对于未指定默认值且(不能取空值)的字段必须赋值。
3、向表中插入元组时,主键的值不能取(NULL )值。
4、在使用DELETE语句时,如果不指定(where 条件)就会将整个表的数据删除。
5、视图是从一个或几个基本表或(视图)导出的表,它与基本表不同,是一个虚表。
三、判断题1、SQL语言是面向集合操作的语言。
√2、可以通过视图来查询数据,但不能通过视图来更新数据库中的数据。
×3、在SQL Server数据库系统中,向表中插入元组时,系统自动为具有标识属性的列赋值。
√4、在SQL Server数据库系统中,向表中插入元组时,对取值类型为timestamp(时间戳)的列不能赋值,系统自动赋值。
50条数据库sql语句及答案
select teaid from tblTeacher where teaname = '叶平')))
--练习
select stuid from tblScore where courseid in (
--11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;
------运用连接查询
SELECT DISTINCT ST.* FROM tblStudent ST, tblScore SC WHERE ST.STUID = SC.STUID
AND SC.COURSEID IN
select stuid from tblScore GROUP BY STUID HAVING max(SCORE)<60)
--10、查询没有学全所有课的同学的学号、姓名;
--练习
SELECT TS.STUID,TS.STUNAME,COUNT(TSC.SCORE) FROM tblStudent TS
TC.COURSEID INNER JOIN tblTeacher TT ON TC.TEAID = TT.TEAID
WHERE TT.TEANAME ='叶平')
--对
SELECT STUID, STUNAME FROM tblStudent WHERE STUID NOT IN(
where A.SCORE > B.SCORE
--老师讲的方法
SELECT T.* FROM tblScore T WHERE T.COURSEID = 1 AND
SQL语言习题及答案(好)
职工 E(ename,e#,bdate,addr,salary,se#,d#) 部门 D(dname,d#,部门负责人的工号mgre#)
项目 P(pname,p#,所在城市city,主管部门编号d#) 工作 W(职工工号e#,项目编号p#,工作时间hours) 职工家属Depend(e#,家属的姓名name,家属的性别sex)
2021/6/16 18
9.检索为居住在Duluth的所有客户订购过商品的经销商
的编号及其佣金百分比,并按照佣金百分比的降序输 出查询结果
➢ 关系代数
▪ 答案 Select aid, percent From Agents A
Where not exist ( select * from Customers C where C.city = ‘Duluth’ and C.cid not in ( select O.cid from Orders O where O.aid = A.aid)) Order by percent desc
2021/6/16 1
(第一大题) 1.检索部门Research的所有职工的姓名和家庭地址
➢ 关系代数
select ename, addr from E, D where D.d# = E.d# and dname = ’Research’
2021/6/16 2
(第一大题)
2.检索位于Stafford的每个项目的编号、主管部门的 编号及其部门负责人的姓名和家庭地址
2021/6/16 15
6.检索居住在Dallas的所有客户都订购过的商品编号
➢ 关系代数 Select pid from Products P where not exist ( select * from Customers C where C.city = ‘Dallas’ and C.cid not in ( select O.cid from Orders O where O.pid = P.pid ) )
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. 在视图上定义新的视图4. SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能()。
A. 数据查询B. 数据操纵C. 数据定义D. 数据控制5. SQL语言中,删除一个视图的命令是()。
6. 在SQL语言中的视图VIEW是数据库的()。
A. 外模式B. 模式C. 内模式D. 存储模式7. 下列的SQL语句中,()不是数据定义语句。
A. CREATE TABLEB. DROP VIEWC. CREATE VIEWD. GRANT8. 若要撤销数据库中已经存在的表S,可用()。
A. DELETE TABLE SB. DELETE SC. DROP TABLE SD. DROP S9. 若要在基本表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)。
SQL语句练习及答案
sql语句练习题1数据库有如下四个表格:student(sno,sname,sage,ssex,sdpt) 学生表系表(dptno,dname)course(cno,cname, gradet, tno) 课程表sc(sno,cno,score) 成绩表teacher(tno,tname) 教师表要求:完成以下操作1.查询姓"欧阳"且全名为三个汉字的学生的姓名。
select sname from student where sname like “欧阳__‟;2.查询名字中第2个字为"阳"字的学生的姓名和学号。
select sname,sno from student where sname like '_阳%';3.查询所有不姓刘的学生姓名。
select sname,sno,ssexfrom studentwhere sname not like “刘%”;4.查询db_design课程的课程号和学分。
select cno,ccredit from coursewhere cname like 'db_design'5.查询以"db_"开头,且倒数第3个字符为i的课程的详细情况。
select * from course where cname like 'db%i_ _';6.某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。
查询缺少成绩的学生的学号和相应的课程号。
select sno,cno from sc where grade is null;7.查所有有成绩的学生学号和课程号。
select sno,cno from sc where grade is not null;8.查询计算机系年龄在20岁以下的学生姓名。
select sname from student where sdept= 'cs' and sage<20;9.查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。
(完整版)sql练习题+答案
(一) 新建以下几个表student(学生表):其中约束如下:(1)学号不能存在相同的(2)名字为非空(3)性别的值只能是’男’或’女’(4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系(5)出生日期为日期格式(6)年龄为数值型,且在0~100之间cs(成绩表):其中约束如下:(1)sno和cno分别参照student和course表中的sno,cno的字段(2)cj(成绩)只能在0〜100之间,可以不输入值create table cs (sno smallint not null referencesstudent ( sno ), ----定义成外键cno smallint not null referencescourse ( cno ), ----定义成外键cj smallint constraint e check (cj between0 and 100 ),---- 检查约束一—j(成绩)只能在~100之间,可以不输入值constraint f primary key ( sno , cno )---- 定义学生学号和课程号为sc表的主键)course(课程表)其约束如下:(1)课程号(cno)不能有重复的(2)课程名(cname非空(三)针对学生课程数据库查询(1)查询全体学生的学号与姓名。
Select sno , sname from student(2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。
(3)查询全体学生的详细记录。
select * from student(4)查全体学生的姓名及其出生年份。
select sname , birth from student(5)查询学校中有哪些系。
select distinct dept from student(6)查询选修了课程的学生学号。
select sno from cs where eno is not null(7)查询所有年龄在20岁以下的学生姓名及其年龄。
sql考试题及答案
sql考试题及答案一、选择题1. 在SQL中,用于查询一个表中的所有记录的关键字是什么?A. SELECT ALLB. SELECT *C. SELECT DISTINCTD. SELECT TOP 10答案:B2. 下列哪个SQL语句用于添加新的数据行到表中?A. INSERT INTOB. ADD INTOC. CREATE INTOD. NEW INTO答案:A3. 在SQL中,用于删除表中的记录的关键字是什么?A. REMOVEB. DELETEC. ERASED. DROP答案:B4. 下列哪个函数用于计算字段中所有值的总和?A. COUNTB. SUMC. AVGD. MAX答案:B5. 如果你想更新表中的记录,应该使用哪个SQL语句?A. UPDATEB. ALTERC. MODIFYD. CHANGE答案:A二、填空题1. 在SQL中,________关键字用于从一个或多个表中选择数据。
答案:SELECT2. 要为表中的数据设置条件过滤,应使用________子句。
答案:WHERE3. 当需要对查询结果进行排序时,可以使用________关键字。
答案:ORDER BY4. 如果需要对表中的数据进行分组,应使用________关键字。
答案:GROUP BY5. 为了对分组后的结果进行筛选,可以使用________子句。
答案:HAVING三、简答题1. 请简述SQL中的主键和外键的区别。
答案:主键是表中用于唯一标识每条记录的字段,它不允许重复值和NULL值。
外键则是一个表中的字段,它是另一个表的主键的引用,用于建立表之间的联系。
外键可以有重复值,也可以为NULL。
2. 解释SQL中的JOIN操作。
答案:JOIN操作是SQL中用于结合两个或多个表中的数据的查询操作。
通过JOIN,可以根据相关字段将不同表中的记录连接起来,以便进行更复杂的数据分析和查询。
3. 什么是SQL中的事务?答案:事务是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(Structured Query Language)是一种用于管理和操作关系型数据库的编程语言。
在这篇文章中,我们将提供一些SQL练习题及其答案,旨在帮助读者加深对SQL的理解,并提供实践操作的机会。
练习题一:学生表考虑一个名为"Students"的学生表,包含以下字段:- 学生编号(StudentID)- 学生姓名(StudentName)- 学生年级(Grade)- 学生所在学校(School)请使用SQL语句创建并插入示例数据到"Students"表中。
答案:```sqlCREATE TABLE Students (StudentID INT,StudentName VARCHAR(50),Grade INT,School VARCHAR(50));INSERT INTO Students (StudentID, StudentName, Grade, School)VALUES (1, '张三', 11, '中学A'),(2, '李四', 10, '中学B'),(3, '王五', 10, '中学A'),(4, '赵六', 12, '中学C');```练习题二:查询学生表信息请编写SQL查询语句,查询出所有学生的姓名和所在学校。
答案:```sqlSELECT StudentName, School FROM Students;```练习题三:更新学生信息假设有一位新生加入学校,学生姓名为"李华",年级为11,学校为"中学B"。
请编写SQL语句将该学生信息插入到学生表中。
答案:```sqlINSERT INTO Students (StudentName, Grade, School)VALUES ('李华', 11, '中学B');```练习题四:删除学生信息假设"赵六"这位学生已经转学离开学校,需要从学生表中将其信息删除。
3-SQL语句练习题参考答案
标准SQL语言一、选择题1、下面关于SQL标准的叙述中,不正确的是(B )。
A.SQL语言是集数据定义、数据操纵、数据控制功能为一体的语言。
B.SQL语言是一种高度过程化的语言。
C.SQL标准规定数据库是按三级模式结构构建。
D.SQL语言是关系型数据库的标准语言。
E.SQL语言是面向集合的语言。
2、SQL语言中,修改基本表结构的语句是( B )。
A.UPDATE B.ALTER C.DROP D.CREATE3、SQL语言中,删除基本表结构的语句是( C )。
A.DELETE B.ALTER C.DROP D.CREATE4、下面关于“视图”的叙述中,不正确的是( C )。
A.视图是一种“虚表”,它的数据被存放在基本表中。
B.视图提供了逻辑数据独立性。
C.不能通过视图来更新数据库中的数据。
D.视图能提供对数据的安全保护。
5、下面关于SELECT语句的叙述中,不正确的是(C)。
A.SELECT产生的结果是一个集合。
B.HA VING子句必须与GROUP BY子句一起使用。
C.可以省略FROM子句。
D.可以省略WHERE子句。
二、填空题1、在使用INSERT语句向一个表中插入元组时,“值列表”中值的个数、(顺序)、类型必须与“列名表”保持一致。
2、在向一个表中插入元组时,对于未指定默认值且(不能取空值)的字段必须赋值。
3、向表中插入元组时,主键的值不能取(NULL )值。
4、在使用DELETE语句时,如果不指定(where 条件)就会将整个表的数据删除。
5、视图是从一个或几个基本表或(视图)导出的表,它与基本表不同,是一个虚表。
三、判断题1、SQL语言是面向集合操作的语言。
√2、可以通过视图来查询数据,但不能通过视图来更新数据库中的数据。
×3、在SQL Server数据库系统中,向表中插入元组时,系统自动为具有标识属性的列赋值。
√4、在SQL Server数据库系统中,向表中插入元组时,对取值类型为timestamp(时间戳)的列不能赋值,系统自动赋值。
SQL语句(有答案)
一. SQL语句【1】(C226)下列关于SQL语言特点的描述中,错误的是( )。
A)语言非常简洁B)是一种一体化语言C)是一种高度过程化的语D)可以直接以命令方式交互使用,也可以程序方式使用【2】1103(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操作语言D)数据控制语言【3】Y3(18)SQL语言的核心是( )。
A)数据操纵B)数据定义C)数据查询D)数据定义【4】Y1(24)VisualFoxPro在SQL方面,不支持的功能是( )。
A)数据控制B)数据操纵C)数据查询D)数据定义【5】Y4(30)下列选项中,不属于SQL特殊运算符的是( )。
A)GROUP B)ON C)ALL D)EMPTY二. SQL查询语句【1】0904(12)SQL语句的查询语句是A) INSERT B)UPDATE C) DELETE D) SELECT【2】(C126)标准的SQL基本查询语句的格式是( )。
A)SELECT…FROM…WHERE B)SELECT…WHERE…FROM C)SELECT…WHERE…GROUP BY D)SELECT…FROM…ORDER BY 【3】Y3 (25)SQL语句中,SELECT语句中的JOIN是用来建立表间的联系短语应放在下列哪个短语之后( )。
A)FROM B)WHERE C)ON D)GROUP BY【4】Y2(20)SQL语句中,SELECT命令中的JOIN是用来建立表间的联系短语,连接条件应出现在下列哪个短语中A)WHERE B)ON C)HAVING D)INNER【5】Y4(17)SQL SELECT语句中的WHERE用于说明( )。
A)查询数据B)查询条件C)查询分组D)查询排序【6】Y4(18)SQL语句可以进行多个查询的嵌套,但Visual FoxPro中只支持( )层嵌套。
A)1 B)2 C)3 D)无穷【7】(C128)在Visual FoxPro中,嵌套查询是基于( )的查询A)2个关系B)3个关系C)多个关系D)2个或3个关系【8】0704 (17)以下有关SELECT语句的叙述中错误的是A)SELECT语句中可以使用别名B)SELECT语句中只能包含表中的列及其构成的表达式C)SELECT语句规定了结果集中的顺序D)如果FROM短语引用的两个表有同名的列,则SELECT短语引用它们时必须使用表名前缀加以限定【9】0504 (31) 在Visual FoxPro中,以下有关SQL的SELECT语句的叙述中,错误的是 ( )。
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中的视图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一在数据库 school 中建立student , sc, course 表。
学生表、课程表、选课表属于数据库School ,其各自的数据结构如下:学生Student (Sno,Sname,Ssex,Sage,Sdept)课程表course(Cno,Cname,Cpno,Ccredit)学生选课SC(Sno,Cno,Grade)二设定主码1 Student表的主码:sno2 Course表的主码:cno3 Sc表的主码:sno,cno1写出使用 Create Table 语句创建表 student , sc, course 的SQL语句23 删除student表中的元组4在数据库school中删除关系student5在student表添加属性sbirthdate 类型datetimeDelete1 删除所有JSJ 系的男生delete from Student where Sdept=’JSJ’ and Ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);Update1 修改0001 学生的系科为: JSJ2 把陈小明的年龄加1岁,性别改为女。
2 修改李文庆的1001课程的成绩为93 分3 把“数据库原理”课的成绩减去1分Select 查询语句一单表1查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。
2查询姓名中第2个字为“明”字的学生学号、性别。
3查询 1001课程没有成绩的学生学号、课程号4查询JSJ 、SX、WL 系的年龄大于25岁的学生学号,姓名,结果按系排列5按10分制查询学生的sno,cno,10分制成绩(1-10分为1 ,11-20分为2 ,30-39分为3,。
90-100为10)6查询 student 表中的学生共分布在那几个系中。
(distinct)7查询0001号学生1001,1002课程的成绩。
二统计1查询姓名中有“明”字的学生人数。
2计算‘JSJ’系的平均年龄及最大年龄。
3查询学生中姓名为张明、赵英的人数4计算每一门课的总分、平均分,最高分、最低分,按平均分由高到低排列5 计算 1001,1002 课程的平均分。
6 查询平均分大于80分的学生学号及平均分7 统计选修课程超过 2 门的学生学号8 统计有10位成绩大于85分以上的课程号。
9 统计平均分不及格的学生学号10 统计有大于两门课不及格的学生学号三连接1查询 JSJ 系的学生选修的课程号2查询选修1002 课程的学生的学生姓名 (不用嵌套及嵌套2种方法)3查询数据库原理不及格的学生学号及成绩4查询选修“数据库原理”课且成绩 80 以上的学生姓名(不用嵌套及嵌套2种方法)5查询平均分不及格的学生的学号,姓名,平均分。
6查询女学生平均分高于75分的学生姓名。
7查询男学生学号、姓名、课程号、成绩。
(一门课程也没有选修的男学生也要列出,不能四嵌套、相关及其他1 查询平均分不及格的学生人数2 查询没有选修1002 课程的学生的学生姓名3 查询平均分最高的学生学号及平均分(2种方法 TOP , any , all)*4 查询没有选修1001,1002课程的学生姓名。
5 查询1002课程第一名的学生学号(2种方法)6 查询平均分前三名的学生学号7 查询 JSJ 系的学生及年龄不大于19岁的学生的差集8 查询1001号课程大于90分的学生学号、姓名及平均分大于85分的学生学号、姓名9查询每门课程成绩都高于该门课程平均分的学生学号10 查询大于本系科平均年龄的学生姓名答案参考答案1 create table student(sno char(6),sname varchar(8),ssex char(2),sage smallint,sdept varchar(15),primary key(sno));create table sc(sno char(6),cno char(4),grade decimal(12,2),primary key(sno,cno));insert into studentvalues( ’4001’,’赵茵’,’男’,20,’SX’)delete from studentdrop table studentalter table student add sbirthdate datetime1 select sno, sname, sagefrom studentwhere ssex=’女’and sage between 19 and 21order by sage desc;2 select sno, ssexfrom studentwhere sname like ’_明% ’;3 select sno, cnofrom scwhere grade is null and cno=’1001’;4 select sno, snamefrom studentwhere sdept in (’JSJ’,’SX’,’WL’) and sage>25group by sdept;select sno, cno, grade/10.0+1 as levelfrom sc ;select distinct sdept from student ;select gradefrom scwhere sno=’0001’and (cno=’1001’or cno=’1002’) ;select count(*) from student where sname like ’%明% ’;select avg(sage),max(sage) from student where sdept=’JSJ’;select cno,sum(grade),avg(grade),max(grade),min(grade) from scgroup by cnoorder by avg(grade) desc ;select cno, avg(grade) from sc where cno in(‘1001’,’1002’)group by cno ;select sc.sno ,avg(grade) from scgroup by sc.snohaving avg(grade)>80 ;select sno from sc group by sno having count(*)>2 ;select cno from sc where grade>85 group by cno having count(*)=10 ;select sno from sc group by sno having avg(grade)<60 ;select sno from sc where grade<60 group by sno having count(*)>2 ;select cno from student,sc where student.sno=sc.sno and sdept=’JSJ’;a:select sname from student,sc where student.sno=sc.sno and cno=’1002’b:select sname from student where sno in (select sno from sc where cno=’1002’)select sno,grade from sc,coursewhere o=o and cname=’数据库原理’and grade <60a:select sname from student ,sc,coursewhere student.sno=sc.sno and o=o and grade>80 and cname=’数据库原理’b:select sname from student where sno in (select sno from sc where grade>80 and cno in (select cno from course where cname=’数据库原理’))select sno,sname,avg(grade) from sc,studentwhere student.sno=sc.snogroup by student.snohaving avg(grade)<60a:select sname from student where ssex=’女’and sno in(select sno from sc group by sno having avg(grade)>75)b:select sname from sc,student where student.sno=sc.sno and ssex=’女’group by student.sno having avg(grade)>75select student.sno,sname,cno,grade from student left join sc on student.sno=sc.sno and ssex=’男’select count(*) from student where sno in( select sno from sc group by sno having avg(grade)<60)select sname from student where sno not in(select sno from sc where cno=’1002’)student0001 aa X0002 bb0003 cc XSc0001 10010001 10020002 10010003 1002Select sname from student where not exists(select* from sc where cno=’1002’and sc.sno=student.sno)a:select top 1 sno,avg(grade) from sc group by sno order by avg(grade) descb:select sno, avg(grade) from sc group by snohaving avg(grade)=(select top 1 avg(grade) from scgroup by sno order by avg(grade) desc)c:select sno, avg(grade) from sc group by snohaving avg(grade)>=all ( select avg(grade) from sc group by sno)select sname from student where not exists(select * from course where cno in(‘1001’,’1002’) andnot exists(select * from sc where sno =student.sno and cno=o) )a:select top 1 sno from sc cno=’1002’order by grade descb:select sno from sc where cno=’1002’and grade >=all (select grade from sc where cno=’1002’)select top 3 sno from sc group by sno order by avg(grade)desca:select*from student where sdept=’JSJ’and sage>19b:select*from student where sdept=’JSJ’except select* from student where sage<19 select student.sno,sname from student,sc where cno=’1001’and grade>90 union select sno,sname from student where sno in (select sno from sc group by sno having avg(grade)>85)select sno from student where sno not in(select sno from sc x where grade< ( select avg(grade) from sc where cno=o) )select sname from student x where sage> (select avg(sage) from student where sdept=x.sdept)。