MySQL數據庫操做

建立數據庫  

CREATE DATABASE [IF NOT EXISTS] <數據庫名> [[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校對規則名>];

[ ]中的內容是可選的。語法說明以下:

  • <數據庫名>:建立數據庫的名稱。MySQL 的數據存儲區將以目錄方式表示 MySQL 數據庫,所以數據庫名稱必須符合操做系統的文件夾命名規則,注意在 MySQL 中不區分大小寫。

  • IF NOT EXISTS:在建立數據庫以前進行判斷,只有該數據庫目前尚不存在時才能執行操做。此選項能夠用來避免數據庫已經存在而重複建立的錯誤。

  • [DEFAULT] CHARACTER SET:指定數據庫的默認字符集。

  • [DEFAULT] COLLATE:指定字符集的默認校對規則。

MySQL 的字符集(CHARACTER)和校對規則(COLLATION)兩個不一樣的概念:字符集是用來定義 MySQL 存儲字符串的方式,校對規則定義了比較字符串的方式,解決排序和字符分組的問題。

爲防止字符混亂的狀況發生,MySQL 有時須要在建立數據庫時明確指定字符集;在中國大陸地區,經常使用的字符集有 utf8 和 gbk。

  • utf8 可以存儲全球的全部字符,在任何國家均可以使用,默認的校對規則爲 utf8_general_ci,對於中文可使用 utf8_general_ci。

  • gbk 只能存儲漢語涉及到的字符,不具備全球通用性,默認的校對規則爲 gbk_chinese_ci。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql> create database yhq;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| yhq                |
+--------------------+
5 rows in set (0.00 sec)

mysql> create database yhq;
ERROR 1007 (HY000): Can't create database 'yhq'; database exists
mysql> create database if not exists yhq;
Query OK, 1 row affected, 1 warning (0.00 sec)

顯示數據庫

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| yhq                |
+--------------------+
5 rows in set (0.00 sec)

mysql> show databases like 'y_';   #佔位符
Empty set (0.00 sec)

mysql> show databases like 'y__';
+----------------+
| Database (y__) |
+----------------+
| yhq            |
+----------------+
1 row in set (0.00 sec)

mysql> show databases like 'y%';
+---------------+
| Database (y%) |
+---------------+
| yhq           |
+---------------+
1 row in set (0.00 sec)

mysql> show databases like 'yhq';
+----------------+
| Database (yhq) |
+----------------+
| yhq            |
+----------------+
1 row in set (0.00 sec)

查看當前數據庫

mysql> use yhq;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| yhq        |
+------------+
1 row in set (0.00 sec)

修改數據庫

ALTER DATABASE [數據庫名] { [ DEFAULT ] CHARACTER SET <字符集名> |[ DEFAULT ] COLLATE <校對規則名>}

  • ALTER DATABASE 用於更改數據庫的全局特性。這些特性存儲在數據庫目錄的 db.opt 文件中。

  • 使用 ALTER DATABASE 須要得到數據庫 ALTER 權限。

  • 數據庫名稱能夠忽略,此時語句對應於默認數據庫。

  • CHARACTER SET 子句用於更改默認的數據庫字符集。

刪除數據庫

DROP DATABASE [ IF EXISTS ] <數據庫名>

  • <數據庫名>:指定要刪除的數據庫名。

  • IF EXISTS:用於防止當數據庫不存在時發生錯誤。

  • DROP DATABASE:刪除數據庫中的全部表格並同時刪除數據庫。使用此語句時要很是當心,以避免錯誤刪除。若是要使用 DROP DATABASE,須要得到數據庫 DROP 權限。

注意:MySQL 安裝後,系統會自動建立名爲 information_schema 和 mysql 的兩個系統數據庫,系統數據庫存放一些和數據庫相關的信息,若是刪除了這兩個數據庫,MySQL 將不能正常工做。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| qhh                |
| test               |
| yhq                |
+--------------------+
6 rows in set (0.00 sec)

mysql> drop database qhh;
Query OK, 0 rows affected (0.00 sec)
mysql
> drop database qhh; ERROR 1008 (HY000): Can't drop database 'qhh'; database doesn't exist mysql> drop database if exists qhh; Query OK, 0 rows affected, 1 warning (0.00 sec)

選擇數據庫

USE <數據庫名>

該語句能夠通知 MySQL 把<數據庫名>所指示的數據庫做爲當前數據庫。該數據庫保持爲默認數據庫,直到語段的結尾,或者直到碰見一個不一樣的 USE 語句。

只有使用 USE 語句來指定某個數據庫做爲當前數據庫以後,才能對該數據庫及其存儲的數據對象執行操做。

mysql> use yhq;
Database changed
相關文章
相關標籤/搜索