1、USE 数据库A;        选择打开数据库A

2、SHOW BATABASES;        显示所有数据库

3、SHOW TABLES;        显示数据库内所有的数据表

4、SHOW COLUMNS FROM 数据表a; 

        或:DESCRIBE 数据表a;      显示数据表a的表列等信息

5、SHOW CREATE DATABASE;        显示创建数据库的MySQL语言

6、SHOW CREATE TABLE;        显示创建数据表的MySQL语言

7、SELECT b, c, d FROM 数据表a;        显示数据表a的b、c、d列

8、SELECT * FROM 数据表a;        显示数据表a的所有列

9、SELECT DISTINCT d FROM 数据表a;        去重,显示数据表a的d列所有不同值

?10、SELECT DISTINCT c, d FROM 数据表a;        去重,显示数据表a的c,d列组合的所有不同值?

11、SELECT d FROM 数据表a LIMIT 10;        显示数据表a的d列前10行数据

12、SELECT d FROM 数据表a LIMIT 10,10;        显示数据表a的d列10-20行数据

13、SELECT a.d FROM 数据表a;        使用完全限定表名显示数据表a的d列

14、SELECT a.d FROM 数据表A.a;        使用完全限定表名显示数据库A中数据表a的d列

15、SELECT b, c, d FROM 数据表a ORDER BY b, c;        显示数据表a的b、c、d列按照b列、c列(b列相同时)默认(升序)排序

16、SELECT b, c, d FROM 数据表a ORDER BY b DESC, c DESC;        显示数据表a的b、c、d列按照b列降序、c列(b列相同时)降序排序

17、16、SELECT b, c, d FROM 数据表a ORDER BY b DESC, c LIMIT 5;        显示数据表a的b、c、d列按照b列降序、c列(b列相同时)升序排序,显示前5条,LIMIT在ORDER BY之后

18、SELECT b, c, d FROM 数据表a WHERE b = 2 ORDER BY c;        显示数据表a当满足b=2时的b,c,d列,并按照c排序

19、WHERE子句操作符

操作符 

说明

=

等于

<>

不等于

!=

不等于

<

小于

<=

小于等于

>

大于

>=

大于等于

BETWEEN

在指定两个值之间

如果将值与字符串对比,则字符串需添加单引号,如果时数值比较则不需要加单引号

20、SELECT b, c, d FROM 数据表a WHERE b BETWEEN 2 AND 5 ORDER BY c;        显示数据表a当满足b大于等于2,小于等于5时的b,c,d列,并按照c默认(升序)排序

21、SELECT b, c, d FROM 数据表a WHERE b IS NULL ORDER BY c;        显示数据表a当满足b为NULL时的b,c,d列,并按照c默认(升序)排序

22、SELECT b, c, d FROM 数据表a WHERE b =5 AND c <=10;        显示数据表a当满足b等于5且c小于等于10时的b,c,d列

23、SELECT b, c, d FROM 数据表a WHERE b =5 OR c =10;        显示数据表a当满足b等于5或者c等于10时的b,c,d列

24、SELECT b, c, d FROM 数据表a WHERE (b =5 OR c =10) AND d<20;        显示数据表a当满足b=5或c=10且c小于20时的b,c,d列,(要加括号,因为AND运算优先级高于OR,不加括号易出错)

25、SELECT b, c, d FROM 数据表a WHERE b IN (50,100) ORDER BY c;        显示数据表a当满足b为50或100时的b,c,d列,并按照c排列,IN和OR具有相同的功能,IN最大的优点是可以包含其他SELECT语句

26、SELECT b, c, d FROM 数据表a WHERE b NOT IN (50,100) ORDER BY c;        显示数据表a当满足b不是50或100时的b,c,d列,并按照c排列

27、通配符:用来匹配值的一部分的特殊字符

28、%通配符,表示任何字符出现任意次数

29、SELECT name, c, d FROM 数据表a WHERE name LIKE 'zh%';        显示检索任意以zh开头的词,不管它有多少个字符,包括0个

30、SELECT name, c, d FROM 数据表a WHERE name LIKE '%ang%';        显示检索任意位置包含ang的词,不管它之前或之后有多少个字符

31、SELECT name, c, d FROM 数据表a WHERE name LIKE '_hang';        显示只检索以‘hang’结尾的共有5个子符的词,_通配符只匹配单个字符

32、SELECT name, c, d FROM 数据表a WHERE name REGEXP 'hang';                使用正则表达式匹配匹配name中包含hang的数据

33、SELECT name, c, d FROM 数据表a WHERE c REGEXP '10|20';                使用正则表达式匹配c中包含10或20的数据

34、SELECT name, c, d FROM 数据表a WHERE c REGEXP '[123]0';                使用正则表达式匹配c中包含10或20或30的数据

35、SELECT name, c, d FROM 数据表a WHERE c REGEXP '[^123]0';                使用正则表达式匹配c中不包含10或20或30的数据

36、SELECT name, c, d FROM 数据表a WHERE c REGEXP '[1-3]0';                使用正则表达式匹配c中包含10或20或30的数据

37、SELECT name, c, d FROM 数据表a WHERE c REGEXP '\\.';                用\\为前导匹配c中包含特殊字符(.)的数据

38、SELECT name, c, d FROM 数据表a WHERE c REGEXP '\\-';                用\\为前导匹配c中包含特殊字符(-)的数据

39、\\用来引用元字符

元字符

说明

\\f

换页

\\n

换行

\\r

回车

\\t

指表

\\v

纵向制表

