侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

最全的mysql查询语句整理

数据库  /  管理员 发布于 6年前   161

-- 基本查询

select * from pet

-- 列出指定的列

select name, owner form pet

-- 直接进行算术运算,对字段起别名

select sin(1+2) as sin

--where 条件

select * from pet where (birth>'1980' and species='dog') or species='bird'

-- 对null 的条件

select * from pet where sex is not null

-- 所有名字第四位是n 的宠物信息是

select * from pet where owner like '___n%'

-- 所有主人名叫gwen 或benny 的宠物

select * from pet where owner in ('gwen' , 'benny')

-- 查询出生日期在90 年代是宠物,相当与 >= and   <=

select * from pet where birth between '1990' and '1999'

-- 按主人姓名排序,相同的按宠物姓名倒序排列

select * from pet order by owner, name desc

-- 查询性别为公的宠物,按生日倒序排列

select * from pet where sex='m' order by birth desc

--char_lenngth() 返回的字符的长度,length() 返回字节长度

SELECT owner,length(owner),char_length(owner) FROM pet p;

-- 列出养有宠物狗的人名

select distinct owner from pet where species='dog'

-- 用两种方法查询出所有狗和猫的名字、出生年份、出生月份

select name, left(birth,4) as year, mid(birth, 6, 2) as month from pet

where species='dog' or species='cat'

select name, year(birth) as year, month(birth) as month from pet

where species in('dog','cat')

-- 查询所有名字中存在字母'e' 的人,将他们养的宠物按类别、年龄排序

select name, species, birth

from pet

where owner like '%e%'

order by species,birth desc

-- 数字函数

select round(2.345,2), truncate(2.345,2), mod(323,5)

-- 日期函数

select now(), curdate(), curtime()

select adddate('2007-02-02', interval 31 day)

-- 求出所有宠物的年龄

select name,birth,

truncate(datediff(now(),birth)/365,0) as age1,

year(now())-year(birth) - (dayofyear(birth)>dayofyear(now())) as age2

from pet

-- 分组函数

select min(birth),max(birth),avg(birth),count(*),count(sex),

sum(birth)

from pet

-- 每种宠物各有几只

select species,count(*)

from pet

group by species

-- 查询年龄最大的宠物的信息

select * from pet where birth =

   (select max(birth) from pet)

-- 每年各出生了几只宠物

select year(birth), count(*) from pet group by year(birth)

-- 鸟和猫的性别比例

select species, sex, count(*)

from pet

where species in ('cat','bird')

group by species, sex

-- 各种宠物年龄的和

select species, sum(truncate(datediff(now(),birth)/365,0)) as SumAge

from pet

group by species

-- 数量大于1 的宠物种类

select species, count(*) as c

from pet

group by species

having c>=2

-- 基本双表关联

select a.name,a.species, a.sex,b.date, b.type, b.remark

from pet a,event b

where a.name = b.name

-- 查询宠物产仔时的年龄

select a.name, a.species,

truncate(datediff(b.date,a.birth)/365,0) as age

from pet a,event b

where a.name = b.name and b.type='litter'

--90 年代出生的狗的事件列表

select a.name,birth,species,sex,date,type,remark

from pet a,event b

where a.name=b.name and birth between '1990' and '1999'

and species='dog'

-- 活着的宠物按发生的事件类型分组,看各种事件发生的次数

select type, count(*)

from pet a, event b

where a.name=b.name and a.death is null

group by type

-- 记录的事件数量超过1 条的宠物信息

select a.name,species,sex,count(*)

from pet a, event b

where a.name = b.name

group by b.name

having count(*)>=2

-- 列出发生了两件事情的宠物的事件记录信息

select a.name,type,date,remark,b.species,b.sex,b.owner

from event a, pet b

where a.name=b.name and

   b.name in

   (

select name

from event

group by name

having count(*)=2

   )

-- 插入语句

insert into pet (name,species,birth)

values ('KKK','snake','2007-01-01');

insert into pet

values ('KK','Diane','cat','f',null,null);

insert into pet set name='k',owner='Benny'

-- 更新语句

update pet set species='snake',sex='f',birth=now()

where name='k'

-- 将事件表中生日的日期,更新到pet 表中相应宠物的birth 字段

update pet a

set birth = (

             select date

             from event b

             where a.name=b.name and b.type='birthday'

         )

where a.name in (

               select name

               from event

               where type='birthday'

            )

-- 删除语句

delete from pet where name like 'k%'

基本查询语句

SELECT * FROM `test` WHERE 1                  //简单查询
SELECT id,uid FROM newdb.`test` WHERE 1            //查询ID、UID等字段
SELECT remark as r FROM `test` WHERE 1             //别名查询
SELECT * FROM `test` WHERE id=1,3               //条件查询,相等
SELECT * FROM `test` WHERE id<>2,3               //条件按查,不相等
SELECT * FROM `test` WHERE id in (1,2,4)             //in查询,即查询ID为1,2,4的数据
SELECT * FROM `test` WHERE not in (2,3)              //in查询,查询ID不是2,3的数据
SELECT * FROM `test` WHERE `uid` like '%王%'         //like模糊查询,%*%前后匹配
SELECT * FROM `test` WHERE id BETWEEN 1 and 3        //条件查询,中间数据
SELECT * FROM `test` WHERE id NOT BETWEEN 1and3      //条件查询
SELECT * FROM `test` WHERE id=1 and `remark`='学生'        //多个条件
SELECT * FROM `test` group by `remark`                      //查询排序
SELECT * FROM `test` order by `regdate` ASC                         //order by升序排序,放到limit之前
SELECT * FROM `test` order by `regdate` ASC,id DESC            //order by按照注册时间升序,ID降序
ASC 升序、DESC降序。

SELECT * FROM `test` limit 0,3                                               //数据条数限制,输出三条
SELECT count(*) FROM `test` WHERE 1                                  //统计查询,可以查询单个统计,例如count(name)
SELECT max(id) FROM `test` WHERE 1                                   //统计ID最大值是多少
以下三个和以上max用法类似
MIN(*)最小值函数
AVG(*)平均值函数
SUM(*)累计值函数

基本插入语句:

insert into test (`id`,`uid`,`regdate`,`remark`) values ('','PHP100','2008-07-26','工人')    //ID自增,
insert into test (`id`,`uid`,`regdate`,`remark`) values ('','PHP100','now()','工人')
insert into test values ('','PHP200','now()','工人')                         //简便写法,但不提倡

更新语句:

update test set uid='php200' where id=6                             //set 后是要改后的内容。where 后是更改位置

删除语句:

Delete from dbname.`test` where id=3


  • 上一条:
    MySQL查询语句大全集锦
    下一条:
    Mysql判断表字段或索引是否存在
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 分库分表的目的、优缺点及具体实现方式介绍(0个评论)
    • DevDB - 在 VS 代码中直接访问数据库(0个评论)
    • 在ubuntu系统中实现mysql数据存储目录迁移流程步骤(0个评论)
    • 在mysql中使用存储过程批量新增测试数据流程步骤(0个评论)
    • php+mysql数据库批量根据条件快速更新、连表更新sql实现(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-06
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-05
    • 2018-10
    • 2018-11
    • 2020-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2021-02
    • 2021-04
    • 2021-07
    • 2021-08
    • 2021-11
    • 2021-12
    • 2022-02
    • 2022-03
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-07
    • 2023-08
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客