MySQL查询,条件查询、模糊查询、限制查询...

## 检索限制
SELECT DISTINCT event_id FROM `sign_guest`;	# distinct作用于它后面写的所有列
SELECT *  FROM `sign_guest` LIMIT 5;	# 返回数据不多余5条
SELECT *  FROM `sign_guest` LIMIT 2,4; # 第一个数是开始的位置,第二个数是要返回的数据条数
#### 排序检索

## order by 默认升序
SELECT * FROM sign_event ORDER BY `limit`;
# 按一个列排序,按照limit字段排序返回(默认的升序)
SELECT * FROM sign_event ORDER BY `limit`,`name`;	
# 按多个列排序,按照limit字段排序返回,limit列值相同时,对name排序;limit列值不同时,不对name排序

## 指定升降序
SELECT * FROM sign_event ORDER BY `limit` DESC;
# 按一个列排序,按照limit列的降序返回数据
SELECT * FROM sign_event ORDER BY `limit` DESC,`name`;
# 按多个列排序,按照limit降序排序,limit列值相同时,按name升序排序

## 升降序 + LIMIT ,找最大/小值
SELECT * FROM sign_event ORDER BY `limit`LIMIT 1;
#### 过滤检索

## 算数运算符 =、<>、!=、<、<=、>、>=
## 逻辑运算符 AND、OR、NOT
SELECT * FROM sign_event WHERE `limit`<1005 AND start_time >= '2023-08-21 00:00:00';
# 查询限制人数<1005 且 开始时间在2023-08-21 00:00:00之后
SELECT * FROM sign_event WHERE `limit`<1005 AND start_time BETWEEN '2023-08-21 00:00:00' AND '2023-08-23 00:00:00';
# 查询限制人数<1005 且 开始时间在2023-08-21 与 2023-08-23之间(也可用算术运算符写)

## 空值检查
SELECT * FROM sign_event WHERE create_time IS NOT NULL;
SELECT * FROM sign_event WHERE create_time IS NULL;

## in 与 not in
SELECT * FROM sign_event WHERE `limit` in (1005,1008,1010);
# 查询限制人数符合括号中的数据
SELECT * FROM sign_event WHERE `limit` not in (1005,1008,1010);
## 模糊检索
SELECT * FROM sign_guest WHERE `realname` LIKE'张%';
# 返回张姓的所有数据(如张三、张无忌、张那拉提)
SELECT * FROM sign_guest WHERE `realname` LIKE'%心%';
# 返回名字中有“心”的数据
SELECT * FROM sign_guest WHERE `realname` LIKE'张_';
# 返回张姓的、二字名字(如张三)的数据
SELECT * FROM sign_guest WHERE `realname` LIKE'张__'; # 两个 _
# 返回张姓的、三字名字(如张三、张无忌)的数据

# %  表示任何字符出现任意次数(无法匹配NULL)
# _  表示匹配单个字符
## 聚合函数
可以实现一些具体的功能,比如找最小值,找最大值,求和,计数等
# min()
语法:select min(字段) from 表名;
举例:select min(age) from student;
解析:从 student 中查询最小的 age

# max()
语法:select max(字段) from 表名;
举例:select max(age) from student;
解析:从 student 中查询最大的 age

# sum()
语法:select sum(字段) from 表名;
举例:select sum(age) from student;
解析:从 student 中统计所有 age 的和

# avg()
语法:select avg(字段) from 表名;
举例:select avg(age) from student;
解析:从 student 中对所有的 age 求平均值

# count()
语法:select count(字段) from 表名;
举例:select count(name) from student;
解析:从 student 中查询 name 的记录个数

# as
语法: select 函数(字段) as 别名 from 表名;
举例:select count(name) as 名字记录个数 from student;
解析:给从 student 中查询的 name 的记录个数 起了一个别名叫 '名字记录个数'


# RTrim() 去除列值右边的空格
# LTrim() 去除列值左边的空格
# Upper() 将文本转换为大写
# Lower() 将文本转换为小写

SELECT RTRIM(address),UPPER(`name`) ,start_time FROM sign_event;

你可能感兴趣的:(MySQL,mysql,数据库)