2021-03-17

1,在学生信息表中选择出所有的学生学号。
select Sid from t_student ;
2,在学生信息表中选择出学生姓名和高考分数。
select Sname,Sscore from t_student;
3,在学生信息表中选择出所有的学生年龄,并且不能重复。
select Sage from t_student GROUP BY Sage;
4,在学生信息表中选择出所有学生的学号,姓名,生日。
select Sid,Sname,Sbir  FROM t_student;
5,在分数信息表中选择出所有信息。
select Sid,`语文`,`数学`,`英语`,`体育` from t_score;
6,系主任表中选择出所有系主任的姓名。
select Mname from t_man;
7,在分数信息表中选择出所有学生学号和体育成绩。
SELECT Sid,`体育` from t_score;
8,在系部信息表中选择出所有的系编号和系名字。
SELECT Did,Dname from t_dept;
9,在分数信息表中选择出所有英语和数学成绩。
SELECT `英语`,`数学` from t_score;
10,在学生信息表中选择出所有的年龄,班级,系编号,并且不允许重复。
SELECT Sage,Sclass,Did from t_student GROUP BY Sage,Sclass,Did;
11,在学生信息表中选择出第一个到第十个的人的姓名。
select Sname from t_student where Sid>-1 LIMIT 10;
12,在分数信息表中选择出第三个到第十二个人的语文成绩。
select `语文` from t_score where Sid>-1 LIMIT 2,10;
13,从学生信息管理表中选出所有学生的姓名、英文名、电话,并去掉重复行,在结果中取前8个结果。
select Sname,Sename,Sphone from t_student where Sid>-1 GROUP BY Sname,Sename,Sphone LIMIT 8;

