mysql/数据库管理.md
2025-03-11 16:47:28 +08:00

954 lines
26 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<h2><center>数据库管理</center></h2>
------
## 一:数据类型
在MySQL数据库管理系统中可以通过存储引擎来决定表的类型。同时MySQL数据库管理系统也提供了数据类型决定表存储数据的类型。
### 1. 数值类型
**整数类型**
整数类型TINYINT SMALLINT MEDIUMINT INT BIGINT
作用用于存储用户的年龄、游戏的Level、经验值等
![](http://182.92.143.66:40072/directlink/img/mysql/images-202503110011.png)
**浮点数类型**
浮点数类型FLOAT DOUBLE
作用:用于存储用户的身高、体重、薪水等
![](http://182.92.143.66:40072/directlink/img/mysql/images-202503110012.png)
```SQL
float(5,3) # 5宽度 3精度
注意:
宽度不算小数点
宽度-精度=整数
案例:
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> use test
Database changed
mysql> create table t1(id float(6,2));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t1 values('2.22');
Query OK, 1 row affected (0.02 sec)
```
**定点数类型**
定点数类型DEC
作用定点数在MySQL内部以字符串形式存储比浮点数更精确适合用来表示货币等精度高的数据
**位类型**
位类型BIT
作用BITM可以用来存放多位二进制数M范围从1~64如果不写默认为1位
### 2. 字符串类型
- CHAR系列CHAR VARCHAR
- TEXT系列TINYTEXT TEXT MEDIUMTEXT LONGTEXT
- BLOB系列TINYBLOB BLOB MEDIUMBLOB LONGBLOB
- BINARY系列BINARY VARBINARY
**枚举类型**
枚举类型:枚举列可以把一些不重复的字符串存储成一个预定义的集合
```SQL
mysql> create table enum_table(e ENUM('fish','apple','dog'));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into enum_table(e) values('fish');
Query OK, 1 row affected (0.01 sec)
mysql> select * from enum_table;
+------+
| e |
+------+
| fish |
+------+
1 row in set (0.00 sec)
mysql> insert into enum_table(e) values('nihao');
ERROR 1265 (01000): Data truncated for column 'e' at row 1
```
**时间和日期类型**
时间和日期类型DATE、TIME、DATETIME、TIMESTAMP、YEAR
作用:用于存储用户的注册时间,文章的发布时间,文章的更新时间,员工的入职时间等
![](http://182.92.143.66:40072/directlink/img/mysql/images-202503110013.png)
```SQL
mysql> create table t2(
-> id1 timestamp NOT NULL default CURRENT_TIMESTAMP,
-> id2 datetime default NULL
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t2(id1) values('20250311104200');
Query OK, 1 row affected (0.00 sec)
mysql> select * from t2;
+---------------------+------+
| id1 | id2 |
+---------------------+------+
| 2025-03-11 10:42:00 | NULL |
+---------------------+------+
1 row in set (0.00 sec)
timestamp 类型的列还有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL 会替你去处理。
扩展:
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2025-03-11 10:42:44 |
+---------------------+
1 row in set (0.00 sec)
```
## 二:表操作
**使用编辑器编辑指令**
```SQL
mysql> edit
mysql> \e
```
**在mysql客户端内执行系统命令**
```SQL
mysql> system ls
mysql> \! ls
```
### 1. 案例
school.student1
```
字段 字段 字段
id name sex age
1 tom male 23 记录
2 jack male 21 记录
3 alice female 19 记录
```
语法:
```SQL
create table 表名(自定义)(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
)[存储引擎 字符集];
1.在同一张表中,字段名是不能相同
2.宽度和约束条件可选
3.字段名和类型是必须的
```
创建库表:
```SQL
mysql> create database school;
Query OK, 1 row affected (0.00 sec)
mysql> use school
Database changed
mysql> create table student1(
-> id int,
-> name varchar(50),
-> sex enum('m','f'),
-> age int
-> );
Query OK, 0 rows affected (0.01 sec)
```
查看库:
```SQL
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student1 |
+------------------+
1 row in set (0.00 sec)
```
插入语法:
```SQL
insert into 表名(字段1,字段2...) values(字段值列表...);
```
插入数据:
```SQL
mysql> insert into student1(id,name,sex,age) values(1,'wxin','m',26);
Query OK, 1 row affected (0.01 sec)
```
查看表结构:
```SQL
mysql> desc student1;
+-------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| sex | enum('m','f') | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> show create table student1;
mysql> show table status like 'student1' \G
```
查询数据:
```SQL
mysql> select id,name,sex,age from student1; //查询表中所有字段的值
+------+------+------+------+
| id | name | sex | age |
+------+------+------+------+
| 1 | wxin | m | 26 |
+------+------+------+------+
1 row in set (0.00 sec)
mysql> select * from student1; //查询表中所有字段的值
+------+------+------+------+
| id | name | sex | age |
+------+------+------+------+
| 1 | wxin | m | 26 |
+------+------+------+------+
1 row in set (0.00 sec)
mysql> select name,age from student1; //查询表中指定字段的值
+------+------+
| name | age |
+------+------+
| wxin | 26 |
+------+------+
1 row in set (0.00 sec)
```
扩展插入:
```SQL
mysql> insert into student1 values(2,'wyu','f',25),(3,'wyi','m',24),(4,'wbo','m',23); //顺序插入
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> insert into student1(name,age) values('zhangsan',22),('lisi',21);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
```
### 2. 案例
school.student2
```
字段名 数据类型
编号 id int
姓名 name varchar(50)
出生年份 born_year year
生日 birthday date
上课时间 class_time time
注册时间 reg_time datetime
```
创建表:
```SQL
mysql> create table student2(
-> id int,
-> name varchar(50),
-> born_year year,
-> birthday date,
-> class_time time,
-> reg_time datetime
-> );
Query OK, 0 rows affected (0.00 sec)
```
插入数据:
```SQL
mysql> insert into student2 values(1,'tom',now(),now(),now(),now());
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> insert into student2 values(2,'jack',1982,19821120,123000,20140415162545);
Query OK, 1 row affected (0.00 sec)
```
school.student3
```
id id int
姓名 name varchar(50)
性别 sex enum('male','female')
爱好 hobby set('music','book','game','disc')
```
创建表:
```SQL
mysql> create table student3(
-> id int,
-> name varchar(50),
-> sex enum('m','f'),
-> hobby set('music','book','game','disc')
-> );
Query OK, 0 rows affected (0.00 sec)
```
查看表结构:
```SQL
mysql> desc student3;
+-------+-----------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------------------------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| sex | enum('m','f') | YES | | NULL | |
| hobby | set('music','book','game','disc') | YES | | NULL | |
+-------+-----------------------------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> show create table student3\G
*************************** 1. row ***************************
Table: student3
Create Table: CREATE TABLE `student3` (
`id` int(11) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`sex` enum('m','f') DEFAULT NULL,
`hobby` set('music','book','game','disc') DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
```
插入数据:
```SQL
mysql> insert into student3 values(1,'tom','m','book,game');
Query OK, 1 row affected (0.00 sec)
mysql> insert into student3 values(2,'jack','m','film');
ERROR 1265 (01000): Data truncated for column 'hobby' at row 1
```
注意:
DESCRIBE查看表结构
```SQL
DESCRIBE 表名;
DESC 表名;
```
查看表详细结构:
```SQL
SHOW CREATE TABLE 表名;
```
## 三:表完整性约束
### 1. 作用
用于保证数据的完整性和一致性
### 2. 约束条件
- RPIMARY KEYPK标识该字段为该表的主键可以唯一的标识记录不可以为空 UNIQUE+NOT NULL
- FOREIGN KEYFK标识该字段为该表的外键实现表与表父表主键/子表1外键/子表2外键之间的关联
- NOT NULL标识该字段不能为空
- UNIQUE KEYUK标识该字段的值是唯一的可以为空一个表中可以有多个UNIQUE KEY
- AUTO_INCREMENT标识该字段的值自动增长整数类型而且为主键
- DEFAULT该字段设置默认值
注意:
- 是否允许为空默认NULL可设置NOT NULL字段不允许为空必须赋值
- 字段是否有默认值缺省的默认值是NULL如果插入记录时不给字段赋值此字段使用默认值
```SQL
mysql> sex enum('male','female') not null default 'male'
mysql> age int unsigned NOT NULL default 20
必须为正值(无符号) 不允许为空 默认是20
```
是否是key 主键 primary key 外键 forengn key
### 3. NOT NULL
school.student4
创建表:
```SQL
mysql> create table student4(
-> id int not null,
-> name varchar(50) not null,
-> sex enum('m','f') default 'm' not null,
-> age int unsigned default 18 not null,
-> hobby set('music','disc','dance','book') default 'book,dance'
-> );
Query OK, 0 rows affected (0.01 sec)
```
插入数据:(注意观察查询到的数据)
```SQL
mysql> insert into student4(id,name) values(2,'robin');
Query OK, 1 row affected (0.00 sec)
mysql> select * from student4;
+----+-------+-----+-----+------------+
| id | name | sex | age | hobby |
+----+-------+-----+-----+------------+
| 2 | robin | m | 18 | dance,book |
+----+-------+-----+-----+------------+
1 row in set (0.00 sec)
```
注意报错的原因:
```SQL
mysql> insert into student4 values(3,null,'m',40,'book');
ERROR 1048 (23000): Column 'name' cannot be null
```
### 4. 唯一约束
作用:
MySQL索引的建立对于MySQL的高效运行是很重要的索引可以大大提高MySQL的检索速度
company.department
创建表:
```SQL
mysql> create database company;
Query OK, 1 row affected (0.00 sec)
mysql> create table company.department1(
-> dept_id int,
-> dept_name varchar(30) UNIQUE,
-> comment varchar(50)
-> );
Query OK, 0 rows affected (0.00 sec)
```
查看表结构:
```SQL
mysql> desc company.department1;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| dept_id | int(11) | YES | | NULL | |
| dept_name | varchar(30) | YES | UNI | NULL | |
| comment | varchar(50) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
```
数据插入:(注意查看插入数据时的提示)
```SQL
mysql> insert into company.department1 values(1,'zhangsan','hr');
Query OK, 1 row affected (0.00 sec)
mysql> insert into company.department1 values(1,'zhangsan','hr');
ERROR 1062 (23000): Duplicate entry 'zhangsan' for key 'dept_name'
```
### 5. 主键约束
注意:
primary key字段的值是不允许重复且不允许不NULLUNIQUE + NOT NULL
school.student6
创建表:
```SQL
mysql> create table school.student6(
-> id int primary key not null auto_increment,
-> name varchar(50) not null,
-> sex enum('m','f') not null default 'm',
-> age int not null default 18
-> );
Query OK, 0 rows affected (0.01 sec)
```
插入数据:
```SQL
mysql> insert into school.student6 values (1,'alice','f',22);
Query OK, 1 row affected (0.00 sec)
mysql> insert into school.student6(name,sex,age) values ('jack','m',19),('tom','m',23);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from school.student6;
+----+-------+-----+-----+
| id | name | sex | age |
+----+-------+-----+-----+
| 1 | alice | f | 22 |
| 2 | jack | m | 19 |
| 3 | tom | m | 23 |
+----+-------+-----+-----+
3 rows in set (0.00 sec)
```
## 四:修改表
语法格式:
- 修改表名
1. alter table 表名 rename 新表名
2. rename table 新表名 to 表名
- 增加字段
1. alter table 表名
add 字段名 数据类型 [完整性约束条件...],
add 字段名 数据类型 [完整性约束条件...];
2. alter table 表名 add 字段名 数据类型 [完整性约束条件...] after 字段名;
- 删除字段alter table 表名 drop 字段名
- 修改字段
1. alter table 表名 modify 字段名 数据类型 [完整性约束条件...];
2. alter table 表名 change 旧字段名 新字段名 旧数据类型 [完整性约束条件...];
3. alter table 表名 change 旧字段名 新字段名 新数据类型 [完整性数据约束...]
### 1. 修改数据库引擎
```SQL
mysql> alter table student2 engine=myisam;
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
//engine=innodb|memory|....
```
### 2. 添加字段
```SQL
mysql> create table student5(id int);
Query OK, 0 rows affected (0.01 sec)
mysql> alter table student5 add name varchar(30) not null,add age int not null default 22;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table student5 add stu_num int not null after name;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table student5 add sex enum('m','f') default 'm' first;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
```
### 3. 删除字段
```SQL
mysql> alter table student5 drop sex;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
```
### 4. 修改字段类型
```SQL
mysql> desc student5;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(30) | NO | | NULL | |
| stu_num | int(11) | NO | | NULL | |
| age | int(11) | NO | | 22 | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> alter table student5 modify age tinyint not null;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc student5;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(30) | NO | | NULL | |
| stu_num | int(11) | NO | | NULL | |
| age | tinyint(4) | NO | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
mysql> alter table student5 modify id int not null primary key;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc student5;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(30) | NO | | NULL | |
| stu_num | int(11) | NO | | NULL | |
| age | tinyint(4) | NO | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
```
### 5. 增加约束
```SQL
mysql> desc student5;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(30) | NO | | NULL | |
| stu_num | int(11) | NO | | NULL | |
| age | tinyint(4) | NO | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> alter table student5 modify id int not null auto_increment;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc student5; +---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(30) | NO | | NULL | |
| stu_num | int(11) | NO | | NULL | |
| age | tinyint(4) | NO | | NULL | |
+---------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
```
### 6. 增加主键
```SQL
mysql> desc student1;
+-------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| sex | enum('m','f') | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> alter table student1 add primary key(id);
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc student1;
+-------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | YES | | NULL | |
| sex | enum('m','f') | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
```
### 7. 修改主键和自增
```SQL
mysql> alter table student1 modify id int auto_increment;
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> desc student1;
+-------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | YES | | NULL | |
| sex | enum('m','f') | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+---------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
```
### 8. 删除主键
```SQL
mysql> desc student5;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(30) | NO | | NULL | |
| stu_num | int(11) | NO | | NULL | |
| age | tinyint(4) | NO | | NULL | |
+---------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql> alter table student5 drop primary key;
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
mysql> alter table student5 modify id int not null;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc student5;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(30) | NO | | NULL | |
| stu_num | int(11) | NO | | NULL | |
| age | tinyint(4) | NO | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
```
### 9. 复制表
复制表结构+记录 key不会复制: 主键、外键和索引)复制表结构/记录+表结构不会将Key复制
```SQL
mysql> create table new_service select * from service;
```
只复制表结构
```SQL
mysql> create table new1_service select * from service where 1=2; //条件为假,查不到任何记录
```
可以复制主键,只复制表结构
```SQL
mysql> create table t4 like employees;
```
### 10. 删除表
```SQL
mysql> DROP TABLE 表名;
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student1 |
| student2 |
| student3 |
| student4 |
| student5 |
| student6 |
+------------------+
6 rows in set (0.00 sec)
mysql> drop table student5;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student1 |
| student2 |
| student3 |
| student4 |
| student6 |
+------------------+
5 rows in set (0.00 sec)
```
### 11. 修改数据表中字段的值
语法:
update 表名 set 列名=值 where 条件
```SQL
mysql> update student set name='123' where id=1;
```
### 12. 删除某一行
语法:
delete from 表名 where id = 1
```SQL
mysql> delete from type where id=1;
```
## 五:库操作
### 1. 简介
系统自带库的含义及作用
```SQL
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
7 rows in set (0.00 sec)
```
- information_schema虚拟库主要存储了系统中的一些数据库对象的信息例如用户表信息、列信息、权限信息、字符信息等
- performance_schema主要存储数据库服务器的性能参数
- mysql授权库主要存储系统用户的权限信息
- sys主要存储数据库服务器的性能参数
注意information_schema
SCHEMATA 存放的是系统中的库
```SQL
mysql> select * from information_schema.SCHEMATA;
+--------------+--------------------+----------------------------+------------------------+----------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
+--------------+--------------------+----------------------------+------------------------+----------+
| def | information_schema | utf8 | utf8_general_ci | NULL |
| def | company | utf8 | utf8_general_ci | NULL |
| def | mysql | utf8 | utf8_general_ci | NULL |
| def | performance_schema | utf8 | utf8_general_ci | NULL |
| def | school | utf8 | utf8_general_ci | NULL |
| def | sys | utf8 | utf8_general_ci | NULL |
| def | test | utf8 | utf8_general_ci | NULL |
+--------------+--------------------+----------------------------+------------------------+----------+
7 rows in set (0.00 sec)
目录_名称
实际库_名称
默认_字符_设置_名称
默认_分类_名称
```
TABLES 存储表名
```SQL
mysql> select * from information_schema.TABLES\G
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: information_schema
TABLE_NAME: CHARACTER_SETS
TABLE_TYPE: SYSTEM VIEW
ENGINE: MEMORY
VERSION: 10
ROW_FORMAT: Fixed
TABLE_ROWS: NULL
AVG_ROW_LENGTH: 384
DATA_LENGTH: 0
MAX_DATA_LENGTH: 16434816
INDEX_LENGTH: 0
DATA_FREE: 0
AUTO_INCREMENT: NULL
CREATE_TIME: 2025-03-11 12:37:46
UPDATE_TIME: NULL
CHECK_TIME: NULL
TABLE_COLLATION: utf8_general_ci
CHECKSUM: NULL
CREATE_OPTIONS: max_rows=43690
TABLE_COMMENT:
```
### 2. 创建库
方案一:交互式操作
```SQL
mysql> create database wxin;
Query OK, 1 row affected (0.00 sec)
```
方案二:非交互式
```bash
[root@rpm mysql]# ./bin/mysql -uroot -p'Wfahui@3123' -e "create database wxin";
```
数据库命名规则:
- 区分大小写
- 唯一性
- 不能使用关键字如 create select
- 不能单独使用数字
**sql语句结尾**
每条sql语句都要以;结尾,但是如果列比较多,想看的清楚一点,可以以\G结尾
### 3. 查看数据库
```SQL
mysql> show databases;
mysql> show create database wxin;
mysql> select database(); 查看当前所在的库
```
### 4.切换数据库
```SQL
mysql> use wxin
```
### 5. 删除数据库
```SQL
mysql> DROP DATABASE 数据库名;
```