版权声明:本文由YSilhouette原创,转载请务必标出原文地址 https://blog.csdn.net/qq_16123129/article/details/87969704
MySQL数据类型
- 整型
TINYINT 1字节
有符号值 -128到127 (- 2^7 到 2^7-1)
无符号值 0 到 255 (0 到 2^8-1)
SMALLINT 2字节
有符号值 -3278 到 32767 (- 2^15 到 2^15-1)
无符号值 0 到 65535 (0 到 2^16-1)
MEDIUMINT 3字节
有符号值 -8388608 到 8388607 (- 2^23 到 2^23-1)
无符号值 0 到 16777215 (0 到 2^24-1)
INT 4字节
有符号值 (- 2^31 到 2^31-1)
无符号值 (0 到 2^32-1)
BIGINT 8字节
有符号值 (- 2^63 到 2^63-1)
无符号值 (0 到 2^64-1)
1个字节 = 8 bit ,(8位)
- 浮点类型
FLOAT[(M,D)]
M,是数字总位数,
D,是小数点后面的位数,
如果M,D被省略,根据硬件允许的限制来保存值,
单精度浮点数精确到大约7位小数位,
DOUBLE[(M,D)]
- 日期时间型
类型 存储需求
YEAR 1
TIME 3
DATE 3
DATETIME 8
TIMESTAMP 4
- 字符型
列类型 存储需求
CHAR(M) 定长类型 M个字节,0<= M <=255
VARCHAR(M) 变长类型 L+1个字节,L<=M且0<= M <=65535
TINYTEXT L+1个字节, L< 2^8
TEXT L+1个字节, L< 2^16
MEDIUMTEXT L+1个字节, L< 2^24
LONGTEXT L+1个字节, L< 2^32
ENUM('VALUE1','VALUE2',...) 1或2个字节,取决于枚举值的个数,最多65535个值
SET('VALUE1','VALUE2'...) 1、2、3、4或者8个字节,取决于set集合成员的排列组合
MySQL数据表
- 创建数据表
- 打开数据库
mysql -u root -p;
- USE 数据库名称;
USE test01;
- 创建数据表
CREATE TABLE [IF NOT EXISTS] table_name (
column_name1 data_type,
column_name2 data_type,
...
);
- 查看数据表
- 查看数据表列表
SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr];
- 查看数据表结构
SHOW COLUMNS FROM tbl_name;
- 插入记录
INSERT [INTO] tbl_name [(col_name,...)] VALUES (val,...);
- 记录查找
SELECT expr,... FROM tbl_name;
- 空值与非空
- NULL ,字段值可以为空
- NOT NULL ,字段值禁止为空
- 约束的使用
NOT NULL
- 非空约束
AUTO_INCREMENT
- 自动编号
- 且必须与主键组合使用
- 默认情况下,起始值为1,每次增量为1
PRIMARY KEY
- 主键 约束
- 每张数据表只能存在一个主键
- 主键保证记录的唯一性
- 主键自动为 NOT NULL
UNIQUE KEY
- 唯一约束
- 唯一约束可以保证记录的唯一性
- 唯一约束的字段端可以为空值(NULL)
- 每张数据表可以存在多个唯一约束
DEFAULT
- 默认约束
FOREIGN KEY
- 外键约束