MySQL数据库语句

本文详细介绍了MySQL数据库的查询语句,包括按关键字排序、分组、设置别名、通配符、子查询以及各种连接查询。内容涵盖order by、group by、limit、as别名、子查询在insert、update、delete中的应用,还有视图、NULL值处理和存储过程等。通过实例展示了如何使用这些功能来高效地操作和查询数据库。
摘要由CSDN通过智能技术生成

MySQL数据库语句

按关键字排序

使用select语句可以将需要的数据从 mysql 数据库中查询出来,如果对查询的结果进行排序操作,可以使用 order by 语句完成排序,并且最终将排序后的结果返回给客户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段。

select 字段 from 表名 order by 字段 asc|desc

asc|desc

  • asc 是按照升序进行排名的,是默认的排序方式,即ASC可以省略
  • desc 是按照降序的方式进行排序的

order by 也可以通过 where 子句对查询结果进行进一步的过滤

可进行多字段的排序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nV3afkWx-1663862640067)(F:\typorase\jpg\434.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K2wR508d-1663862640068)(F:\typorase\jpg\435.png)]

按分数排序,默认不指定是升序排列

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZeVVO5Nj-1663862640069)(F:\typorase\jpg\436.png)]

按分数排序,降序排列

select * from info order by score desc;   

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OXdQVAdt-1663862640069)(F:\typorase\jpg\437.png)]

结合where进行条件过滤,筛选条件是nanjing的学生按分数把名字和分数降序

select name,score from info where address='nanjing' order by score desc;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ehFubt6Z-1663862640069)(F:\typorase\jpg\438.png)]

多字段排序

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

查询学生信息先按照hobbid降序 相同的在按照id降序排列
select * from info order by hobbid desc,id desc;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MJD0yagU-1663862640070)(F:\typorase\jpg\439.png)]

查询学生信息先按照hobbid升序 相同的在按照id升序排列
select * from info order by hobbid,id;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bMwBhN7T-1663862640070)(F:\typorase\jpg\440.png)]

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

AND/OR——且/或的使用
select * from info where id>2 and id<5;     #2<id并且<5

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6zQyz05h-1663862640070)(F:\typorase\jpg\442.png)]

select * from info where id>5 or id<2;      #id>5或者id<2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GvK3TBq1-1663862640070)(F:\typorase\jpg\442.png)]

嵌套/多条件
##先括号里的
select * from info where id=2 or (id>3 and id <5);  #相当于id=2或者id是4

select * from info where score <70 or (score >90 and score <100);   ##分数小于70或者  大于90小于100 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n1BQ6Nab-1663862640071)(F:\typorase\jpg\443.png)]

distinct查询不重复记录
select distinct 字段 from 表名﹔

distinct 必须放在最开头
distinct 只能使用需要去重的字段进行操作

distinct 去重多个字段时,含义是:几个字段同时重复时才能被过滤,会默认按左边第一个字段为依据。

select address from info group by address;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RlsOJp6g-1663862640071)(F:\typorase\jpg\445.png)]

对结果进行分组

通过 SQL 查询出来的结果,还可以对其进行分组,使用 GROUP BY 语句来实现 ,GROUP BY 通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数(COUNT)、 求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN),GROUP BY 分组的时候可以按一个或多个字段对结果进行分组处理。

按成绩score相同的分组,计算相同兴趣name的个数

select count(name),score from info group by score; 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WLRv7qIn-1663862640071)(F:\typorase\jpg\446.png)]

结合where语句

select count(name),hobbid from info where score >= 80 group by hobbid;  ##筛选出分数大于等于80的 hobbid分组 计算学生个数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lm0bBHK7-1663862640071)(F:\typorase\jpg\447.png)]

限制结果条目

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

select 字段 from 表名 limit [offset,]
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值