python 学习_第四模块 mysql 库 表操作 数据类型
一 查看支持引擎
-- 数据库支持的存储引擎 show engines\G -- 正在使用的存储引擎 show variables like "storage_engine%";
二 修改表结构
-- 修改表名 alter table t2 rename t2_new; -- 删除字段i ALTER TABLE table_1 DROP i; -- 添加字段 i ALTER TABLE table_1 ADD i INT; -- 添加字段 i 设定位第一列 ALTER TABLE table_1 ADD i INT FIRST; -- 添加字段 设定位于c个字段之后 ALTER TABLE table_1 ADD i INT after c; -- 修改字段类型 ALTER TABLE table_1 MODIFY c CHAR(10); -- 修改字段类型 change 可以修改字段名 ALTER TABLE table_1 CHANGE c c CHAR(10); -- 修改字段类型 ALTER TABLE table_1 CHANGE c b CHAR(10); -- 修改默认值为100 ALTER TABLE table_1 ALTER i SET DEFAULT 1000; -- 删除默认值 ALTER TABLE table_1 ALTER i DROP DEFAULT; -- 修改 id为主键 ALTER TABLE table_1 modify id int(11) not null primary key auto_increment; -- 增加约束 (针对已有的主键增加 auto_increment) alter table table_1 modify id int(11) not null primary key auto_increment; -- 修改 id 自动增长 alter table table_1 modify id int(11) not null auto_increment; -- 对存在的表增加复合主键 alter table table_1 add primary key(host_ip, port); -- 增加主键 alter table table_1 modify name varchar(10) not null primary key; -- 增加主键和自动增长 alter table table_1 modify id int not null primary key auto_increment; -- 删除自增约束 alter table table_1 modify id int(11) not null; -- 删除主键 alter table table_1 drop primary key; --------------------复制表 -- 复制表结构+记录 create table t2_new select * from t2; -- 复制表结构 create table t3_new select * from t3 where 1 =2; create table t3_new like t3; -----------删除表 drop table table_name; -----------清空表 truncate table t1; delete from t1 where id = 1;
三 数据类型
1 整数类型
tinyint smallint int bigint 类型 大小 范围(有符号) 范围(无符号) 用途 tinyint 1字节 (-128,127) (0,255) 小整数 smallint 2字节 (-32768, 32767) (0,65535) 大整数 int 4字节 (-2147483648,2147483647) (0,4294967295) 大整数 bigint 8字节 极大整数值 float 4字节 单精度 浮点数值 double 8字节 双精度 浮点数值 decimal 小数值
2 浮点型
float double decimal
3 日期型
date time datetime timestamp year YEAR YYYY(1901/2155) DATE YYYY-MM-DD(1000-01-01/9999-12-31) TIME HH:MM:SS(‘-838:59:59‘/‘838:59:59‘) DATETIME YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y) TIMESTAMP YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
--- datetime 与timestamp的区别 1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。 2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysql服务器,操作系统以及客户端连接都有时区的设置。 3.DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。 4.DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。
4 字符类型
char类型:定长,简单粗暴,浪费空间,存取速度快 字符长度范围:0-255(一个中文是一个字符,是utf8编码的3个字节) 存储: 存储char类型的值时,会往右填充空格来满足长度 例如:指定长度为10,存>10个字符则报错,存<10个字符则用空格填充直到凑够10个字符存储 varchar类型:变长,精准,节省空间,存取速度慢 字符长度范围:0-65535 varchar类型存储数据的真实内容,不会用空格填充,如果‘ab ‘,尾部的空格也会被存起来 虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡
5. 枚举类型与集合类型
enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...)
原文:https://www.cnblogs.com/augustyang/p/11079102.html