MySQL笔记------02

DQL语言(1)

  • 基础查询
     
     一、语法
      select 查询列表
      from 表名;
     
     二、特点
      1、查询列表可以是字段、常量、表达式、函数,也可以是多个
      2、查询结果是一个虚拟表
      
     三、示例
      1、查询单个字段
       select 字段名 from 表名;
     
      2、查询多个字段
       select 字段名,字段名 from 表名;
     
      3、查询所有字段
       select * from 表名
     
      4、查询常量
       select 常量值;
       注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要
     
      5、查询函数
       select 函数名(实参列表);
     
      6、查询表达式
       select 100/1234;
     
      7、起别名
       ①as
       ②空格
     
      8、去重
       select distinct 字段名 from 表名;
     
      9、+
       作用:做加法运算
       select 数值+数值; 直接运算
       select 字符+数值;先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算
       select null+值;结果都为null
     
      10、【补充】concat函数
       功能:拼接字符
       select concat(字符1,字符2,字符3,…);
     
      11、【补充】ifnull函数
       功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
       select ifnull(commission_pct,0) from employees;
     
      12、【补充】isnull函数
       功能:判断某字段或表达式是否为null,如果是,则返回1,否则返回0

  • 条件查询
     
     一、语法
      select 查询列表
      from 表名
      where 筛选条件
     
     二、筛选条件的分类
      1、简单条件运算符
        > < = <> != >= <= <=>安全等于
     
      2、逻辑运算符  
       && and
       || or
       ! not
      
      3、模糊查询
       like:一般搭配通配符使用,可以判断字符型或数值型
       通配符:%任意多个字符,_任意单个字符
       between and
       in
       is null /is not null:用于判断null值
      
      is null PK <=>
           普通类型的数值  null值  可读性
       is null   ×        √    √
       <=>    √        √    ×

  • 排序查询
     
     一、语法
       select 查询列表
       from 表
       where 筛选条件
       order by 排序列表 【asc}desc】
     
     二、特点
      1、asc :升序,如果不写默认升序
       desc:降序
      
      2、排序列表 支持 单个字段、多个字段、函数、表达式、别名
     
      3、order by的位置一般放在查询语句的最后(除limit语句之外)

  • 常见函数
     
     一、概述
      功能:类似于java中的方法
      好处:提高重用性和隐藏实现细节
      调用:select 函数名(实参列表);
     
     二、单行函数
      1、字符函数
       concat:连接
       substr:截取子串
       upper:变大写
       lower:变小写
       replace:替换
       length:获取字节长度
       trim:去前后空格
       lpad:左填充
       rpad:右填充
       instr:获取子串第一次出现的索引
      2、数学函数
       ceil:向上取整
       round:四舍五入
       mod:取模
       floor:向下取整
       truncate:截断
       rand:获取随机数,返回0-1之间的小数
     
      3、日期函数
       now:返回当前日期+时间
       year:返回年
       month:返回月
       day:返回日
       date_format:将日期转换成字符
       curdate:返回当前日期
       str_to_date:将字符转换成日期
       curtime:返回当前时间
       hour:小时
       minute:分钟
       second:秒
       datediff:返回两个日期相差的天数
       monthname:以英文形式返回月
     
      4、其他函数
       version 当前数据库服务器的版本
       database 当前打开的数据库
       user当前用户
       password(‘字符’):返回该字符的密码形式
       md5(‘字符’):返回该字符的md5加密形式
      
      5、流程控制函数
       ①if(条件表达式,表达式1,表达式2):如果条件表达式成立,返回表达式1,否则返回表达式2
       ②case情况1
        case 变量或表达式或字段
        when 常量1 then 值1
        when 常量2 then 值2
        …
        else 值n
        end
       ③case情况2
        case
        when 条件1 then 值1
        when 条件2 then 值2
        …
        else 值n
        end
     
     三、分组函数
     
      1、分类
       max 最大值
       min 最小值
       sum 和
       avg 平均值
       count 计算个数
     
      2、特点
       ①语法
       select max(字段) from 表名;
     
       ②支持的类型
        sum和avg一般用于处理数值型
        max、min、count可以处理任何数据类型
      
       ③以上分组函数都忽略null
      
       ④都可以搭配distinct使用,实现去重的统计
        select sum(distinct 字段) from 表;
     
       ⑤count函数
        count(字段):统计该字段非空值的个数
        count():统计结果集的行数
      
        count(1):统计结果集的行数  
           
       效率上:
        MyISAM存储引擎,count(
    )最高  
        InnoDB存储引擎,count(*)和count(1)效率>count(字段) 
           
       ⑥ 和分组函数一同查询的字段,要求是group by后出现的字段

  • 分组查询
     
     一、语法
      select 分组函数,分组后的字段
      from 表
      【where 筛选条件】
      group by 分组的字段
      【having 分组后的筛选】
      【order by 排序列表】
     
     二、特点
     
           使用关键字      筛选的表            位置
     分组前筛选  where        原始表          group by的前面
     分组后筛选  having      分组后的结果         group by 的后面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值