IT@程序员猿媛互联网科技

SQL数据表中数据的查询

2019-07-18  本文已影响3人  Kkite
-- 下面是对我数据库中的学生表stuinfo进行的查询操作

-- 1.查询学生信息表中的所有学生的姓名与地址
SELECT stuName AS '姓名' , stuAddr AS '地址' FROM stuinfo;

-- 2.将多个列的结果合并为一个列
SELECT CONCAT(stuName, '-', stuAddr) AS '姓名-地址' FROM stuinfo;

-- 3.过滤重复的学生姓名
SELECT DISTINCT stuName FROM stuinfo;

-- 4.限制数据查询的数量
SELECT * FROM stuinfo LIMIT 3,6;

-- 5.按照学生序号查询序号最大的三个人
SELECT * FROM stuinfo ORDER BY stuNO DESC LIMIT 0, 3;

-- 6.查询所有男生
SELECT * FROM stuinfo WHERE stuSex = '男';

-- 7.查询所有编号大于10010的学生
SELECT * FROM stuinfo WHERE stuNO > 10010;

-- 8.查询所有不是云南的的学生
SELECT * FROM stuinfo WHERE stuAddr != '云南';

-- 9.查询编号在10005到10015之间的学生
SELECT * FROM stuinfo WHERE stuNO >= 10005 AND stuNO <= 10015;

-- 10.between and 区间查询
SELECT * FROM stuinfo WHERE stuNO BETWEEN 10005 AND 10015;

-- 11.查询数据库中张三,李四, 王五的信息
SELECT * FROM stuinfo WHERE stuName IN('张三', '李四', '王五');

-- 12.查询数据库中姓名不是张三,李四,王五的信息
SELECT * FROM stuinfo WHERE stuName NOT IN('张三', '李四', '王五');

-- 13.查询学生中姓王的学生
SELECT * FROM stuinfo WHERE stuName LIKE '王_%';

-- 14.查询姓王,编号大于10005的信息
SELECT * FROM stuinfo WHERE stuName LIKE '王_%' AND stuNO >= 10005;

-- 15.查询爱好为空的数据   NULL不能使用任何运算符进行运算
-- 只能使用IS来判定
SELECT * FROM stuinfo WHERE stuFav IS NULL;
SELECT * FROM stuinfo WHERE stuFav IS NOT NULL;

-- 16.统计所有学生一共加起来的分数
SELECT SUM(stuScore) AS 'TotalScore' FROM stuinfo;

-- COUNT 函数用于计数(用姓名统计时 把同名的学生忽略)
-- 17.统计学生表中一共有多少学生
SELECT COUNT(stuNO) FROM stuinfo;

-- MAX用于求列中的最小值   MIN相反
-- 18.求分数最高的学生是多少分
SELECT MAX(stuScore) FROM stuinfo;

-- 19.求学生表中学生编号的最大差异
-- SELECT (SELECT MAX(stuNO) FROM stuinfo) - (SELECT MIN(stuNO) FROM stuinfo)
SELECT (MAX(stuNO) - MIN(stuNO)) FROM stuinfo;

-- AVG 函数用于求取平均数
-- 20.查询学生的平均分
SELECT AVG(stuScore) FROM stuinfo;

-- 21.求大于平均分数的学生人数
SELECT COUNT(stuNO) FROM stuinfo
    WHERE stuScore > (SELECT AVG(stuScore) FROM stuinfo);

-- 22.按地域分组查看每个省有多少个学生
SELECT stuAddr,COUNT(stuNO) FROM stuinfo
GROUP BY stuAddr;

-- 23.按地域分组查看每个省学生的平均成绩
SELECT stuAddr,AVG(stuScore) FROM stuinfo
GROUP BY stuAddr;

-- 24.按地域分组查看每个省成绩大于60分的学生数量
SELECT stuAddr, COUNT(stuNO) FROM stuinfo
GROUP BY stuAddr, stuScore
HAVING stuScore > 60;

-- 多表连接查询 常用三种 内连接(交集) 左连接() 右连接
-- 25.查询所有学生的信息
SELECT * FROM stuinfo, stuclass;  -- 无条件的链接会做笛卡尔集
SELECT * FROM stuinfo, stuclass WHERE stuinfo.classID = stuclass.classID;
SELECT * FROM stuinfo INNER JOIN stuclass ON stuinfo.classID = stuclass.classID;

-- 26.左连接 优先顾全左表数据 如果左表的数据在右表中没有对应,则用NULL显示右表的列
SELECT * FROM stuinfo LEFT JOIN stuclass ON stuinfo.classID = stuclass.classID;

-- 27.右连接
SELECT * FROM stuinfo RIGHT JOIN stuclass ON stuinfo.classID = stuclass.classID;

-- 28.查询一年级所有学生的信息
SELECT * FROM stuinfo INNER JOIN stuclass ON stuinfo.classID = stuclass.classID
WHERE className LIKE '一年级%';

如有错误或建议欢迎大家指出与评论哈,希望这篇博文能帮助到大家,大家也可以分享给需要的人。

如需转载,请注明出处。https://www.jianshu.com/p/c38aca7dc660

上一篇下一篇

猜你喜欢

热点阅读