目录
查询基础语法
数据表内容,查询结果就不展示了
语法一
select 列名1,列名2,......,列名n from 表名
查询表中指定列的记录
语法二
select * from 表名
查询表中所有记录,不推荐使用
where子句
select 列名1,列名2,......,列名n from 表名 where 条件
条件
用于将特定的记录筛选出来然后进行增删改查操作
1.等于 =
select stu_name from stus where stu_age = 10;
2.不等于 != 或 <>
select stu_name from stus where stu_age != 10;
select stu_name from stus where stu_age <> 10;
3.大于 >
select stu_name from stus where stu_age > 10;
4.小于 <
select stu_name from stus where stu_age < 13;
5.大于等于 >=
select stu_name from stus where stu_age >= 10;
6.小于等于<=
select stu_name from stus where stu_age <= 13;
多条件
通过多个条件筛选数据
条件1 and 条件2
并且 筛选多个条件同时满足的记录
select stu_num,stu_name from stus where stu_age = 16 and stu_gender = '男';
条件1 or 条件2
或者 筛选多个条件至少满足一个的记录
select stu_num,stu_name from stus where stu_age = 16 or stu_gender = '男';
between 条件1 and 条件2
区间查询,左右条件1和2全都是闭区间
select stu_num,stu_name from stus where stu_age between 16 and 17;
模糊查询
用like子句来实现模糊查询
select 列名1,列名2,......,列名n from 表名 where 条件 like 'reg';
like关键字后面的reg表达式中:
1.% 表示任意多个字符【%a%:在该字段值得任意位置包含字母a】
2._ 表示任意一个字符【_a%:在该字段值第二个字母为a】
#查询学生姓名包含a的学生信息
select * from stus where stu_name like '%a%';
#查询学生姓名最后一个是3的学生信息
select * from stus where stu_name like '%3';
#查询学生姓名第一个是张的学生信息
select * from stus where stu_name like '张%';
#查询学生姓名第二个是b的学生信息
select * from stus where stu_name like '_b%';
对查询结果处理
计算列和别名
别名:字段名后面可以直接加别名,或加as+别名
## 获取学生出生年份
select stu_name 姓名, 2021-stu_age as birYear from stus;
取消重复数据
从查询结果中取消重复记录:关键字distinct
select distinct stu_age from stus;
排序
单列排序
select 列名1,......,列名n from 表名 where 条件 order by + 列名 asc:升序(默认)
select 列名1,......,列名n from 表名 where 条件 order by + 列名 desc:降序
SELECT * FROM stus order by stu_gender;
SELECT * FROM stus order by stu_gender desc;
多列排序
select 列名1,......,列名n from 表名 where 条件 order by + 列名1 asc,列名2 desc
先满足第一个排序规则,当第一个排序的列的值相同时,在按照第二个列的规则排序
SELECT * FROM stus order by stu_gender asc ,stu_age desc;
完整语法
SELECT 查询列表 FROM 表名 WHERE 查询条件
GROUP BY 分组字段
HAVING 查询条件
ORDER BY 排序字段
以上语句的执行顺序
1.SELECT FROM查询出全部的数据
2.使用WHERE对查询结果进行过滤
3.过滤后的数据使用GROUP BY进行分组
4.分组后的数据使用HAVING再次过滤
5.再次过滤后的数据用ORDER BY排序
注意事项:
1.以上语句的顺序是固定的,不能改变.
2.对数据过滤的时候,优先使用WHERE进行过滤,这样的效率比较高