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. 全文本搜索
暂时没接触过,先占坑