程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL根本敕令、經常使用敕令總結

MySQL根本敕令、經常使用敕令總結

編輯:MySQL綜合教程

MySQL根本敕令、經常使用敕令總結。本站提示廣大學習愛好者:(MySQL根本敕令、經常使用敕令總結)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL根本敕令、經常使用敕令總結正文


啟動:net start mysql;
進入:mysql -u root -p/mysql -h localhost -u root -p databaseName;
列出數據庫:show databases;
選擇數據庫:use databaseName;
列出表格:show tables;
顯示表格列的屬性:show columns from tableName;
樹立數據庫:source fileName.txt;
婚配字符:可以用通配符_代表任何一個字符,%代表任何字符串;
增長一個字段:alter table tabelName add column fieldName dateType;
增長多個字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;
多行敕令輸出:留意不克不及將單詞斷開;當拔出或更改數據時,不克不及將字段的字符串睜開到多行裡,不然硬回車將被貯存到數據中;
增長一個治理員帳戶:grant all on *.* to user@localhost identified by "password";
每條語句輸出終了後要在末尾填加分號';',或許填加'\g'也能夠;
查詢時光:select now();
查詢以後用戶:select user();
查詢數據庫版本:select version();
查詢以後應用的數據庫:select database();

1、刪除student_course數據庫中的students數據表:
rm -f student_course/students.*

2、備份數據庫:(將數據庫test備份)
mysqldump -u root -p test>c:\test.txt
備份表格:(備份test數據庫下的mytable表格)
mysqldump -u root -p test mytable>c:\test.txt
將備份數據導入到數據庫:(導回test數據庫)
mysql -u root -p test


3、創立暫時表:(樹立暫時表zengchao)
create temporary table zengchao(name varchar(10));

4、創立表是先斷定表能否存在
create table if not exists students(……);

5、從曾經有的表中復制表的構造
create table table2 select * from table1 where 1<>1;

6、復制表
create table table2 select * from table1;

7、對表從新定名
alter table table1 rename as table2;

8、修正列的類型
alter table table1 modify id int unsigned;//修正列id的類型為int unsigned
alter table table1 change id sid int unsigned;//修正列id的名字為sid,並且把屬性修正為int unsigned

9、創立索引
alter table table1 add index ind_id (id);
create index ind_id on table1 (id);
create unique index ind_id on table1 (id);//樹立獨一性索引

10、刪除索引
drop index idx_id on table1;
alter table table1 drop index ind_id;

11、結合字符或許多個列(將列id與":"和列name和"="銜接)
select concat(id,':',name,'=') from students;

12、limit(選出10到20條)<第一個記載集的編號是0>
select * from students order by id limit 9,10;

13、MySQL不支撐的功效
事務,視圖,外鍵和援用完全性,存儲進程和觸發器

14、MySQL會應用索引的操作符號
<,<=,>=,>,=,between,in,不帶%或許_開首的like

15、應用索引的缺陷
1)減慢增刪改數據的速度;
2)占用磁盤空間;
3)增長查詢優化器的累贅;
當查詢優化器生成履行籌劃時,會斟酌索引,太多的索引會給查詢優化器增長任務量,招致沒法選擇最優的查詢計劃;

16、剖析索引效力
辦法:在普通的SQL語句前加上explain;
剖析成果的寄義:
1)table:表名;
2)type:銜接的類型,(ALL/Range/Ref)。個中ref是最幻想的;
3)possible_keys:查詢可以應用的索引名;
4)key:現實應用的索引;
5)key_len:索引中被應用部門的長度(字節);
6)ref:顯示列名字或許"const"(不明確甚麼意思);
7)rows:顯示MySQL以為在找到准確成果之前必需掃描的行數;
8)extra:MySQL的建議;

17、應用較短的定長列
1)盡量應用較短的數據類型;
2)盡量應用定長數據類型;
a)用char取代varchar,固定長度的數據處置比變長的快些;
b)關於頻仍修正的表,磁盤輕易構成碎片,從而影響數據庫的全體機能;
c)萬一湧現數據表瓦解,應用固定長度數據行的表更輕易從新結構。應用固定長度的數據行,每一個記載的開端地位都是固定記載長度的倍數,可以很輕易被檢測到,然則應用可變長度的數據行就紛歧定了;
d)關於MyISAM類型的數據表,固然轉換成固定長度的數據列可以進步機能,然則占領的空間也年夜;

18、應用not null和enum
盡可能將列界說為not null,如許可以使數據的出來更快,所需的空間更少,並且在查詢時,MySQL不須要檢討能否存在特例,即null值,從而優化查詢;
假如一列只含有無限數量的特定值,如性別,能否有用或許退學年份等,在這類情形下應當斟酌將其轉換為enum列的值,MySQL處置的更快,由於一切的enum值在體系內都是以標識數值來表現的;

19、應用optimize table
關於常常修正的表,輕易發生碎片,使在查詢數據庫時必需讀取更多的磁盤塊,下降查詢機能。具有可變長的表都存在磁盤碎片成績,這個成績對blob數據類型更加凸起,由於其尺寸變更異常年夜。可以經由過程應用optimize table來整頓碎片,包管數據庫機能不降低,優化那些受碎片影響的數據表。 optimize table可以用於MyISAM和BDB類型的數據表。現實上任何碎片整頓辦法都是用mysqldump來轉存數據表,然後應用轉存後的文件偏重新建數據表;

20、應用procedure analyse()
可使用procedure analyse()顯示最好類型的建議,應用很簡略,在select語句前面加上procedure analyse()便可以了;例如:
select * from students procedure analyse();
select * from students procedure analyse(16,256);
第二條語句請求procedure analyse()不要建議含有多於16個值,或許含有多於256字節的enum類型,假如沒無限制,輸入能夠會很長;

21、應用查詢緩存
1)查詢緩存的任務方法:
第一次履行某條select語句時,辦事器記住該查詢的文本內容和查詢成果,存儲在緩存中,下次碰著這個語句時,直接從緩存中前往成果;當更新數據表後,該數據表的任何緩存查詢都釀成有效的,而且會被拋棄。
2)設置裝備擺設緩存參數:
變量:query_cache _type,查詢緩存的操作形式。有3中形式,0:不緩存;1:緩存查詢,除非與 select sql_no_cache開首;2:依據須要只緩存那些以select sql_cache開首的查詢; query_cache_size:設置查詢緩存的最年夜成果集的年夜小,比這個值年夜的不會被緩存。

22、調劑硬件
1)在機械上裝更多的內存;
2)增長更快的硬盤以削減I/O期待時光;
尋道時光是決議機能的重要身分,逐字地挪動磁頭是最慢的,一旦磁頭定位,從磁道讀則很快;
3)在分歧的物理硬盤裝備上從新分派磁盤運動;
假如能夠,應將最忙碌的數據庫寄存在分歧的物理裝備上,這跟應用統一物理裝備的分歧分區是分歧的,由於它們將爭用雷同的物理資本(磁頭)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved