MySQL查询 语句

INSERT INTO student VALUES(1,'蔺斐','男','2002-04-09',0.25);
INSERT INTO student VALUES(2,'熊大','男','1999-08-08',100);
INSERT INTO student VALUES(3,'吉吉国王','男','2009-09-09',900);
INSERT INTO student VALUES(4,'光头强','男','2009-01-01',200);
INSERT INTO student VALUES(5,'光头','女','2029-01-01',200);
SELECT * FROM student; -- 查询表中所有数据

SELECT sname,ssex FROM student; -- 查询表中指定字段数据

SELECT sid,sname AS n,ssex AS s,birth FROM student; -- 查询时添加常量列

SELECT DISTINCT(ssex) FROM student; -- 查询学生表中有哪些性别 对性别进行去重

SELECT DISTINCT ssex FROM student; -- 去重 不可以和普通字段一起查

SELECT * FROM student WHERE ssex='男'; -- 查询表中所有男生信息

SELECT sname,ssex,money FROM student WHERE money>500;-- 查询零花钱大于500的同学

SELECT sid,sname,money FROM student WHERE ssex='男'AND money>=100; -- 查询零花钱大于100元的男生编号、姓名、零花钱

SELECT * FROM student WHERE birth>'2000' AND ssex='男'; -- 查询生日在2000年以后的男生信息

SELECT YEAR(birth) FROM student; -- 截取年份

SELECT MONTH(birth) FROM student; -- 截取月

SELECT DAY(birth) FROM student; -- 截取日

SELECT * FROM student WHERE YEAR(birth)>2000 AND ssex='男'; -- 查询生日在2000年以后的男生

SELECT * FROM student WHERE money<200 OR YEAR(birth)<2000; -- 查询零花钱小于200或者2000年以前出生的学生信息

SELECT * FROM student WHERE ssex<>'男'; -- 查询学生表中不是男生的学生信息

-- 判空条件
INSERT * FROM student VALUES(7,'','女','2022-04-02',600) -- 演示
SELECT * FROM student WHERE sname IS NOT NULL AND sname<>''; -- 查询姓名不为空的学生信息
SELECT * FROM student WHERE sname IS NULL; -- 查询姓名为null的学生信息

-- 模糊查询
SELECT * FROM student WHERE sname LIKE '蔺%'; -- 查询姓蔺的同学信息
SELECT * FROM student WHERE sname LIKE '__'; -- 查询姓名为两个字的同学信息
SELECT * FROM student WHERE sname LIKE '%国%'; -- 查询名字中带国的 同学信息
SELECT * FROM student WHERE sname LIKE '%吉%国%'; -- 查询姓名中带吉带国的学生信息

-- 聚合查询 聚合函数 sum(求和)、avg(平均数)、max(最大值)、min(最小值)、count(记录数)。
SELECT SUM(js) FROM score; -- 查询成绩表中所有同学的js成绩
SELECT SUM(html+js+css)FROM score; -- 查询成绩表中所有同学所有科目总成绩
SELECT AVG(html) FROM score; -- 查询成绩表中所有同学html平均成绩
SELECT MAX(css),MIN(css)FROM score; -- 查询成绩表中css成绩的最高分和最低分
SELECT COUNT(sid)FROM score; -- 查询成绩表中的总人数
SELECT COUNT(*) FROM student WHERE ssex='男'; -- 查询学生表中男生的人数

-- 分页查询

-- select 结果 from 表 where 条件 分组 排序 limit 起始行,查几行。

-- 每页显示2条 每页显示的条数,当前页。
-- 第一页
SELECT * FROM student LIMIT 0,2; -- 从零开始
-- 第二页
SELECT * FROM student LIMIT 2,2;
-- 第三页
SELECT * FROM student LIMIT 4,2;

FUNCTION page(m,n){
SELECT * FROM student LIMIT
}

-- order by 字段 asc/desc 如果不加 默认按照正序排
-- asc:顺序,正序。数值:递增,字母:自然顺序(a-z)
-- desc:倒序,反序。数值:递减,字母:自然反序(z-a)
SELECT * FROM score ORDER BY js ASC; -- 成绩表按js成绩正序排列

SELECT * FROM score ORDER BY css DESC; -- 成绩表按css成绩倒序排

SELECT * FROM score ORDER BY css DESC LIMIT 0,2; -- 查询css分数最高的两名同学
SELECT * FROM score ORDER BY html ASC,js ASC; -- 一条是一个整体,如果有多个排序 是有主次之分 当地一个值相同时 按照这个排序。 如果都不相同第二个就不会生效。
SELECT * FROM score WHERE js IN(60,90);


SELECT ssex FROM student GROUP BY ssex; -- 查询每个分组的人数 按谁分组就查谁。

SELECT ssex,COUNT(*) FROM student GROUP BY ssex; -- 查询每个分组的人数 按谁分组就查谁。

SELECT ssex,SUM(money)FROM student GROUP BY ssex; -- 查询每个性别学生零花钱总和

SELECT ssex FROM student GROUP BY ssex
HAVING COUNT(*)>2; -- 查询人数大于2的性别 分组后。

SELECT ssex,SUM(money) FROM student GROUP BY ssex
HAVING SUM(money)>1000; -- 查询总零花钱大于1000的性别

posted @ 2022-04-11 21:51  猫java猫  阅读(92)  评论(0)    收藏  举报