MySQL语句
创始人
2024-03-19 04:43:20

目录

一、常用查询

二、高级SQL语句

1、按关键字排序

单字段排序

按分数降序排列

结合条件过滤

多字段排序

查询学生信息先按兴趣id升序排列,相同分数的,id按升序排列 

区间判断及查询不重复记录

 嵌套/多条件 

 对hobbyid进行分组查询,并显示最大的id

按hobbyid相同的分组,计算相同的个数 

结合order by 把统计的id数量进行降序排列 

结合where语句,筛选分数大于等于80的分组,计算学生个数按降序排列 

3、限制结果条目

查询所有信息显示前4行记录

从第4行开始,往后显示3行内容 

结合order by 语句,按id的大小升序排列显示前三行 

 显示后三行并倒序排列

4、设置别名

列别名设置

表别名设置 

查询info表的记录数量,以number显示 

不用as也可以显示别名 

利用as,将查询的数据导入到另外一个表内 

也可以加入where语句判断 

查询名字里是 l 和 s 中间有一个字符的记录 

查询名字中间有 an 的数据 

查询 name 中名字以i结尾,i 前面有四个字符

 ​编辑


一、常用查询

(增、删、改、查)对MySQL数据库的查询,除了基本的查询外,有时间需要对查询结果集进行处理。列如只取10条数据、对查询结果进行排序或分组等等。

二、高级SQL语句

1、按关键字排序

create table info (id int,name varchar(10) primary key not null ,score decimal(5,2),address varchar(20),hobbid int(5));insert into info values(1,'liuyi',80,'beijing',2);
insert into info values(2,'wangwu',90,'shengzheng',2);
insert into info values(3,'lisi',60,'shanghai',4);
insert into info values(4,'tianqi',99,'hangzhou',5);
insert into info values(5,'jiaoshou',98,'laowo',3);
insert into info values(6,'hanmeimei',10,'nanjing',3);
insert into info values(7,'lilei',11,'nanjing',5);

单字段排序

按分数排序(默认升序)

select * from info1 order by score;   (asc默认省略)

 

按分数降序排列

select * from info1 order by score desc;

 

结合条件过滤

select * from info1 where address=’nanjing’ order by score;

 

多字段排序

order by 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,order by后面跟多个字段时,字段之间使用英文逗号隔开,优先级是按先后顺序而定,但order by 之后的第一个参数只有在出现相同值时,第二个字段才有意义

查询学生的信息并按照兴趣id升序排序,相同分数的按照id降序排序

select * from info1 order by hobbyid,id desc;

查询学生信息先按兴趣id升序排列,相同分数的,id按升序排列 

 

select * from info1 order by hobbyid,id;

区间判断及查询不重复记录

AND/OR(且/或的使用)

select * from info1 where id>2 and id<5;    #与select * from info1 where id>2 or id<5;     #且

 

 嵌套/多条件 

select * from info1 where id>2 or (id>3 and id <5);select * from info1 where score <70 or (score >90 and score <100);

 

查看分数大于70 小于等于95的数据
select * from info1 where score > 70 and score <=90;

查看分数小于70 或者大于90的数据,按降序显示
select * from info1 where score < 70 or score >90 order by score desc;

 

 

distinct 查询不重复记录
select distinct 字段 from 表名﹔
distinct 必须放在最开头
distinct 只能使用需要去重的字段进行操作
distinct 去重多个字段时,含义是:几个字段同时重复时才能被过滤,会默认按左边第一个字段为依据。

select distinct address from info1; 查看address有多少种

 对hobbyid进行分组查询,并显示最大的id

select hobbyid,max(id) from info1 group by hobbyid;

按hobbyid相同的分组,计算相同的个数 

select count(name),hobbyid from info1 group by hobbyid;

结合order by 把统计的id数量进行降序排列 

select count(id),hobbyid from info1 group by hobbyid order by count(id) desc;

结合where语句,筛选分数大于等于80的分组,计算学生个数按降序排列 

select count(name),score from info1 where score >= 80 group by hobbyid order by count(name) desc;

3、限制结果条目

LIMIT限制输出的结果记录,在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录(行)。有时候仅需要返回第一行或者前几行,这时候就需要用到 LIMIT 子句

 

select 字段,聚合函数 from 表名 (where 字段名(匹配) 数值) group by 字段名;
SELECT column1, column2, ... FROM table_name LIMIT [offset,] number

查询所有信息显示前4行记录

select * from info1 limit 4;

从第4行开始,往后显示3行内容 

select * from info1 limit 3,3;

结合order by 语句,按id的大小升序排列显示前三行 

select id,name from info1 order by id limit 3;

 显示后三行并倒序排列

select id,name from info1 order by id desc limit 3;

4、设置别名

在 MySQL 查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者多次使用相同的表,可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了,增强可读性

使用场景
1、对复杂的表进行查询的时候,别名可以缩短查询语句的长度
2、多表相连查询的时候(通俗易懂、减短 sql 语句)
 

 

对于列的别名:SELECT column_name AS alias_name FROM table_name;
对于表的别名:SELECT column_name(s) FROM table_name AS alias_name;

列别名设置

select name as 姓名,score as 成绩 from info;

表别名设置 

select i.name as xingming,i.score as chengji from info1 as i;

查询info表的记录数量,以number显示 

select count(*) as number from info1;

不用as也可以显示别名 

select count(*) number from info1;

利用as,将查询的数据导入到另外一个表内 

create table class2 as select * from info1;
或
create table class2 (select * from info1);

也可以加入where语句判断 

create table class3 as select * from info1 where score >=60;

 

5、通配符查询
通配符主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来。通常通配符都是跟 LIKE(模糊查询)一起使用的,并协同 WHERE 子句共同来完成查询任务。常用的通配符有两个,分别是:

%:百分号表示零个、一个或多个字符
_:下划线表示单个字符

查询名字是 l 开头的数据
 

select id,name from info1 where name like 'l%';

查询名字里是 l 和 s 中间有一个字符的记录 

select id,name from report where name like 'l_s%'

查询名字中间有 an 的数据 

select id,name from info1 where name like '%an%';

查询 name 中名字以i结尾,i 前面有四个字符

select id,name from info1 where name like '____i';

 

通配符 % 和 _ 不仅可以单独使用,也可以组合使用, 

 

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...