python 學習_第四模塊 mysql 庫 表操做 數據類型python
一 查看支持引擎mysql
-- 數據庫支持的存儲引擎 show engines\G -- 正在使用的存儲引擎 show variables like "storage_engine%";
二 修改表結構sql
-- 修改表名 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. 枚舉類型與集合類型spa
enum 單選 只能在給定的範圍內選一個值,如性別 sex 男male/女female set 多選 在給定的範圍內能夠選擇一個或一個以上的值(愛好1,愛好2,愛好3...)