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] 可以直接省略,在为表取别名时,要保证不能与数据库中的其他表的名称冲突。