初遇MySQL,吃定MySQL。—— DQL查询语言

目录

前言:

相关概念:

1、基础查询:

2、条件查询:

3、排序查询:

4、分组查询:

5、连接查询:

内连接:

外连接:

6、子查询:

7、分页查询:

8、联合查询:


前言:

大家好啊!

最近博主也开始学习数据库了,

既然咱是第一次遇见MySQL,它MySQL也是第一次也是见到我,

那我凭什么要让着它?就要吃定它!拿捏它!把它给拿下!

相关概念:

数据库:指的是长期存在计算机内、有组织、可共享的、大量数据的集合。数据是按照特定的数据模型来组织、存储在数据库中的。

DB(database):数据库,保存一组有组织的数据的容器

DBMS(Database Management System):数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据

        常见DBMS:MySQL、Oracle、DB2、SqlServer等

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 等

1、基础查询:

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

2、条件查询:

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

3、排序查询:

语法:
    select
        要查询的东西
    from
        表
    where 
        条件
    order by 排序的字段|表达式|函数|别名 【asc|desc】
排序方式:
    ASC:升序,默认的
    DESC:降序

4、分组查询:

分组函数(又称为聚合函数或统计函数或组函数):

 count计算个数
     一般选择非空的列:主键
     count(*)
 max计算最大值
 min
 
计算最小值
sum
 
计算和
avg计算平均值

语法:
    select 查询的字段,分组函数
    from 表
    group by 分组的字段
面试相关:
     where 和 having 的区别?
        1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
        2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。

5、连接查询:

含义:当查询中涉及到了多个表的字段,需要使用多表连接

笛卡尔乘积:当查询多个表时,没有添加有效的连接条件,导致多个表所有行实现完全连接。

内连接:

SQL99语法:(推荐使用)
    select 字段列表 
    from 表名1 
    [inner] join 表名2 on 条件
    where 筛选条件
    group by 分组条件
    having 分组后的筛选条件
    order by 排序字段

分类:

等值连接、非等值连接、自连接

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

外连接:

分类:左外连接、右外连接、全外连接

左外连接:

 

右外连接:

 

全外连接:

特点:

1.查询的结果等于主表中所有的行,如果从和它匹配的将显示匹配行,如果从表没有匹配的则显示null

2.left join左边的就是主表,right join 右边的就是主表, full join两边都是主表

3.一般用于查询除了交集部分的剩余的不匹配的行

6、子查询:

含义:

查询中嵌套查询,称所嵌套查询为子查询或内查询,外部的查询语句则称为主查询或外查询。

理解:类似于我们学习java时的循环嵌套,一个for循环里面嵌套着另一个for循环,就是这种套娃的感觉。

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

7、分页查询:

语法:
    select 查询的字段,分组函数
    from 表
    limit [offset],size

        offset:起始的条目索引,从0开始

        size:代表显示的条目数

8、联合查询:

语法:

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值