文章目录
- MySQL高级语句
- older by 排序
- 区间判断查询
- 或与且(or 与and)
- 嵌套查询(多条件)
- 查询不重复记录distinct
- count 计数
- 限制结果条目limit
- 别名as
- 常用通配符
- 结语
MySQL高级语句
1构建测试用表
create table test1 (id int primary key,name char(30) not null,gpa decimal(3,2),hobbid int(2));
insert into test1 values(1,'baijiahe',3.3,2);
insert into test1 values(2,)'Hu Zexing',2.9,2);
....
older by 排序
1.order by 排序默认升序
select * from test1 order by gpa;
2.添加desc 选线可以降序排序
select * from test1 order by gpa desc;
3.order by 还可以使用where来过滤数据
select * from test1 where hobbid=4 order by gpa desc;
4.order by 还可以多个数值一起排序
select * from test order by gpa,hobbid,id desc;
上面表示按绩点(gpa)排名,分数相同的按照hobbid来序排序hobbid相同按照 id降序排序
select * from test order by gpa desc,hobbid desc,id desc;
区间判断查询
查询GPA大于2.7的数据
select * from test1 where gpa>2.7;
或与且(or 与and)
查询GPA>2.7或者id=7的数据
select * from test1 where gpa>2.7 or id=7;
查询GPA>2.7且GPA<=3.2的数据
select * from test1 where gpa>2.7 and gpa<=3.2;
嵌套查询(多条件)
查找gpa>2.4且(id大于4或者hobbid=2)的数据
select * from test1 where gpa>2.4 and(id>4 or hobbid=2);
查询不重复记录distinct
select distinct hobbid from test;
查询test表格中 hobbid项中不重复的数据
count 计数
统计一个有多少数据(包括空行),count(主键名)则不包括空行
select count(*) from test1;
统计表中hobbid不同的个数
select count(distinct hobbid) from test1;
限制结果条目limit
注:本文忽略第0行
显示表至第二行
select * from test1 limit 2;
从第二行开始显示,至第五行
select * from test1 limit 2,5
查询前五
select * from test1 order by gpa desc limit 1,5;
别名as
使用别名显示
select name 名字, gpa 绩点 from test1;
创建表别名
create table t1 as select * from test1;
用别名查询
select name,gpa from t1;
常用通配符
1.% - 通配符,匹配任何数量的字符。
2._ - 通配符,匹配任何单个字符。
例如
mysql> SELECT * FROM t1 AS t WHERE t.name LIKE 'w%';
SELECT * FROM test1 WHERE gpa LIKE '3___';
结语
当然,以下是关于MySQL高级查询语句的通用整理,不带具体数据:
- ORDER BY 排序:
- 升序排序:
ORDER BY column_name
- 降序排序:
ORDER BY column_name DESC
- 多条件排序:
ORDER BY column1, column2 DESC
- 升序排序:
- 区间判断查询:
- 查询满足特定条件的数据:
WHERE column_name BETWEEN value1 AND value2
- 查询满足特定条件的数据:
- 或与且(OR 与 AND):
- 组合多个条件进行查询:
WHERE column_name = 'value' OR column_name2 = 'value2'
- 组合多个条件进行查询:
WHERE column_name = 'value' AND column_name2 = 'value2'
- 组合多个条件进行查询:
- 查询不重复记录(DISTINCT):
- 去除重复记录:
SELECT DISTINCT column_name FROM table_name
- 去除重复记录:
- COUNT 计数:
- 统计记录数:
SELECT COUNT(*) FROM table_name
- 统计记录数:
- 限制结果条目(LIMIT):
- 限制结果数量:
LIMIT offset, limit_number
- 限制结果数量:
- 别名(AS):
- 为列设置别名:
SELECT column_name AS alias_name FROM table_name
- 为表设置别名:
SELECT * FROM table_name AS alias_name
- 为列设置别名:
- 常用通配符:
%
:匹配任何数量的字符。_
:匹配任何单个字符。
这些语句是MySQL中常见的高级查询操作,它们可以帮助您有效地管理和查询数据。如果您有其他问题或需要进一步的帮助,请告诉我。