MySQL 指令
MySQL指令大全 :
基本指令 :
資料定義語言 ( DDL is Data Definition Language statements) :使用者角度建立資料庫或資料表 : create
更變資料庫或資料結構 : alter
刪除資料庫或資料表 : drop
資料操作語言 ( DML is Data Manipulation Language statements) : 建設者角度,
查詢資料 : SELECT column_name(s) FROM table_name
select 查詢
(1) 條件查詢where
a. 條件表達式的意義,表達式為真,則該行取出
b. 比較運算符= ,!=,< > <= >=
c. like , not like ('%'匹配任意多個字符,'_'匹配任意單個字符)in , not in , between and
d. is null , is not null
(2) 分組group by, 一般要配合5個聚合函數使用:max,min,sum,avg,count
(3) 篩選having
(4) 排序order by
(5) 限制limit
插入指定資料 : INSERT INTO table_name (column1,column2)VALUES (value1,value2);
插入多筆資料 : INSERT INTO table_name (column1,column2)VALUES (value1,value2),(value1,value2),(value1,value2)....;
插入所有資料 : INSERT INTO table_name VALUES (value1,value2);
更新資料 : UPDATE table_name SET column1=value, ...WHERE some_column=some_value
刪除資料 : DELETE FROM table_name WHERE some_column = some_value
資料控制語言 ( DCL is Data Control Language statements) :管理員角度
確定資料的更變 : commit
設定使用者對資料的操作權限 : grant
取消使用者操作資料的權限 : revoke
取消資料更變 : rollback
實用指令 :
- 顯示所有資料庫 : show databases;
- 選擇某一資料庫 : use 資料庫名稱;
- 列出資料庫底下的資料表 : show table from 資料庫名稱;
- 顯示目前正在使用的資料表 : show tables;
- 顯示資料表欄位設定 : describe 資料表名稱;
- 重新整理資料表 : optimize table 資料表名稱;
- 顯示某個資料表的欄位設定 : show columns from 資料表名稱;
- 顯示某個資料表的索引欄位設定 : show index from 資料表名稱;
顯示 :
- 顯示所有資料庫 : show databases;
- 顯示資料庫底下的資料表 : show table from 資料庫名稱;
- 顯示資料表的欄位 : show columns from 資料表名稱;
- 顯示資料庫版本:select version();
- 顯示目前正在使用的資料表 : show tables;
- 顯示資料表欄位設定 : describe 資料表名稱;
- 顯示某個資料表的索引欄位設定 : show index from 資料表名稱;
- 顯示charset變數:show variables like 'character_set%'; 或 使用 status;
新增 :
- 新增資料庫 : create database 資料庫名稱;
- 新增資料表 : create table 資料表名稱 ( 欄位名稱1 資料型態,欄位名稱2 資料型態 );
- 新增欄位 : alter table 資料表名稱 add 欄位名稱 資料型態;
- 新增主鍵:alter table 資料表名稱 add primary primary key(欄位名稱);
- 新增索引:alter table 資料表名稱 add [unique|fulltext] index 索引名(列名);
例如:
CREATE TABLE `repairsystem`.`account` (
id mediumint(8) unsigned primary key auto_increment,
account varchar(255) not null default '',
password varchar(255) not null default ''
) ENGINE = MyISAM charset=utf8;
修改 :
- 修改資料表名稱 : alter table 舊資料表名稱 rename 新資料表名稱;
- 更改欄位資料型別:alter table table_name alter coluumn column_name datatype;
- 更改欄位欄位名稱:alter table table_name change 舊欄位名稱 新欄位名稱 資料型態;
刪除 :
- 刪除資料庫 : drop database 資料庫名稱;
- 刪除資料表 : drop table 資料表名稱;
- 刪除欄位 : alter table 資料表名稱 drop 欄位名稱;
- 刪除主鍵:alter table 資料表名稱 drop primary key;
- 刪除索引:alter table 資料表名稱 drop index 索引名;
- 清空資料表資料:truncate 資料表名稱;
其他 :
- 重新整理資料表: optimize table tbl_name
- 連接查詢
- 左連接 left join on table A left join table B on tableA.col1 = tableB.col2 ;
- 右鏈接: right join on table A left join table B on tableA.col1 = tableB.col2 ;
- 內連接: inner join on table A left join table B on tableA.col1 = tableB.col2;
- 左右連接都是以在左邊的表的數據為準,沿著左表查右表.
- 內連接是以兩張表都有的共同部分數據為準,也就是左右連接的數據之交集.
例句:
select * from table A left join table B on tableA.col1=ableB.col2
- 子查詢
- where 型子查詢:內層sql的返回值在where後作為條件表達式的一部分
例句: select * from tableA where colA = (select colB from tableB where ...);
- from 型子查詢:內層sql查詢結果,作為一張表,供外層的sql語句再次查詢
例句:select * from (select * from ...) as tableName where ....
- 索引作用:
- 提高查詢速度,但是降低了增刪改的速度,所以使用索引時,要綜合考慮.
- 索引不是越多越好,一般我們在常出現於條件表達式中的列加索引.
- 值越分散的列,索引的效果越好
- 索引類型
- primary key主鍵索引
- index 普通索引
- unique index 唯一性索引
- fulltext index 全文索引
注意事項:
- 當欄位有設定自增屬性,在新增資料未指定對應時,其值必須指定,不然會報錯,訣竅列與值,嚴可對應。
留言