一,MySQL的的官方文档地址
https://dev.mysql.com/doc/refman/5.7/en/
二,MySQL的的常用命令
1,如何登陆的MySQL的数据库
mysql -u username -p
- 1
1.1,指定IP,端口
mysql -uroot -h 192.168.1.213 -P3306 -p123456
- 1
-P(大写):指定端口;
-p(小写):指定密码;
2,如何开启/关闭的MySQL的服务
service mysql start/stop
- 1
3,查看的MySQL的的状态
service mysql status
- 1
4,如何显示数所有数据库
show databases
- 1
5,如何获取表内所有字段对象的名称和类型
describe table_name;
- 1
三,SQL分类
SQL全部为结构化查询语言(Structure Query Language)。
SQL语句主要可以划分为以下3个类别:
1,DDL(数据定义语言)语句:数据定义语言,这些语句定义了不同的数据段,数据库,表,列,索引等数据库对象的定义。
2,DML(Data Manipulation Language)语句:数据操纵语句,用于添加,删除,更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括insert,delete,update和select等。
3,DCL(数据控制语言)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库,表,字段,用户的访问权限和安全级别。关键字包括grant,revoke等。
四,MySQL的使用帮助命令
在MySQL中使用过程中,快速查找某个命令的使用方法和实例。使用命令:
mysql> ? contents;
- 1
示例:
1,mysql>?数据类型;
2,mysql>?显示创建表;
3,mysql>?显示
4,mysql>?int
......
因此,只要是对于某一个命令不是很熟的话,使用? 命令名称
即可显示其用法英语谚语。
五、MySQL支持的数据类型
1、数值类型
常见的数值类型如下:
注:这里的最小值和最大值代表的是宽度。
对于这几种常见的数值类型,我们应该知道存储的所占的字节,我们还要知道INT最大的长度为10位数字,那么我们设置11为,如:int(11)也是无用的,最多只能为10位数字。TINYINT最大支持3位,那么我们设置tinyint(4)也是无用的。
2、日期时间类型
上图可以看出,每种日期时间类型都有一个有效值范围,如果超出这个范围,在默认的SQLMode下,系统会进行错误示,并将以零值来进行存储。不同日期类型零值的表示如下:
提示:
(1)日期格式中只有TIMESTAMP
可以使用MySQL提供的函数,实现自动设置时间和自动更新时间,脚本如下:
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- 1
- 2
(2)Navicat for MqlSQL设置如下:
(3)、使用TIMESTAMP
要认识到,他会停止在2038年的一个时刻,但MySQL官方应该后期会提供相应的支持。
(4)DATETIME、TIMESTAMP都可以精确到秒,但是TIMESTAMP
只占4个字节,因此可以有效考虑使用;
3、字符串类型
1、常见的char和varchar区别:
(1)char(N)用于存放固定长度的字符串,长度最大为255,比制定长度大的值将被截断,而比指定长度小的值将会用空格进行填补;
(2)varchar(N)用于保存可变长度的字符串,长度最大为65535,只存储字符串实际需要的长度,它会增加一个额外字节来保存字符串本身的长度,varchar使用额外的1~2字节来存储值得长度,如果列的最大长度小于或等于255,则使用1字节,否则就是使用2字节;
(3)char和varchar跟字符编码也有密切联系,lantin1占用1个字节,gbk占用2个字节,utf8占用3个字节。示例如下:
- lantin1、1个字符1个字节:
- gbk、1个字符2个字节:
- utf8、1个字符3个字节:
2、如何选择char和varchar
六,MySQL的数据类型的选择和优化案例
如图1所示,手机号存储
使用BIGINT代替CHAR或者VARCHAR存放手机号码。
这是因为CHAR或者VARCHAR,占用空间大,影响查询性能。
例如:11位手机号CHAR存储,UTF8编码,则占用33个字节;
使用如果使用INT的话,INT最大只能保存10为数据,而手机号为11位,会出现溢出,所以使用BIGINT占用8个字节,支持11为数据存储。
2,IP地址可以使用INT存储
MySQL里提供了一个很好的函数:INET_ATON()
,他负责把IP地址转化为数字,而另一个函数INET_NTOA()
负责将数字转化为IP地址,示例如下:
注意:INT使用无符号,这是因为INT有符号最大为2147483647而无符号最大为4294967295,如果使用有符号的话,会出现溢出,使用无符号则不会溢出。
- 插入操作:
mysql> insert into test values(1,INET_ATON('192.168.1.213'));
- 1
-
选择操作:
mysql> select id,INET_NTOA(ip) from test;
- 1
可以看出INT无符号最大值为4294967295,而存放IP最大为255.255.255.255刚好等于4294967295。
3,建议使用TINYINT来代替ENUM类型。
如图4所示,使用VARBINARY存储大小写敏感的变长字符串或二进制内容。
七中时,MySQL中的常用运算符
1,算术运算符
2,比较运算符
八,MySQL的的中的常用函数
1,字符串函数
2,数值函数
3,日期和时间函数
九,常见查看MySQL的的状态命令
1,查看状态
mysql> show status;
- 1
2,刷选状态显示
mysql> show global status like 'Max_used_connections';
- 1
3,查看可设置的变量
mysql> show variables\G;
- 1
4,查看最大的连接
mysql> show variables like '%max_con%';
- 1
5,查看进程的连接
mysql> show full processlist;
- 1
此命令在数据库连接出现太多连接解决的时候,很有帮助。
6,SQL执行性能分析命令explain
在索引创建及分析很有帮助。