MySQL 創建,修改和刪除表
登錄數據庫系統:
mysql –h localhost –u root –p
其中,“-h”參數指連接的主機名,因此此處是連接本機,所以后面的內容為localhost;
“-u”參數表示用戶名,此處的用戶名為 root;
“-p”參數指用戶名密碼。
創建數據庫:
CREATE DATABASE 數據庫名;
顯示已經存在的數據庫:
SHOW DATABASES;
刪除數據庫:
DROP DATABASE 數據庫;
數據庫存儲引擎:存儲引擎指的表的類型。數據庫的存儲引擎決定了表在計算機中的存儲方式。
查看數據庫支持的存儲引擎類型:
SHOW ENGINES;
查詢MySQL支持的存儲引擎:
SHOW VARIABLES LIKE ‘have%’;
查詢默認存儲引擎:
SHOW VARIABLES LIKE ‘storage_engine’;
如果想要更改默認的存儲引擎,可以再my.ini 中進行修改。將”default-storage-engine=INNODB”更改為 “default-storage-engine = MyISAM”。然后重啟服務,修改生效。( 有待驗證,沒找到這個文件,可能是文件名不一樣了吧)
存儲引擎的對比:
選擇存儲引擎的建議:
??InnoDB ??存儲引擎????: InnoDB 存儲引擎支持事務處理,支持外鍵。同時支持崩潰修復能力和并發控制。如果需要對事務的完整性要求比較高,要求實現并發控制,那選擇InnoDB存儲引擎有其很大的優勢。如果需要頻繁的進行更新,刪除操作的數據庫,也可以選擇InnoDB存儲引擎。因為,該類存儲引擎可以實現事務的提交(Commit)和回滾(Rollback)。
MyISAM 存儲引擎: MyISAM 存儲引擎的插入數據快,空間和內存使用比較低。如果表主要是用于插入新記錄和讀出記錄,那么選擇MyISAM存儲引擎能實現處理的高效率。如果應用的完整性,并發性要求很低,也可以選擇MyISAM 存儲引擎。
MEMORY 存儲引擎: MEMORY存儲引擎的所有數據都在內存中,數據的處理速度快,但安全性不高。如果需要很快的讀寫速度,對數據的安全性要求較低,可以選擇MEMORY 存儲引擎。MEMORY 存儲引擎對表的大小有要求,不能建立太大的表。所以,這類數據庫只使用于相對較小的數據庫表。
技巧:同一個數據庫中可以使用多種存儲引擎的表。如果一個表要求較高的事務處理,可以選擇InnoDB。這個數據庫中可以將查詢要求比較高的表選擇MyISAM存儲引擎。如果需要改數據庫中需要一個用于查詢的臨時表,可以選擇MEMORY存儲引擎。
創建表的語法:
CREATE TABLE 表名 (屬性名 數據類型 [完整性約束條件], 屬性名 數據類型 [完整性約束條件], …… 屬性名 數據類型 );
“表名”參數表示所要創建的表的名稱,
“屬性名”參數表示表中字段的名稱,
“數據類型”參數指定字段的數據類型,
“完整性約束條件”參數指定字段的某些特殊約束條件。
注意: 在使用CREATE TABLE語句創建表時,首先要使用USE語句選擇數據庫。選擇數據語句的基本格式為”USE 數據庫名”。如果沒有選擇數據庫,創建表時會出現”ERROR 1046(3D000):No database selected”錯誤。
完整性約束條件表
DESCRIBE語句可以查看表的基本定義。其中包括,字段名,字段數據類型,是否為主鍵和默認值等。DESCRIBE語句的語法形式如下:
DESCRIBE 表名;(DESCRIBE 可以縮寫成DESC)
SHOW CREATE TABLE語句可以查看表的詳細定義。該語句可以查看表的字段名,字段的數據類型,完整性約束條件等信息外,還可以查看表默認的存儲引擎和字符編碼。SHOW CREATE TABLE語句的語法形式如下:
SHOW CREATE TABLE 表名;
修改表名:
ALTER TABLE 舊表名 RENAME [TO]新表名;
修改字段的數據類型:
ALTER TABLE 表名 MODIFY 屬性名 數據類型;
其中,“表名“參數指所要修改的表的名稱;
“屬性名“參數指需要修改的字段的名稱;
“數據類型“參數指修改后的新數據類型。
修改字段名:
ALTER TABLE 表名 CHANGE 舊屬性名 新屬性名 新數據類型;
新數據類型“參數修改后的數據類型,如不需要修改,則將新數據類型設置成與原來一樣。
增加字段:
ALTER TABLE 表名 ADD 屬性名1 數據類型 [完整性約束條件] [FIRST|AFTER 屬性名2];
“FIRST”參數也是可選參數,其作用是將新增字段設置為表的第一字段;
“AFTER 屬性名2”參數也是可選參數,其作用是將新增字段添加到“屬性名2“所指的字段后。如果執行的SQL語句中沒有”FIRST” “AFTER 屬性名2”參數指定新增字段的位置,新增的字段默認為表的最后一個字段。
刪除字段:
ALTER TABLE 表名 DROP 屬性名;
其中,“屬性名“參數指需要從表中刪除的字段的名稱。
修改字段的排列順序:
ALTER TABLE 表名 MODIFY 屬性名1 數據類型 FIRST|AFTER 屬性名2;
“屬性名1“參數指需要修改位置的字段名稱;
“數據類型“參數指”屬性名1”的數據類型;
“FIRST“參數指定位置為表的第一個位置;
“AFTER屬性名2”參數指定”屬性名1”插入在”屬性名2”之后。
更改表的存儲引擎:
ALTER TABLE 表名 ENGINE=存儲引擎名;
其中,“存儲引擎名“參數指設置的新存儲引擎的名稱。
MySQl存儲引擎包括InnoDB, MyISAM, MEMORY等。
刪除表的外鍵約束:
ALTER TABLE 表名 DROP FOREIGN KEY 外鍵別名;
刪除表:
DROP TABLE 表名;
技巧:刪除一個表時,表中的所有數據也會被刪除。因此,在刪除表的時候一定要慎重。最穩妥的做法是先將表中所有的數據備份出來,然后再刪除表。一旦刪除表后發現造成了損失,可以通過備份的數據還原,以便將損失降低到最小。
來自:http://my.oschina.net/lvhuizhenblog/blog/383132