MySQL 8.0 查询数据

       
MySQL 目录
             1、MySQL 8.0 引擎和索引
             2、MySQL 8.0 查询数据
             3、MySQL 8.0 操作数据库和数据表
             4、Mysql 8.0 权限概述与授权(一)
             5、Mysql 8.0 权限概述与授权(二)
             6、Mysql 8.0 权限概述与授权(三)
             7、持续更新中…
       
       

1.查询所有字段

SELECT * FROM 表名;

2、查询单个字段

SELECT 列名 FROM 表名;

3、查询多个字段

SELECT 字段名1,字段名2,...,字段名n FROM 表名;

提示:MySQL 中的SQL语句是不区分大小写的,因此SELECT 和 select 的作用是相同的。想让自己看的像专业点,那就关键字使用大写,数据列和表名使用小写。

4、查询指定记录

SELECT 字段名1,字段名2,...,字段名n
FROM 表名
WHERE 查询条件;
---WHERE子句可以对数据进行过滤。

5、带IN关键字的查询

​ IN操作符用来查询满足指定范围内的条件记录,使用IN操作符将所有检索条件用括号括起来,检索条件之间用逗号分隔开,只要满足条件范围内的一个值即为匹配项。

6、带BETWEEN AND 的范围查询

​ BETWEEN AND 用来查询某个范围内的值,该操作符需要两个参数,即范围的开始值和结束值,如果字段值满足指定的范围查询条件,这些记录就会被返回。

BETWEEN AND 操作符前可以加关键字NOT,意思就是范围之外的值。

SELECT * FROM 表名 WHERE 范围字段 [NOT] between num  AND num;

7、模糊查询

1、查询以S开头
SELECT * FROM 表名 WHERE 字段 LIKE 's%';
2、查询以n结尾
SELECT * FROM 表名 WHERE 字段 LIKE '%n';
3、查询 包含L
SELECT * FROM 表名 WHERE 字段 LIKE '%L%';
4、查询第二个字是L的
SELECT * FROM 表名 WHERE 字段 LIKE '_L%';
---%代表任意多个字符,_代表一个字符。

8、去重查询

SELECT DISTINCT 字段名 FROM 表名;

9、排序(ORDER BY 字段ASC(默认)| DESC)

SELECT * FROM 表名 ORDER BY 字段1,字段2 DESC;
---在对多列进行排列的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一的,将不再对第二列进行排序。

10、分组查询

[GROUP BY 字段] [HAVING <条件表达式>]
---字段值为进行分组时所依据的列名称;“<条件表达式>”指定满足表达式限定条件的结果将被显示。

11、限制结果查询(limit)

SELECT * FROM 表名 LIMIT [位置偏移量,] 行数;
---第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,就会从表中的第一条记录开始(第一条记录的位置偏移量为0,第二条记录的位置偏移量是1,以此类推);第二哥参数“行数”指示返回的记录条数。

12、集合函数查询

  • MySQL 聚会函数
AVG()									返回某列的平均值
COUNT()								返回某列的个数
MAX()									返回某列的最大值
MIN()									返回某列的最小值
SUM()									返回某列值的和
----下面是例子
SELECT COUNT(*) AS total_num FROM 表名;
COUNT(*)返回 表名 中记录的总行数,返回的总数的列名称是total_num.
其他函数类似;

13、连接查询

  • 内连接

    连接表都匹配的记录才会出现在最终的结果集

    连接顺序无关

    1、查询两个表中对应信息

    SELECT * FROM 表名1, 表名2 WHERE 表名1.字段 = 表名2.字段
    
    #INNER JOIN ... ON ...
    SELECT * FROM emp INNER JOIN dept ON emp.deptno = dept.deptno;
    #INNER JOIN ...USING...
    SELECT * FROM emp INNER JOIN dept USING(deptno)
    
  • 外连接

    左外连接: LEFT[OUTER]JOIN…ON…

    右外连接: RIGHT[OUTER]JOIN…ON…

    以其中一张表为驱动表,与另一张表的每条记录进行匹配,如果能够匹配,则进行并联并展示,如果不能匹配,则以null填充

    与连接顺序有关

    SELECT * FROM emp LEFT JOIN dept ON emp.deptno = dept.deptno
    
  • 自连接

    SELECT * FROM emp e1 LEFT JOIN emp e2 ON e1.ngr = e2.empno;
    --- e1和e2都是别名,中间省略了AS
    

14、为表和字段取别名

表名 [AS] 表别名 
---[AS]  可以直接省略,在为表取别名时,要保证不能与数据库中的其他表的名称冲突。

猜你喜欢

转载自blog.csdn.net/weixin_45215649/article/details/107323426
今日推荐