MySQL全面介绍

常用命令

登录MySQL

mysql -u username -p

开启/关闭MySQL服务

service mysql start/stop

查看MySQL的状态

service mysql status

显示所有数据库

show databses

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

describe table _name;

SQL分类

DDL:数据定义语言,create、drop、alter 等

DML:数据操纵语句,insert、delete、update 和 select 等

DCL(少用):数据控制语句,grant、revoke 等

数据类型

整数类型

类型 字节 最小值 最大值
TINYINT 1

有符号-128

无符号0

有符号127

无符号255

SMALLINT 2

有符号-32758

无符号0

有符号32767

无符号65535

MEDIUMINT 3

有符号-8388608

无符号0

有符号8388607

无符号1677215

INT、INTEGER 4

有符号-2147483648

无符号0

有符号2147483647

无符号4294967295

BIGINT 8

有符号-9223372036854775808

无符号0

有符号9223372036854775807

无符号18446744073709551615

浮点数类型

类型 字节 最小值 最大值
FLOAT 4 ±1.175494351E-38 ±3.402823466E+38
DOUBLE 8 ±2.2250738585072014E-308

±1.7976931348623157E+308

 定点数

类型 字节 描述

DEC(M,D),DECIMAL(M,D)

M+2

最大取值范围与DOUBLE相同,给定DECIMAL的有效范围由M和D决定

 位类型

类型 字节 最小值 最大值

BIT(M)

1~8

BIT(1) BIT(64)

 日期时间类型

类型 字节 最小值 最大值
DATE 4 1000-01-01 9999-12-31
DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59
TIMESTAMP 4 19700101080001 2038年的某个时刻

TIME

3 -838:59:59 828:59:59
YEAR 1 1901 2155

字符串类型

类型 描述
CHAR(M) M为0~255之间的整数
VARCHAR(M) M为0~65535之间的整数,值的长度+1个字节
TINYBLOB 允许长度0~255字节,值的长度+1个字节
BLOB 允许长度0~65535字节,值的长度+2个字节
MEDIUMBLOB

允许长度0~167772150字节,值的长度+3个字节

LONGBLOB

允许长度0~4294967285字节,值的长度+4个字节

TINYTEXT 允许长度0~255字节,值的长度+12字节
TEXT 允许长度0~65535字节,值的长度+2个字节
MEDIUMTEXT 允许长度0~167772150字节,值的长度+3个字节
LONGTEXT 允许长度0~4294967295字节,值的长度+4个字节
VARBINARY(M) 允许长度0~M个字的变长字节字符串,值的长度+1个字节
BINARY(M) 允许长度0~M字节的定长字节字符串

MySQL数据类型的选择和优化案例

  1. 使用BIGINT替代CHAR或者VARCHAR存放手机号码
  2. IP地址使用INT存储(INET_ATON()将IP地址转化为数字,INET_NTOA()将数字转化为IP地址)
  3. 使用TINYINT来替代ENUM类型
  4. 使用VARBINARY存储大小写敏感的变长字符串或二进制内容

运算符

算术运算符

运算符 作用
+ 加法
- 减法
* 乘法
/,DIV 除法,返回商
%,MOD 除法,返回余数

比较运算符

运算符 作用
= 等于
<>或!= 不等于
<=> NULL安全的等于(NULL-safe)
< 小于
<= 小于等于
> 大于
>= 大于等于
BETWEEN 存在于指定范围
IN 存在于指定集合
IS NULL 为NULL
IS NOT NULL 不为NULL
LIKE 通配符匹配
REGEXP或RLIKE 正则表达式匹配

MySQL常用函数

字符串函数

函数 功能
CANCAT(S1,S2,...Sn) 连接S1,S2,...Sn为一个字符串
INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr
LOWER(str) 将字符串str中所有字符变为小写
UPPER(str) 将字符串str中所有字符变为大写
LEFT(str,x) 返回字符串str最左边的x个字符
RIGHT(str,x) 完成字符串str最右边的x个字符
LPAD(str,n,pad) 用字符串pad对str最左边进行填充,直到长度为n个字符长度
RPAD(str,n,pad) 用字符串pad对str最右边进行填充,直到长度为n个字符串长度
LERIM(str) 去掉字符串str左侧的空格
RTRIM(str) 去掉字符串str右侧的空格
REPEAT(str,x) 返回str重复x次的结果
REPLACE(str,a,b) 用字符串b替换字符串str中所有出现的字符串a
STRCMP(s1,s2) 比较字符串s1和s2
TRIM(str) 去掉字符串行尾的行头的空格
SUBSTRING(str,x,y) 返回从字符串str x位置起y个字符长度的字串

数值函数

函数 功能
ABS(x) 返回x的绝对值
CEIL(x) 返回大于x的最大整数值
FLOOR(x) 返回小于x的最大整数值
MOD(x,y) 返回x/y的模
RAND() 返回0到1内的随机数
ROUND(x,y) 返回参数x的四舍五入的有y位小数的值
TRUNCATE(x,y) 返回数字x截断为y位小数的结果

日期和时间函数

函数 功能
CURDATE() 返回当前日期
CURTIME() 返回当前时间
NOW() 返回当前的日期和时间
UNIX_TIMESTAMP(date) 返回日期date的UNIX时间戳
FROM_UNIXTIME

返回UNIX时时间戳的日期值

WEEK(date) 返回日期date为一年中的第几周
YEAR(date) 返回日期date的年份
HOUR(time) 返回time的小时值
MINUTE(time) 返回time的分钟值
MONTHNAME(date) 返回date的月份名
DATE_FORMAT(date,fmt) 返回按字符串fmt格式化日期date值
DATE_ADD(date,INTERVAL expr type) 返回一个日期或时间值加上一个时间间隔的时间值
DATEDIFF(expr,expr2) 返回起始时间expr和结束时间expr2之间的天数

MySQL状态命令

查看状态

show status

刷选状态显示

show global status like 'Max_used_connections';

查看可设置的变量

show variables\G;

查看最大的连接

show variables like '%max_con%';

查看进程的连接

show full processlist;

sql执行性能分析命令

explain

猜你喜欢

转载自blog.csdn.net/weixin_37645838/article/details/83343222