MySql 增、删、改、查数据库
前言
之前几天写了MySql 的GROUP BY 语句和 JOIN 语句,今天补一下创建数据库、表的语句。首先假设已经暗转好MySQL 数据库,然后创建数据库、表。
创建数据库
create database [if not exists] 数据库名;
[CHARACTER SET charset_name]
[COLLATE collation_name];
- if not exists 表示如果数据库不存在则创建,如果存在则不创建
- charset_name 表示字符集,比如 utf8,gbk,latin1
- collation_name 表示排序规则,比如 utf8_general_ci,gbk_chinese_ci
简单创建数据库
create database study_dbs;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| study_dbs |
| sys |
+--------------------+
-
再次通过 create database study_dbs 创建数据库 会抛出错误
ERROR 1007 (HY000): Can't create database 'study_dbs'; database exists
-
原因:数据库已存在
解决办法有两种
- 直接删除数据库,再重新新建,这种方法个人理解只适合新建数据库时使用,一旦数据库已经存在并保存了数据,这种方法不适用,想要删除需要确认数据已经备份或者不在需要
- 使用 if not exists 判断数据库是否存在,如果存在则不创建,如果不存在则创建,这种方法适合数据库已经存在的情况
CREATE DATABASE IF NOT EXISTS study_dbs;
- if not exists 表示数据不存在创建,存在则不创建
Query OK, 1 row affected (0.00 sec)
含有设置字符集的创建数据库语法
create database if not exists study_dbs
character set utf8mb4
collate utf8mb4_general_ci;
查看数据库字符集和排序规则
mysql> show create database study_dbs;
删除数据库
- drop database [if exists] 数据库名;
drop database study_dbs;
- 删除数据库后,再次查询数据库,发现数据库已经不存在
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
为了避免再删除数据库时抛出错误 可以加上 if exists 判断数据库是否存在
drop database if exists study_dbs;
修改数据库字符集和排序规则
alter database study_dbs
character set GBK
collate gbk_chinese_ci;
- 再次查看数据库字符集和排序规则
mysql> show create database study_dbs;
可以看到数据库的字符集和排序规则已经修改
使用数据库
use study_dbs;