前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL必知必会知识点总结一二

MySQL必知必会知识点总结一二

作者头像
Java后端技术
发布2018-08-09 11:11:01
7990
发布2018-08-09 11:11:01
举报
文章被收录于专栏:Java后端技术栈Java后端技术栈

一、MySQL官方文档地址

https://dev.mysql.com/doc/refman/5.7/en/

二、MySQL常用命令

1、如何登陆MySQL数据库

代码语言:javascript
复制
mysql -u username -p

2、如何开启/关闭mysql服务

代码语言:sql
复制
service mysql start/stop

3、查看mysql的状态

代码语言:javascript
复制
service mysql status

4、如何显示数所有数据库

代码语言:sql
复制
show databases

5、如何获取表内所有字段对象的名称和类型

代码语言:javascript
复制
describe table_name;

三、SQL分类

SQL全程为Structure Query Language(结构化查询语言)。

SQL 语句主要可以划分为以下 3 个类别:

1、DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、 数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter 等。

2、DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、update 和 select 等。

3、DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和 访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。

四、MySQL使用帮助命令

在 MySQL 使用过程中,快速查找某一个命令的使用方法和实例。使用命令:

代码语言:text
复制
mysql> ? contents;

示例:

1、mysql> ? Data Types;

2、mysql> ? show create table;

3、mysql> ? show

4、mysql> ? int 。。。。。。

因此,只要是对于某一个命令不是很熟的话,使用? 命令名称 即可显示其用法。

五、MySQL支持的数据类型

1、数值类型

常见的数值类型如下:

注:这里的最小值和最大值代表的是宽度。

对于这几种常见的数值类型,我们应该知道存储的所占的字节,我们还要知道INT最大的长度为10位数字,那么我们设置11为,如:int(11)也是无用的,最多只能为10位数字。TINYINT最大支持3位,那么我们设置tinyint(4)也是无用的。

2、日期时间类型

上图可以看出,每种日期时间类型都有一个有效值范围,如果超出这个范围,在默认的SQLMode下,系统会进行错误示,并将以零值来进行存储。不同日期类型零值的表示如下:

提示:

(1)日期格式中只有TIMESTAMP 可以使用MySQL提供的函数,实现自动设置时间和自动更新时间,脚本如下:

代码语言:text
复制
`create_time` timestamp DEFAULT CURRENT_TIMESTAMP,`update_time` timestamp DEFAULT CURRENT_TIMESTAMP      ON UPDATE CURRENT_TIMESTAMP ,

(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,如果使用有符号的话,会出现溢出,使用无符号则不会溢出。

  • 插入操作:

代码语言:scss
复制
mysql> insert into test values(1,INET_ATON('192.168.1.213'));
  • 选择操作:

代码语言:c#
复制
mysql> select id,INET_NTOA(ip) from test;

可以看出INT无符号最大值为4294967295,而存放IP最大为255.255.255.255刚好等于4294967295。

3、建议使用TINYINT来代替ENUM类型。

4、使用VARBINARY存储大小写敏感的变长字符串或二进制内容。

七、MySQL中的常用运算符

1、算术运算符

2、比较运算符

八、MySQL中的常用函数

1、字符串函数

2、数值函数

3、日期和时间函数

九、常见查看MySQL状态命令

1、查看状态

代码语言:javascript
复制
mysql> show status;

2、刷选状态显示

代码语言:text
复制
mysql> show global status like 'Max_used_connections';

3、查看可设置的变量

代码语言:text
复制
mysql> show variables\G;

4、查看最大的连接

代码语言:text
复制
mysql> show variables like '%max_con%';

5、查看进程的连接

代码语言:text
复制
mysql> show full processlist;

此命令在数据库连接出现Too many connections解决的时候,很有帮助。

6、sql执行性能分析命令explain

在索引创建及分析很有帮助。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java后端技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、MySQL常用命令
  • 三、SQL分类
  • 四、MySQL使用帮助命令
  • 五、MySQL支持的数据类型
  • 六、MySQL数据类型的选择和优化案例
  • 七、MySQL中的常用运算符
  • 八、MySQL中的常用函数
  • 九、常见查看MySQL状态命令
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档