在MySQL中,新建的表實際上不是直接存儲在某個目錄下,而是存儲在一個被稱為數(shù)據(jù)庫的邏輯容器中。在MySQL中,一個數(shù)據(jù)庫可以包含一個或多個表,每個表都是一個獨立的實體,擁有自己的字段和數(shù)據(jù),這些數(shù)據(jù)都存儲在該數(shù)據(jù)庫的目錄下。
在MySQL的數(shù)據(jù)目錄中,每個數(shù)據(jù)庫都有一個單獨的文件夾,文件夾的名稱就是該數(shù)據(jù)庫的名稱。在該文件夾下,會有一系列的文件和子文件夾,這些文件和子文件夾就是用來存儲該數(shù)據(jù)庫下的表和數(shù)據(jù)的。
當我們在MySQL中新建一個表時,實際上是在該數(shù)據(jù)庫下創(chuàng)建了一個對應的表文件,該文件的命名規(guī)則一般是以表名為前綴,以frm為后綴。該文件主要用于存儲表的定義信息,如表結構、字段屬性等。此外,該表的實際數(shù)據(jù)會存儲在以表名為名稱的另外一個文件中,該文件的后綴一般是MYD或MYI。
CREATE TABLE `tablename` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
以上是在MySQL中創(chuàng)建一個名為tablename的表的示例代碼,可以看到,在創(chuàng)建表時并未指定表所屬的數(shù)據(jù)庫,這時,MySQL會默認將表創(chuàng)建在當前連接的數(shù)據(jù)庫中。如果想指定表所屬的數(shù)據(jù)庫,可以在表名前面加上該數(shù)據(jù)庫的名稱,如:database.tablename。