一、基础查询
1. 查询指定列
语法
sql
select 字段名1,字段名2 from 表名;
示例
sql
select stu_name,stu_age from stus where stu_age>20;
2. 计算列
可以直接对字段进行算术运算展示结果
sql
select stu_name,2021-stu_age from stus;
3. as 设置字段别名
给查询列设置别名,as 关键字可以省略
sql
select stu_name,2021-stu_age as stu_birth_year from stus;
select stu_name as 姓名,2021-stu_age as 出生年份 from stus;
4. distinct 消除重复行
sql
-- 原始查询,包含重复年龄
select stu_age from stus;
-- 去除重复数据
select distinct stu_age from stus;
二、where 条件查询:比较运算符
sql
-- = 等于
select * from stus where stu_num = '20230101';
-- != 、<> 不等于(两种写法等价)
select * from stus where stu_num != '20230101';
select * from stus where stu_num <> '20230101';
-- > 大于
select * from stus where stu_age>18;
-- < 小于
select * from stus where stu_age<20;
-- >= 大于等于
select * from stus where stu_age>=20;
-- <= 小于等于
select * from stus where stu_age<=20;
-- between and 区间查询,闭区间 [最小值,最大值]
select * from stus where stu_age between 18 and 20;
三、where 逻辑运算符 and or not
sql
-- and 并且:所有条件同时满足
select * from stus where stu_gender='女' and stu_age<21;
-- or 或者:满足任意一个条件即可
select * from stus where stu_gender='女' or stu_age<21;
-- not 取反
select * from stus where stu_age not between 18 and 20;
四、like 模糊查询
通配符说明
%:匹配任意数量字符(0个、1个、多个)
_:只匹配单个字符
sql
-- 查询姓名包含张
select * from stus where stu_name like '%张%';
-- 查询姓名以张开头
select * from stus where stu_name like '张%';
-- 查询姓名以三结尾
select * from stus where stu_name like '%三';
-- 查询第二个字符为三
select * from stus where stu_name like '_三%';
五、order by 排序
语法
sql
select * from 表名 where 条件 order by 字段 asc|desc;
asc 升序(默认,可以不写);desc 降序
sql
-- 单字段排序
select * from stus where stu_age>15 order by stu_gender desc;
-- 多字段排序
-- 优先第一个字段排序;第一个字段值相同,再按第二个字段排序
select * from stus where stu_age>15 order by stu_gender asc,stu_age desc;