admin管理员组

文章数量:821225

【SQL】练习题184道

1,在学生信息表中选择出所有的学生学号。
select Sid from t_student ORDER BY Sid2,在学生信息表中选择出学生姓名和高考分数。
SELECT Sname, Sscore FROM t_student3,在学生信息表中选择出所有的学生年龄,并且不能重复。
select Sage FROM t_student GROUP BY Sage4,在学生信息表中选择出所有学生的学号,姓名,生日。
SELECT Sid,Sname,Sbir FROM t_student5,在分数信息表中选择出所有信息。
select * from t_score6,系主任表中选择出所有系主任的姓名。
SELECT Mname FROM t_man7,在分数信息表中选择出所有学生学号和体育成绩。
select Sid,体育 FROM t_score8,在系部信息表中选择出所有的系编号和系名字。
SELECT Did,Dname from t_dept9,在分数信息表中选择出所有英语和数学成绩。
SELECT 英语,数学 FROM t_score10,在学生信息表中选择出所有的年龄,班级,系编号,并且不允许重复。
SELECT Sage,Sclass,Did from t_student;
DISTINCT (Sage,Sclass,Did)11,在学生信息表中选择出第一个到第十个的人的姓名。
select Sname from t_student limit 10;12,在分数信息表中选择出第三个到第十二个人的语文成绩。
select 语文 from t_score limit 2,913,从学生信息管理表中选出所有学生的姓名、英文名、电话,并去掉重复行,在结果中取前8个结果。
SELECT DISTINCT Sname,Sename,Sphone from t_student LIMIT 8;14,在分数信息表中输出所有学生体育成绩加上50的结果,并去掉重复行。
select DISTINCT 体育+50 from t_score;15,在分数信息表中输出所有学生的学号及语数外三课的成绩和。
select Sid, 语文+英语+数学+体育 from t_score16,在学生信息表中输出十年后学生的年龄及高考减100分的结果,在结果中取第4到第8行结果。
SELECT Sage+10,Sscore-100 from t_student LIMIT 3,4;17,在学生信息表中输出所有学生的高考成绩,如果有空值则输出111。
set autocommit = 0;
update t_student set Sscore = 111 where Sscore = 0;
select Sscore from t_student;
select Sscore,ifnull(Sscore,111) from t_student;18,在系部信息表中输出系的编号和人数的乘积的结果。
select Did*Dnumber from t_dept19,在学生信息表中输出年龄加班级编号加系编号加高考成绩的和,如果高考成绩没有则为0。
SELECT Sage+Sclass+Did+Sscore from t_student;
select Sage+Sid+Did+Sscore,ifnull(Sscore,0) from t_student;20,在学生信息表中输出所有学生的姓名并重命名为“姓名”。
SELECT Sname as '姓名' from t_student21,使用concat函数在系主任表中输出“***系主任的电话是***”,将结果取别名“信息”。
select CONCAT(Dname,'系主任的电话是',Mphone) from t_dept,t_man where t_dept.Mid = t_man.Mid22,在学生信息表中输出所有学生10年前的年龄并重命名为“年轻 十岁”。
SELECT Sage-10 as '年轻 十岁' from t_student23,找出学生姓名和高考分数加100后的结果,并将高考分数加100取别名“最终分数”,如果高考分数为空就设置为100,去掉结果中的重复项,并取第二到第七个的结果
SELECT DISTINCT Sname,Sscore+100 as '最终分数' from t_student LIMIT 1,6;24,使用concat函数在学生信息表中输出所有“莫某高考成绩是***”。
select CONCAT('莫某高考成绩是', Sscore) from t_student where Sname = '莫%'25,使用concat函数在系部信息表中输出所有“某某系的系主任是***”。
select CONCAT(Dname,'的系主任是',Mname) from t_dept,t_man where t_dept.Mid = t_man.Mid26,系主任管理表中使用concat输出“系主任***的编号是***,他的电话是***,他十年以前的年龄是***”;
select CONCAT('系主任',Mname,'的编号是',Mid,',他的电话是', Mphone, ',他十年以前的年龄是', Mage-10) from t_man 27,在学生信息表中使用concat输出信息:“我的名字叫 sname,我的性别是**,今年*岁,我是*班,我的分数是*,我的英文名字是*,我的电话是*” 取别名“个人信息” (如果有属性为空则给默认值0);
select CONCAT('我的名字叫',Sname,',我的性别是',Ssex,',今年', Sage, '岁,我是', Sclass,'班,我的分数是',Sscore,',我的英文名字是',Sename,',我的电话是',Sphone) as '个人信息' from t_student28,在学生信息表中输出所有学生的姓名和高考成绩并按照高考成绩的升序排列。
select Sname,Sscore FROM t_student ORDER BY Sscore29,在分数信息表中输出学生的学号和体育成绩并按照英语成绩的降序排列,并取前5位数据。
select Sid,体育 from t_score ORDER BY 英语 LIMIT 530,在学生信息表中输出所有学生的姓名和高考成绩并按照年龄的降序排列。
select Sname,Sscore from t_student ORDER BY Sage DESC31,在学生信息表中输出所有学生的姓名和学号并按照学号的降序排列。
select Sname,Sid from t_student ORDER BY Sid DESC32,在学生信息表中输出所有学生的姓名和生日成绩并按照生日的升序排列。
select Sname,Sbir,Sscore from t_student ORDER BY Sbir DESC33,在学生信息表中输出所有学生的信息并按照年龄的升序和高考成绩的降序排列。
select * from t_student ORDER BY Sage, Sscore DESC34,在学生信息表中输出所有学生姓名和生日并按照班级的降序和年龄的降序及成绩的升序排列。
SELECT Sname,Sbir from t_student ORDER BY Sclass DESC,Sage DESC,Sscore35,在分数信息表中输出所有学生的学号和各门课成绩的总和,并按照成绩总和的降序排列。
select Sid,语文+英语+数学+体育 from t_score ORDER BY 语文+英语+数学+体育 DESC36,在学生信息表中用concat函数输出"**的生日是**",并按照年龄的降序排列。
SELECT CONCAT(Sname,'的生日是',Sbir) from t_student ORDER BY Sage DESC37,在学生信息表中所有学生的姓名和电话,并给电话去别名"电 话",并按照年龄和班级升序排序,取第二个到第八个数据。
SELECT Sname, Sphone as '电 话' FROM t_student ORDER BY Sage,Sclass LIMIT 1,738,在学生信息表中找出所有学生的信息,并按照班级编号的升序和年龄的降序排列。
SELECT * from t_student ORDER BY Sclass,Sage DESC39,在学生信息表中找出所有学生的信息,并按照系部编号的升序和班级编号的降序和年龄的升序排列,并取前八个数据。
SELECT * from t_student ORDER BY Did, Sclass DESC,Sage LIMIT 840,在分数信息表中输出最高分学生的学号。
SELECT Sid from t_score where 语文+英语+数学+体育 = (SELECT MAX(语文+英语+数学+体育) from t_score)41,在学生信息表中找出最大年龄的学生的信息。
SELECT * from t_student where Sscore = (SELECT MAX(Sscore) from t_student)42,在学生信息表中找出英文名是 Sweet的学生的姓名和生日。
SELECT Sname,Sbir FROM t_student where Sename = 'Sweet'43,在分数信息表中找出学号是1212的学生的四门成绩的总和。
SELECT 语文+英语+数学+体育 FROM t_score where Sid = 121244,在系部表中找出建筑系的全系的人数。
select COUNT(*) from t_student where Did in (select Did from t_dept where Dname = '建筑系')45,在学生信息表中找出***的年龄和生日并给生日重命名为“出生日期”。
SELECT Sage, Sbir as '出生日期' from t_student where Sname like '___'46,在学生信息表中输出所有学生的信息并按照年龄的升序和高考成绩的降序排列。
select * from t_student ORDER BY Sage, Sscore DESC47,在学生信息表中输出所有学生姓名和生日并按照班级的降序和年龄的降序及成绩的升序排列。
select Sname,Sbir FROM t_student ORDER BY Sclass DESC, Sscore ASC48,在学生信息表中找出年龄是20岁的人的所有学生的姓名和高考分数,并按照班级升序排列。
select Sname, Sscore FROM t_student where Sage = 20 ORDER BY Sclass49,在分数信息表中找出学号是1210的体育成绩和数学成绩。
SELECT 体育, 数学 FROM t_score where Sid = 121250,在学生信息表中输出英文名是Apple的学生的学号和20年后的年龄并重命名为“中年”。
SELECT Sage+20 as '中年' from t_student WHERE Sename = 'Apple'51,在学生信息表中找出高考成绩为空的学生的所有信息。
select * from t_student where ISNULL(Sscore)52,在学生信息表中找出1990年以后出生的学生并去掉重复项,并按照学号降序排列。
SELECT * from t_student where YEAR(Sbir)> 1990 ORDER BY Sid; DISTINCT * 53,在分数信息表中找出数学成绩不及格的学生。
SELECT * from t_score where 数学 < 6054,在分数信息表中找出语文成绩90以上且数学成绩80以上且英语成绩70以上的学生的学号。
SELECT * from t_score where 语文 > 90 and 数学 > 80 and 英语 > 7055,在分数信息表中找出至少有一门成绩不及格的学生的学号。
SELECT Sid from t_score where 数学 < 60 or 语文 < 60 or 英语 < 60 or 体育 < 6056,在学生信息表中找出3班的且高考成绩大于500的  或者 1班的学生的所有信息。
SELECT * FROM t_student where (Sclass = 3 and Sscore > 500) or Sclass = 157,在学生信息表中找出1992年以后出生且所在系的编号为4的学生的所有信息。
SELECT * from t_student where YEAR(Sbir)> 1992 and Did = 458,在分数信息表中找出语文分数在70到90之间的学生的英语成绩。
SELECT 英语 FROM t_score WHERE 语文 < 90 and 语文 > 7059,在分数信息表中找出体育不及格或者数学不及格的学生的学号。
SELECT Sid from t_score where 数学 < 60 or 体育 < 6060,在学生信息表中找出500分以下的学生,并按照年龄降序排列,然后取第2个到第4个值。
select * from t_student WHERE Sscore < 500 ORDER BY Sage LIMIT 1,361,在学生信息表中找出学号小于1210的学生的姓名和生日,取前5个人。
SELECT Sname,Sbir FROM t_student where Sid < 1212 LIMIT 562,在学生信息表中找出年龄大于等于18且是3班且学号小于等于1211的学生所有信息,并按照成绩降序排列并取前两个人。
SELECT * FROM t_student WHERE Sage >= 28 and Sclass = 3 and Sid <= 1211 ORDER BY Sscore DESC LIMIT 263,在分数表中英语成绩不及格,或数学成绩不及格或语文及体育成绩都不及格的学生的学号。
SELECT Sid from t_score where 英语 < 60 or 数学 < 60 or (语文 < 60 and 体育 < 60) 64,在学生信息表中找出学号为1204、1210、1230 或者年龄为20、21、22岁的学生姓名(取别名)。
SELECT Sname as '姓名' from t_student where Sid in (1204,1210,1230) or Sage in (20,21,22)65,在学生信息表中找出Apple、Fish、Coffee三个人的所有信息。
SELECT * from t_student where Sename in ('Apple','Fish','Coffee')66,在学生信息表中找出系编号为1、3、4的所有学生的信息并按照年龄的升序和分数的降序排列。
SELECT * from t_student where Did in (1,3,4) ORDER BY Sage, Sscore DESC67,在分数信息表中找出数学分数是68、88、91、98的学生的学号并按照学号的降序排列。
SELECT Sid FROM t_score where 数学 in (68,88,91,98) ORDER BY Sid DESC68,在学生信息表中找出除和Yellow和Coffee以外的其他学生的所有年龄和班级并去掉重复行。
SELECT DISTINCT Sage, Sclass from t_student WHERE Sename not in ('Yellow','Coffee')69,在分数信息表中找出除了英语分67、77、87以外的分数的所有学生学号和体育成绩并且将体育成绩重命名为“abc”。
SELECT Sid, 体育 as 'abc' from t_score WHERE 英语 not in (67,77,87)70,在学生信息表中使用like找出名字中含有“丽”字的所有学生的信息。
select * from t_student WHERE Sname like '%丽%'71,在学生信息表中使用like找出英文名字中以“C”开头的学生的所有信息。
select * from t_student WHERE Sename like 'C%'72,在学生信息表中使用like找出英文名字中含有“ee”且是3班的学生的所有信息。
select * from t_student WHERE Sename like '%ee%' and Sclass = 373,在学生信息表中使用like找出英文名字中以“e”结尾且有5位字符的学生的所有信息。
select * from t_student WHERE Sename like '____e' 74,在学生信息表中使用like找出姓王的学生或者名字只有两个字的学生的姓名和学号,并按照分数的降序排列。
select Sname, Sid from t_student WHERE Sname like '王%' or Sname like '__' ORDER BY Sscore DESC75,在学生信息表中输出学号和他们的四门课的分数总和并重命名为总成绩。
select Sid, Sscore as '总成绩' from t_student76,在学生信息表中使用like找出英文名含有“ff”或“ee”或“oo”的学生的所有信息,并按照年龄降序排列。
select * from t_student WHERE Sename like '%ff%' or Sename like '%ee%' or Sename like '%oo%' ORDER BY Sage DESC77,在学生信息表中使用like找出英文名含有字母“e”和“a”的且这两个字母都不在名字的首尾  的学生的姓名和英文名。
select Sname, Sename from t_student WHERE Sename like '_%e%_' and Sename like '_%a%_' 78,在学生信息表中使用like找出中文名字是两个字且英文名字含有“e”的学生的姓名和英文名。
select Sname, Sename from t_student WHERE Sname like '__' and Sename like '%e%' 79,在学生信息表中使用like找出中文名字三个字且英文名字6个字符的学生的所有信息。
select * from t_student WHERE Sname like '___' and Sename like '______' 80,在学生信息表中使用like找出电话号码以13开头以01结尾的学生姓名、电话。
select Sname, Sphone from t_student WHERE Sphone like '13%01'81,在学生信息表中找出名字为三个字且是1990年以后出生的学生的信息。
select * from t_student WHERE Sname like '___' and YEAR(Sbir) > 199082,在学生信息表中找出高考分数大于500、英文名以字母“S”开头的女生的姓名和学号。
select Sname, Sid from t_student WHERE Sscore > 500 and Sename like 'S%'83,在系主任表中找出每个系主任的姓(重命名)、编号、电话。
SELECT SUBSTR(Mname,1,1) as '姓', Mid, Mphone from t_man84,在学生信息表中找出所有人的英文名字和中文名字并用函数将英文名字字母都转换成大写的。
select UPPER(Sename),Sname from t_student 85,在学生信息表中找出所有人的英文名字的首字母(如果有空格要去掉空格),并重命名为“FirstWord”。
select SUBSTR(trim(sename),1,1) as FirstWord from t_student;86,在学生信息表中找出所有人的姓和学号,并按照学号的降序排列。
select SUBSTR(Sname,1,1),Sid from t_student order by Sid desc;87,在学生信息表中找出所有人的英文名字的第3个字母并转换成大写字母,并按照分数的降序排列。
select upper(substring(Sename,3,1)) from t_student order by Sscore desc;88,在学生信息表中找出所有人的学号和姓,并用连接符输出连接效果如:“1201的姓是*”。
select concat(sid,"的姓是",left(sname,1)) from t_student;89,在学生信息表中找出所有人的英文名字的长度并去掉重复项。
SELECT DISTINCT LENGTH(Sename) from t_student 90,在学生信息表中找出所有人的英文名字第3到第5个字符并重命名。
select SUBSTR(Sename, 3, 3) as '英文名字第3到第5个字符' FROM t_student91,在学生信息表中找出所有人的英文名字并去掉左边和右边的空格,并全部转换为大写。
select UPPER(trim(sename)) from t_student;92,在学生信息表中找出所有男生的姓名、英文名、英文名的最后一个字母(重命名为末尾字符)。
SELECT Sname, Sename, RIGHT(trim(sename),1) as '末尾字符' from t_student where Ssex = '男'93,在学生信息表中找出姓名为两个字的学生的姓 和 和英文名的长度(空格不计算长度)。
select LEFT(Sname,1) as '姓', LENGTH(trim(Sename)) from t_student where Sname like '__'94,在学生信息表中找出英文名长度为3个字符的学生的姓名、电话。
select Sname,Sphone from t_student where LENGTH(trim(Sename)) = 395,用正则表达式在学生信息表中找出英文名字含有“a”字母的学生的姓名和学号,并按照学号的降序排列。
SELECT Sname,Sid from t_student where Sename REGEXP'a' ORDER BY Sid DESC96,用正则表达式在学生信息表中找出电话号中含有3个8的学生的姓名;
SELECT Sname,Sphone from t_student where Sphone REGEXP'(8.*8.*8)' ORDER BY Sid DESC97,用正则表达式在学生信息表中找出英文名中含有a或b或c,且含有d或e或f的学生的年龄,并去掉重复项。
SELECT DISTINCT Sage from t_student where Sename REGEXP'{a|b|c}&{d|e|f}' 98,用正则表达式在学生信息表中找出名字中含有“李”字的学生的姓名和生日,并将生日重命名为“生日”。
SELECT Sname,Sbir as 生日 from t_student where Sname REGEXP '李' 99,用正则表达式在学生信息表中找出英文名字匹配有5个字符的学生的姓名和年龄的10倍的值。
SELECT Sname, Sage*10 from t_student where Sename REGEXP'^.{5}$' 100,用正则表达式在学生信息表中找出手机号有11位数字的学生的所有信息。
SELECT * from t_student where Sphone REGEXP '[0-9]{11}' 101,用正则表达式在学生信息表中找出手机号以13开头以33结尾的学生的姓名和手机号。
SELECT Sname,Sphone from t_student where Sphone REGEXP '^13.*33$' 102,用正则表达式在学生信息表中找出英文名字不含有l-p之间字母的学生的姓名和英文名字,并按照分数的降序排列。
SELECT Sname, Sename from t_student where Sename not REGEXP '[lmnop]' ORDER BY Sscore DESC103,用正则表达式在学生信息表中找出手机号含有三个3且含有2个5的学生的姓名和手机号。
SELECT Sname,Sphone from t_student where Sphone REGEXP '3.*3.*3' and Sphone REGEXP '5.*5'104,用正则表达式在学生信息表中找出英文名字中含有特殊字符的学生。
SELECT * from t_student where Sename REGEXP '[^A-Za-z0-9]'105,用正则表达式在学生信息表中找出英文名字中含有空格的学生。
SELECT * from t_student where Sename REGEXP ' ' 106,用正则表达式在学生信息表中找出英文名字中含有“.”或“\”的学生。
SELECT * from t_student where Sename REGEXP '[.|\\]' 107,用正则表达式在学生信息表中找英文名中含有连续的2个“a”或者连续的3个“e”的学生。
SELECT * from t_student where Sename REGEXP 'aa|eee' 108,用正则表达式在学生信息表中找出英文名字以“A”开头的学生的姓名和学号。
SELECT Sname,Sid from t_student where Sename REGEXP '^A' 109,用正则表达式在学生信息表中找出英文名字以“e”结尾的学生的信息。
SELECT * from t_student where Sename REGEXP 'e$' 110,用函数获取当前日期和当前时间。
select DATE(NOW()),TIME(NOW())111,在学生信息表中找出所有人的姓名和他出生的月份,并按照他们的月份的升序排列。
select Sname, MONTH(Sbir) FROM t_student ORDER BY MONTH(Sbir)112,在学生信息表中找出所有人的学号和他们出生的星期几(英文)。
select Sid, DAYNAME(Sbir) FROM t_student113,在学生信息表中找出所有人中文名和英文名字及英文名字的第2个和第4个字母。
select Sid, Sename, concat(SUBSTR(Sename,2,1),SUBSTR(Sename,4,1)) from t_student114,在学生信息表中找出所有人中文名和英文名字及英文名字最后一个字母的大写。
select Sname, Sename, UPPER(RIGHT(Sename,1)) from t_student115,在学生信息表中找出所有人中文名和英文名字及英文名字的长度。
select Sname, Sename, LENGTH(TRIM(Sename)) from t_student116,在学生信息表中找出所有人中文名和英文名字及英文名字字母倒序。
select Sname, Sename,REVERSE(TRIM(Sename)) from t_student117,在学生信息表中找出英文名字中第三字母是“a”,且高考分数500一下,且性别是女的学生的姓名和电话,并按照学号升序排列。
select Sname, Sphone from t_student where Sename like '__a%' and Sscore < 500 and Ssex = '女' ORDER BY Sid118,在学生信息表中找出年龄数字以“8”结尾的学生的学号和姓名。
select Sid,Sname from t_student where Sage like '%8'119,在学生信息表中找出英文名字以“A”开头,以“k”结尾的学生的中文名和英文名,并按照学号降序排列。
select Sname, Sename from t_student where Sename like 'A%k' ORDER BY Sid DESC120,在学生信息表中输出每个学生的姓名和生日,以及他们是一年中第几个星期出生的数字,并按照此数字排序。
select Sname, Sbir, WEEKOFYEAR(Sbir) from t_student ORDER BY WEEKOFYEAR(Sbir)121,在学生信息表中输出当前星期的英文,及当前日期的月份,及当前日期是今年第多少个星期,并分别取别名。
select DAYNAME(Sbir) as '星期',MONTH(Sbir) as '月份', WEEKOFYEAR(Sbir) as '今年第多少个星期' FROM t_student122,在学生信息表中输出手机号中含有三个“6”的学生的生日和出生的月份。
SELECT Sbir, MONTH(Sbir) FROM t_student where Sphone like '%6%6%6%'123,在学生信息表中输出手机号中含有两个“1”和两个“0”的学生的生日和出生日期是当前年的第几周。
SELECT Sbir, MONTH(Sbir) FROM t_student where Sphone like '%1%1%' and Sphone like '%0%0%'124,在学生信息表中找出所有人的姓名和他出生的月份的英文、星期的英文并取前10个结果。
SELECT Sname,MONTHNAME(Sbir) from t_student LIMIT 10125,在学生信息表中找出所有人的姓名和他的生日加上100天后的日期及生日减去100天后的日期。
select sname,ADDDATE(sbir,100),adddate(sbir,-100) from t_student;126,在学生信息表中找出所有人的姓名和他的生日跟今天日期相减的数。
SELECT Sname,datediff(NOW(),sbir) from t_student;127,在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990-09-21”。
SELECT Sname,DATE(Sbir) from t_student128,在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990年/09月/21日”。
select sname,date_format(sbir,'%Y年/%m月/%d日') AS 生日 from t_student;129,在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990年/September/Monday”。
select sname,date_format(sbir,'%Y年/%M/%W') AS 生日 from t_student;130,将今天的日期按照“日-月-年”输出。
select date_format(NOW(),'%d-%m-%Y') 131,在学生信息表中输出所有学生的姓名和生日,生日按照'%m-%d-%Y'的格式输出,且结果按年龄降序排列。
select sname,date_format(sbir,'%m-%d-%Y') AS 生日 from t_student ORDER BY Sage DESC;132,在学生信息表中输出所有学生的姓名和他们的生日加上10天后的日期。
select sname,ADDDATE(sbir,10) from t_student;133,在学生信息表中输出所有学生的姓名和他们的生日减去一个月后的日期并重命名为“虚生日”,且结果按照学号降序排列。
select sname,sbir,adddate(sbir,interval 1 month) AS 虚生日 from t_student ORDER BY Sid;134,在学生信息表中输出以学生年龄为半径圆的面积,并从小到大排序后取前8个数。
select Sage * Sage * PI() from t_student ORDER BY Sage * Sage * PI() LIMIT 8 135,在学生信息表中输出姓名和用date_format函数用英文输出学生生日的月,日。并取第5到10个数据出来。
select sname,date_format(sbir,'%m-%d') from t_student LIMIT 4,6;136,在分数信息表中求出语文、数学、英语的平均成绩,并重命名为“语文平均”、“数学平均”、“英语平均”。
select avg(语文) as 语文平均, avg(数学) as 数学平均,avg(英语) as 英语平均 from t_score137,在学生信息表中输出所有学生的平均年龄和平均分数。
select avg(Sage),avg(Sscore) from t_student138,在学生信息表中计算出年龄在18到22随之间且成绩大于500分的共有多少人。
SELECT count(*) FROM t_student where Sage <= 22 and Sage >= 18 and Sscore > 500139,在系部管理表中计算出人数在500以上的系的所有系的平均人数。
SELECT avg(Dnumber) from t_dept where Dnumber > 500140,在分数信息表中求出每门课的最高成绩和最低成绩。
SELECT MAX(语文),MAX(数学),MAX(英语),MAX(体育) from t_score141,在分数信息表中求出每门课的总成绩并重命名为全班总成绩。
SELECT SUM(语文),SUM(数学),SUM(英语),SUM(体育) as 全班总成绩 from t_score142,在学生信息表中计算出1990年以后出生的学生的最高分并重命名。
SELECT MAX(Sscore) as 1990年以后出生的学生的最高分 from t_student WHERE Sbir > 1990143,在学生信息表中计算出分数大于500且年龄小于20且是1班的学生一共有多少个。
SELECT count(*) from t_student where Sscore > 500 and Sage < 20 and Sclass = 1144,在学生信息表中输出年龄最大的学生的姓名和年龄。
SELECT Sname,Sage from t_student where Sage = (select max(Sage) FROM t_student)145,在学生信息表中统计出一共有多少个班(去掉重复)。
SELECT count(DISTINCT Sclass) from t_student 
select count(DISTINCT CONCAT(Did,Sclass)) from t_student146,在学生信息表中输出平均年龄,平均分数,并分别去别名“平均年龄”、“平均分数”。
select avg(Sage) as 平均年龄, avg(Sscore) as 平均分数 from t_student147,在学生信息表中计算出共有多少个不同的年龄。
SELECT count(DISTINCT Sage) from t_student148,在学生信息表中计算出所有学生成绩的和并去掉相同项。
select sum(DISTINCT Sscore) from t_student149,在学生信息表中计算出20岁以下学生的分数总和,相同的分数只计算一遍。
select sum(DISTINCT Sscore) from t_student where Sage < 20150,在学生信息表中输出每个班的班号和最高分,取前2名。
select Sclass, Sscore from t_student GROUP BY Sclass ORDER BY Sscore LIMIT 2151,在学生信息表中输出每个班的班号和人数并按照班号降序排列。
select Sclass,count(*) from t_student GROUP BY Sclass ORDER BY Sclass DESC152,在学生信息表中输出每个系的系编号和系里面最小的一位学生的年龄,并重命名,结果按照系编号降序排列。
select Did,MIN(Sage) from t_student GROUP BY Did ORDER BY Did DESC153,在学生信息表中输出每个班的班号和平均分数及最低分和最高分并重命名。
select Sclass,avg(Sscore),min(Sscore),max(Sscore) from t_student GROUP BY Sclass154,在学生信息表中输出每个系的系编号及18岁以上有多少人,并按照系编号降序排列。
select Did, count(*) from t_student where Sage > 18 GROUP BY Did ORDER BY Did DESC155,在学生信息表中输出每个班的班级编号及班上名字是3个字的学生的个数并重命名,按照学生的个数的降序排列。
select Sclass, count(*) from t_student where Sname LIKE '___' GROUP BY Sclass ORDER BY count(*)156,在学生信息表中输出每个系的系编号及系里面手机号是以“15”开头的学生的个数,按照系编号降序排列。
SELECT Did,count(*) FROM t_student where Sphone like '15%' GROUP BY Did ORDER BY Did DESC157,在学生信息表中输出17,19,20的年龄各有多少人,并按照人数的降序排列。
SELECT Sage,count(*) from t_student where Sage in (17,18,19) GROUP BY Sage ORDER BY count(*) DESC158,在学生信息表中输出每个班的班级编号及每个班有学号大于1208且年龄小于20且名字是两个字的学生的个数。
SELECT Sclass,count(*) from t_student WHERE Sid > 1208 and Sage < 20 and Sname like '__' GROUP BY Sclass159,在学生信息表中输出每个系里面的每个班的系编号、班级编号、最高分、最低分。
SELECT Did,Sclass,max(Sscore),min(Sscore) from t_student GROUP BY Did,Sclass 160,在学生信息表中将450分以上的学生按照年龄分组,输出每个组的年龄和总人数,并按照年龄的降序排列。
SELECT Sage,count(*) FROM t_student where Sscore > 450 GROUP BY Sage ORDER BY Sage DESC161,在学生信息表中将男生按照班级分组,输出班级编号、每个班平均年龄、最高分数。
SELECT Sclass,avg(Sage),max(Sscore) from t_student where Ssex = '男' GROUP BY Sclass162,在学生信息表中将分数是450分以上的学生按照班级和年龄分组,输出每个组的人数,并用rollup统计。
SELECT Sclass,Sage,count(*) from t_student where Sscore > 450 GROUP BY Sclass,Sage with ROLLUP163,在学生信息表中将19岁以上且分数是460分以上的学生按照系编号分组,并用rollup统计。
SELECT Did,count(*) from t_student where Sage > 19 and Sscore > 460 GROUP BY Did with ROLLUP164,在学生信息表中统计出每个班的最大年龄,并将最大年龄大于19岁的班级输出班级编号和最大年龄,并按班级的降序排列。
SELECT Sclass, max(Sage) FROM t_student where Sage > 19 GROUP BY Sclass ORDER BY Sclass DESC165,在学生信息表中统计出每个系的平均分数和平均年龄,并将平均分数小于550的结果输出来。
SELECT avg(Sscore), avg(Sage) FROM t_student where GROUP BY Did
SELECT avg(Sscore), avg(Sage) FROM t_student where Sscore < 550 GROUP BY Did166,在老师信息表中统计出男女各有多少人,并按照人数降序排列。
SELECT Ssex,count(*) from t_student GROUP BY Ssex ORDER BY count(*) DESC167,在学生信息表中将1990年以后出生的学生且有系编号有班级编号的学生按照系编号、班级编号分组,统计出每个组的人数。输出每个组的系编号、班级编号和人数并按照人数升序排列取前3个结果。
SELECT Did,Sclass,count(*) from t_student where Sbir > 1990 GROUP BY Did,Sclass ORDER BY count(*) LIMIT 3168,在学生信息表中查找出跟“Apple”在同一个班的学生的个数。
select count(*) from t_student where Sclass = (select Sclass from t_student where Sename = 'Apple' )169,在学生信息表中查找出最高分的学生的姓名和电话号。
SELECT Sname, Sphone from t_student where Sscore = (SELECT max(Sscore) from t_student)170,在学生信息表中查找出考试分数在平均分以下的学生的学号和姓名,并按学号的降序排列。
SELECT Sid, Sname from t_student where Sscore < (select avg(Sscore) from t_student) ORDER BY Sid DESC171,在学生信息表中查找出年龄比Orange小但分数比Tea高的学生的姓名和电话号,并按照电话号降序排列,并取前两个值。
SELECT Sname, Sphone from t_student where Sage < (select Sage from t_student where Sename = 'Orange') and Sscore > (select Sscore from t_student where Sename = 'Orange') ORDER BY Sphone DESC LIMIT 2172,在学生信息表中查找出班级平均分比全校平均分低的班级编号,最高分,最低分,平均分,并按班级编号降序排列。
SELECT Sclass,max(Sscore),min(Sscore),avg(Sscore) from t_student GROUP BY Sclass HAVING avg(Sscore) <(select avg(Sscore) from t_student) ORDER BY Sclass DESC;173,在学生信息表中将学生按年龄分组,统计每个组有多少人,筛选出人数正好等于3班人数的组。
SELECT Sage,count(*) FROM t_student GROUP BY Sage HAVING count(*) = (SELECT count(*) FROM t_student WHERE Sclass = 3) 174,在学生信息表中查找出与1201和1203和1205号学生相同年龄的学生的学号、姓名、年龄,并按照学号降序排列。
SELECT Sid,Sname,Sage from t_student where Sage in (SELECT Sage FROM t_student where Sid in (1201,1203,1205)) ORDER BY Sid DESC175,在学生信息表中查找出与系编号为1的学生的年龄都不相同的学生的姓名、分数,并按照分数升序排列取前5个结果。
SELECT Sname, Sscore from t_student where Sage not in (select Sage from t_student where Did = 1) ORDER BY Sscore LIMIT 5176,在学生信息表中查找出比 500分以上的学生的年龄大的学生姓名 或者 比1992年以前出生的学生分数高的学生姓名。
SELECT Sname from t_student where Sage > all(select Sage from t_student where Sscore > 500) or Sscore > all(select Sscore from t_student where Sbir < '1992-01-01')177,在学生信息表和系部管理表中查找出学号为1210、1213、1217的学生的姓名和他的系的名字。
SELECT Sname, Dname from t_student s, t_dept t where s.Did = t.Did and Sid in (1210,1213,1217)178,系部管理表和系主任管理表中输出每个系的编号和系所对应的系主任的编号和名字。
SELECT d.Did,d.Mid,m.Mname from t_dept d, t_man m where d.Mid = m.Mid179,在学生信息表和分数表中输出每个学生的学号、姓名、体育成绩(取别名体育成绩)、英语成绩(取别名英语成绩)。
SELECT t_student.Sid,t_student.Sname,体育 as 体育成绩,英语 as 英语成绩 from t_student, t_score where t_student.Sid = t_score.Sid180,在学生信息表和系部管理表中输出每个系的编号和系名字及每个系在学生信息表中的人数。
SELECT t_student.Did, Dname, count(*) from t_student, t_dept where t_student.Did = t_dept.Did GROUP BY Did 181,使用联结在学生信息表和分数表中输出每个学生的姓名和他们的各门课的成绩。
select sname ,语文,英语,数学,体育 from t_student as s,t_score as sc where s.sid=sc.sid;182,使用联结在学生信息表和系部表中输出每个学生的姓名和他们的系名。
select sname ,dname from t_student s,t_dept d where s.did=d.did;183,使用联结在系部表和系主任表中输出每个系的编号、系名字、系主任名字,并按照系编号降序排列。
SELECT Did,Dname,Mname from t_dept d, t_man m where d.Mid = m.Mid ORDER BY Did DESC184,使用联结在系部表和学生信息表中输出分数最高的学生的姓名和他所在系的名字。
select sname,dname from t_student s,t_dept d where s.did=d.did and Sscore = (SELECT max(sscore) from t_student)

本文标签: SQL练习题184道