MySQL学习笔记
You must not be afraid to dream a little bigger
Mysql 语法
net start mysql #启动mysql服务
net stop mysql #关闭mysql服务
一丶mysql 管理
USE 数据库名 \ 选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。
SHOW DATABASES \ 列出 MySQL 数据库管理系统的数据库列表。
SHOW TABLES \ 显示指定数据库的所有表,使用该命令前需要使用`use`命令来选择要操作的数据库。
SHOW COLUMNS FROM "数据表" \ 显示数据表的属性,属性类型主键信息是否为`NULL`默认值其他信息
SHOW INDEX FROM 数据表 \ 显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] G:
\ Mysql数据库管理系统的性能及统计信息。
G
和分号;
的作用相似,两者取其一即可。
1.mysql 连接
mysql -u root -p
$ mysql > exit \ 退出MySQL命令行
2.创建mysql数据库
CREATE DATABASE 数据库名;
3.删除mysql数据库
drop database <数据库名>;
-
mysqladmin
命令删除数据库
mysqladmin -u root -p drop RUNOOB
4.选择mysql数据库
用sql命令--
use
进行选择
[root@host]# mysql -u root -p
Enter password:******
mysql> use RUNOOB;
Database changed
mysql>
二丶MySQL 数据类型
MySQL支持多种类型,大致可以分为三类:
数值、日期/时间和字符串(字符
)类型。
1.数据类型
MySQL支持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER
、SMALLINT
、DECIMAL
和NUMERIC
),以及近似数值数据类型(FLOAT
、REAL
和DOUBLE PRECISION
)。
关键字INT
是INTEGER
的同义词,关键字DEC
是DECIMAL
的同义词。
BIT数据类型保存位字段值,并且支持MyISAM
、MEMORY
、InnoDB
和BDB
表。
作为SQL标准的扩展,MySQL也支持整数类型INYINT
、MEDIUMINT
和BIGINT
。下面的表显示了需要的每个整数类型的存储和范围。
类型 |
大小 |
范围(有符号) |
范围(无符号) |
用途 |
---|---|---|---|---|
TINYINT |
1 byte |
(-128,127) |
(0,255) |
小整数值 |
SMALLINT |
2 bytes |
(-32 768,32 767) |
(0,65 535) |
大整数值 |
MEDIUMINT |
3 bytes |
(-8 388 608,8 388 607) |
(0,16 777 215) |
大整数值 |
INT或INTEGER |
4 bytes |
(-2 147 483 648,2 147 483 647) |
(0,4 294 967 295) |
大整数值 |
BIGINT |
8 bytes |
(-9,223,372,036,854,775,808,9 223 372 036 854 775 807) |
(0,18 446 744 073 709 551 615) |
极大整数值 |
FLOAT |
4 bytes |
(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) |
0,(1.175 494 351 E-38,3.402 823 466 E+38) |
单精度 浮点数值 |
DOUBLE |
8 bytes |
(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
双精度 浮点数值 |
DECIMAL |
对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 |
依赖于M和D的值 |
依赖于M和D的值 |
小数值 |
2.时间日期类型
表示时间值的日期和时间类型为DATETIME
、DATE
、TIMESTAMP
、TIME
和YEAR
。
每个时间类型有一个有效值范围和一个"零"值
,当指定不合法的MySQL不能表示的值时使用"零"值。
IMESTAMP
类型有专有的自动更新特性,将在后面描述。
类型 |
大小 ( bytes) |
格式 |
范围 |
用途 |
---|---|---|---|---|
DATE |
3 |
YYYY-MM-DD |
1000-01-01/9999-12-31 |
日期值 |
TIME |
3 |
HH:MM:SS |
'-838:59:59'/'838:59:59' |
时间值或持续时间 |
YEAR |
1 |
YYYY |
1901/2155 |
年份值 |
DATETIME |
8 |
YYYY-MM-DD HH:MM:SS |
1000-01-01 00:00:00/9999-12-31 23:59:59 |
混合日期和时间值 |
TIMESTAMP |
4 |
YYYYMMDD HHMMSS |
1970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 |
混合日期和时间值,时间戳 |
3.字符串类型
字符串类型指CHAR
、VARCHAR
、BINARY
、VARBINARY
、BLOB
、TEXT
、ENUM
和SET
。该节描述了这些类型如何工作以及如何在查询中使用这些类型。
类型 |
大小 |
用途 |
---|---|---|
CHAR |
0-255 bytes |
定长字符串 |
VARCHAR |
0-65535 bytes |
变长字符串 |
TINYBLOB |
0-255 bytes |
不超过 255 个字符的二进制字符串 |
TINYTEXT |
0-255 bytes |
短文本字符串 |
BLOB |
0-65 535 bytes |
二进制形式的长文本数据 |
TEXT |
0-65 535 bytes |
长文本数据 |
MEDIUMBLOB |
0-16 777 215 bytes |
二进制形式的中等长度文本数据 |
MEDIUMTEXT |
0-16 777 215 bytes |
中等长度文本数据 |
LONGBLOB |
0-4 294 967 295 bytes |
二进制形式的极大文本数据 |
LONGTEXT |
0-4 294 967 295 bytes |
极大文本数据 |
注意:char(n)
和 varchar(n)
中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30)
就可以存储 30 个字符。
CHAR
和 ARCHAR
类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY
和 VARBINARY
类似 CHAR
和 VARCHAR
,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB
。它们区别在于可容纳存储范围不同。
有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT
。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。
三丶FLOAT 与 DOUBLE 差异
(单精度与双精度有什么区别)
最本质的区别:单精度,也就是 float ,在 32 位机器上用 4 个字节来存储的;而双精度double是用 8 个字节来存储的,由于存储位不同,他们能表示的数值的范围就不同,也就是能准确表示的数的位数就不同。
所占的内存不同
精度浮点数bai占du用4个字节(32位)存储空间来存储一个浮点数,包括符号位1位,阶码8位,尾数23位。
而双精度浮点数使用 8个字节(64位)存储空间来存储一个浮点数,包括符号位1位,阶码11位,尾数52位。
所存的数值范围不同
单精度浮点数的数值范围为-3.4E38~3.4E38
,而双精度浮点数可以表示的数字的绝对值范围大约是:-2.23E308 ~ 1.79E308。E表示10的多少次方,如3.4E38指的是3.4乘以10的38次方。
十进制下的位数不同
单精度浮点数最多有7位十进制有效数字,如果某个数的有效数字位数超过7位,当把它定义为单精度变量时,超出的部分会自动四舍五入。
双精度浮点数可以表示十进制的15或16位有效数字,超出的部分也会自动四舍五入。
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 不知道怎么提高代码质量?来看看这几种设计模式吧!
- 手写React的Fiber架构,深入理解其原理
- emlog后台作者权限SQL注入
- 手写一个Redux,深入理解其原理
- 手写一个React-Redux,玩转React的Context API
- 使用React-Router实现前端路由鉴权
- 手写React-Router源码,深入理解其原理
- 深入Node.js的模块加载机制,手写require函数
- Redux异步解决方案之Redux-Thunk原理及源码解析
- MySQL设计与优化
- Elasticsearch学习笔记
- 《springboot实战》
- 360全国大学生信安技术大赛记录
- gh0st源码分析与远控的编写(四)
- 记一次Elasticsearch优化总结