----------------------------------------------------------------------------------------------
14,在分数信息表中输出所有学生体育成绩加上50的结果,并去掉重复行。
SELECT `体育`+50 as ty from t_score GROUP BY ty;
15,在分数信息表中输出所有学生的学号及语数外三课的成绩和。
SELECT Sid,`语文`+`数学`+`英语` from t_score where Sid > -1;
16,在学生信息表中输出十年后学生的年龄及高考减100分的结果,在结果中取第4到第8行结果。
SELECT Sage+10,Sscore-100 from t_student where Sid>-1 LIMIT 3,5;
17,在学生信息表中输出所有学生的高考成绩,如果有空值则输出111SELECT IFNULL(Sscore,111) from t_student WHERE Sid>-1;
18,在系部信息表中输出系的编号和人数的乘积的结果。
SELECT IFNULL(Did*Dnumber,0) FROM t_dept WHERE Did>-1;
19,在学生信息表中输出年龄加班级编号加系编号加高考成绩的和,如果高考成绩没有则为0SELECT IF(Sscore=0,0,Sage+Sclass+Did+Sscore) from t_student WHERE Sid>-1;
20,在学生信息表中输出所有学生的姓名并重命名为“姓名”。
SELECT Sname as "姓名" from t_student WHERE Sid>-1;
21,使用concat函数在系主任表中输出“***系主任的电话是***”,将结果取别名“信息”。
SELECT CONCAT(Mname,"系主任的电话是",Mphone) as "信息" from t_man WHERE Mid>-1;
22,在学生信息表中输出所有学生10年前的年龄并重命名为“年轻 十岁”。
SELECT Sage-10 as "年轻 十岁" from t_student WHERE Sid>-1;
23,找出学生姓名和高考分数加100后的结果,并将高考分数加100取别名“最终分数”,如果高考分数为空就设置为100,去掉结果中的重复项,并取第二到第七个的结果
SELECT Sname,IF(ISNULL(Sscore),100,Sscore+100) as "最终分数" from t_student WHERE Sid>-1;
24,使用concat函数在学生信息表中输出所有“莫某高考成绩是***”。
SELECT CONCAT(Sname,"高考成绩是",Sscore) from t_student WHERE Sid>-1;
25,使用concat函数在系部信息表中输出所有“某某系的系主任是***”。
SELECT CONCAT(Dname,"的系主任是",Mname) from t_dept,t_man WHERE t_dept.Mid = t_man.Mid;
26,系主任管理表中使用concat输出“系主任***的编号是***,他的电话是***,他十年以前的年龄是***”;
SELECT CONCAT("系主任",Mname,"的编号是",Mid,",他的电话是",Mphone,",他十年前的年龄是",Mage-10) from t_man WHERE Mid>-1; 
27,在学生信息表中使用concat输出信息:“我的名字叫 sname,我的性别是**,今年*岁,我是*班,我的分数是*,我的英文名字是*,我的电话是*” 取别名“个人信息” (如果有属性为空则给默认值0;
SELECT CONCAT("我的名字叫",IFNULL(Sname,0),",我的性别是",IFNULL(Ssex,0),",今年",IFNULL(Sage,0),"岁,我是",IFNULL(Dname,0),IFNULL(Sclass,0),"班,","我的分数是",IFNULL(Sscore,0),",我的英文名字是",IFNULL(Sename,0),",我的电话是",IFNULL(Sphone,0)) AS "个人信息" from t_student a,t_dept b WHERE a.did=b.Did;

-----------------------------------------------------------------------------------------------------
28,在学生信息表中输出所有学生的姓名和高考成绩并按照高考成绩的升序排列。
SELECT Sname,Sscore from t_student WHERE Sid>-1 ORDER BY Sscore ASC ;
29,在分数信息表中输出学生的学号和体育成绩并按照英语成绩的降序排列,并取前5位数据。
SELECT Sid,`体育` from t_score WHERE Sid>-1 order by `英语` DESC LIMIT 5;
30,在学生信息表中输出所有学生的姓名和高考成绩并按照年龄的降序排列。
SELECT Sname,Sscore from t_student WHERE Sid>-1 ORDER BY Sage DESC;
31,在学生信息表中输出所有学生的姓名和学号并按照学号的降序排列。
SELECT Sname,Sid from t_student WHERE Sid>-1 ORDER BY Sid DESC;
32,在学生信息表中输出所有学生的姓名和生日成绩并按照生日的升序排列。
SELECT Sname,Sbir,Sscore from t_student WHERE Sid>-1 ORDER BY Sbir;
33,在学生信息表中输出所有学生的信息并按照年龄的升序和高考成绩的降序排列。
SELECT Sid,Sname,Ssex,Sage,Sclass,Did,Sbir,Sscore,Sename,Sphone from t_student WHERE Sid>-1 ORDER BY Sage asc,Sscore desc;
34,在学生信息表中输出所有学生姓名和生日并按照班级的降序和年龄的降序及成绩的升序排列。
SELECT Sname,Sbir from t_student WHERE Sid>-1 ORDER BY Sclass desc,Sage desc,Sscore ASC;
35,在分数信息表中输出所有学生的学号和各门课成绩的总和,并按照成绩总和的降序排列。
SELECT Sid,`语文`+`数学`+`英语`+`体育` AS a from t_score WHERE Sid>-1 ORDER BY a desc;
36,在学生信息表中用concat函数输出"**的生日是**",并按照年龄的降序排列。
SELECT CONCAT(Sname,"的生日是",Sbir) from t_student WHERE Sid>-1 ORDER BY Sage desc;
37,在学生信息表中所有学生的姓名和电话,并给电话去别名"电 话",并按照年龄和班级升序排序,取第二个到第八个数据。
SELECT Sname,Sphone "电 话" from t_student WHERE Sid>-1 ORDER BY Sage asc,Sclass asc LIMIT 1,7;
38,在学生信息表中找出所有学生的信息,并按照班级编号的升序和年龄的降序排列。
SELECT * from t_student WHERE Sid>-1 ORDER BY Did asc,Sclass asc,Sage desc;
39,在学生信息表中出所有学生的信息,并按照系部编号的升序和班级编号的降序和年龄的升序排列,并取前八个数据。
SELECT * FROM t_student WHERE Sid>-1 ORDER BY Did asc,Sclass desc,Sage asc LIMIT 8 ;
40,在分数信息表中输出最高分学生的学号。
SELECT Sid,`语文`+`数学`+`英语`+`体育` as a from t_score WHERE Sid>-1 ORDER BY a desc LIMIT 1;
41,在学生信息表中找出最大年龄的学生的信息。
SELECT * FROM t_student WHERE Sage= (SELECT max(Sage) from t_student);

------------------------------------------------------------------------------------------

42,在学生信息表中找出英文名是 Sweet的学生的姓名和生日。
SELECT Sname,Sbir from t_student WHERE Sename = " Sweet";
43,在分数信息表中找出学号是1212的学生的四门成绩的总和。
SELECT `语文`+`数学`+`英语`+`体育` from t_score WHERE Sid=1212;
44,在系部表中找出建筑系的全系的人数。
SELECT Dnumber from t_dept WHERE Dname="建筑系";
45,在学生信息表中找出***的年龄和生日并给生日重命名为“出生日期”。
select Sage,Sbir "出生日期" FROM t_student ;
46,在学生信息表中输出所有学生的信息并按照年龄的升序和高考成绩的降序排列。
SELECT * from t_student ORDER BY Sage asc ,Sscore desc;
47,在学生信息表中输出所有学生姓名和生日并按照班级的降序和年龄的降序及成绩的升序排列。
select Sname,Sbir from t_student ORDER BY Sclass desc,Sage desc,Sscore asc;
48,在学生信息表中找出年龄是20岁的人的所有学生的姓名和高考分数,并按照班级升序排列。
SELECT Sname,Sscore from t_student WHERE Sage=20 Order by Sclass asc;
49,在分数信息表中找出学号是1210的体育成绩和数学成绩。
SELECT `体育`,`数学` from t_score WHERE Sid=1210;
50,在学生信息表中输出英文名是Apple的学生的学号和20年后的年龄并重命名为“中年”。
SELECT Sid,Sage+20 "中年" FROM t_student WHERE Sename="Apple";
51,在学生信息表中找出高考成绩为空的学生的所有信息。
select * from t_student WHERE Sscore = 0 or Sscore is null ;
52,在学生信息表中找出1990年以后出生的学生并去掉重复项,并按照学号降序排列。
SELECT * from t_student WHERE Sbir>"1990" GROUP BY Sid ORDER BY Sid desc;
53,在分数信息表中找出数学成绩不及格的学生。
SELECT Sid from t_score WHERE `数学`<60;
54,在分数信息表中找出语文成绩90以上且数学成绩80以上且英语成绩70以上的学生的学号。
SELECT Sid from t_score WHERE `语文`>90 and `数学`>80 and `英语`>70;
55,在分数信息表中找出至少有一门成绩不及格的学生的学号。
SELECT Sid FROM t_score WHERE`语文`<60 or `数学`<60 or `英语`<60 or `体育`<60;
56,在学生信息表中找出3班的且高考成绩大于500的  或者 1班的学生的所有信息。
SELECT * from t_student WHERE Sclass=1 or Sclass=3 and Sscore>500;
57,在学生信息表中找出1992年以后出生且所在系的编号为4的学生的所有信息。
SELECT * from t_student WHERE Sbir>"1992" and Did=4;
58,在分数信息表中找出语文分数在7090之间的学生的英语成绩。
SELECT `英语` from t_score WHERE `语文` between 70 and 90;
59,在分数信息表中找出体育不及格或者数学不及格的学生的学号。
SELECT Sid from t_score WHERE `体育`<60 or `数学`<60;
60,在学生信息表中找出500分以下的学生,并按照年龄降序排列,然后取第2个到第4个值。
SELECT Sid,Sname FROM t_student WHERE Sscore<500 ORDER BY Sage desc LIMIT 1,3;
61,在学生信息表中找出学号小于1210的学生的姓名和生日,取前5个人。
SELECT Sname,Sbir FROM t_student WHERE Sid<1210 LIMIT 5;
62,在学生信息表中找出年龄大于等于18且是3班且学号小于等于1211的学生所有信息,并按照成绩降序排列并取前两个人。
SELECT * from t_student WHERE Sage>18 and Sclass =3 and Sid<1211 ORDER BY Sscore desc LIMIT 2;


---------------------------------------------------------------------------

63,在分数表中英语成绩不及格,或数学成绩不及格或语文及体育成绩都不及格的学生的学号。
SELECT Sid FROM t_score WHERE `英语`<60 or `数学`<60 OR `语文`<60 and `体育`<60 ;
64,在学生信息表中找出学号为120412101230 或者年龄为20、21、22岁的学生姓名(取别名)SELECT Sname "姓名" from t_student WHERE Sid in (1204,1210,1230) OR Sage in (20,21,22);
65,在学生信息表中找出Apple、Fish、Coffee三个人的所有信息。
SELECT * FROM t_student Sename IN ("Apple","Fish","Coffee");
66,在学生信息表中找出系编号为134的所有学生的信息并按照年龄的升序和分数的降序排列。
SELECT * FROM t_student WHERE Did in (1,3,4) ORDER BY Sage asc,Sscore desc;
67,在分数信息表中找出数学分数是68889198的学生的学号并按照学号的降序排列。
SELECT Sid FROM t_score WHERE `数学` in(68,88,91,98) ORDER BY Sid desc;
68,在学生信息表中找出除和Yellow和Coffee以外的其他学生的所有年龄和班级并去掉重复行。
SELECT Sage,Sclass from t_student WHERE Sename not in ("Yellow","Coffee") GROUP BY Sid;
69,在分数信息表中找出除了英语分677787以外的分数的所有学生学号和体育成绩并且将体育成绩重命名为“abc”。
SELECT Sid,`体育` "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=3; 
73,在学生信息表中使用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 desc;
75,在学生信息表中输出学号和他们的四门课的分数总和并重命名为总成绩。
SELECT Sid,`语文`+`数学`+`英语`+`体育` "总成绩" FROM t_score;
76,在学生信息表中使用like找出英文名含有“ff”或“ee”或“oo”的学生的所有信息,并按照年龄降序排列。
SELECT * FROM t_student WHERE Sename like "%ff%" OR Sename like "%ee%" OR Sename like "%oo%" ORDER BY Sage desc;
77,在学生信息表中使用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 REGEXP "^.{3}$" and Sbir>"1990";
82,在学生信息表中找出高考分数大于500、英文名以字母“S”开头的女生的姓名和学号。
SELECT Sname,Sid FROM t_student WHERE Sscore>500 AND Sename REGEXP "^S" AND Ssex="女";
83,在系主任表中找出每个系主任的姓(重命名)、编号、电话。
SELECT SUBSTRING(Mname FROM 1 FOR 1) "姓",Mid,Mphone from t_man;
84,在学生信息表中找出所有人的英文名字和中文名字并用函数将英文名字字母都转换成大写的。
SELECT UCASE(Sename),Sname FROM t_student ;
85,在学生信息表中找出所有人的英文名字的首字母(如果有空格要去掉空格),并重命名为“FirstWord”。
SELECT SUBSTR(TRIM(Sename) FROM 1 FOR 1) as "FirstWord" FROM t_student;
86,在学生信息表中找出所有人的姓和学号,并按照学号的降序排列。
SELECT Sid,SUBSTR(Sname FROM 1 for 1) from t_student ORDER BY Sid desc;
87,在学生信息表中找出所有人的英文名字的第3个字母并转换成大写字母,并按照分数的降序排列。
SELECT UCASE(SUBSTR(TRIM(Sename) FROM 1 FOR 1)) FROM t_student ORDER BY Sscore desc;
88,在学生信息表中找出所有人的学号和姓,并用连接符输出连接效果如:“1201的姓是*”。
SELECT CONCAT(Sid,"的姓是",SUBSTR(TRIM(Sname) FROM 1 for 1)) from t_student;
89,在学生信息表中找出所有人的英文名字的长度并去掉重复项。
SELECT LENGTH(Sename) a FROM t_student GROUP BY a;
90,在学生信息表中找出所有人的英文名字第3到第5个字符并重命名。
SELECT SUBSTR(Sename FROM 3 FOR 3) "3-5" FROM t_student;
91,在学生信息表中找出所有人的英文名字并去掉左边和右边的空格,并全部转换为大写。
SELECT UCASE(TRIM(Sename)) FROM t_student;
92,在学生信息表中找出所有男生的姓名、英文名、英文名的最后一个字母(重命名为末尾字符)SELECT Sname,Sename,SUBSTR(Sename FROM LENGTH(TRIM(Sename)) for 1) "末尾字符" FROM t_student;
93,在学生信息表中找出姓名为两个字的学生的姓 和 和英文名的长度(空格不计算长度)SELECT SUBSTR(TRIM(Sname) FROM 1 for 1),LENGTH(TRIM(Sename)) FROM t_student WHERE TRIM(Sname) REGEXP "^.{2}$";
94,在学生信息表中找出英文名长度为3个字符的学生的姓名、电话。
SELECT Sname,Sphone FROM t_student WHERE TRIM(Sename) REGEXP "^.{3}$";


---------------------------------------------------------------------------------------


95,用正则表达式在学生信息表中找出英文名字含有“a”字母的学生的姓名和学号,并按照学号的降序排列。
SELECT Sname,Sid FROM t_student WHERE Sename REGEXP "a" ORDER BY Sid desc;
96,用正则表达式在学生信息表中找出电话号中含有38的学生的姓名;
SELECT Sname FROM t_student WHERE Sphone regexp "(.*8){3}";
97,用正则表达式在学生信息表中找出英文名中含有a或b或c,且含有d或e或f的学生的年龄,并去掉重复项。
SELECT Sage FROM t_student WHERE Sename REGEXP "[abc]" and Sename regexp "[def]" ORDER BY Sage;
98,用正则表达式在学生信息表中找出名字中含有“李”字的学生的姓名和生日,并将生日重命名为“生日”。
SELECT Sname,Sbir "生日" FROM t_student WHERE Sname regexp "李";
99,用正则表达式在学生信息表中找出英文名字匹配有5个字符的学生的姓名和年龄的10倍的值。
SELECT Sname,Sage*10 FROM t_student WHERE TRIM(Sename) REGEXP "^.{5}$";
100,用正则表达式在学生信息表中找出手机号有11位数字的学生的所有信息。
SELECT * FROM t_student WHERE TRIM(Sphone) REGEXP "^\\d{11}$";
101,用正则表达式在学生信息表中找出手机号以13开头以33结尾的学生的姓名和手机号。
SELECT Sname,Sphone FROM t_student WHERE TRIM(Sphone) regexp "^13.{7}33$";
102,用正则表达式在学生信息表中找出英文名字不含有l-p之间字母的学生的姓名和英文名字,并按照分数的降序排列。
SELECT Sname,Sename FROM t_student WHERE TRIM(Sename) NOT REGEXP "[l-p]" ORDER BY Sscore desc;
103,用正则表达式在学生信息表中找出手机号含有三个3且含有25的学生的姓名和手机号。
SELECT Sname,Sphone FROM t_student WHERE Sphone REGEXP "(.*3){3}" AND  "(.*5){2}";
104,用正则表达式在学生信息表中找出英文名字中含有特殊字符的学生。
SELECT Sid FROM t_student WHERE Sename REGEXP "[^0-9A-Za-z]";
105,用正则表达式在学生信息表中找出英文名字中含有空格的学生。
SELECT Sid FROM t_student WHERE Sename REGEXP "\\s";
106,用正则表达式在学生信息表中找出英文名字中含有“.”或“\”的学生。
SELECT Sid FROM t_student WHERE Sename REGEXP "[\\\\\.]";
107,用正则表达式在学生信息表中找英文名中含有连续的2个“a”或者连续的3个“e”的学生。
SELECT Sid from t_student WHERE Sename REGEXP "aa|e{3}";
108,用正则表达式在学生信息表中找出英文名字以“A”开头的学生的姓名和学号。
SELECT Sname,Sid FROM t_student WHERE LTRIM(Sename) regexp "^A";
109,用正则表达式在学生信息表中找出英文名字以“e”结尾的学生的信息。
SELECT * FROM t_student WHERE RTRIM(Sename) REGEXP "e$";

-----------------------------------------------------------------------------

110,用函数获取当前日期和当前时间。
SELECT NOW();
111,在学生信息表中找出所有人的姓名和他出生的月份,并按照他们的月份的升序排列。
SELECT Sname,EXTRACT(MONTH FROM Sbir) as "月" FROM t_student ORDER BY `月` ;
112,在学生信息表中找出所有人的学号和他们出生的星期几(英文)SELECT Sid,DAYNAME(Sbir) FROM t_student;
113,在学生信息表中找出所有人中文名和英文名字及英文名字的第2个和第4个字母。
SELECT TRIM(Sename),SUBSTR(TRIM(Sename),2,1),SUBSTR(TRIM(Sename),4,1) FROM t_student;
114,在学生信息表中找出所有人中文名和英文名字及英文名字最后一个字母的大写。
SELECT Sname,Sename,SUBSTR(TRIM(Sename),LENGTH(TRIM(Sename)),1) FROM t_student;
115,在学生信息表中找出所有人中文名和英文名字及英文名字的长度。
SELECT Sname,Sename,LENGTH(Sename) FROM t_student;
116,在学生信息表中找出所有人中文名和英文名字及英文名字字母倒序。
SELECT Sname,Sename,REVERSE(Sename) FROM t_student;
117,在学生信息表中找出英文名字中第三字母是“a”,且高考分数500一下,且性别是女的学生的姓名和电话,并按照学号升序排列。
SELECT Sname,Sphone FROM t_student WHERE TRIM(Sename) REGEXP "^.{2}a" AND Sscore<500 AND Ssex="女";
118,在学生信息表中找出年龄数字以“8”结尾的学生的学号和姓名。
SELECT Sid,Sname FROM t_student WHERE Sage REGEXP "8$";
119,在学生信息表中找出英文名字以“A”开头,以“k”结尾的学生的中文名和英文名,并按照学号降序排列。
SELECT Sname,Sename FROM t_student WHERE TRIM(Sename) REGEXP "^A" ORDER BY Sid DESC;
120,在学生信息表中输出每个学生的姓名和生日,以及他们是一年中第几个星期出生的数字,并按照此数字排序。
SELECT Sname,Sbir,WEEK(Sbir)+1 "第几周" FROM t_student ORDER BY `第几周`;
121,在学生信息表中输出当前星期的英文,及当前日期的月份,及当前日期是今年第多少个星期,并分别取别名。
SELECT DAYNAME(Sbir) "周几",EXTRACT(month from Sbir) "月",WEEK(Sbir)+1 "第几周" FROM t_student; 
122,在学生信息表中输出手机号中含有三个“6”的学生的生日和出生的月份。
SELECT Sbir,EXTRACT(month from Sbir) FROM t_student WHERE Sphone REGEXP "(.*6){3}";
123,在学生信息表中输出手机号中含有两个“1”和两个“0”的学生的生日和出生日期是当前年的第几周。
SELECT Sbir,WEEK(Sbir)+1 FROM t_student WHERE Sphone REGEXP "(.*1){2}" AND Sphone REGEXP "(.*0){2}";


---------------------------------------------------------------------------------------

124,在学生信息表中找出所有人的姓名和他出生的月份的英文、星期的英文并取前10个结果。
SELECT Sname,MONTHNAME(Sbir),DAYNAME(Sbir) FROM t_student LIMIT 10;
125,在学生信息表中找出所有人的姓名和他的生日加上100天后的日期及生日减去100天后的日期。
SELECT Sname,ADDDATE(Sbir,100),SUBDATE(Sbir,100) FROM t_student;
126,在学生信息表中找出所有人的姓名和他的生日跟今天日期相减的数。
SELECT Sname,DATEDIFF(NOW(),Sbir) FROM t_student;
127,在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990-09-21”。
SELECT Sname,DATE_FORMAT(Sbir,"%Y-%m-%d") FROM t_student;
128,在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990/09/21日”。
SELECT Sname,DATE_FORMAT(Sbir,"%Y年/%m月/%d日") FROM t_student;
129,在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990/September/Monday”。
SELECT Sname,DATE_FORMAT(Sbir,"%Y年/%M/%W") FROM t_student;
130,将今天的日期按照“日--年”输出。
SELECT DATE_FORMAT(NOW(),"%d日-%m月-%Y年");
131,在学生信息表中输出所有学生的姓名和生日,生日按照'%m-%d-%Y'的格式输出,且结果按年龄降序排列。
SELECT Sname,DATE_FORMAT(Sbir,"%m-%d-%Y") FROM t_student ORDER BY Sage desc;
132,在学生信息表中输出所有学生的姓名和他们的生日加上10天后的日期。
SELECT Sname,ADDDATE(Sbir,10) FROM t_student;
133,在学生信息表中输出所有学生的姓名和他们的生日减去一个月后的日期并重命名为“虚生日”,且结果按照学号降序排列。
SELECT Sname,SUBDATE(Sbir,interval 1 month ) "虚生日" from t_student;
134,在学生信息表中输出以学生年龄为半径圆的面积,并从小到大排序后取前8个数。
SELECT PI()*POW(Sage,2) a FROM t_student ORDER BY a ASC LIMIT 8;
135,在学生信息表中输出姓名和用date_format函数用英文输出学生生日的月,日。并取第510个数据出来。
SELECT Sname,DATE_FORMAT(Sbir,"%M,%D") FROM t_student LIMIT 5,6;
136,在分数信息表中求出语文、数学、英语的平均成绩,并重命名为“语文平均”、“数学平均”、“英语平均”。
SELECT ROUND(avg(`语文`),1) “语文平均”,ROUND(avg(`数学`),1) “数学平均”,ROUND(avg(`英语`),1) “英语平均” FROM t_score;
137,在学生信息表中输出所有学生的平均年龄和平均分数。
SELECT avg(Sage),avg(Sscore) FROM t_student;
138,在学生信息表中计算出年龄在1822随之间且成绩大于500分的共有多少人。
SELECT count(Sid) FROM t_student WHERE Sage BETWEEN 18 AND 22 AND Sscore>500;
139,在系部管理表中计算出人数在500以上的系的所有系的平均人数。
SELECT CEIL(avg(Dnumber)) FROM t_dept WHERE Dnumber>500;
140,在分数信息表中求出每门课的最高成绩和最低成绩。
SELECT max(`语文`),min(`语文`),max(`数学`),min(`数学`),max(`英语`),min(`英语`),max(`体育`),min(`体育`) FROM t_score;
141,在分数信息表中求出每门课的总成绩并重命名为全班总成绩。
SELECT sum(`语文`) "全班语文总成绩",sum(`数学`) "全班数学总成绩",sum(`英语`) "全班英语总成绩",sum(`体育`) "全班体育总成绩" FROM t_score;
142,在学生信息表中计算出1990年以后出生的学生的最高分并重命名。
SELECT max(Sscore) "1990后的最高分" FROM t_student WHERE Sbir>"1990";
143,在学生信息表中计算出分数大于500且年龄小于20且是1班的学生一共有多少个。
SELECT count(Sid) FROM t_student WHERE Sscore>500 AND Sage<20 AND Sclass=1;
144,在学生信息表中输出年龄最大的学生的姓名和年龄。
SELECT Sname,Sage FROM t_student WHERE Sage = (SELECT max(Sage) FROM t_student) ;
145,在学生信息表中统计出一共有多少个班(去掉重复)。
SELECT b.Did,sclass FROM t_student a,t_dept b WHERE a.Did=b.Did GROUP BY b.Did,sclass; 
146,在学生信息表中输出平均年龄,平均分数,并分别去别名“平均年龄”、“平均分数”。
SELECT round(avg(Sage),1) "平均年龄",ROUND(avg(Sscore),1) "平均分数" FROM t_student;


-----------------------------------------------------------------------------------------------



147,在学生信息表中计算出共有多少个不同的年龄。
SELECT count(1) FROM (SELECT Sage FROM t_student GROUP BY Sage) a;
148,在学生信息表中计算出所有学生成绩的和并去掉相同项。
SELECT Sscore FROM t_student GROUP BY Sscore ORDER BY Sscore;
149,在学生信息表中计算出20岁以下学生的分数总和,相同的分数只计算一遍。
SELECT sum(a.s) FROM (SELECT Sscore s FROM t_student WHERE Sage<20 GROUP BY Sscore) a;
150,在学生信息表中输出每个班的班号和最高分,取前2名。
SELECT Did,Sclass,max(Sscore) FROM t_student	GROUP BY Did,Sclass ORDER BY Did,Sclass;
151,在学生信息表中输出每个班的班号和人数并按照班号降序排列。
SELECT Did,Sclass,count(Sid) FROM t_student GROUP BY Did,Sclass ORDER BY Did,Sclass desc;
152,在学生信息表中输出每个系的系编号和系里面最小的一位学生的年龄,并重命名,结果按照系编号降序排列。
SELECT Did,min(Sage) "最年轻的同学" FROM t_student GROUP BY Did ORDER BY Did desc;
153,在学生信息表中输出每个班的班号和平均分数及最低分和最高分并重命名。
SELECT Did "系号",Sclass "班号",min(Sscore) "最低分",max(Sscore) "最高分" FROM t_student GROUP BY Did,Sclass ORDER BY Did,Sclass;
154,在学生信息表中输出每个系的系编号及18岁以上有多少人,并按照系编号降序排列。
SELECT Did,count(1) FROM t_student WHERE Sage>18 GROUP BY Did ORDER BY Did;
155,在学生信息表中输出每个班的班级编号及班上名字是3个字的学生的个数并重命名,按照学生的个数的降序排列。
SELECT Did,Sclass,count(1) "人数" FROM t_student WHERE TRIM(Sname) LIKE "___" GROUP BY Did,Sclass ORDER BY `人数`;
156,在学生信息表中输出每个系的系编号及系里面手机号是以“15”开头的学生的个数,按照系编号降序排列。
SELECT Did,count(1) FROM t_student WHERE Sphone REGEXP "^15" GROUP BY Did ORDER BY Did desc; 
157,在学生信息表中输出17,19,20的年龄各有多少人,并按照人数的降序排列。
SELECT Sage,count(1) a FROM t_student WHERE Sage in (17,19,20) GROUP BY Sage ORDER BY a DESC; 
158,在学生信息表中输出每个班的班级编号及每个班有学号大于1208且年龄小于20且名字是两个字的学生的个数。
SELECT Did,Sclass,count(1) FROM t_student WHERE Sid>1208 and Sage<20 AND TRIM(Sname) LIKE "__" GROUP BY Did,Sclass;
159,在学生信息表中输出每个系里面的每个班的系编号、班级编号、最高分、最低分。
SELECT Did,Sclass,max(Sscore),min(Sscore) FROM t_student GROUP BY Did,Sclass;
160,在学生信息表中将450分以上的学生按照年龄分组,输出每个组的年龄和总人数,并按照年龄的降序排列。
SELECT Sage,count(1) FROM t_student WHERE Sscore>450 GROUP BY Sage ORDER BY Sage desc;
161,在学生信息表中将男生按照班级分组,输出班级编号、每个班平均年龄、最高分数。
SELECT Did,Sclass,ROUND(avg(Sage)),max(Sscore) FROM t_student WHERE Ssex="男" GROUP BY Did,Sclass;
162,在学生信息表中将分数是450分以上的学生按照班级和年龄分组,输出每个组的人数,并用rollup统计。
SELECT COALESCE(Did,"总人数"),COALESCE(Sclass,CONCAT(Did,"系人数")),COALESCE(Sage,CONCAT(Sclass,"班人数")),count(1) FROM t_student WHERE Sscore>450 GROUP BY Did,Sclass,Sage with ROLLUP  ;
163,在学生信息表中将19岁以上且分数是460分以上的学生按照系编号分组,并用rollup统计。
SELECT COALESCE(Did,"总人数"),count(1) FROM t_student WHERE Sage>19 and Sscore >460 GROUP BY Did WITH ROLLUP;
164,在学生信息表中统计出每个班的最大年龄,并将最大年龄大于19岁的班级输出班级编号和最大年龄,并按班级的降序排列。
SELECT Did,Sclass,max(Sage) FROM t_student WHERE Sage>19 GROUP BY Did,Sclass ORDER BY Did,Sclass;
165,在学生信息表中统计出每个系的平均分数和平均年龄,并将平均分数小于550的结果输出来。
SELECT ROUND(avg(Sscore),1) a,ROUND(avg(Sage)) FROM t_student GROUP BY Did HAVING a<550;
166,在老师信息表中统计出男女各有多少人,并按照人数降序排列。
SELECT Msex,count(1) a FROM t_man GROUP BY Msex ORDER BY a DESC;
167,在学生信息表中将1990年以后出生的学生且有系编号有班级编号的学生按照系编号、班级编号分组,统计出每个组的人数。输出每个组的系编号、班级编号和人数并按照人数升序排列取前3个结果。
SELECT Did,Sclass,count(1) a FROM t_student WHERE Sbir>"1990" AND Did LIKE "_%" AND Sclass LIKE "_%" GROUP BY Did,Sclass ORDER BY a LIMIT 3;

--------------------------------------------------------------------------------

168,在学生信息表中查找出跟“Apple”在同一个班的学生的个数。
SELECT count(1) FROM t_student WHERE Did=(SELECT Did FROM t_student WHERE Sename ="Apple") AND 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 desc;
171,在学生信息表中查找出年龄比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 ="Tea") ORDER BY Sphone desc LIMIT 2;
172,在学生信息表中查找出班级平均分比全校平均分低的班级编号,最高分,最低分,平均分,并按班级编号降序排列。
SELECT Did,Sclass,max(Sscore),min(Sscore),ROUND(avg(Sscore),1) a FROM t_student GROUP BY Did,Sclass HAVING a < (SELECT avg(Sscore) FROM t_student) ORDER BY Did,Sclass desc;
173,在学生信息表中将学生按年龄分组,统计每个组有多少人,筛选出人数正好等于3班人数 的组。
SELECT count(1) a FROM t_student GROUP BY Sage HAVING a=3;
174,在学生信息表中查找出与120112031205号学生相同年龄的学生的学号、姓名、年龄,并按照学号降序排列。
SELECT Sid,Sname,Sage FROM t_student WHERE Sage in (SELECT Sage FROM t_student WHERE Sid in(1201,1203,1205)) ORDER BY Sid;
175,在学生信息表中查找出与系编号为1的学生的年龄都不相同的学生的姓名、分数,并按照分数升序排列取前5个结果。
SELECT Sname,Sscore FROM t_student WHERE Sage not in (SELECT Sage FROM t_student WHERE Did=1) ORDER BY Sscore LIMIT 5;
176,在学生信息表中查找出比 500分以上的学生的年龄大的学生姓名 或者 比1992年以前出生的学生分数高的学生姓名。
SELECT Sname FROM t_student WHERE Sage > (SELECT max(Sage) FROM t_student WHERE Sscore>500) OR Sscore > (SELECT max(Sscore) FROM t_student WHERE Sbir<"1992");
177,在学生信息表和系部管理表中查找出学号为121012131217的学生的姓名和他的系的名字。
SELECT Sname,Dname FROM t_student a,t_dept b WHERE Sid in(1210,1213,1217) AND a.Did=b.Did ;

