码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • mysql 之进阶查询语句


    目录

    一、常用查询

    1、order by按关键字排序  ☆

    1、升序排序

    2、降序排序 (order by ... desc)

    3、结合 where 进行条件过滤再排序

    4、多字段 倒序排序

    2、and和or判断

    1、and和 or 的使用

    2、嵌套、多条件使用 

    3、distinct 查询不重复记录

    4、group by 对结果进行分组

    5、limit限制结果输出条目

    6、设置别名(alias简写as)

    1、给字段设置别名

    2、查询表的记录数量,以别名显示

    3、使用as,将查询的数据导入到另一个表内

    7、通配符查询

    二、子查询  ☆

    1、select查询

    1、相同表查询

    2、多表查询

    3、not取反,将子查询的结果,进行取反操作

    4、结合as别名进行子查询

    2、insert插入

    3、update修改

    4、delete删除

    5、exists布尔输出

    三、mysql视图

    1、介绍视图

    2、视图与表的区别

    3、视图与表的联系

    4、单表创建视图

    5、多表创建视图

    6、修改视图或原表内容

    1、修改原表的内容

    2、修改视图信息

    3、删除视图内信息

    7、删除视图表

    四、NULL值

    1、修改NULL值

    2、查询空值与非空值


    一、常用查询

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

    1、order by按关键字排序  ☆

    使用SELECT语句可以将需要的数据从MySQL数据库中查询出来,如果对查询的结果进行排序,可以使用 order by 语句来对语句实现排序,并最终将排序的结果返回给用户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段。

    select 字段1,字段2… from 表名 order by 字段1,字段2…【asc】

    #查询结构以升序方式显示,asc可以省略

    select 字段1,字段2… from 表名 order by 字段1,字段2…desc

    #查询结构以降序方式显示

    ASC是按照升序进行排序,是默认的排序方式,即ASC可以省略
    select语句中如果没有指定具体的排序方式,则默认按ASC方式进行排序。
    desc是安降序方式进行排序,
    order by 前面也可以使用weher子句对查询结构进一步过滤

    1、升序排序

    create table test1(id int(10) not null,name varchar(15) not null,age int(3),score decimal(4,1),address varchar(20));

    insert into test1 values(3,'美女',18,81,'南京');
    insert into test1 values(1,'帅哥',20,50,'北京');

    insert into test1 values(2,'靓妞',21,75,'天津');

    insert into test1 values(4,'靓辣妹',23,92,'重庆');

    select *from test1;

    select id,name,age from test1 order by id asc;  基于id进行升序排列

    2、降序排序 (order by ... desc)

    select *from test1;

    select id,name,score from test1 order by score desc; 

    3、结合 where 进行条件过滤再排序

    insert into test1 values(5,'小姐姐',17,21,'南京');

    insert into test1 values(6,'小哥哥',25,99.1,'南京');

    select *from test1;

    select id,name,score,address from test1 where address='南京' order by score desc; 

    address 为南京的 score进行降序

    4、多字段 倒序排序

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

    update test1 set address='重庆' where id=5;

    insert into test1 values(7,'牛牛',32,77,'天津');
    select *from test1;

    select id,name,score,address from test1 order by address,score desc;

    先按address进行降序排序,如address有相同就按score进行降序排序

    2、and和or判断

    在大型数据库中,有时查询数据需要数据符合某些特点条件
    AND/OR 且/或 和shell脚本中一样使用方法

    1、and和 or 的使用

    select * from test1;

    select id,name,score,address from test1 where score>=80; 查看score>=80

    select id,name,score,address from test1 where score>=80 order by score desc;  查看score>=80 并进行倒序排列

     mysql> * from test1;

     select id,name,score,address from test1 where score>=80 and score<100;  查看[80,100)

     select id,name,score from test1 where score<60 or score>80;

    2、嵌套、多条件使用 

    select name,id,score from test1 where score<60 or (score>80 and score<100);

    select name,id,score from test1 where score<60 or (score>80 and score<100) order by score desc;
     select * from test1;

    select name,id,score from test1 where score>60 or (score>80 and score<100); 

    select name,id,score from test1 where score>60 and (score>80 and score<100);

    3、distinct 查询不重复记录

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

    4、group by 对结果进行分组

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

    对于group by后面的字段的查询结果进行汇总分组,通常是结合聚合函数一起使用的

  • 相关阅读:
    Java 双门双向门禁控制板实时监控源码
    量化交易全流程(五)
    Java释疑
    Spring Cloud框架学习-Spring Cloud Gateway
    python3 爬虫(初试牛刀)
    SCI投稿:投稿附言cover letter的写法和模板!
    Linux Vi和Vim编辑文件常用命令
    sqlalchemy-orm联表查询指定字段
    NLP 模型中的偏差和公平性检测
    Golang 乐观锁实战
  • 原文地址:https://blog.csdn.net/m0_71521555/article/details/126932288
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号