MySQL学习笔记(二)
还没有女朋友的执念 人气:0目录
- 一.数据表
- 二、数据类型
- 三、完整性约束条件
MySQL学习笔记(二)
一.数据表
1.创建表
- DREATE =TABLE [IF NOOT EXISTS] `tbl_name`(
`字段名称` 字段类型 [完整性约束条件] [COMMENT '注释'],
`字段名称` 字段类型 [完整性约束条件] [COMMENT '注释'],
...
)ENGINE = 存储引擎 CHARSET = 编码方式;
2.查看数据表
- SHOW TABLES;
- SHOW [FULL] TABLES [{FROM|IN}db_name];
3.查看指定数据表的详细信息
- SHOW CREATE TABLE tbl_name;
4.查看表结构
- DESC tbl_name;
- DESCRIBE tbl_name;
- SHOW COLUMNS FROM tbl_name;
5.删除数据表
- DROP TABLE [IF EXISTS] tbl_name;
6.向数据表中插入记录
- INSERT [INTO] tbl_name(field1,field2,...) VALUES(value1,value2,...);
7.查询数据表中的记录
- SELECT * FROM tbl_name;
8.添加字段
- ALTER TABLE tbl_name
ADD 字段名称 字段属性 [完整性约束条件] [FIRST|AFTER 字段名称];
9.删除字段
- ALTER TABLE tbl_name
DROP 字段名称;
10.添加默认值
- ALTER TABLE tbl_name
ALTER 字段名称 SET DEFAULT 默认值;
11.删除默认值
- ALTER TABLE tbl_name
ALTER 字段名称 DROP DEFAULT;
12.修改字段(名称、)类型、属性
- ALTER TABLE tbl_name
MODIFY 字段名称 字段类型 [字段属性] [FIRST|AFTER 字段名称]; - ALTER TABLE tbl_name
CHANGE 原字段名称 新字段名称 字段类型 字段属性 [FIRST | AFTER 字段名称];
13.添加主键
- ALTER TABLE tbl_name
ADD PRIMARY KEY(字段名称);
14.删除主键
ALTER TABLE tbl_name
DROP PRIMARY KEY;如果有AUTO_INCREMENT,要先去掉才能删除主键
15.添加唯一
- ALTER TABLE tbl_name
ADD UNIQUE KEY|INDEX [index_name] (字段名称);
16.删除唯一
- ALTER TABLE tbl_name
DROP index_name;
17.修改数据表名称
- ALTER TABLE tbl_name
RENAME [TO|AS] new_tbl_name; - RENAME TABLE tbl_name TO|AS new_tbl_name;
18.修改AUTO_INCREMENT的值
- RENAME TABLE tbl_name TO new_tbl_name;
二、数据类型
1.数值型
整数型
数据类型 有符号型存储范围 无符号型存储范围 字节 TINYINT $-2^7$ ~ $2^7-1$ $0$ ~ $2^8-1$ 1 SMALLINT $-2^{15}$ ~ $2^{15}-1$ $0$ ~ $2^{16}-1$ 2 MEDIUMINT $-2^{23}$ ~ $2^{23}-1$ $0$ ~ $2^{24}-1$ 3 INT $-2^{31}$ ~ $2^{31}-1$ $0$ ~ $2^{32}-1$ 4 BIGINT $-2^{63}$ ~ $2^{63}-1$ $0$ ~ $2^{64}-1$ 8 BOOL,BOOLEAN 0为false,其他为true 1 超过指定长度要求时自动截断
浮点数
数据类型 存储范围 字节 FLOAT[M,D] $-3.2010^{38}$ ~ $-1.1710^{-38}$ & $0$ & $1.17510^{-38}$ ~ $3.4010^{38}$ 4 DOUBLE[M,D] $-1.7910^{308}$ ~ $-2.2210^{-308}$ & $0$ & $2.2210^{-308}$ ~ $1.7910^{308}$ 8 其中,M表示总长度,D表示小数部分长度
超过指定长度要求时自动四舍五入定点型
数据类型 存储范围 字节 DECIMAL[M,D] 和DOUBLE相同,以字符串形式存储 8 超过指定长度要求时自动截断
DECIMAL比FLOAT和DOUBLE精度高
2.字符串类型
数据类型 存储需求 CHAR(M) M个字节,$0 <=M<= 255$ VARCHAR(M) L+1个字节,$L<=M,0 <=M<= 65535$ TINYTEXT L+1个字节,$L<2^8$ TEXT L+2个字节,$L<2^{16}$ MIDUMTEXT L+3个字节,$L<2^{24}$ LONGTEXT L+4个字节,$L<2^{32}$ ENUM('value1','value2',...) 1或2个字节,取决于枚举值的个数,最多65535个值 SET('value1','value2',...) 1、2、3、4或8个字节,取决于set成员的数目,最多64个 CHAR一般比VARCHAR存储空间大,但查询速度更快
在字符串长度达不到CHAR的要求时,会在后面自动填充空格,但查询时不会去掉空格;VARCHAR不会自动填充,尾部如有空格会保留
TEXT列不能有默认值,检索时不存在大小写转换
ENUM类型自动过滤空格,下标从1开始,下表越界时不能添加
3.日期时间类型
数据类型 存储范围 存储需求 TIME -838:59:59 ~ 838:59:59 3 DATE 1000-01-01 ~ 9999-12-31 3 DATETIME 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8 TIMESTAMP 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 4 YEAR 1901-2155 1
三、完整性约束条件
1.unsigned
- 无符号,没有负数,从0开始
2.ZEROFILL
- 零填充,显示长度不够时前补0填充,同时非负
3.NOT NULL
- 非空
4.DEFAULT
- 默认值,输入数据没有赋值时使用默认值
5.PRIMARY KEY
- 主键,标识记录的唯一性,不能重复,一个表只能有一个主键,自动禁止为空
6.UNIQUE KEY
- 唯一性,一个表可以有多个,除null外不能重复
7. AUTO_INCREMENT
- 自动增长,智能用于数值列,配合索引使用,从1开始
8.FOREIGN KEY
- 外键约束
加载全部内容