在mysqk中創建一個數據庫直接使用CREATE DATABASE就行了,選擇數據庫使用use databasename而刪除數據庫使用drop命令就可以了,下面我來一一詳細介紹它們的用法。
創建數據庫:
MySQL的任何事情都是以數據庫開始的,數據庫我們可以理解為"書架",表則可以理解為"書架上的書",而表中的數據則可以理解為"書中的內容"。也就是說數據庫是容器。當我們輸入完用戶名密碼連接到MySQL後,可以使用CREATE DATABASE命令來創建一個新的MySQL數據庫。例如:
代碼如下 復制代碼
create database xiaoxiaozi;
/*
Query OK, 1 row affected (0.06 sec)
*/
這樣就創建了一個數據庫,數據庫名為"xiaoxiaozi"。在文件系統中,MySQL的數據存儲區將以目錄方式表示MySQL數據庫。也就是說其實數據庫在文件系統中的表現為"文件夾"。所以說我們在給數據庫命名的時候一定要小心,再小心。其命名規范與操作系統的紅豆目錄名字的規范相一致。
例如:在Windows系統中不允許文件和目錄名中有",/,:,*,?,<,>,|"這些字符,在MySQL數據庫名字中這些字母會被自動刪除。且數據庫的名字不能太長(不能超過64個字符),一般除非故意搞破壞,沒有人建這麼長名字的數據庫,也不好記不是。且包含特殊字符的名字或者是全部由數字或保留字組成的名字必須用反引號包起來。
代碼如下 復制代碼
create database xiaoxiaozixiaoxiaozixiaoxiaozixiaoxiaozixiaoxiaozixiaoxiaozixiaoxiaozixiaoxiaozi;
/*
數據庫名過長
ERROR 1102 (42000): Incorrect database name 'xiaoxiaozixiaoxiaozixiaoxiaozixiaoxiaozixiaoxiaozixiaoxiaozixiaoxiaozixiaoxiaozi'
*/
create database 123456;
/*
數據庫名為純數字,需要用反引號包起來
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123456' at line 1
*/
create database `123456`;
/*
正確創建數據庫名,用反引號將純數字包起來
Query OK, 1 row affected (0.00 sec)
*/
且數據庫的名字不能相同,如果創建一個庫名與現有數據庫名重復,系統會提示該數據庫已經存在,創建失敗。
create database `123456`;
/*
第一次創建,創建成功
Query OK, 1 row affected (0.01 sec)
*/
create database `123456`;
/*
第二次創建,創建失敗
ERROR 1007 (HY000): Can't create database '123456'; database exists
*/
那我們創建數據庫的時候,怎麼樣避免庫名已經存在這個錯誤信息呢?有兩種方式:
•在創建數據庫之前先用 show databases;語句查詢現有數據庫名都有哪些,避免建立失敗。
•在創建數據庫時,使用if not exists語句指明,只有當數據庫不存在時才創建。
/*if not exists*/
create database `123456`;
/*
第一次創建數據庫,成功
Query OK, 1 row affected (0.00 sec)
*/
create database if not exists `123456`;
/*
如果數據庫不存在才創建,執行SQL成功,有一個警告
Query OK, 0 rows affected, 1 warning (0.00 sec)
*/
/*show databases示例*/
show databases;
/*
+------------+
| Database |
+------------+
| 123456 |
| log |
| manager |
| mysql |
| qhcms |
| test |
| xiaoxiaozi |
+------------+
7 rows in set (0.00 sec)
*/
選擇需要的數據庫:
使用USE語句將會選擇一個數據庫,使它成為所有事務的當前數據庫。
代碼如下 復制代碼
use xiaoxiaozi;
/*
提示數據庫已改變
Database changed
*/
同時,我們也可以在查詢表的時候再告訴MySQL我們這些表是哪些數據庫裡的表。
代碼如下 復制代碼 select Host, Db, User From mysql.db;
上面這條語句,與如下兩條語句組合的作用是相同的
use mysql;
/*
選擇mysql數據庫
Database changed
*/
select Host, Db, User From db;
/*
在db表裡面選擇Host, Db, User字段
+----------------------------+---------+-------+
| Host | Db | User |
+----------------------------+---------+-------+
| % | test | |
| % | test_% | |
| 192.168.0.133 | qhcms | cms |
| www.bKjia.c0m | qhcms | cms |
| localhost | log | log |
| localhost | manager | mambo |
| localhost | qhcms | cms |
+----------------------------+---------+-------+
7 rows in set (0.00 sec)
*/
刪除數據庫:
這是一個危險的動作,如果大家要使用的話,一定要先確認這個數據庫是自己的,並且是自己真的想刪的,因為一旦刪除數據庫,是連其內部的表數據一起刪除的。一旦刪除就真的沒了,所以一定要小心,再小心。
其實刪除數據庫的命令很是簡單 drop database database_name; 不過要刪一個數據庫,如果其不存在的話,系統是會報錯的,這個時候我們可以借助if exists來判斷一下數據庫是否存在。
代碼如下 復制代碼
drop database xiaoxiaozi;
/*
第一次刪除xiaoxiaozi數據庫
Query OK, 0 rows affected (0.00 sec)
*/
drop database xiaoxiaozi;
/*
第二次刪除失敗,因為此時該數據庫已經不存在了
ERROR 1008 (HY000): Can't drop database 'xiaoxiaozi'; database doesn't exist
*/
drop database if exists xiaoxiaozi;
/*
刪除的時候先判斷存不存在,如果不存在執行刪除
Query OK, 0 rows affected, 1 warning (0.00 sec)
*/