DQL 数据查询 select

一、基础查询

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;
相关推荐
花青泽1 小时前
5-数据库-SQL注入-联合查询-AND/OR绕过-day13
数据库·sql
Csvn1 小时前
📊 SQL 入门 Day 11:CASE 表达式:SQL 里的 if-else 魔法
后端·sql
xqqxqxxq8 小时前
SQL 字段约束笔记
android·笔记·sql
花青泽12 小时前
5-数据库-SQL注入-联合查询-关键字绕过-day13
数据库·sql
龙仔72519 小时前
人大金仓 KingbaseES V8 只读账号创建完整运维笔记
运维·笔记·sql·人大金仓
不剪发的Tony老师1 天前
VeloxDB:一款免费开源的轻量级数据库管理工具
数据库·sql
dotnet901 天前
批量生成所有表的修改脚本
数据库·sql·oracle
灯澜忆梦1 天前
【MySQL7】多表查询
数据库·sql