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 的后面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值