MySQL學習筆記_9_MySQL高級操作(上)

MySQL高級操作(上)



一、MySQL表複製

create table t2 like t1;               #複製表結構,t2可以學習到t1所有的表結構

insert into t2 select * from t1;    #複製表數據,但是這樣還是會有缺陷,因爲沒有考慮到列的對應,因爲t1t2的表結構完全一致,所以此次操作纔不會出錯!

建議:

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;                      #刪除主鍵索引


【推薦使用方式34

【附】

1、查看索引:show index from t1 \G

2alter 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、字符串函數

1lcase(“string”)/ucase(“string”)           #轉換成小寫/大寫,與lower(str)/upper(str)作用相同

2length(“string”)                                   #返回字符串的長度

3repeat(“string”,n)                                #將字符從重複n

4space(n)                                               #生成n個空格


2、數學函數

1bin(decimal_number)                          #十進制轉二進制

2ceiling(n)                                             #作用與ceil相同,向下取整

3sqrt(n)                                                  #開平方

4max(col)/min(col)                               #取最大/最小值,聚合時使用

5rand()                                                   #生成隨機數

select * from table_name order by rand(); #使用rand函數作爲排序基準


3、日期函數

1datediff(expr1,expr2)                             #返回expr1expr2相差的天數,如果expr1> expr2,則返回正值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章