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;
相关推荐
kk在加油7 分钟前
Redis基础数据结构
数据结构·数据库·redis
只有干货16 分钟前
dexie 前端数据库封装
数据库
嘉琪00116 分钟前
2025 js——面试题(7)——ajax相关
开发语言·javascript·ajax
SoniaChen3318 分钟前
Rust基础-part3-函数
开发语言·后端·rust
一个天蝎座 白勺 程序猿21 分钟前
飞算JavaAI进阶:重塑Java开发范式的AI革命
java·开发语言·人工智能
liu_yueyang23 分钟前
JavaScript VMP (Virtual Machine Protection) 分析与调试
开发语言·javascript·ecmascript
前端 贾公子25 分钟前
tailwindCSS === 使用插件自动类名排序
java·开发语言
10岁的博客25 分钟前
代码编程:一场思维与创造力的革命
开发语言·算法
七七七七0725 分钟前
C++类对象多态基础语法【超详细】
开发语言·c++
没有bug.的程序员30 分钟前
JAVA面试宝典 -《Spring Boot 自动配置魔法解密》
java·spring boot·面试