1 資料庫建立
建庫語句如下:
create database|schema會建立乙個給定名稱的資料庫,只有擁有create許可權才能使用該語法。不加if not exists時,如果需要建立資料庫已經同名存在則會報錯。
create_specification中指定了建立資料庫特性。資料庫特性存放在資料庫目錄下的db.opt檔案中,一般在資料庫安裝目錄的data/db_name/子目錄下。character set子句指定了資料庫預設的字符集,collate子句指定了資料庫預設校對。
mysql的資料庫以資料庫名為目錄下包含與表對應的檔案的方式實現的,例如我的資料庫安裝目錄是/usr/local/mysql,並且建立了乙個test資料庫,裡面有個test表。那麼在/usr/local/mysql/data目錄下的test子目錄就是test資料庫對應的目錄,該子目錄下的db.opt就指定了test資料庫的特性。其中test.frm就是test表的資料檔案。在資料的初創時是沒有表存在的,它只會在data目錄下生成資料庫目錄並在其中生成db.opt檔案。
如果在data目錄下使用mkdir命令直接建立乙個目錄,伺服器也會把它當作乙個資料庫,並且在show databases中也可以輸出。
mysql對於資料庫的個數並沒做限制,但是需要考慮部署服務的檔案系統可能對子目錄的個數有限制。
2 資料庫刪除
drop database會刪除所有的資料表並刪除資料庫,使用該命令應該擁有drop許可權。drop schema是同等命令。注意:當乙個資料庫被刪除時,該資料庫對應的使用者許可權不會自動刪除,需要手工刪除。
if exists就是為了防止所要刪除的資料庫不存在而報錯。
如果當前預設的資料庫被刪除了,那麼預設資料庫不會被設定,也就是在執行database()函式會返回null。如下圖所示:
如果資料庫上存在鏈結使用該命令,那麼鏈結庫和原始庫都會被刪除。
drop database命令會返回刪除的表的個數,即.frm檔案的個數。該命令會刪除資料庫目錄以及目錄下的所有檔案,包括:.bak、.dat、.hsh、.mrg、.myd、.myi、.trg、 .trn、.cfg、.db、.frm、.ibd、.ndb、 .par以及.opt等。
如果目錄下還存在其他不能刪除的檔案,那麼該資料庫目錄是不會被刪除的,這是需要手動去刪除資料庫目錄下的檔案,然後在重新執行drop database命令。
刪除資料庫時,不會刪除資料庫中的臨時表,臨時表在建立它的會話結束後會自動刪除。
3 資料庫修改
alter database或alter schema可以用來改變資料庫的所有屬性,也就是資料庫目錄下的db.opt檔案,該命令需要alter許可權才能執行。如果命令中省略了db_name,則對預設資料庫進行操作。
1> 國家語言選擇
character set子句會修改資料庫預設的字符集,collate子句會修改資料庫校驗。第10章字符集、校驗、解碼中討論了這些東西。
可以通過使用show character set和show collation語句檢視哪些字符集和校驗碼可以使用。如果修改了資料庫預設編碼與校驗,之前儲存過程和函式必須被刪除並重新建立。
2> 5.1後的公升級
upgrade data directory子句用與對5.1版本之前的資料庫資料檔案目錄進行重新命名。該子句使用有以下條件:
1) 從5.1之前的版本公升級到5.1;
2) 如果資料目錄名中存在特殊的字元,該命令可以將命名公升級資料庫當前的編碼。
3) 通過mysqlcheck命令使用;
例如,如果mysql5.0中有資料庫名為a-b-c,資料目錄名也被定義為a-b-c,對於某些檔案系統來說這是不安全的。在mysql5.1及之後,這樣的資料目錄名會被編碼為a@002db@002dc。
當系統公升級為5.1或之後版本後,a-b-c的名稱會顯示為#mysql50#a-b-c,此時需要使用#mysql50字首來使用該名稱。upgrade ddat directory name就能是伺服器重新對該目錄名稱進行編碼,如下**:
然後就可以使用資料庫名a-b-c,不用新增#mysql50#字首了。
注意:5.7.6版本已經啟用了該子句並且在之後版本會刪除該子句。如果需要使用該方式,可以現將資料庫公升級到5.1,然後再公升級到5.7.6之後。
mysql資料庫基本語法 MySQL資料庫基本語法
toc sqlwhat sql是什麼?structured query language 結構化查詢語 why 為何要使用sql?難道僅僅使用sql server management studio運算元據庫?應用程式如何與資料庫打交道?when 何時使用?對sql server執 所有的操作都可以...
mysql資料庫名語法 MySQL資料庫基本語法
1,檢視資料庫 show databases 2,選擇要操作的資料庫 use 資料庫名 3,建立資料庫 create database 資料庫名稱 4,刪除資料庫 drop database 資料庫名稱 5,建立表 create table 表名 列名 列型別,6,檢視當前資料庫所有表 show t...
MySQL資料庫操作語法
create database if notexists name drop database if exists name use name show databases型別名稱 占用大小 char 固定大小 0 255 varchar 常用 可變長度 0 65535 tinytext 2 8 1...