首页 > 数据库技术 > 详细

python 学习_第四模块 mysql 库 表操作

时间:2019-06-24 20:58:02      阅读:115      评论:0      收藏:0      [点我收藏+]

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字节        (-3276832767)        (0,65535)                大整数
int                4字节        (-21474836482147483647)    (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:59DATETIME
            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...)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

python 学习_第四模块 mysql 库 表操作

原文:https://www.cnblogs.com/augustyang/p/11079102.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!