MySQL(DQL数据查询语句)

2022-05-12 21:09:09 浏览数 (1)

基础查询

基础语法:

代码语言:javascript复制
SELECT 查询字段列表(最后一个字段不加逗号) FROM 表名;

执行顺序:先执行 FROM 再执行SELECT

注意:

查询字段列表中:字段,函数,表达式,常量

查询结果是一张虚拟的二维表,不能对查询结果进行更新和删除。

查询常量

代码语言:javascript复制
SELECT 1;

查询函数

代码语言:javascript复制
SELECT VERSION();

表达式

代码语言:javascript复制
SELECT 100 200;
SELECT 1>2;-- mysql中没有boolean类型,0代表false,1代表true

查询单个字段

代码语言:javascript复制
SELECT name FROM temp_user;

多字段查询

代码语言:javascript复制
SELECT * FROM temp_user;
SELECT name,sex FROM temp_user;-- 在企业开发过程中推荐使用

多个字段 常量 函数 表达式

代码语言:javascript复制
SELECT name,sex,2,VERSION(),100 200,user_id*2 FROM temp_user;

IFNULL(参数1,参数2)

参数1放字段名,参数2放参数1字段为空时,你需要替换的值;

代码语言:javascript复制
SELECT name,IFNULL(birthday,'未知') FROM temp_user;

别名设置 AS

关键字设置,别名可以用单引号括起来,也可以不加单引号;

代码语言:javascript复制
SELECT name,IFNULL(birthday,'未知') AS 'birthday'FROM temp_user;

省去AS关键字,别名可以用单引号括起来,也可以不加单引号;

代码语言:javascript复制
SELECT name,IFNULL(birthday,'未知') birthday FROM temp_user;

去重 DISTINCT

代码语言:javascript复制
SELECT DISTINCT name FROM temp_user;

即将重复的name字段只显示一个;

字符拼接

在oracle和sqlserver中字符拼接直接用 可以拼接

语法:

代码语言:javascript复制
CONCAT(字符1,字符2);--将字符1和字符2拼接

代码示例:

代码语言:javascript复制
SELECT CONCAT('篮球',name) AS name FROM temp_user;

条件查询

语法结构:

代码语言:javascript复制
 SELECT 查询字段列表 FROM 表名 WHERE 筛选条件;

筛选条件

1. 条件表达式:>,>=,<,<=,=,!=,<>,IS NULL(空) , IS NOT NULL (非空);

2. 逻辑表达式:AND(与),OR(或),NOT(非);

3. 模糊查询:LIKE,BETWEEN AND,IN

条件查询的执行顺序

1. from

2. where

3. select

条件表达式

查询年龄>18的运动员

代码语言:javascript复制
SELECT * FROM temp_user WHERE age>18;

查询年龄不等于18

代码语言:javascript复制
SELECT * FROM temp_user WHERE age!=18;

代码语言:javascript复制
SELECT * FROM temp_user WHERE age<>18;

注意:对于NULL值的条件表达式,只能使用IS NULL或IS NOT NULL;

查询生日不为空的

代码语言:javascript复制
SELECT * FROM temp_user WHERE birthday IS NOT NULL; --不为空
SELECT * FROM temp_user WHERE birthday IS NULL;--为空

注意:如果筛选条件中包含2个或以上个条件表达式,我们应该在条件表达式中间使用逻辑表达式;

查询年龄>18的并且生日不能为空

代码语言:javascript复制
SELECT * FROM temp_user WHERE age>18 AND birthday IS NOT NULL;

查询年龄<=18 或生日为空的

代码语言:javascript复制
SELECT * FROM temp_user WHERE age<=18 OR birthday is null; 
SELECT * FROM temp_user WHERE NOT(age>18 AND birthday IS NOT NULL);

模糊查询

模糊查询的语法:

代码语言:javascript复制
SELECT 查询字段列表 FROM 表名 WHERE 字段名 LIKE '通配符 字符';

2种通配符

% 代表任意(0或多个)个任意字符

代码语言:javascript复制
SELECT * FROM temp_user WHERE name LIKE 'kobe%';-- 查询以kobe开头的用户
SELECT * FROM temp_user WHERE name like '%kobe';-- 以kobe结尾的用户
SELECT * FROM temp_user WHERE name like '%kobe%';-- 包含kobe的用户

_ 代表1个任意字符,如果要表示_字符,使用_

代码语言:javascript复制
SELECT * FROM temp_user WHERE name like 'kobe_';
-- 是以kobe开头,但是应该是5个字符
SELECT * FROM temp_user WHERE name like '_kobe';
-- 以kobe结尾,前面只能有一个任意字符
SELECT * FROM temp_user WHERE name like '_kobe_';
-- 包含kobe,前后只能有一个字符

0 人点赞