文章目录

  • 1. SQL执行顺序
  • 2 正则表达式使用
  • 3 MySQL 常用函数
  • 3.1数字函数
  • 3.2日期函数
  • 3.3聚合函数
  • 4 MySql中常用工具
  • 4.1 mysql
  • 4.1.1 连接选项
  • 4.2 mysqladmin
  • 4.3 mysqlbinlog
  • 4.4 mysqldump
  • 4.4.1 连接选项
  • 4.4.2 输出内容选项
  • 4.5 mysqlimport/source
  • 4.6 mysqlshow



1. SQL执行顺序

编写顺序

1	SELECT DISTINCT
2	<select list>
3	FROM
4	<left_table> <join_type>
5	JOIN
6	<right_table> ON <join_condition>
7	WHERE
8	<where_condition>
9	GROUP BY
10	<group_by_list>
11	HAVING
12	<having_condition>
13	ORDER BY
14	<order_by_condition>
15	LIMIT
16	<limit_params>

执行顺序

FROM        	 		<left_table>
ON            	  		<join_condition>     
<join_type>     JOIN    <right_table>
WHERE     		 		<where_condition>
GROUP BY      			<group_by_list>
HAVING  				<having_condition>
SELECT DISTINCT       <select list>
ORDER BY        		<order_by_condition>
LIMIT					<limit_params>

2 正则表达式使用

正则表达式(Regular Expression)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串

符号

含义

^

在字符串开始处进行匹配

$

在字符串末尾处进行匹配

.

匹配任意单个字符, 包括换行符

[…]

匹配出括号内的任意字符

[^…]

匹配不出括号内的任意字符

a*

匹配零个或者多个a(包括空串)

a+

匹配一个或者多个a(不包括空串)

a?

匹配零个或者一个a

a1

a2

a(m)

匹配m个a

a(m,)

至少匹配m个a

a(m,n)

匹配m个a 到 n个a

a(,n)

匹配0到n个a

(…)

将模式元素组成单一元素

select * from emp where name regexp '^T';

select * from emp where name regexp '2$';

select * from emp where name regexp '[uvw]';

3 MySQL 常用函数

3.1数字函数

函数名称

作 用

ABS

求绝对值

SQRT

求二次方根

MOD

求余数

CEIL 和 CEILING

两个函数功能相同,都是返回不小于参数的最小整数,即向上取整

FLOOR

向下取整,返回值转化为一个BIGINT

RAND

生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列

ROUND

对所传参数进行四舍五入

SIGN

返回参数的符号

POW 和 POWER

两个函数的功能相同,都是所传参数的次方的结果值

SIN

求正弦值

ASIN

求反正弦值,与函数 SIN 互为反函数

COS

求余弦值

ACOS

求反余弦值,与函数 COS 互为反函数

TAN

求正切值

ATAN

求反正切值,与函数 TAN 互为反函数

COT

求余切值

字符串函数

函数名称

作 用

LENGTH

计算字符串长度函数,返回字符串的字节长度

CONCAT

合并字符串函数,返回结果为连接参数产生的字符串,参数可以使一个或多个

INSERT

替换字符串函数

LOWER

将字符串中的字母转换为小写

UPPER

将字符串中的字母转换为大写

LEFT

从左侧字截取符串,返回字符串左边的若干个字符

RIGHT

从右侧字截取符串,返回字符串右边的若干个字符

TRIM

删除字符串左右两侧的空格

REPLACE

字符串替换函数,返回替换后的新字符串

SUBSTRING

截取字符串,返回从指定位置开始的指定长度的字符换

REVERSE

字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串

3.2日期函数

函数名称

作 用

CURDATE 和 CURRENT_DATE

两个函数作用相同,返回当前系统的日期值

CURTIME 和 CURRENT_TIME

两个函数作用相同,返回当前系统的时间值

NOW 和 SYSDATE

两个函数作用相同,返回当前系统的日期和时间值

MONTH

获取指定日期中的月份

MONTHNAME

获取指定日期中的月份英文名称

DAYNAME

获取指定曰期对应的星期几的英文名称

DAYOFWEEK

获取指定日期对应的一周的索引位置值

WEEK

获取指定日期是一年中的第几周,返回值的范围是否为 0〜52 或 1〜53

DAYOFYEAR

获取指定曰期是一年中的第几天,返回值范围是1~366

DAYOFMONTH

获取指定日期是一个月中是第几天,返回值范围是1~31

YEAR 获取年份,

返回值范围是 1970〜2069

TIME_TO_SEC

将时间参数转换为秒数

SEC_TO_TIME

将秒数转换为时间,与TIME_TO_SEC 互为反函数

DATE_ADD 和 ADDDATE

两个函数功能相同,都是向日期添加指定的时间间隔

DATE_SUB 和 SUBDATE

两个函数功能相同,都是向日期减去指定的时间间隔

ADDTIME

时间加法运算,在原始时间上添加指定的时间

SUBTIME

时间减法运算,在原始时间上减去指定的时间