178,系部管理表和系主任管理表中输出每个系的编号和系所对应的系主任的编号和名字。
SELECT Did,b.Mid,Mname FROM t_dept a,t_man b WHERE a.Mid=b.Mid;
179,在学生信息表和分数表中输出每个学生的学号、姓名、体育成绩(取别名体育成绩)、英语成绩(取别名英语成绩)。
SELECT a.Sid,Sname,`体育` "体育成绩",`英语` "英语成绩" FROM t_student a,t_score b WHERE a.Sid=b.Sid;
180,在学生信息表和系部管理表中输出每个系的编号和系名字及每个系在学生信息表中的人数。
SELECT b.Did,Dname,count(1) FROM t_student a,t_dept b WHERE a.Did=b.Did GROUP BY b.Did ;
181,使用联结在学生信息表和分数表中输出每个学生的姓名和他们的各门课的成绩。
SELECT Sname,`语文`,`数学`,`英语`,`体育` FROM t_student a
INNER JOIN t_score b
on a.Sid = b.Sid 
WHERE a.Sid>-1;
182,使用联结在学生信息表和系部表中输出每个学生的姓名和他们的系名。
SELECT Sname,Dname FROM t_student a
inner join t_dept b
on a.Did = b.Did;
183,使用联结在系部表和系主任表中输出每个系的编号、系名字、系主任名字,并按照系编号降序排列。
SELECT Did,Dname,b.Mid,Mname FROM t_dept a
INNER JOIN t_man b
ON a.Mid = b.Mid
ORDER BY Did;
184,使用联结在系部表和学生信息表中输出分数最高的学生的姓名和他所在系的名字。
SELECT Sname,Dname FROM t_student a
INNER JOIN t_dept b
on a.Did = b.Did
WHERE Sscore = (SELECT max(Sscore) FROM t_student);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值