MySQL 創建,修改和刪除表

jopen 9年前發布 | 13K 次閱讀 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”。然后重啟服務,修改生效。( 有待驗證,沒找到這個文件,可能是文件名不一樣了吧)

存儲引擎的對比:

選擇存儲引擎的建議:MySQL 創建,修改和刪除表

         ??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”錯誤。

完整性約束條件表

MySQL 創建,修改和刪除表


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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!