40、匹配字符类


说明

[: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:]

包括空格在内的任意空白字符(同[\\t\\n\\r\\f\\v])

[:upper:]

任意大写字母(t同[A-Z])

[:xdigit:]

任意十六进制数字(同[a-fA-F0-9])

41、重复元字符

元字符

说明

*

0个或多个匹配

+

1个或个匹配(等于{1,})


0个或1个匹配(等于{0,1})

{n}

指定数目匹配

{n,}

不少于指定数目的匹配

{n,m}

匹配数目的范围(m不超过255)

42、SELECT name, c, d FROM 数据表a WHERE name REGEXP '\\([0-9] sticks?\\)';                    \\(匹配'(',[0-9]任意数字,sticks?匹配stick和sticks,因为?表示匹配0次或1次它前面的任何字符,\\)匹配')' 的数据

43、SELECT name, c, d FROM 数据表a WHERE c REGEXP '[[:digit:]]{11}';        使用正则表达式匹配任意11位数字

44、定位元字符

元字符

说明

^

文本的开始

$

文本的结尾

[[:<:]]

词的开始

[[:>:]]

词的结尾

45、SELECT name, c, d FROM 数据表a WHERE c REGEXP '^[0-9\\.]';        使用正则表达式匹配数字或.开头的数据

46、SELECT Concat(name, '(', c,')') FROM 数据表a ORDER BY name;        使用Concat拼接字符串输出'name(c)'组合的一列

47、SELECT Concat(LTrim(name), '(', RTrim(c),')') FROM 数据表a ORDER BY name;        使用Concat拼接字符串输出'name(c)'组合的一列,并去掉name左侧空白和c右侧空白,(Trim()删除两侧空白)

48、SELECT Concat(name, '(', c,')') AS

49、SELECT name, c*d AS c_d FROM 数据表a WHERE name=1005 ;        查询1005的数据,并输出name为1005的c列和d列相乘结果并命名为c_d

50、MySQL算术操作符

操作符

说明

+


-


*


/


51、SELECT name, Upper(name) AS BIG FROM 数据表a ORDER BY name ;        使用Upper函数将字符串字母转换为大写

52、常用文本处理函数

函数

说明

Left()/Right()

返回串左边/右边的字符

Length()

返回串的长度

Locate()

找出串的一个子串

Lower()/Upper()

将串转换为小写/大写

LTrim()/RTrim()/Trim()

去掉串左/右/两边的空格

Soundex()

返回串的SOUNDEX值

SubString()

返回字串的字符

53、日期和时间处理函数

函数

说明

AddDate()

增加一个日期(天、周等)

AddTime()

增加一个时间(时、分等)

CurDate()

返回当前日期

CurTime()

返回当前时间

Date()

返回日期时间的日期部分

DateDiff()

计算两个日期之差

Date_Add()

高度灵活的日期运算函数

Date_Format()

返回一个格式化的日期或时间串

Day()

返回一个日期的天数部分

Day0fweek()

对于一个日期,返回对应的星期几

Hour()

返回一个时间的小时部分

Minute()

返回一个时间的分钟部分

Month()

返回一个时间的月份部分

Now()

返回当前日期和时间

Second()

返回一个时间的秒部分

Time()

返回一个日期时间的时间部分

Year()

返回一个日期的年份部分

54、SELECT name, time FROM 数据表a WHERE Date(time)='2020-08-02;        查询时间为2020年8月2日的数据

*55、 SELECT name, time FROM 数据表a WHERE Year(time)=2020 AND Month(time)=8;        查询时间为2020年8月份的数据

56、常用的数值处理函数

函数

说明

Abs()

返回一个数的绝对值

Cos()

返回一个角度的余弦

Exp()

返回一个数的指数值

Mod()

返回除操作的余数

Pi()

返回圆周率

Rand()

返回一个随机数

Sin()

返回一个角度的正切

Sqrt()

返回一个数的平方根

Tan()

返回一个角度的正切

57、聚集函数

函数

说明

AVG()

返回某列的平均值

COUNT()

返回某列的行数

MAX()

返回某列的最大值

MIN()

返回某列的最小值

SUM()

返回某列值之和

58、SELECT AVG(age) AS avg_age FROM 数据表a;        查询数据表a的平均年龄

60、SELECT COUNT(*) AS count FROM 数据表a WHERE age=18;        查询数据表年龄为18的数量

61、SELECT SUM(salary) AS count_salary FROM 数据表a;        查询数据表a薪水的总和

62、SELECT AVG(DISTINCT prod_price) AS avg_price FROM 数据表a WHERE name=1003;        查询数据表a1003的不同产品的平均价格

63、SELECT name, COUNT(*) AS num_prods FROM 数据表a GROUP BY name;        查询不同名字的产品数量(GROUP BY 子句必须出现在WHERE子句之后,ORDER BY子句之前。除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子句中给出。若分组列中含有NULL值,则NULL作为一个分组返回,如果列中有多行NULL值,它们将分为一组。)

64、SELECT name, COUNT(*) AS num_prods FROM 数据表a GROUP BY name HAVING COUNT(*)>=2;        查询不同名字产品数量大于等于2的名字(WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤

65、SELECT子句顺序

子句

说明

是否必须使用

SELECT

要返回的列或表达式


FROM

从中检索数据的表

仅在从表选择数据时使用

WHERE

行级过滤


GROUP BY

分组说明

仅在按组计算聚集时使用

HAVING

组级过滤


ORDER BY

输出排序顺序


LIMIT

要检索的行数