《MySQL必知必会》总结1

一、数据库常用操作

注意事项:

  • SQL不区分大小写,一般关键词大写,列表名小写
  • 语句后面加分号,空格被忽略,可以分行写

1 SHOW语句

SHOW DATABASES;   //显示所有数据库

SHOW TABLES;   //显示当前数据库中所有表

SHOW COLUMNS 
FROM 表名  //显示表名中的所有列

2 SELECT语句

SELECT 列名1,列名2 
From 表名;//返回的顺序每次都会不一致

SELECT * 
FROM 表名;   //检索所有列

3 DISTINCT语句

SELECT DISTINCT 列名 
FROM 表名;  //检索列中值不同的行,DISTINCT应用于后续所有列,不能单独使用

4 LIMIT限制条件

SELECT 列名 
FROM 表名 
LIMIT 开始行数,要检索的行数;   //表从行0开始
或者 
LIMIT 要检索的行数 OFFSET 开始行数;   //等价上

5 ORDER BY 排序

SELECT 列名
FROM 表名 
ORDER BY 列名1,列名2;   //严格先按列名1中字母或数值顺序对列名进行排序,然后再按列名2进行排列,如姓名检索
或者 
ORDER BY 列名1 DESC,列名2;   //默认升序(数据库中设置好的),DESC为降序,只作用于当前列

SELECT 列名 
FROM 表名 
ORDER BY 列名 DESC
LIMIT 1;  //检索最大值/最小值

6 WHERE过滤行检索

SELECT 列名 
FROM 表名 
WHERE  (列名=某一个列值
               OR 列名!=‘某个值’
               AND 列名<>‘某个值’ //等价于!=
               列名 BETWEEN 开始值 AND 结束值
               列名 IS NULL  //检索为NULL的行,没有IS NOT NULL
               列名 IN (列值1,列值2)  //相当于OR,但比OR快,更直观
               列名 NOT IN (列值1,列值2)  //不匹配的行
               列名 LIKE ‘通配符’

7 操作符LIKE+通配符

  • 通配符可在搜索模式中任意位置使用,但不要过度使用,查询效率慢
  • 1)%表示任何字符出现任意次数,包括0次;在结尾加上%可以去掉尾空格;不能匹配NULL
  • 2)_只匹配一个字符,不多不少

8 操作符REGEXP----正则表达式

WHERE 列名 REGEXP ‘.000’ //.匹配任意一个字符,且只返回一个WHERE 列名 REGEXP BINARY ‘.0’//本身不区分大小写,加上BINARY后区分
WHERE 列名 REGEXP A|B|CD  //  |等价于OR,作用于整个串,匹配A、B或者CD
WHERE 列名 REGEXP [A|B|C]D //匹配AD,BD,CD
WHERE 列名 REGEXP [A-C]D //匹配AD,BD,CD
WHERE 列名 REGEXP [ ^ ABC ]D //匹配除了AD,BD,CD
WHERE 列名 REGEXP ‘^ [0 - 9]'  //从字符串开头进行查找
WHERE 列名 REGEXP ‘[0-9]’  //从字符串任意位置进行查找

在这里插入图片描述
重复元字符表示重复前面的要求
在这里插入图片描述
9 转义字符
匹配特殊字符,需要以\ \为前导,例如 \ \ (A \ \ )表示(A)
在这里插入图片描述
10 AS 重命名

SELECT 列名1*列名2 AS 列名3  //将相乘列命名为列名3

11 GROUP BY 分组

SELECT id,COUNT(*) AS num 
FROM products 
GROUP BY id //对id列分组,在每组上进行计数,而不是在整体上计数。

12 HAVING 过滤分组

SELECT id,COUNT(*) AS num 
FROM products 
WHERE price>10 
GROUP BY id 
HAVING COUNT(*)>2 
ORDER BY num//先过滤price>10的行,再过滤分组计数值大于2,按num排序

13 相关总结

  1. ORDER BY 和 GROUP BY 对比

在这里插入图片描述

  1. SELECT语句的顺序

在这里插入图片描述
在这里插入图片描述

二、数据库处理相关函数

1.文本处理函数
在这里插入图片描述
在这里插入图片描述
2.时间处理函数

WHERE DATE(日期列) = ‘2000-01-20’ //匹配2000-01-20日 
WHERE YEAR(日期列)=2000 AND MONTH(日期列)=9 //匹配2000年9月所有日期

在这里插入图片描述
3.数值处理函数
在这里插入图片描述
4.SQL聚集函数

AVG(列名):只能求特定列,忽略NULL
COUNT(*):记所有行数,包括NULL
COUNY(列名):记特点列的行数,不包括NULL

在这里插入图片描述

发布了60 篇原创文章 · 获赞 55 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/MARY197011111/article/details/85683519
今日推荐