《MySQL必知必会》笔记 -- 数据查询语言DQL

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。详细解读

1.

SHOW DATABASES :返回可用数据库的一个列表
USE database_name :使用数据库database_name
SHOW TABLES :返回当前数据库内可用表的列表
SHOW COLUMNS FROM table_name返回表table_name的字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息
SHOW CREAT DATABASE_NAME:显示创建数据库DATABASE_NAME的MySQL语句
SHOW CREAT TABLE_NAME:显示创建数据库TABLE_NAME的MySQL语句

2. 查询语句

SELECT 
*/column_name/DISTINCT(column_name)/column_name1,column_name2,...
/拼接字段(concat() AS new_column_name)/对字段进行算术计算(加减乘除等)形成新字段
/文本处理函数/日期和时间处理函数/子查询
FROM table_name/table_A INNER JOIN/LEFT OUTER JOIN/RIGHT OUTER JOIN/自联结
WHERE logical_test(=/<>/!=//<=/>=/BETWEEN/IS NULL)
AND WHERE (logical_test1 AND logical_test2) OR logical_test3
AND WHERE column_name IN / NOT IN  (value1,value2,...)
AND WHERE column_name LIKE  'JACKY%' / 'JACK_'  #  % 匹配任意字符出现任意次数,_ 匹配单个字符
AND  WHERE '正则表达式'
AND WHERE column_name IN (子查询)
GROUP BY column_name1,column_name2
HAVING logical_test
ORDER BY column_name/(column_name1  DESC,column_name2,...)
LIMIT n/LIMT m,n/LIMIT offset m

查询1
UNION/UNION ALL
查询2
ORDER BY

3. MySQL正则表达式

用法:

SELECT column_name
FROM table_name
WHERE column_name REGEXP '正则表达式'
  • 进行OR匹配
    '1000|2000' 可匹配出:
    JetPack 1000
    JetPack 2000
  • 匹配几个字符之一
    [123]的意思是匹配1或2或3。
    1 ton
    2 ton
    3 ton
    都可被匹配出来。
  • 匹配范围
    集合可用来定义要匹配的一个或多个字符。
    [0123456789]将匹配数字0到9,可简化为[0-9]
    同理,[a-z]匹配任意字母字符。
  • 匹配特殊字符
    用\对特殊字符进行转义
    \- 表示查找-,\| 表示查找|。
    多数正则表达式实现使用单个反斜杠转义特殊字符,以便能使用这些字符本身。但MySQL要求两个反斜杠,MySQL自己解释一个,正则表达式库解释另一个。
  • 匹配字符类
说明
[:alnum:] 任意字母和数字(同[a-zA-Z0-9])
[:alpha:] 任意字符(同[a-zA-Z])
[:blank:] 空格和制表(同[\t])
[:cntrl:] ASCII控制字符(ASCII 0到31和127)
[:digit:] 任意数字(同[0-9])
[:graph:] 与[:print:]相同,但不包括空格
[:lower:] 任意小写字母(同[a-z])
[:print:] 任意可打印字符
[:punct:] 既不在[:alnum:]又不在[:cntrl:]中的任意字符
[:space:] 包括空格在内的任意空白字符(同[\f\n\r\t\v])
[:upper:] 任意大写字母(同[A-Z])
[:xdigit:] 任意十六进制数字(同[a-fA-F0-9])
  • 匹配多个实例
元字符 说明
* 0个或多个字符(等于{0,)
+ 1或多个字符(等于{1,)
? 0个或1个匹配(等于{0,1})
{n} 指定数目的匹配
{n,} 不少于指定数目的匹配
{n,m} 匹配数目的范围(m不超过255)
  • 定位符
元字符 说明
'^' 匹配文本的开始
'$' 匹配文本的结尾
[[:<:]] 匹配词的开始
[[:>:]] 匹配词的结尾

4. 文本处理函数

举例:

SELECT Upper(column_name)  AS new_column_name
FROM database_name
函数 说明
Left() 返回串左边的字符
Right() 返回串右边的字符
Upper() 将串转换为大写
Lower() 将串转换为小写
LTrim() 去掉串左边的空格
RTrim() 去掉串右边的空格
Length() 返回串的长度
Locate() 找出串的一个子串
SubString() 返回子串的字符
Soundex() 返回串的SOUNDEX值

4.日期和时间处理函数

直接附上一篇有关函数及示例的博客(https://www.cnblogs.com/beyonds/p/9022479.html)

5. 数值处理函数

Abs/Cos/Sin/Tan/Pi/Mod/Exp()/Sqrt/Rand()

6. 聚集函数

AVG/COUNT/MAX/MIN/MAX()

7. 全文本搜索

暂时没接触过,先占坑

你可能感兴趣的:(《MySQL必知必会》笔记 -- 数据查询语言DQL)