数据库查询语句

数据库中“SELECT”语句题目分享

#1.在学生信息表中找出所有人的姓名和他出生的月份,并按照他们的月份的升序排列。
SELECT sname,MONTH(sbir) FROM t_student ORDER BY MONTH(sbir) ASC;
#2.在学生信息表中找出所有人的学号和他们出生的星期几(英文)。
SELECT sid,DATE_FORMAT(sbir,"%y年%M月%D日") FROM t_student;
#3.在学生信息表中找出所有人中文名和英文名字及英文名字的第2个和第4个字母。
SELECT sname,sename,SUBSTR(TRIM(sename),2,3) FROM t_student;
#4.在学生信息表中找出所有人中文名和英文名字及英文名字最后一个字母的大写。
SELECT sname,sename,UCASE(RIGHT(TRIM(sename),1)) FROM t_student;
#5.在学生信息表中找出所有人中文名和英文名字及英文名字的长度。
SELECT sname,sename,LENGTH(sename) FROM t_student;
#6.在学生信息表中找出所有人中文名和英文名字及英文名字字母倒序。
SELECT sname,sename,REVERSE(sename) FROM t_student ORDER BY sename DESC;
#7.在学生信息表中找出英文名字中第三字母是“a”,且高考分数500一下,且性别是女的学生的姓名和电话,并按照学号升序排列。
SELECT sname,sphone FROM t_student WHERE sename LIKE '__a%' AND sscore <500 AND ssex="女" ORDER BY sid ASC;
#8.在学生信息表中找出年龄数字以“8”结尾的学生的学号和姓名。
SELECT sid,sname FROM t_student WHERE sage LIKE '%8';
#9.在学生信息表中找出英文名字以“A”开头,以“k”结尾的学生的中文名和英文名,并按照学号降序排列。
SELECT sname,sename FROM t_student WHERE sename LIKE 'A%p' ORDER BY sid DESC;
#10.在学生信息表中输出每个学生的姓名和生日,以及他们是一年中第几个星期出生的数字,并按照此数字排序。
SELECT sname,sbir,WEEKOFYEAR(sbir) AS z FROM t_student ORDER BY z DESC;
#11.在学生信息表中输出当前星期的英文,及当前日期的月份,及当前日期是今年第多少个星期,并分别取别名。
SELECT sid,DAYOFWEEK(sbir) '星期',MONTH(sbir) '当前日期的月份',WEEKOFYEAR(sbir) '当前日期是今年的多少个星期' FROM t_student;
#12.在学生信息表中输出手机号中含有三个“6”的学生的生日和出生的月份。
SELECT Sbir,MONTH(Sbir) FROM t_student WHERE Sphone REGEXP '(6[0-9]*){3}'
#13.在学生信息表中输出手机号中含有两个“1”和两个“0”的学生的生日和出生日期是当前年的第几周。
SELECT sbir,WEEKOFYEAR(sbir) FROM t_student WHERE sphone REGEXP  '(1[0-9]*){2}' AND  Sphone REGEXP '(0[0-9]*){2}';
#14.在学生信息表中找出所有人的姓名和他出生的月份的英文、星期的英文并取前10个结果。
SELECT Sname, MONTH(Sbir), DAYOFWEEK(Sbir) FROM t_student LIMIT 10;
#15.在学生信息表中找出所有人的姓名和他的生日加上100天后的日期及生日减去100天后的日期。
SELECT Sname ,DATE_ADD(Sbir,INTERVAL 100 DAY),DATE_SUB(Sbir,INTERVAL 100 DAY)FROM t_student;
#16.在学生信息表中找出所有人的姓名和他的生日跟今天日期相减的数。
SELECT Sname ,DATEDIFF(Sbir,NOW()) FROM t_student;
#17.在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990-09-21”。
SELECT Sname ,Sbir FROM t_student;
#18.在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990年/09月/21日”。
SELECT Sname ,DATE_FORMAT(Sbir,'%Y年/%m月/%d日') FROM t_student;
#19.在学生信息表中找出所有人的姓名和他的生日,并且生日按照格式“1990年/September/Monday”。
SELECT Sname ,DATE_FORMAT(Sbir,'%Y年/%m/%d') FROM t_student;
#20.将今天的日期按照“日-月-年”输出。
SELECT CONCAT(DAY(NOW()),"日",MONTH(NOW()),"月",YEAR(NOW()),"年");
#21.在学生信息表中输出所有学生的姓名和生日,生日按照'%m-%d-%Y'的格式输出,且结果按年龄降序排列。
SELECT sname,CONCAT(DAY(sbir),"m-",MONTH(sbir),"d-",YEAR(sbir),"Y") FROM t_student ORDER BY sage DESC;
#22.在学生信息表中输出所有学生的姓名和他们的生日加上10天后的日期。
SELECT sname,DATE(sbir+10) FROM t_student;
#23.在学生信息表中输出所有学生的姓名和他们的生日减去一个月后的日期并重命名为“虚生日”,且结果按照学号降序排列。
SELECT sname,DATE_ADD(sbir,INTERVAL 30 DAY) AS "虚生日" FROM t_student ORDER BY sid DESC;
#24.在学生信息表中输出以学生年龄为半径圆的面积,并从小到大排序后取前8个数。
SELECT sage*sage*PI() '圆的面积' FROM t_student ORDER BY '圆的面积' ASC LIMIT 8;
#25.在学生信息表中输出姓名和用date_format函数用英文输出学生生日的月,日。并取第5到10个数据出来。
SELECT sname,DATE_FORMAT(sbir,'%M月%D日') FROM t_student LIMIT 4,10;
#26.在分数信息表中求出语文、数学、英语的平均成绩,并重命名为“语文平均”、“数学平均”、“英语平均”。
SELECT sum(语文)/count(*) AS "语文平均",sum(数学)/count(*) AS "数学平均",sum(英语)/count(*) AS "英语平均" FROM t_score;
#27.在学生信息表中输出所有学生的平均年龄和平均分数。
SELECT sum(sage)/count(*),sum(sscore)/count(*) FROM t_student;
#28.在学生信息表中计算出年龄在18到22随之间且成绩大于500分的共有多少人。
SELECT count(*) FROM t_student WHERE sage BETWEEN 18 AND 22 AND sscore >500;
#29.在系部管理表中计算出人数在500以上的系的所有系的平均人数。
SELECT sum(dnumber)/count(*) FROM t_dept WHERE Dnumber > 500;
#30.在分数信息表中求出每门课的最高成绩和最低成绩。
SELECT max(语文),max(数学),max(英语),max(体育),min(语文),min(数学),min(英语),min(体育) FROM t_score;
#31.在分数信息表中求出每门课的总成绩并重命名为全班总成绩。
SELECT sum(语文),sum(数学),sum(英语),sum(体育),sum(语文+数学+英语+体育) AS "全班总成绩" FROM t_score;
#32.在学生信息表中输出平均年龄,平均分数,并分别去别名“平均年龄”、“平均分数”。
SELECT sum(sage)/count(*) AS "平均年龄",sum(sscore)/count(*) AS "平均分数" FROM t_student;
#33.在学生信息表中计算出20岁以下学生的分数总和,相同的分数只计算一遍。
SELECT sum(sscore) FROM t_student WHERE sage < 20;
#34.在学生信息表中输出每个班的班号和最高分,取前2名。
SELECT max(sscore) FROM t_student GROUP BY sclass LIMIT 2;;
#35.在学生信息表中输出每个班的班号和人数并按照班号降序排列。
SELECT sclass,count(*) FROM t_student GROUP BY sclass ORDER BY sclass DESC;
#36.在学生信息表中输出每个系的系编号和系里面最小的一位学生的年龄,并重命名,结果按照系编号降序排列。
SELECT MIN(Sage) ,Did FROM t_student GROUP BY Did ORDER BY Did DESC;
#37.在学生信息表中输出每个班的班号和平均分数及最低分和最高分并重命名。
SELECT Sclass,AVG(Sscore),MAX(Sscore),MIN(Sscore) FROM t_student GROUP BY Sclass;
#37.在学生信息表中输出每个系的系编号及18岁以上有多少人,并按照系编号降序排列。
SELECT SUM(Sage),Did FROM t_student WHERE Sage >= 18 GROUP BY Did ORDER BY Did DESC;
#39.在学生信息表中输出每个班的班级编号及班上名字是3个字的学生的个数并重命名,按照学生的个数的降序排列。
SELECT COUNT(*) ,Sclass FROM t_student WHERE TRIM(Sname) LIKE '___' GROUP BY Sclass ORDER BY COUNT(*) DESC; 
#40.在学生信息表中输出每个系的系编号及系里面手机号是以“15”开头的学生的个数,按照系编号降序排列。
SELECT COUNT(*) ,Did FROM t_student WHERE Sphone LIKE '15%' GROUP BY Did ORDER BY Did DESC;
#41.在学生信息表中输出17,19,20的年龄各有多少人,并按照人数的降序排列。
SELECT COUNT(*), Sage FROM t_student WHERE Sage IN (17,19,20) GROUP BY Sage ORDER BY COUNT(*) DESC;
#42.在学生信息表中输出每个班的班级编号及每个班有学号大于1208且年龄小于20且名字是两个字的学生的个数。
SELECT COUNT(*) ,Sclass FROM t_student WHERE  Sid >1208 AND Sage <20 AND LENGTH(TRIM(Sname))=2;
#43.在学生信息表中输出每个系里面的每个班的系编号、班级编号、最高分、最低分。
SELECT Did,Sclass,MAX(Sscore),MIN(Sscore) FROM t_student GROUP BY Did;
#44.在学生信息表中将450分以上的学生按照年龄分组,输出每个组的年龄和总人数,并按照年龄的降序排列。
SELECT SUM(Sage) ,COUNT(*) FROM t_student WHERE Sscore>450 GROUP BY Sage ORDER BY SUM(Sage) DESC;
#45.在学生信息表中将男生按照班级分组,输出班级编号、每个班平均年龄、最高分数。
SELECT Sclass ,AVG(Sage),MAX(Sscore) FROM t_student WHERE Ssex = '男' GROUP BY Sclass;
#46.在学生信息表中将分数是450分以上的学生按照班级和年龄分组,输出每个组的人数,并用rollup统计。
SELECT COUNT(*) ,Sclass ,Sage FROM t_student WHERE Sscore > 450 GROUP BY Sclass ,Sage WITH ROLLUP;
#47.在学生信息表中将19岁以上且分数是460分以上的学生按照系编号分组,并用rollup统计。
SELECT * FROM t_student WHERE Sscore >460 GROUP BY Did WITH ROLLUP;
#48.在学生信息表中统计出每个班的最大年龄,并将最大年龄大于19岁的班级输出班级编号和最大年龄,并按班级的降序排列。
SELECT MAX(Sage),Sclass FROM t_student WHERE Sage>19  GROUP BY Sclass ORDER BY Sclass DESC;
#49.在学生信息表中统计出每个系的平均分数和平均年龄,并将平均分数小于550的结果输出来。
SELECT d.a,d.b ,d.c FROM(SELECT AVG(Sscore) a ,AVG(Sage) b,Did c FROM t_student  GROUP  BY Did) d WHERE d.a<550;
#50.在学生信息表中将1990年以后出生的学生且有系编号有班级编号的学生按照系编号、班级编号分组,统计出每个组的人数。输出每个组的系编号、班级编号和人数并按照人数升序排列取前3个结果。
SELECT Did ,Sclass ,COUNT(*) 't' FROM t_student WHERE  Sbir > '1990-12-31' GROUP BY Did ,Sclass;
上一篇:sage之离散对数求解


下一篇:Sage X3负库存的灵活应用