Mysql中DQL语句简单介绍

SQL语言分为几大类

  • DML(Data Manipulate Language):数据操纵语言,用于添加、删除、修改数据库记录,并检查数据完整性

    关键字:insert, delete, update 等

  • DDL(Data Define Languge):数据定义语言,用于库和表的创建、修改、删除

    关键字:create, drop,alter等

  • TCL(Data Control Language):数据事务语言

  • DQL(Data Query Language):数据查询语言,用来查询数据库中表的记录(数据)

    关键字:select, where 等

DQL语言作为在数据库各项操作中使用频率最多的语句,那自然是重中之重

那么今天主要介绍一下DQL中的各种查询方式   

1、简单查询

格式:

select     字段1,字段2,...    from   表名

查询表中给定字段的数据,如查询所有字段,可用 * 代替

基础查询
    1. 多个字段的查询
        select 字段名1,字段名2... from 表名;
         注意:
            * 如果查询所有字段,则可以使用*来替代字段列表。
    2. 去除重复:
         distinct
    3. 计算列
         一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
         ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
             表达式1:哪个字段需要判断是否为null
             如果该字段为null后的替换值。
    4. 起别名:
         as(可以省略)

2.条件查询

格式:

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

查询表中给定字段中符合条件的数据

运算符
     > 、< 、<= 、>= 、= 、<>
     BETWEEN...AND  
     IN( 集合) 
     LIKE:模糊查询
         占位符:
            _:单个任意字符
            %:多个任意字符
     IS NULL  
     and  或 &&
     or  或 || 
     not  或 !

3.排序查询

格式:

select      字段...     from    表名   where    条件     order  by   排序的根据字段    desc|asc 

查询表中给定字段中符合条件的数据,并按排序字段排序,可选desc(降序排序)和asc(升序排序,默认,可省略)

排序方式:
    * ASC:升序,默认的
    * DESC:降序
排序分类:
    1.按单个字段进行排序
    2.按多个字段排序
    3.按表达式排序
    4.按别名排序
    5.按函数排序
 注意:
     如果有多个排序条件,则当之前的条件值一样时,才会判断第二条件

4.分组查询

格式:

select      字段...     from    表名    group   by  分组的根据字段  having    条件

查询表中给定字段的数据,并按分组字段分组,分组后继续根据having后的条件进行筛选

特点:
    1、以上五个分组函数都忽略null值,除了 count(*)
    2、sum和avg一般用于处理数值型,max、min、count可以处理任何数据类型
    3、都可以搭配distinct使用,用于统计去重后的结果
    4、count的参数可以支持:
        字段、常量值,一般放1
注意:聚合函数的计算,排除null值。

5.连接查询

5.1内连接查询

格式:

select   字段...   from 表1   [innner]   join   表2  on  连接条件

查询两个通过连接条件连接的新表中给定字段的数据

注意:
    1. 使用表名前缀在多个表中区分相同的列
    2. 在不同表中具有相同列名的列可以用表的别名加以区分
    3. 如果使用了表别名,则在select语句中需要使用表别名代替表名
    4. 表别名最多支持32个字符长度,但建议越少越好

5.2外连接

格式:

select   字段...  from  表1  left | right [outer]  join  表2  on 条件

注意:
        左外连接查询的是左表所有数据以及其交集部分,右外连接查询的是右表所有数据以及其交集部分

6.子查询

概念:查询中嵌套查询,称之为子查询

 特点:
    1、子查询都放在小括号内
    2、子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧
    3、子查询优先于主查询执行,主查询使用了子查询的执行结果
    4、子查询根据查询结果的行数不同分为以下两类:
        ① 单行子查询
            结果集只有一行
            一般搭配单行操作符使用:> < = <> >= <= 
            非法使用子查询的情况:
                   a、子查询的结果为一组值
                b、子查询的结果为空
           ② 多行子查询
            结果集有多行
            一般搭配多行操作符使用:any、all、in、not in
            in: 属于子查询结果中的任意一个就行
            any和all往往可以用其他查询代替

7.分页查询

格式:

select    字段...    from    表    limit   起始的条目索引,条目数;

特点:
    1.起始条目索引从0开始

    2.limit子句放在查询语句的最后

8.联合查询

格式:

select   字段|常量|表达式|函数   from   表   where   条件

union
select   字段|常量|表达式|函数   from   表   where   条件

特点:
    1、多条查询语句的查询的列数必须是一致的
    2、多条查询语句的查询的列的类型几乎相同
    3、union代表去重,union all代表不去重 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值