DATEDIFF

获取两个日期之间间隔,返回参数 1 减去参数 2 的值

DATE_FORMAT

格式化指定的日期,根据参数返回指定格式的值

WEEKDAY

获取指定日期在一周内的对应的工作日索引

3.3聚合函数

函数名称

作用

MAX

查询指定列的最大值

MIN

查询指定列的最小值

COUNT

统计查询结果的行数

SUM

求和,返回指定列的总和

AVG

求平均值,返回指定列数据的平均值

4 MySql中常用工具

4.1 mysql

该mysql不是指mysql服务,而是指mysql的客户端工具。
语法 :

1	mysql [options] [database]

4.1.1 连接选项

参 数 :
	-u, --user=name    指定用户名
	-p, --password[=name]	指定密码
	-h, --host=name          指定服务器IP或域名
	-P, --port=#               指定连接端口



示 例 :
		mysql -h 127.0.0.1 -P 3306 -u root -p

		mysql -h127.0.0.1 -P3306 -uroot -p2143

###4.1.2 执行选项

-e, --execute=name	执行SQL语句并退出

此选项可以在Mysql客户端执行SQL语句,而不用连接到MySQL数据库再执行,对于一些批处理脚本,这种方式尤 其方便。

示例
	mysql -uroot -p2143 db01 -e "select * from tb_book";

Mysql 2014 MySQL2014 readme_mysql

4.2 mysqladmin

mysqladmin 是一个执行管理操作的客户端程序。可以用它来检查服务器的配置和当前状态、创建并删除数据库等。

可以通过 : mysqladmin --help 指令查看帮助文档

Mysql 2014 MySQL2014 readme_mysql_02

1	示 例 :
2	mysqladmin -uroot -p2143 create 'test01';
3	mysqladmin -uroot -p2143 drop 'test01';
4	mysqladmin -uroot -p2143 version;

4.3 mysqlbinlog

由于服务器生成的二进制日志文件以二进制格式保存,所以如果想要检查这些文本的文本格式,就会使用到mysqlbinlog 日志管理工具。

语法 :
		mysqlbinlog [options]	log-files1 log-files2 ...
选项:
		-d, --database=name : 指定数据库名称,只列出指定的数据库相关操作。
		-o, --offset=# : 忽略掉日志中的前n行命令。

		-r,--result-file=name : 将输出的文本格式日志输出到指定文件。

		-s, --short-form : 显示简单格式, 省略掉一些信息。

		--start-datatime=date1	--stop-datetime=date2 : 指定日期间隔内的所有日志。

		--start-position=pos1 --stop-position=pos2 : 指定位置间隔内的所有日志。

4.4 mysqldump

mysqldump 客户端工具用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建表,及插入表的SQL语句。

语法 :
mysqldump [options] db_name [tables]
mysqldump [options] --database/-B db1 [db2 db3...]

mysqldump [options] --all-databases/-A

4.4.1 连接选项

参 数 :
-u, --user=name    			指定用户名
-p, --password[=name]		指定密码
-h, --host=name             指定服务器IP或域名
-P, --port=#				指定连接端口

4.4.2 输出内容选项

参数:
--add-drop-database    	在每个数据库创建语句前加上 Drop database 语句


--add-drop-table   		在每个表创建语句前加上 Drop table 语句 , 默认开启 ;
						不开启 (--skip-add-drop-table) 

-n, --no-create-db	    不包含数据库的创建语句
-t, --no-create-info	不包含数据表的创建语句
-d --no-data		    不包含数据
-T, --tab=name       	自动生成两个文件:一个.sql文件,创建表结构的语句;
						一个.txt文件,数据文件,相当于select into outfile

示 例 :

mysqldump -uroot -p2143 db01 tb_book --add-drop-database --add-drop-table > a
mysqldump -uroot -p2143 -T /tmp test city

Mysql 2014 MySQL2014 readme_mysql_03

4.5 mysqlimport/source

mysqlimport 是客户端数据导入工具,用来导入mysqldump 加 -T 参数后导出的文本文件。
语法:

1	mysqlimport [options]	db_name	textfile1	[textfile2...]

示例:

1	mysqlimport -uroot -p2143 test /tmp/city.txt
如果需要导入sql文件,可以使用mysql中的source 指令 :
1	source /root/tb_book.sql

4.6 mysqlshow

mysqlshow 客户端对象查找工具,用来很快地查找存在哪些数据库、数据库中的表、表中的列或者索引。
语法:

1	mysqlshow [options] [db_name [table_name [col_name]]]

参数:
–count 显示数据库及表的统计信息(数据库,表 均可以不指定)
-i 显示指定数据库或者指定表的状态信息

示例:
#查询每个数据库的表的数量及表中记录的数量
				mysqlshow -uroot -p2143 --count


#查询test库中每个表中的字段书,及行数
		mysqlshow -uroot -p2143 test --count

#查询test库中book表的详细情况
		mysqlshow -uroot -p2143 test book --count