MySQL基础回顾02

DQL

        数据查询语言,DQL主要用于数据的查询,其基本结构是使用SELECT子句,FROM子句和WHERE子句的组合来查询一条或多条数据。DQL是实际开发过程中使用最多的。

查询

简单查询

        查询不会对数据库中的数据进行修改, 只是一种显示数据的方式。

  select 字段名,字段名,... from 表名;


        注意:
            1.查询所有字段的时候可以使用*代替所有字段
            2.查询部分字段时,必须手动指定要查询的字段名
            3.查询的字段可以进行数学计算,函数操作,...

条件查询

 select 字段名,字段名,...  from 表名 where 条件;

        如果查询语句中没有设置条件,就会查询所有的行信息 。在实际应用中,通常会指定查询的条件,对记录进行过滤。

        条件类型
              > < >= <= != <>(不等于)
              and && 都表示多个条件同时成立
              or || 都表示多个条件成立一个即可
              in(值,值,值,...) 等于()中任意一个值即可
        注意:
                值为null的时候,判断时必须要使用 is null 或者是 is not null  

        执行顺序:
              1.先执行from 也就是从哪个表查询
              2.然后执行where 也就是过滤条件是什么,去执行指定的过滤条件
              3.指定返回的字段值 也就是最后执行select

模糊查询

  select 字段名,字段名,... from 表名 where 字段名 like 条件;


模糊查询中的通配符:
       1.    %        0~n个字符
       2.     _        1个字符

分组查询


        按照指定的字段进行分组,相同的值分为一组,分组时可以查询要分组的字段,或者使用聚合函数进行统计操作

select 分组字段|分组函数(多行函数)from 表名 group by 分组字段 [having 条件];


执行流程:
        from -> where(分组前过滤) -> group by(分组) -> having(分组后过滤) -> select -> order by -> limit

过滤方式 特点
where 分组之前的过滤后边不能写多行函数
having 分组之后的过滤后边可以写多行函数

limit 关键字

        limit是限制的意思, 限制返回的查询结果的函数(通过limit函数,控制查询返回多少行数据)

        limit语法是MySQL的方言,用来完成分页

语法格式:

        select 字段1, 字段2 ... from 表名 limit offset, length;

        offset 起始行数, 从0开始, 如果省略则默认从0开始, 0代表MySQL中第一条数据

        length 返回的行数

排序

        通过order by子语句, 可以将查询出的结果进行排序(排序只是显示效果, 并不会影响真实的数据)。

        单列排序

                按照指定列中的值进行排序

select 字段名,字段名,... from 表名 [where 条件] order by 字段名; (默认为升序)
select 字段名,字段名,... from 表名 [where 条件] order by 字段名 asc;(手动升序) 
select 字段名,字段名,... from 表名 [where 条件] order by 字段名 desc;(手动降序) 


        多列排序

                按照指定多个列中的值进行排序,先按照指定的第一个列中的值进行排序,出现重复再按照第二个列中的值进行排序

select 字段名,字段名,... from 表名 [where 条件] order by 字段名[asc|desc],字段名[asc|desc];

函数

        将具体的操作封装在方法中,再调用方法来完成相关的操作


        单行函数

                对行中的字段进行操作,操作多少行返回多少行
                

        1.字符串函数
大小写处理函数
    lower(小写)|upper(大写)
字符处理函数
    length(字段名)                          返回占用的字节数 (UTF-8中一个中文占3个字节)
    concat(字段名,'值')                    向所选字段 后 拼接指定值
    concat('值',字段名)                     向所选字段 前 拼接指定值
    lpad(字段名,当前字段值的总长度, '值')     向所选字段从左侧填充到指定总长度,使用指定的值填充
    rpad(字段名,当前字段值的总长度, '值')     向所选字段从右侧填充到指定总长度,使用指定的值填充
    trim(字段名)                          去除左右空格
    ltrim(字段名)                         去除左空格
    rtrim(字段名)                         去除右空格
    replace(字段名,'旧值','要替换的值')       替换指定的字符
    reverse(字段名)                         字符翻转
    substr(字符串,起始位置,要截取的长度)       字符串截取
    substring(字符串,起始位置,要截取的长度)    字符串截取
        2.数值函数   
对数字进行操作
    abs(值)                              返回绝对值    
    ceil(值)                             向上取整
    floor(值)                            向下取整
    mod(值1,值2)                        返回值1/值2余数
    pi()                                 返回圆周率的值
    pow(值,次方)                        返回指定值的几次方
    rand()                               返回一个0~1之间的随机数
    round(num,小数点后要保留的位数n)     返回x四舍五入后的值,该值保留到小数点后n位
    truncate(num,小数点后要保留的位数n)  返回num被舍去至小数点后n位的值
        3.常用日期与时间函数
curdate() 返回当前日期
curtime() 返回当前时间
now()     返回当前日期和时间
sysdate() 返回该函数执行时的日期和时间
        4.流程控制函数
if(判断条件,t,f)           如果判断条件为真,则返回t,否则返回f
ifnull(value1, value2)    如果value1不为null,则返回value1,否则返回value2
nullif(value1, value2)    如果value1等于value2,则返回null,否则返回value1
case when [条件1] then 结果1 when [条件2] then 结果2... else result end   如果条件1为真,则返回结果1,···,否则返回result
        5.其他通用函数
DATABASE()返回当前数据库名
VERSION()返回当前MySQL的版本号
USER()返回当前登录的用户名
INET_ATON(IP)返回IP地址的数字表示
INET_NTOA返回数字代表的IP地址
CONVERT(data,  type)实现将数据data转换成type类型的操作
PASSWORD(str)实现对字符串str的加密操作
FORMAT(num, n)实现对数字num的格式化操作,保留n位小数
        多行函数

                对一列中的值进行操作,最终返回一个结果。也称分组函数,聚合函数。会自动忽略null值

max(字段)        计算指定列的最大值
min(字段)        计算指定列的最小值
avg(字段)        计算指定列的平均值
sum(字段)        计算指定列的数值和
count(字段)      统计指定列不为null的记录行数,常用count(1)

相关推荐

  1. MySQL基础回顾02

    2023-12-08 11:16:02       35 阅读
  2. mysql基础02

    2023-12-08 11:16:02       15 阅读
  3. 01_02_mysql02_DDL

    2023-12-08 11:16:02       41 阅读
  4. 深入浅出MySQL-01-【SQL基础

    2023-12-08 11:16:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 11:16:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 11:16:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 11:16:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 11:16:02       18 阅读

热门阅读

  1. 【CSP】202303-2_垦田计划Python实现

    2023-12-08 11:16:02       37 阅读
  2. 微信小程序加载动态svg数据图片

    2023-12-08 11:16:02       35 阅读
  3. WT588F02B单片机语音芯片在磁疗仪中的应用介绍

    2023-12-08 11:16:02       48 阅读
  4. 算法----钥匙和房间

    2023-12-08 11:16:02       34 阅读