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;
相关推荐
Decay__7 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
吃一碗粉只付一碗钱13 小时前
10-令牌里的用户主键不要明文
服务器·数据库·sql·sqlserver·c#
sun032214 小时前
【JDK 动态代理】 和 【CGLIB 代理】对比
java·数据库·sql
l1t16 小时前
DeepSeek总结的AI 智能体应该用哪种语言搜索其记忆:SQL 还是 SPARQL?
数据库·人工智能·sql
geovindu17 小时前
SQL Data Sampling and Approximation Techniques using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
l1t18 小时前
DeepSeek总结的从 SQL 桥梁到智能体基础设施:Hex 的 DuckDB 实践
数据库·sql·duckdb
正儿八经的少年18 小时前
MyBatis 一对一、一对多 SQL
数据库·sql·mybatis
Decay__19 小时前
03_MySQL 存储引擎与存储管理 —— InnoDB 深入、表空间/ibd、binlog/redo/undo 与双写缓冲
运维·数据库·sql·mysql·架构
川石课堂软件测试1 天前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http