数据库表的查询

1、基础查询(自学)

2、条件查询

SELECT * FROM stu;

-- 条件查询
-- 1、查询年龄大于40岁的学员信息
SELECT * FROM stu WHERE age > 40;

-- 2、查询年龄大于等于40岁的学员信息
SELECT * FROM stu WHERE age >= 40;

-- 3、查询年龄大于等于40岁 并且 年龄小于等于 50岁的学员信息
SELECT * FROM stu WHERE age>=40 && age<=50;
SELECT * FROM stu WHERE age>=40 and age<=50;
SELECT * FROM stu WHERE BETWEEN 40 and 50;

-- 4、查询入学日期在'2000-02-05'到'2005-02-05'之间的学员信息
SELECT * FROM stu WHERE hire_date BETWEEN '2000-02-05' AND '2005-02-05';

-- 5、查询年龄等于30岁的学员信息
SELECT * FROM stu WHERE age=30;

-- 6、查询年龄不等于30岁的学员信息
SELECT * FROM stu WHERE age!=30;
SELECT * FROM stu WHERE age<>30;

-- 7、查询年龄为55或者23或者45的学员信息
SELECT * FROM stu WHERE age=55 or age =23 or age=45;
SELECT * FROM stu WHERE age=55 or age in (55,23,45);

-- 8、查询英语成绩为null的学员信息
-- 注意:null值的比较不能使用= !=.需要使用 is isnot
SELECT * FROM stu WHERE english is not NULL;

-- 模糊查询
/*
通配符
_代表任意字符
%代表任意个数字符
*/
-- 1、查询姓'马'的学员信息

SELECT *  FROM stu WHERE NAME like '马%';

-- 2、查询第二个字为'云'的学员信息

SELECT *  FROM stu WHERE NAME like '_云';

-- 3、查询名字中包含'日'的学员信息

SELECT *  FROM stu WHERE NAME like '%日%';

3、排序查询

/*
排序查询:
ASC:升序排序(默认值)
DESC:降序排序
*/

-- 1、查询学生信息,按照年龄升序排序
SELECT *  FROM stu ORDER BY english ASC;
-- 2、查询学生信息,按照英语成绩降序排序
SELECT *  FROM stu ORDER BY english DESC;
-- 3、查询学生信息,按照英语成绩降序,然后如果英语成绩一样,那么按照数学成绩升序
SELECT *  FROM stu ORDER BY english DESC ,english ASC;

4、聚合函数

/*
count:求总数
max:求最大值
min:求最小值
sum:求和
avg:求平均值
*/

-- 1、统计总数

SELECT count(id) from stu;  
SELECT count(*) from stu;  

-- 2、查询英语成绩的最高分

SELECT MAX(english) from stu;  

-- 3、查询英语成绩的最低分

SELECT MIN(english) from stu;  

-- 4、查询英语成绩的总分

SELECT SUM(english) from stu;  

-- 5、查询英语成绩的平均分


SELECT AVG(english) from stu; 

5、分组查询

/*
    分组查询
      SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤]
*/

-- 1、查询男同学和女同学各自的英语平均分

SELECT sex , AVG(english) FROM stu GROUP BY sex;

-- 2、查询男同学和女同学各自的英语平均分以及人数

SELECT sex , AVG(english) , COUNT(*)FROM stu GROUP BY sex;

-- 3、查询男同学和女同学各自的英语平均分以及人数,要求:分数低于60分的不参与分组

SELECT sex , AVG(english) , COUNT(*)FROM stu WHERE english>=60 GROUP BY sex;

-- 4、查询男同学和女同学各自的英语平均分以及人数,要求:分数低于60分的不参与分组,分组之后的人数大于两个

SELECT sex , AVG(english) , COUNT(*)FROM stu WHERE english>=60 GROUP BY sex HAVING COUNT(*) > 2;

5、分页查询

/*
    分页查询:
    
    SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询条目数
    起始索引;从0开始
    
*/

-- 1、从0开始查询,查询3条数据

SELECT * FROM stu LIMIT 0,3;

-- 2、每页查询3条数据,查询第一页数据

SELECT * FROM stu LIMIT 0,3;

-- 3、每页查询3条数据,查询第二页数据

SELECT * FROM stu LIMIT 3,3;

-- 4、每页查询3条数据,查询第二页数据

SELECT * FROM stu LIMIT 6,3;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值