MySQL經常使用功能語句分類總結

C(建立型功能)

  1. 建立數據庫:CREATE DATABASE
  2. 建立用戶:CREATE USER 用戶名@主機 IDENTIFIED BY 密碼; -- 若是想讓該用戶能夠從任意遠程主機登錄,能夠使用通配符%
  3. 受權:GRANT ALL PRIVILEGES|權限列表 ON 庫名.*|庫名.表名 TO 用戶名 IDENTIFIED BY 密碼 WITH GRANT OPTION
  4. 若是想讓用戶能夠對其餘用戶受權,需加上WITH GRANT OPTIONmysql

  5. 建立表:CREATE TABLE(字段名 數據類型 約束)引擎類型 字符集
  6. 建立索引:
    • CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX [USING 索引類型] 索引名 ON 表名 (列名1[, 列名2 …]);
    • 普通索引:ALTER TABLE 表名 ADD INDEX 索引名 (列名1[, 列名2 …]
    • 主鍵索引:ALTER TABLE 表名 ADD PRIMARY KEY(列名)
    • 惟一索引:ALTER TABLE 表名 ADD UNIQUE 索引名(列名)
  7. 插入數據:INSERT INTO TABLE 表名(列名1[, 列名2 …]) VALUES(值1[, 值2 …])

R(查詢型功能)

  1. DBMS信息:
  2. 數據表信息
    • 查看錶:SHOW TABLES; DESC 表名
    • 查看錶索引:SHOW INDEX FROM|IN 表名;
  3. 查看用戶的權限:SHOW GRANTS FOR 用戶名@主機;

U(更新型功能)

  1. 重命名錶:ALTER TABLE 原表名 RENAME [TO] 新表名
  2. 設置與更改用戶密碼:
    • 爲其它用戶設置:SET PASSWORD FOR 用戶名@主機 = PASSWORD(密碼);
    • 爲當前登錄用戶設置:SET PASSWORD = PASSWORD(密碼);
  3. 添加列:
    • 新列在表最後面:ALTER TABLE 表名 ADD 列名 類型 約束
    • 新列在某列後面:ALTER TABLE 表名 ADD 列名 類型 約束 AFTER 某列
    • 新列加在最前面:ALTER TABLE 表名 ADD 列名 類型 約束 FIRST
  4. 修改列:
  5. 重建索引:REPAIR TABLE 表名 QUICK;
  6. 更新數據:UPDATE TABLE 表名 SET 列名1=值1[, 列名2=值2 …] WHERE 條件

D(刪除型功能)

  1. 刪除數據庫:DROP DATABASE [IF EXISTS] 庫名
  2. 刪除表:DROP TABLE [IF EXISTS] 表名 -- 對於不存在的表,使用IF EXISTS防止錯誤發生
  3. 刪除列:ALTER TABLE 表名 DROP 列名
  4. 刪除索引:DROP INDEX能夠在ALTER TABLE內部做爲一條語句處理
    • DROP INDEX 索引名 ON 表名(列名1[, 列名2 …]);
    • ALTER TABLE 表名 DROP INDEX|UNIQUE|PRIMARY KEY 索引名(列名1[, 列名2 …]);
  5. 刪除用戶:DROP USER 用戶名@主機;
  6. 撤銷用戶權限:
  7. REVOKE privilege ON 庫名.表名 FROM 用戶名@主機; sql

    注意:[REVOKE SELECT ON *.* FROM ‘pig’@’%’]不能撤銷[GRANT SELECT ON test.user TO ‘pig’@’%’]對用戶pig的SELECT受權;[REVOKE SELECT ON test.user FROM ‘pig’@’%’]不能撤銷[GRANT SELECT ON *.* TO ‘pig’@’%’]對用戶pig的SELECT受權數據庫

備註:索引

  • 對列名編制前綴索引:

對於CHAR和VARCHAR類型的列,只用列的一部分就可建立索引。建立索引時,使用「列名(length)」語法對前綴編制索引,意爲前綴包括每列值的前length個字符,例如: get

CREATE INDEX customer_index ON customer (name(10)); table

對列名編制前綴索引的好處是減少索引文件的大小,有可能提升INSERT操做的速度。 test

BLOB和TEXT列也能夠編制索引,可是必須給出前綴長度。 變量

 

前綴最長爲255字節。對於MyISAM和InnoDB表,前綴最長爲1000字節。注意前綴的限長以字節計,而CREATE INDEX語句中的前綴長度指的是字符的數目。對於使用多字節字符集的列,在指定列的前綴長度時,要考慮這一點。 擴展

 

在MySQL中,只有使用MyISAM, InnoDB或BDB表類型時,才能夠向有NULL值的列及BLOB或TEXT類型的列創建索引。 權限

 

一個索引列能夠以ASC或DESC爲結尾。這些關鍵詞未來能夠擴展,用於指定遞增或遞減索引值存儲。目前,這些關鍵詞被分析,可是被忽略;索引值均以遞增順序存儲,例如:

CREATE INDEX customer_index ON customer (name(10) DESC);

 
  • 索引類型:
  • 存儲引擎

    容許的索引類型

    MyISAM

    BTREE

    InnoDB

    BTREE

    MEMORY/HEAP

    HASH, BTREE

FULLTEXT索引只能對CHAR, VARCHAR和TEXT列編制索引,而且只能在MyISAM表中編制。

SPATIAL索引只能對空間列編制索引,而且只能在MyISAM表中編制。

  • 關於索引建立

向表的列添加惟一約束和主鍵約束時也會爲這些列默認建立索引。

相關文章
相關標籤/搜索