mysql安装参考:https://www.linuxsre.cn/wiki/dbserver/50
语法: 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 存储字符串的方式,校对规则定义了比较字符串的方式,解决排序和字符分组的问题。 |
utf8 | 能够存储全球的所有字符,在任何国家都可以使用,默认的校对规则为 utf8_general_ci,对于中文可以使用 utf8_general_ci。 |
gbk | 只能存储汉语涉及到的字符,不具有全球通用性,默认的校对规则为 gbk_chinese_ci。 |
案例:
[root@localhost ~]# mysql -uroot -p
Enter password:
##mysql> create database myschool default character set utf8 collate utf8_general_ci;
##下面是简化命令
mysql> create database myschool;
Query OK, 1 row affected (0.33 sec)
##Query ok:表示sql语句执行成功;
##1 row affected:表示影响操作的行数;
##0.33 sec表示操作时间。
## 数据库创建成功后文件系统(mysql的datadir下面)会增加myschool目录
[root@localhost ~]# ll /var/lib/mysql/myschool/
total 0
show databases; 查看所有的库;SHOW DATABASES [LIKE '数据库名'];
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myschool |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)
mysql> show databases like 'myschool';
+---------------------+
| Database (myschool) |
+---------------------+
| myschool |
+---------------------+
1 row in set (0.00 sec)
###查看以my开头的库
mysql> show databases like 'my%';
+----------------+
| Database (my%) |
+----------------+
| myschool |
| mysql |
+----------------+
2 rows in set (0.00 sec)
###查看l结尾的库
mysql> show databases like '%l';
+---------------+
| Database (%l) |
+---------------+
| myschool |
| mysql |
+---------------+
2 rows in set (0.00 sec)
###查看ool结尾的库
mysql> show databases like '%ool';
+-----------------+
| Database (%ool) |
+-----------------+
| myschool |
+-----------------+
1 row in set (0.00 sec)
show create database myschool; 查看建立数据库的sql语句
mysql> show create database myschool;
+----------+------------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------------------------------------------------------------------------+
| myschool | CREATE DATABASE `myschool` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
DROP DATABASE [ IF EXISTS ] <数据库名>
mysql> drop database myschool;
Query OK, 0 rows affected (0.35 sec)
可以使用 ALTER DATABASE 或 ALTER SCHEMA 语句来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为:
案例:修改字符集编码和排序方式。
mysql> ALTER DATABASE myschool DEFAULT CHARACTER SET gb2312 DEFAULT COLLATE gb2312_chinese_ci;
Query OK, 1 row affected (0.35 sec)
mysql> SHOW CREATE DATABASE myschool;
+----------+--------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------------------------------------------+
| myschool | CREATE DATABASE `myschool` /*!40100 DEFAULT CHARACTER SET gb2312 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+--------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> ALTER DATABASE myschool DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected, 2 warnings (0.00 sec)
mysql> SHOW CREATE DATABASE myschool;
+----------+------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------------------------------------------+
| myschool | CREATE DATABASE `myschool` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
数据是存放在数据表中的,在对数据进行操作之前,需要确定该表所在的数据库,因此,需要选择一个数据库。当用 CREATE DATABASE 语句创建数据库之后,该数据库不会自动成为当前数据库,需要用 USE 来指定当前数据库。其语法格式为: USE <数据库名>
mysql> use mysql;
Database changed
mysql> use myschool;
Database changed