MySQL库的操作
MySQL庫的操作
文章目錄
- MySQL庫的操作
- 1. 創建數據庫
- 2. 創建數據庫案例
- 3. 字符集和校驗規則
- 4. 操縱數據庫
1. 創建數據庫
語法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification, [create_specification]...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name說明:
大寫的表示關鍵字
[] 是可選項
CHARACTER SET: 指定數據庫采用的字符集
COLLATE: 指定數據庫字符集的校驗規則
2. 創建數據庫案例
1.創建名為 db1 的數據庫:
create database db1;說明:當我們創建數據庫沒有指定字符集和校驗規則時,系統使用默認字符集: utf8,校驗規則是: utf8_general_ ci
2.創建一個使用utf8字符集的 db2 數據庫:
create database db2 charset=utf8;3.創建一個使用utf字符集,并帶校對規則的 db3 數據庫:
create database db3 charset=utf8 collate utf8_general_ci;3. 字符集和校驗規則
1.查看系統默認字符集以及校驗規則:
show variables like 'character_set_database'; show variables like 'collation_database';2. 查看數據庫支持的字符集:
show charset;3. 查看數據庫支持的字符集校驗規則:
show collation;4. 校驗規則對數據庫的影響:
- 不區分大小寫
創建一個數據庫,校驗規則使用utf8_ general_ ci[不區分大小寫]
- 區分大小寫
創建一個數據庫,校驗規則使用utf8_ bin[區分大小寫]
- 進行查詢
不區分大小寫的查詢以及結果:
區分大小寫的查詢以及結果:
mysql> use test2; mysql> select * from person where name='a'; +------+ | name | +------+ | a | +------+ 2 rows in set (0.01 sec)- 結果排序
不區分大小寫排序以及結果:
區分大小寫排序以及結果:
mysql> use test2; mysql> select * from person order by name; +------+ | name | +------+ | A | | B | | a | | b | +------+4. 操縱數據庫
1. 查看數據庫:
show databases;2. 顯示創建語句:
show create database 數據庫名;示例:
mysql> show create database mytest; +----------+----------------------------------------------------------------+ | Database | Create Database | +----------+----------------------------------------------------------------+ | mysql | CREATE DATABASE `mytest` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+----------------------------------------------------------------+說明:
- MySQL 建議我們關鍵字使用大寫,但是不是必須的。
- 數據庫名字的反引號``,是為了防止使用的數據庫名剛好是關鍵字
- /?!40100default....?//*!40100 default.... *//?!40100default....?/ 這個不是注釋,表示當前mysql版本大于4.01版本,就執行這句話
3. 修改數據庫:
語法:
說明:
對數據庫的修改主要指的是修改數據庫的字符集,校驗規則
實例: 將 mytest 數據庫字符集改成 gbk
mysql> alter database mytest charset=gbk; Query OK, 1 row affected (0.00 sec) mysql> show create database mytest; +----------+----------------------------------------------------------------+ | Database | Create Database | +----------+----------------------------------------------------------------+ | mytest | CREATE DATABASE `mytest` /*!40100 DEFAULT CHARACTER SET gbk */ | +----------+----------------------------------------------------------------+4. 數據庫刪除:
DROP DATABASE [IF EXISTS] db_ name;執行刪除之后的結果:
- 數據庫內部看不到對應的數據庫
- 對應的數據庫文件夾被刪除,級聯刪除,里面的數據表全部被刪
注意:不要隨意刪除數據庫,小心炒魷魚。
5. 備份和恢復數據庫:
備份語法:
mysqldump -P3306 -u root -p 密碼 -B 數據庫名 > 數據庫備份存儲的文件路徑示例:將mytest庫備份到文件(退出連接)
mysqldump -P3306 -u root -p123456 -B mytest > ./mytest.sql這時,可以打開看看 mytest.sql 文件里的內容,其實把我們整個創建數據庫,建表,導入數據的語句都裝載這個文件中。
還原語法:
mysql> source D:/mysql-5.7.22/mytest.sql;同時備份多個數據庫:
mysqldump -u root -p -B 數據庫名1 數據庫名2 ... > 數據庫存放路徑備份一張表:
mysqldump -u root -p 數據庫名 表名1 表名2 > ./mytest.sql注意:如果備份一個數據庫時,沒有帶上-B參數, 在恢復數據庫時,需要先創建空數據庫,然后使用數據庫,再使用source來還原
6. 查看連接情況:
語法:
show processlist示例:
mysql> show processlist; +----+------+-----------+------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+------+---------+------+-------+------------------+ | 2 | root | localhost | test | Sleep | 1386 | | NULL | | 3 | root | localhost | NULL | Query | 0 | NULL | show processlist | +----+------+-----------+------+---------+------+-------+------------------+可以告訴我們當前有哪些用戶連接到我們的MySQL,如果查出某個用戶不是你正常登陸的,很有可能你的數據庫被人入侵了。以后大家發現自己數據庫比較慢時,可以用這個指令來查看數據庫連接情況。
總結
- 上一篇: 你真的会求素数吗?
- 下一篇: MySQL的基本查询(一)