一、MySQL表復制
create table t2 like t1; #復制表結構,t2可以學習到t1所有的表結構
insert into t2 select * from t1; #復制表數據,但是這樣還是會有缺陷,因為沒有考慮到列的對應,因為t1與t2的表結構完全一致,所以此次操作才不會出錯!
建議:
insert into t3(name) select name from t1; #指定復制的列
二、MySQL索引
1、直接創建索引
create index index_name on table_name(column_list); #創建普通索引
create unique index index_name on table_name(colume_list); #創建唯一索引,請在創建唯一索引之前確保該列沒有重復值,不然,創建不成功!
2、直接刪除索引
drop index index_name on table_name;
3、修改-創建索引
alter table table_name add index [index_name](colum_list); #創建普通索引
alter table table_name add unique [index_name](column_list); #創建唯一索引
alter table table_name add primary key [index_name](column_list); #創建主鍵索引,如果不添加index_name,則使用column_list作為默認索引名
4、修改-刪除索引
alter table table_name drop index index_name; #刪除普通/唯一索引
alter table table_name drop primary key; #刪除主鍵索引
【推薦使用方式3、4】
【附】
1、查看索引:show index from t1 \G
2、alter table table_name modify id int not null;
三、MySQL視圖
視圖:通過一個條件,把一部分數據從一張表裡面提取出來,形成一張中間表,這張表就是視圖
注意:視圖隨著主表的改變而改變
1、創建視圖
create view view_name as select *from table_naem where id > 4 and id <= 10;
3、查看創建了哪些視圖
showtables; #視圖就是一個中間表
3、查看視圖中數據
select* from view_name; #與查看表數據相同
4、刪除視圖
drop view view_name;
四、MySQL內置函數補充
查看函數作用及簡單示例:? function_name
e.g. ? lcase;
1、字符串函數
1)lcase(“string”)/ucase(“string”) #轉換成小寫/大寫,與lower(str)/upper(str)作用相同
2)length(“string”) #返回字符串的長度
3)repeat(“string”,n) #將字符從重復n次
4)space(n) #生成n個空格
2、數學函數
1)bin(decimal_number) #十進制轉二進制
2)ceiling(n) #作用與ceil相同,向下取整
3)sqrt(n) #開平方
4)max(col)/min(col) #取最大/最小值,聚合時使用
5)rand() #生成隨機數
select * from table_name order by rand(); #使用rand函數作為排序基准
3、日期函數
1)datediff(expr1,expr2) #返回expr1和expr2相差的天數,如果expr1> expr2,則返回正值