mysql的DQL语言

查询语法

基础查询

1.查询多个字段

select 字段列表 from 表名;

select * from 表名;--查询所有数据

sql 复制代码
insert into people (id,name,sex) values(1,'小明','男'),(2,'小红','女'),(3,'小李','男');
insert into people (id,name,sex) values(3,'小龙','男'),(4,'小飞','男');
update people set id=4 where name='小龙';
update people set id=5 where name='小飞';
 select id,name from people;-- 查询id 和name字段;
sql 复制代码
select * from people;-- 查询所有字段

2.去除重复记录

select distinct 字段名1,字段名2,... from 表名;

去除字段相同的行,只留一行;

sql 复制代码
insert into people(id,name ,sex) values(5,'小飞','女');

-- 去重
select distinct id,name from people;-- 去除id,name一样的行,不管sex是否相同

可见,已经去重

3.查询时给列,表指定别名需要使用AS关键字

select 字段名1 AS 别名,字段名2 AS 别名 ...from 表名;

select 字段名1 AS别名,字段名2 AS 别名 ... from 表名 AS 别名;

sql 复制代码
select name AS "姓名", sex AS "性别" from people ;

条件查询

1.条件基础查询

select 字段列表 from 表名 where 条件列表;

sql 复制代码
create table student
(
    id int,
    name varchar(10),
    age int,
    math int,
    english int
);
insert into student values(1,'小李',18,90,80),(2,'小红',20,59,78),(3,'小飞',22,100,57);
select * from student;

-- 查找数学大于80的人
select id, name, age, math, english from student where math>=80;

-- 查找英语小于60的人
select id,name,age,math,student.english from student where  english<60;#注意,不会查询到english数值为null的学生

-- 查找年龄不是20的人
select id, name, age, math, english from student where age!=20;
select id, name, age, math, english from student where age<>20;


-- 查找年龄大于18岁,且数学大于60分的学生
select id, name, age, math, english from student where age>18 and math>60;
select id, name, age, math, english from student where age>18 && math>60;

-- 查找 年龄大于18,或者数学大于60分的学生
select id, name, age, math, english
from student
where age>18 or math>60;
select id, name, age, math, english
from student
where age>18 || math>60;

-- 查找id 为1,3的学生
select id, name, age, math, english from student where id in(1,3);
select id, name, age, math, english from student where id=1 or id=3;

2.范围查询

between 值1 and 值2 ---表示从值1到值2的范围,包头又包尾

例如: age between 80 and 100;

相当于 age>=80 and age<=100;

sql 复制代码
-- 查找数学在80到100的范围
select id, name, age, math, english from student where math between 80 and 100;

3.模糊查询

select 字段列表 from 表名 where 字段名 like 模糊查询的关键字(关键字通常和通配符号关联)

通配符:

%:表示任意个数据

_:表示任意一个数据

sql 复制代码
-- 查找姓何的所有学生
select id, name, age, math, english from student where name like '何%';

-- 查找名字包含美字的学生
select id, name, age, math, english from student where name like '%美%';

-- 查找名字是马**的学生
select id, name, age, math, english from student where name like '马_';

4.排序查询

select 字段列表 from 表名 order by 字段名1 排序规则(升序或者降序),字段2 排序规则...

不写where

升序:ASC(默认,可以不写)

降序:DESC

注意:如果又多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

sql 复制代码
-- 以年龄升序排序
select id, name, age, math, english from student  order by age ASC;

-- 以年龄降序,如果年龄相同以数学成绩降序
select id, name, age, math, english from student order by age DESC,math DESC;
相关推荐
二哈赛车手4 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
为何创造硅基生物5 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好5 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
栗子~~5 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
星寂樱易李5 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
YDS8295 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
仰泳之鹅5 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
rising start5 小时前
二、全面理解MySQL架构
mysql·架构
之歆5 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
星星也在雾里5 小时前
PgBouncer 解决 PostgreSQL 连接数超限 + 可视化监控
数据库·postgresql