系統庫
MySQL
在初始化後會建立一些系統庫,不同的系統庫有不同的用處。
information_schema
: 虛擬庫,不佔用磁碟空間,儲存的是資料庫啟動後的一些引數,如使用者表資訊、列資訊、許可權資訊、字元資訊等
performance_schema
: MySQL5.5
開始新增一個資料庫:主要用於收集資料庫伺服器效能引數,記錄處理查詢請求時發生的各種事件、鎖等現象
mysql
: 授權庫,主要儲存系統使用者的許可權資訊
test
: MySQL
資料庫系統自動建立的測試資料庫(看下載的是不是有測試套件的版本)
建立資料庫
語法:create database 資料庫名 charset 字元編碼;
命名規則:可以由字母、數字、下劃線、@
、#
、$
,區分大小寫,具有唯一性,不能使用關鍵字,不能單獨使用數字,最長128位
以下示例將演示建立出一個名為school
的資料庫
mysql> create database school charset utf8;
Query OK, 1 row affected (0.00 sec)
mysql>
檢視資料庫
使用show databases;
可檢視所有的資料庫
使用show create database 資料庫名;
可檢視某一資料庫的建立資訊
使用select database();
可檢視當前所在的資料庫
檢視所有資料庫
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| school |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql>
檢視資料庫的建立資訊
mysql> show create database school;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
檢視當前所在的資料庫
mysql> use school; #進入school資料庫
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| school |
+------------+
1 row in set (0.00 sec)
mysql>
進入資料庫
使用use 資料庫名
可進入指定的資料庫
以下將演示從school
資料庫中進入mysql
內建授權庫中
mysql> use school;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| school |
+------------+
1 row in set (0.00 sec)
mysql> use mysql;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| mysql |
+------------+
1 row in set (0.00 sec)
mysql>
修改資料庫
修改資料庫無非是修改其字元編碼,使用alter database 資料庫名 charset 字元編碼;
進行修改
以下示例將展示將school
資料庫字元編碼utf8
修改為gbk
,再將其改回來的操作;
mysql> show create database school;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> alter database school charset gbk;
Query OK, 1 row affected (0.00 sec)
mysql> show create database school;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> alter database school charset utf8;
Query OK, 1 row affected (0.00 sec)
mysql> show create database school;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
刪除資料庫
使用drop database 資料庫名;
可對資料庫進行刪除
為了防止刪除不存在的資料庫報錯可以使用if
判斷要執行刪除的資料庫是否存在,,drop database if exists 資料庫名;
mysql> drop database if exists school;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>