diff --git a/mysql-MD/第二章:数据库管理及数据类型.md b/mysql-MD/第二章:数据库管理及数据类型.md
index b51bb12..61bcb2e 100644
--- a/mysql-MD/第二章:数据库管理及数据类型.md
+++ b/mysql-MD/第二章:数据库管理及数据类型.md
@@ -1,861 +1,861 @@
-
数据库管理及数据类型
-
-**作者:行癫(盗版必究)**
-
-------
-
-## 一:数据类型
-
-#### 1.数值类型
-
-##### 整数类型
-
- 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT
-
- 作用:用于存储用户的年龄、游戏的Level、经验值等
-
-![image-20220920124821420](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220920124821420.png)
-
-##### 浮点数类型
-
- 浮点数类型:FLOAT DOUBLE
-
- 作用:用于存储用户的身高、体重、薪水等
-
-![image-20220920124919373](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220920124919373.png)
-
-```shell
-float(5,3) 5宽度 3精度
-注意:
- 宽度不算小数点
- 宽度-精度=点前
-案例:
-MySQL [(none)]> create database diandian;
-Query OK, 1 row affected (0.00 sec)
-
-MySQL [(none)]> use diandian
-Database changed
-MySQL [diandian]> create table t1(id float(6,2));
-Query OK, 0 rows affected (0.24 sec)
-
-MySQL [diandian]> insert into t1 values('2.22');
-```
-
-##### 定点数类型
-
- 定点数类型:DEC
-
- 定点数在MySQL内部以字符串形式存储,比浮点数更精确,适合用来表示货币等精度高的数据
-
-##### 位类型
-
- 位类型:BIT
-
- BIT(M)可以用来存放多位二进制数,M范围从1~64,如果不写默认为1位
-
-#### 2.字符串类型
-
- CHAR系列 CHAR VARCHAR
-
- TEXT系列 TINYTEXT TEXT MEDIUMTEXT LONGTEXT
-
- BLOB 系列 TINYBLOB BLOB MEDIUMBLOB LONGBLOB
-
- BINARY系列 BINARY VARBINARY
-
-![image-20220920132114919](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220920132114919.png)
-
-##### 枚举类型
-
- 枚举类型:枚举列可以把一些不重复的字符串存储成一个预定义的集合
-
-```shell
-mysql> create table enum_table( e ENUM('fish','apple','dog'));
-Query OK, 0 rows affected (0.35 sec)
-mysql> insert into enum_table(e) values('fish');
-Query OK, 1 row affected (0.11 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
-
- 作用:用于存储用户的注册时间,文章的发布时间,文章的更新时间,员工的入职时间等
-
-![image-20220920132630856](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220920132630856.png)
-
-```shell
-mysql> create table t8 (
- id1 timestamp NOT NULL default CURRENT_TIMESTAMP,
- id2 datetime default NULL
-);
-
- timestamp 类型的列还有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL 会替你去处理。
-
-mysql> insert into t8(id1) values('20180109000000');
-mysql> select * from t8;
-+---------------------+------+
-| id1 | d2 |
-+---------------------+------+
-| 2018-01-09 00:00:00 | NULL |
-+---------------------+------+
-1 row in set (0.00 sec)
-
-扩展:
-select now();查看当前时间
-```
-
-## 二:表操作
-
-#### 1.案例
-
-表::school.student1
-
-```
-字段 字段 字段
-id name sex age
-1 tom male 23 记录
-2 jack male 21 记录
-3 alice female 19 记录
-```
-
-语法:
-
-```shell
-create table 表名(自定义)(
- 字段名1 类型[(宽度) 约束条件],
- 字段名2 类型[(宽度) 约束条件],
- 字段名3 类型[(宽度) 约束条件]
-)[存储引擎 字符集];
-==在同一张表中,字段名是不能相同
-==宽度和约束条件可选
-==字段名和类型是必须的
-```
-
-创建库表:
-
-```shell
-mysql> CREATE DATABASE school; //创建数据库school
-mysql> use school;
-mysql> create table student1(
- id int,
- name varchar(50),
- sex enum('m','f'),
- age int
- );
-Query OK, 0 rows affected (0.03 sec)
-```
-
-查看库:
-
-```shell
-mysql> show tables;
-+------------------+
-| Tables_in_school |
-+------------------+
-| student1 |
-+------------------+
-1 row in set (0.00 sec)
-```
-
-插入语法:
-
-```
-insert into 表名(字段1,字段2...) values(字段值列表...);
-```
-
-插入数据:
-
-```shell
-mysql> insert into student1(id,name,sex,age) values(1,'xingdia','m','26');
-```
-
-查看表结构:
-
-```shell
-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)
-```
-
-查询数据:
-
-```shell
-mysql> select id,name,sex,age from student1; //查询表中所有字段的值
-Empty set (0.00 sec)
-
-mysql> select * from student1; /查询表中所有字段的值
-Empty set (0.00 sec)
-
-mysql> select name,age from student1; //查询表中指定字段的值
-Empty set (0.00 sec)
-```
-
-扩展插入:
-
-```shell
-mysql> insert into student1 values (1,'xingdian','m',33),(2,'alice','m',20),(3,'jack','m',40); //顺序插入
-Query OK, 3 rows affected (0.14 sec)
-Records: 3 Duplicates: 0 Warnings: 0
-
-mysql> insert into student1(name,age) values ('zhuzhu',10),('gougou',20); //只向指定的字段插入值
-Query OK, 2 rows affected (0.12 sec)
-Records: 2 Duplicates: 0 Warnings: 0
-```
-
-#### 2.案例
-
-表:school.student2
-
-```shell
- 字段名 数据类型
-编号 id int
-姓名 name varchar(50)
-出生年份 born_year year
-生日 birthday date
-上课时间 class_time time
-注册时间 reg_time datetime
-```
-
-创建表:
-
-```shell
-mysql> create table student2(
- id int,
- name varchar(50),
- born_year year,
- birthday date,
- class_time time,
- reg_time datetime
- );
-```
-
-插入数据:
-
-```shell
-mysql> insert into student2 values(1,'tom',now(),now(),now(),now());
-mysql> insert into student2 values(2,'jack',1982,19821120,123000,20140415162545);
-```
-
-表:school.student3
-
-```shell
-id id int
-姓名 name varchar(50)
-性别 sex enum('male','female')
-爱好 hobby set('music','book','game','disc')
-```
-
-创建表:
-
-```shell
-mysql> create table student3(
- id int,
- name varchar(50),
- sex enum('male','female'),
- hobby set('music','book','game','disc')
- );
-```
-
-查看表结构:
-
-```shell
-mysql> desc student3;
-mysql> show create table student3\G
-```
-
-插入数据:
-
-```shell
-mysql> insert into student3 values (1,'tom','male','book,game');
-mysql> insert into student3 values (2,'jack','male','film');
-```
-
-注意:
-
- DESCRIBE查看表结构
-
-```shell
-DESCRIBE 表名;
-DESC 表名;
-```
-
- 查看表详细结构
-
-```shell
-SHOW CREATE TABLE 表名;
-```
-
-## 三:表完整性约束
-
-#### 1.作用
-
- 用于保证数据的完整性和一致性
-
-#### 2.约束条件
-
-PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录,不可以为空 UNIQUE + NOT NULL
-
-FOREIGN KEY (FK) 标识该字段为该表的外键,实现表与表(父表主键/子表1外键/子表2外键)之间的关联
-
-NOT NULL 标识该字段不能为空
-
-UNIQUE KEY (UK) 标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY
-
-AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)
-
-DEFAULT 为该字段设置默认值
-
-注意:
-
- 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值
-
- 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值
-
-```shell
-MySQL [(none)]> sex enum('male','female') not null default 'male'
-MySQL [(none)]> age int unsigned NOT NULL default 20 必须为正值(无符号) 不允许为空 默认是20
-```
-
- 是否是key 主键 primary key 外键 forengn key
-
-#### 3.NOT NULL
-
-表:school.student4
-
-创建表:(注意前提需要有库)
-
-```shell
-mysql> create table school.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'
- );
-```
-
-插入数据:(注意观察查询到的数据)
-
-```shell
-MySQL [(none)]> insert into school.student4(id,name) values(2,'robin');
-Query OK, 1 row affected (0.08 sec)
-
-MySQL [(none)]> select * from school.student4;
-+----+-------+-----+-----+------------+
-| id | name | sex | age | hobby |
-+----+-------+-----+-----+------------+
-| 2 | robin | m | 18 | dance,book |
-+----+-------+-----+-----+------------+
-1 row in set (0.00 sec)
-```
-
-注意报错的原因:
-
-```shell
-MySQL [(none)]> insert into school.student4 values(3,NULL,'m',40,'book');
-ERROR 1048 (23000): Column 'name' cannot be null
-```
-
-#### 4.唯一约束
-
-作用:
-
- MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度
-
-表:company.department1
-
-创建表:
-
-```shell
-MySQL [(none)]> create database company;
-Query OK, 1 row affected (0.01 sec)
-MySQL [(none)]> CREATE TABLE company.department1 (dept_id INT,dept_name VARCHAR(30) UNIQUE,comment VARCHAR(50));
-Query OK, 0 rows affected (0.34 sec)
-```
-
-查看表结构:
-
-```shell
-MySQL [(none)]> 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)
-```
-
-数据插入:(注意查看插入数据时的提示)
-
-```shell
-MySQL [(none)]> insert into company.department1 values ("1","xingdian","hr");
-Query OK, 1 row affected (0.04 sec)
-
-MySQL [(none)]> insert into company.department1 values ("1","xingdian","hr");
-ERROR 1062 (23000): Duplicate entry 'xingdian' for key 'dept_name'
-```
-
-#### 5.主键约束
-
-注意:primary key 字段的值是不允许重复,且不允许不NULL(UNIQUE + NOT NULL)
-
-表:school.student6
-
-创建表:
-
-```shell
-MySQL [(none)]> create table school.student6(
- -> id int primary key not null auto_increment,
- -> name varchar(50) not null,
- -> sex enum('male','female') not null default 'male',
- -> age int not null default 18
- -> );
-Query OK, 0 rows affected (0.47 sec)
-```
-
-插入数据:
-
-```shell
-MySQL [(none)]> insert into school.student6 values (1,'alice','female',22);
-Query OK, 1 row affected (0.18 sec)
-
-MySQL [(none)]> insert into school.student6(name,sex,age) values
- -> ('jack','male',19),
- -> ('tom','male',23);
-Query OK, 2 rows affected (0.14 sec)
-Records: 2 Duplicates: 0 Warnings: 0
-
-MySQL [(none)]> select * from school.student6;
-+----+-------+--------+-----+
-| id | name | sex | age |
-+----+-------+--------+-----+
-| 1 | alice | female | 22 |
-| 2 | jack | male | 19 |
-| 3 | tom | male | 23 |
-+----+-------+--------+-----+
-3 rows in set (0.00 sec)
-
-```
-
-## 四:修改表
-
-语法格式:
-
-修改表名
-
- ALTER TABLE 表名 RENAME 新表名;
-
-增加字段
-
- ALTER TABLE 表名
-
- ADD 字段名 数据类型 [完整性约束条件…],
-
- ADD 字段名 数据类型 [完整性约束条件…];
-
- ALTER TABLE 表名
-
- ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
-删除字段
-
- ALTER TABLE 表名 DROP 字段名;
-
-修改字段
-
- ALTER TABLE 表名 MODIFY 字段名 数据类型 [完整性约束条件…];
-
- ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
-
- ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
-
-#### 1.修改数据库引擎
-
-```shell
-mysql> alter table service engine=innodb; //engine=myisam|memory|....
-```
-
-#### 2.添加字段
-
-```shell
-mysql> create table student10 (id int);
-mysql> alter table student10 add name varchar(20) not null, add age int not null default 22;
-
-mysql> alter table student10 add stu_num int not null after name; //添加name字段之后
-
-mysql> alter table student10 add sex enum('male','female') default 'male' first; //添加到最前面
-```
-
-#### 3.删除字段
-
-```shell
-mysql> alter table student10 drop sex;
-```
-
-#### 4.修改字段类型
-
-```shell
-MySQL [school]> desc student10;
-+-------+---------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+---------+------+-----+---------+-------+
-| id | int(11) | YES | | NULL | |
-| age | int(11) | YES | | NULL | |
-+-------+---------+------+-----+---------+-------+
-2 rows in set (0.01 sec)
-
-MySQL [school]> alter table student10 modify age tinyint not null ;
-Query OK, 0 rows affected (0.04 sec)
-Records: 0 Duplicates: 0 Warnings: 0
-
-MySQL [school]> desc student10;
-+-------+------------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+------------+------+-----+---------+-------+
-| id | int(11) | YES | | NULL | |
-| age | tinyint(4) | NO | | NULL | |
-+-------+------------+------+-----+---------+-------+
-2 rows in set (0.00 sec)
-
-MySQL [school]> alter table student10 modify id int not null primary key ; ////修改字段类型、约束、主键
-Query OK, 0 rows affected (0.02 sec)
-Records: 0 Duplicates: 0 Warnings: 0
-
-MySQL [school]> desc student10;
-+-------+------------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+------------+------+-----+---------+-------+
-| id | int(11) | NO | PRI | NULL | |
-| age | tinyint(4) | NO | | NULL | |
-+-------+------------+------+-----+---------+-------+
-```
-
-#### 5.增加约束
-
-```shell
-MySQL [school]> alter table student10 modify id int not null primary key ;
-Query OK, 0 rows affected (0.02 sec)
-Records: 0 Duplicates: 0 Warnings: 0
-
-MySQL [school]> desc student10;
-+-------+------------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+------------+------+-----+---------+-------+
-| id | int(11) | NO | PRI | NULL | |
-| age | tinyint(4) | NO | | NULL | |
-+-------+------------+------+-----+---------+-------+
-2 rows in set (0.00 sec)
-
-MySQL [school]> alter table student10 modify id int not null primary key auto_increment;
-ERROR 1068 (42000): Multiple primary key defined //错误,该字段已经是primary key
-
-MySQL [school]> alter table student10 modify id int not null auto_increment;
-Query OK, 0 rows affected (0.04 sec)
-Records: 0 Duplicates: 0 Warnings: 0
-
-MySQL [school]> desc student10;
-+-------+------------+------+-----+---------+----------------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+------------+------+-----+---------+----------------+
-| id | int(11) | NO | PRI | NULL | auto_increment |
-| age | tinyint(4) | NO | | NULL | |
-+-------+------------+------+-----+---------+----------------+
-```
-
-#### 6.增加主键
-
-```shell
-MySQL [school]> desc student1;
-+-------+---------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+---------+------+-----+---------+-------+
-| id | int(11) | YES | | NULL | |
-| age | int(11) | YES | | NULL | |
-| name | char(1) | YES | | NULL | |
-+-------+---------+------+-----+---------+-------+
-3 rows in set (0.00 sec)
-
-MySQL [school]> alter table student1 add primary key(id);
-
-MySQL [school]> desc student1;
-+-------+---------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+---------+------+-----+---------+-------+
-| id | int(11) | NO | PRI | NULL | |
-| age | int(11) | YES | | NULL | |
-| name | char(1) | YES | | NULL | |
-+-------+---------+------+-----+---------+-------+
-3 rows in set (0.00 sec)
-```
-
-#### 7.修改主键和自增
-
-```shell
-MySQL [school]> alter table student1 modify id int auto_increment;
-Query OK, 0 rows affected (0.03 sec)
-Records: 0 Duplicates: 0 Warnings: 0
-
-MySQL [school]> desc student1;
-+-------+---------+------+-----+---------+----------------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+---------+------+-----+---------+----------------+
-| id | int(11) | NO | PRI | NULL | auto_increment |
-| age | int(11) | YES | | NULL | |
-| name | char(1) | YES | | NULL | |
-+-------+---------+------+-----+---------+----------------+
-```
-
-#### 8.删除主键
-
-```shell
-MySQL [school]> desc student10;
-+-------+------------+------+-----+---------+----------------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+------------+------+-----+---------+----------------+
-| id | int(11) | NO | PRI | NULL | auto_increment |
-| age | tinyint(4) | NO | | NULL | |
-+-------+------------+------+-----+---------+----------------+
-2 rows in set (0.00 sec)
-
-MySQL [school]> alter table student10 drop primary key;
-ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
-
-删除自增
-ySQL [school]> alter table student10 modify id int not null;
-Query OK, 0 rows affected (0.04 sec)
-Records: 0 Duplicates: 0 Warnings: 0
-
-MySQL [school]> desc student10;
-+-------+------------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+------------+------+-----+---------+-------+
-| id | int(11) | NO | PRI | NULL | |
-| age | tinyint(4) | NO | | NULL | |
-+-------+------------+------+-----+---------+-------+
-
-MySQL [school]> alter table student10 drop primary key;
-Query OK, 0 rows affected (0.03 sec)
-Records: 0 Duplicates: 0 Warnings: 0
-
-MySQL [school]> desc student10;
-+-------+------------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------+------------+------+-----+---------+-------+
-| id | int(11) | NO | | NULL | |
-| age | tinyint(4) | NO | | NULL | |
-+-------+------------+------+-----+---------+-------+
-2 rows in set (0.00 sec)
-```
-
-#### 9.复制表
-
-复制表结构+记录 (key不会复制: 主键、外键和索引)复制表结构/记录+表结构,不会将Key复制
-
-```shell
-mysql> create table new_service select * from service;
-```
-
-只复制表结构
-
-```shell
-mysql> create table new1_service select * from service where 1=2; //条件为假,查不到任何记录
-```
-
-可以复制主键,只复制表结构
-
-```shell
-mysql> create table t4 like employees;
-```
-
-#### 10.删除表
-
-```shell
-mysql> DROP TABLE 表名;
-```
-
-#### 11.修改数据表中字段的值
-
-语法:
-
- Update 表名 set 列名=值where 条件
-
-```shell
-mysql> update student set name='123' where id=1;
-```
-
-删除某一行:
-
- delete from 表名 where id=1
-
-```shell
-mysql> delete from type where id=1;
-```
-
-## 五:库操作
-
-#### 1.简介
-
- 系统自带库的含义及作用
-
-```shell
-MySQL [(none)]> show databases;
-+--------------------+
-| Database |
-+--------------------+
-| information_schema |
-| mysql |
-| performance_schema |
-| sys |
-+--------------------+
-```
-
-information_schema:虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等
-
-performance_schema:主要存储数据库服务器的性能参数
-
-mysql:授权库,主要存储系统用户的权限信息
-
-sys:主要存储数据库服务器的性能参数
-
-注意:information_schema
-
- SCHEMATA 存放的是系统中的库
-
-```shell
-MySQL [information_schema]> 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 | mysql | latin1 | latin1_swedish_ci | NULL |
-| def | performance_schema | utf8 | utf8_general_ci | NULL |
-| def | school | latin1 | latin1_swedish_ci | NULL |
-| def | sys | utf8 | utf8_general_ci | NULL |
-+--------------+--------------------+----------------------------+------------------------+----------+
-
-目录_名称
-实际库_名称
-默认_字符_设置_名称
-默认_分类_名称
-```
-
- TABLES 存储表名
-
-```shell
-MySQL [information_schema]> select * from information_schema.TABLES\G
-*************************** 283. row ***************************
- TABLE_CATALOG: def
- TABLE_SCHEMA: xingdian
- TABLE_NAME: t1
- TABLE_TYPE: BASE TABLE
- ENGINE: InnoDB
- VERSION: 10
- ROW_FORMAT: Dynamic
- TABLE_ROWS: 1
- AVG_ROW_LENGTH: 16384
- DATA_LENGTH: 16384
-MAX_DATA_LENGTH: 0
- INDEX_LENGTH: 0
- DATA_FREE: 0
- AUTO_INCREMENT: NULL
- CREATE_TIME: 2022-09-22 08:18:38
- UPDATE_TIME: 2022-09-22 08:18:54
- CHECK_TIME: NULL
-TABLE_COLLATION: latin1_swedish_ci
- CHECKSUM: NULL
- CREATE_OPTIONS:
- TABLE_COMMENT:
-283 rows in set (0.02 sec)
-```
-
- COLUMNS 存储字段
-
-```shell
-*************************** 3083. row ***************************
- TABLE_CATALOG: def
- TABLE_SCHEMA: xingdian
- TABLE_NAME: t1
- COLUMN_NAME: id
- ORDINAL_POSITION: 1
- COLUMN_DEFAULT: NULL
- IS_NULLABLE: YES
- DATA_TYPE: int
-CHARACTER_MAXIMUM_LENGTH: NULL
- CHARACTER_OCTET_LENGTH: NULL
- NUMERIC_PRECISION: 10
- NUMERIC_SCALE: 0
- DATETIME_PRECISION: NULL
- CHARACTER_SET_NAME: NULL
- COLLATION_NAME: NULL
- COLUMN_TYPE: int(11)
- COLUMN_KEY:
- EXTRA:
- PRIVILEGES: select,insert,update,references
- COLUMN_COMMENT:
- GENERATION_EXPRESSION:
-3083 rows in set (0.03 sec)
-```
-
-#### 2.创建库
-
-方案一:交互式操作
-
-```shell
-mysql> create database xingdian;
-```
-
-数据库命名规则:
-
- 区分大小写
-
- 唯一性
-
- 不能使用关键字如 create select
-
- 不能单独使用数字
-
-方案二:非交互式
-
-```shell
-mysql -u root -pQianFeng@123 -e "create database diandian"
-```
-
-#### 3.查看数据库
-
-```shell
-mysql> show databases;
-mysql> show create database xingdian;
-mysql> select database(); 查看当前所在的库
-```
-
-#### 4.切换数据库
-
-```shell
-mysql> use xingdian;
-```
-
-#### 5.删除数据库
-
-```shell
-mysql> DROP DATABASE 数据库名;
-```
+数据库管理及数据类型
+
+**作者:行癫(盗版必究)**
+
+------
+
+## 一:数据类型
+
+#### 1.数值类型
+
+##### 整数类型
+
+ 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT
+
+ 作用:用于存储用户的年龄、游戏的Level、经验值等
+
+![image-20220920124821420](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220920124821420.png)
+
+##### 浮点数类型
+
+ 浮点数类型:FLOAT DOUBLE
+
+ 作用:用于存储用户的身高、体重、薪水等
+
+![image-20220920124919373](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220920124919373.png)
+
+```shell
+float(5,3) 5宽度 3精度
+注意:
+ 宽度不算小数点
+ 宽度-精度=点前
+案例:
+MySQL [(none)]> create database diandian;
+Query OK, 1 row affected (0.00 sec)
+
+MySQL [(none)]> use diandian
+Database changed
+MySQL [diandian]> create table t1(id float(6,2));
+Query OK, 0 rows affected (0.24 sec)
+
+MySQL [diandian]> insert into t1 values('2.22');
+```
+
+##### 定点数类型
+
+ 定点数类型:DEC
+
+ 定点数在MySQL内部以字符串形式存储,比浮点数更精确,适合用来表示货币等精度高的数据
+
+##### 位类型
+
+ 位类型:BIT
+
+ BIT(M)可以用来存放多位二进制数,M范围从1~64,如果不写默认为1位
+
+#### 2.字符串类型
+
+ CHAR系列 CHAR VARCHAR
+
+ TEXT系列 TINYTEXT TEXT MEDIUMTEXT LONGTEXT
+
+ BLOB 系列 TINYBLOB BLOB MEDIUMBLOB LONGBLOB
+
+ BINARY系列 BINARY VARBINARY
+
+![image-20220920132114919](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220920132114919.png)
+
+##### 枚举类型
+
+ 枚举类型:枚举列可以把一些不重复的字符串存储成一个预定义的集合
+
+```shell
+mysql> create table enum_table( e ENUM('fish','apple','dog'));
+Query OK, 0 rows affected (0.35 sec)
+mysql> insert into enum_table(e) values('fish');
+Query OK, 1 row affected (0.11 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
+
+ 作用:用于存储用户的注册时间,文章的发布时间,文章的更新时间,员工的入职时间等
+
+![image-20220920132630856](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220920132630856.png)
+
+```shell
+mysql> create table t8 (
+ id1 timestamp NOT NULL default CURRENT_TIMESTAMP,
+ id2 datetime default NULL
+);
+
+ timestamp 类型的列还有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL 会替你去处理。
+
+mysql> insert into t8(id1) values('20180109000000');
+mysql> select * from t8;
++---------------------+------+
+| id1 | d2 |
++---------------------+------+
+| 2018-01-09 00:00:00 | NULL |
++---------------------+------+
+1 row in set (0.00 sec)
+
+扩展:
+select now();查看当前时间
+```
+
+## 二:表操作
+
+#### 1.案例
+
+表::school.student1
+
+```
+字段 字段 字段
+id name sex age
+1 tom male 23 记录
+2 jack male 21 记录
+3 alice female 19 记录
+```
+
+语法:
+
+```shell
+create table 表名(自定义)(
+ 字段名1 类型[(宽度) 约束条件],
+ 字段名2 类型[(宽度) 约束条件],
+ 字段名3 类型[(宽度) 约束条件]
+)[存储引擎 字符集];
+==在同一张表中,字段名是不能相同
+==宽度和约束条件可选
+==字段名和类型是必须的
+```
+
+创建库表:
+
+```shell
+mysql> CREATE DATABASE school; //创建数据库school
+mysql> use school;
+mysql> create table student1(
+ id int,
+ name varchar(50),
+ sex enum('m','f'),
+ age int
+ );
+Query OK, 0 rows affected (0.03 sec)
+```
+
+查看库:
+
+```shell
+mysql> show tables;
++------------------+
+| Tables_in_school |
++------------------+
+| student1 |
++------------------+
+1 row in set (0.00 sec)
+```
+
+插入语法:
+
+```
+insert into 表名(字段1,字段2...) values(字段值列表...);
+```
+
+插入数据:
+
+```shell
+mysql> insert into student1(id,name,sex,age) values(1,'xingdia','m','26');
+```
+
+查看表结构:
+
+```shell
+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)
+```
+
+查询数据:
+
+```shell
+mysql> select id,name,sex,age from student1; //查询表中所有字段的值
+Empty set (0.00 sec)
+
+mysql> select * from student1; /查询表中所有字段的值
+Empty set (0.00 sec)
+
+mysql> select name,age from student1; //查询表中指定字段的值
+Empty set (0.00 sec)
+```
+
+扩展插入:
+
+```shell
+mysql> insert into student1 values (1,'xingdian','m',33),(2,'alice','m',20),(3,'jack','m',40); //顺序插入
+Query OK, 3 rows affected (0.14 sec)
+Records: 3 Duplicates: 0 Warnings: 0
+
+mysql> insert into student1(name,age) values ('zhuzhu',10),('gougou',20); //只向指定的字段插入值
+Query OK, 2 rows affected (0.12 sec)
+Records: 2 Duplicates: 0 Warnings: 0
+```
+
+#### 2.案例
+
+表:school.student2
+
+```shell
+ 字段名 数据类型
+编号 id int
+姓名 name varchar(50)
+出生年份 born_year year
+生日 birthday date
+上课时间 class_time time
+注册时间 reg_time datetime
+```
+
+创建表:
+
+```shell
+mysql> create table student2(
+ id int,
+ name varchar(50),
+ born_year year,
+ birthday date,
+ class_time time,
+ reg_time datetime
+ );
+```
+
+插入数据:
+
+```shell
+mysql> insert into student2 values(1,'tom',now(),now(),now(),now());
+mysql> insert into student2 values(2,'jack',1982,19821120,123000,20140415162545);
+```
+
+表:school.student3
+
+```shell
+id id int
+姓名 name varchar(50)
+性别 sex enum('male','female')
+爱好 hobby set('music','book','game','disc')
+```
+
+创建表:
+
+```shell
+mysql> create table student3(
+ id int,
+ name varchar(50),
+ sex enum('male','female'),
+ hobby set('music','book','game','disc')
+ );
+```
+
+查看表结构:
+
+```shell
+mysql> desc student3;
+mysql> show create table student3\G
+```
+
+插入数据:
+
+```shell
+mysql> insert into student3 values (1,'tom','male','book,game');
+mysql> insert into student3 values (2,'jack','male','film');
+```
+
+注意:
+
+ DESCRIBE查看表结构
+
+```shell
+DESCRIBE 表名;
+DESC 表名;
+```
+
+ 查看表详细结构
+
+```shell
+SHOW CREATE TABLE 表名;
+```
+
+## 三:表完整性约束
+
+#### 1.作用
+
+ 用于保证数据的完整性和一致性
+
+#### 2.约束条件
+
+PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录,不可以为空 UNIQUE + NOT NULL
+
+FOREIGN KEY (FK) 标识该字段为该表的外键,实现表与表(父表主键/子表1外键/子表2外键)之间的关联
+
+NOT NULL 标识该字段不能为空
+
+UNIQUE KEY (UK) 标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY
+
+AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)
+
+DEFAULT 为该字段设置默认值
+
+注意:
+
+ 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值
+
+ 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值
+
+```shell
+MySQL [(none)]> sex enum('male','female') not null default 'male'
+MySQL [(none)]> age int unsigned NOT NULL default 20 必须为正值(无符号) 不允许为空 默认是20
+```
+
+ 是否是key 主键 primary key 外键 forengn key
+
+#### 3.NOT NULL
+
+表:school.student4
+
+创建表:(注意前提需要有库)
+
+```shell
+mysql> create table school.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'
+ );
+```
+
+插入数据:(注意观察查询到的数据)
+
+```shell
+MySQL [(none)]> insert into school.student4(id,name) values(2,'robin');
+Query OK, 1 row affected (0.08 sec)
+
+MySQL [(none)]> select * from school.student4;
++----+-------+-----+-----+------------+
+| id | name | sex | age | hobby |
++----+-------+-----+-----+------------+
+| 2 | robin | m | 18 | dance,book |
++----+-------+-----+-----+------------+
+1 row in set (0.00 sec)
+```
+
+注意报错的原因:
+
+```shell
+MySQL [(none)]> insert into school.student4 values(3,NULL,'m',40,'book');
+ERROR 1048 (23000): Column 'name' cannot be null
+```
+
+#### 4.唯一约束
+
+作用:
+
+ MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度
+
+表:company.department1
+
+创建表:
+
+```shell
+MySQL [(none)]> create database company;
+Query OK, 1 row affected (0.01 sec)
+MySQL [(none)]> CREATE TABLE company.department1 (dept_id INT,dept_name VARCHAR(30) UNIQUE,comment VARCHAR(50));
+Query OK, 0 rows affected (0.34 sec)
+```
+
+查看表结构:
+
+```shell
+MySQL [(none)]> 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)
+```
+
+数据插入:(注意查看插入数据时的提示)
+
+```shell
+MySQL [(none)]> insert into company.department1 values ("1","xingdian","hr");
+Query OK, 1 row affected (0.04 sec)
+
+MySQL [(none)]> insert into company.department1 values ("1","xingdian","hr");
+ERROR 1062 (23000): Duplicate entry 'xingdian' for key 'dept_name'
+```
+
+#### 5.主键约束
+
+注意:primary key 字段的值是不允许重复,且不允许不NULL(UNIQUE + NOT NULL)
+
+表:school.student6
+
+创建表:
+
+```shell
+MySQL [(none)]> create table school.student6(
+ id int primary key not null auto_increment,
+ name varchar(50) not null,
+ sex enum('male','female') not null default 'male',
+ age int not null default 18
+ );
+Query OK, 0 rows affected (0.47 sec)
+```
+
+插入数据:
+
+```shell
+MySQL [(none)]> insert into school.student6 values (1,'alice','female',22);
+Query OK, 1 row affected (0.18 sec)
+
+MySQL [(none)]> insert into school.student6(name,sex,age) values
+ -> ('jack','male',19),
+ -> ('tom','male',23);
+Query OK, 2 rows affected (0.14 sec)
+Records: 2 Duplicates: 0 Warnings: 0
+
+MySQL [(none)]> select * from school.student6;
++----+-------+--------+-----+
+| id | name | sex | age |
++----+-------+--------+-----+
+| 1 | alice | female | 22 |
+| 2 | jack | male | 19 |
+| 3 | tom | male | 23 |
++----+-------+--------+-----+
+3 rows in set (0.00 sec)
+
+```
+
+## 四:修改表
+
+语法格式:
+
+修改表名
+
+ ALTER TABLE 表名 RENAME 新表名;
+
+增加字段
+
+ ALTER TABLE 表名
+
+ ADD 字段名 数据类型 [完整性约束条件…],
+
+ ADD 字段名 数据类型 [完整性约束条件…];
+
+ ALTER TABLE 表名
+
+ ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
+删除字段
+
+ ALTER TABLE 表名 DROP 字段名;
+
+修改字段
+
+ ALTER TABLE 表名 MODIFY 字段名 数据类型 [完整性约束条件…];
+
+ ALTER TABLE 表名 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
+
+ ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
+
+#### 1.修改数据库引擎
+
+```shell
+mysql> alter table service engine=innodb; //engine=myisam|memory|....
+```
+
+#### 2.添加字段
+
+```shell
+mysql> create table student10 (id int);
+mysql> alter table student10 add name varchar(20) not null, add age int not null default 22;
+
+mysql> alter table student10 add stu_num int not null after name; //添加name字段之后
+
+mysql> alter table student10 add sex enum('male','female') default 'male' first; //添加到最前面
+```
+
+#### 3.删除字段
+
+```shell
+mysql> alter table student10 drop sex;
+```
+
+#### 4.修改字段类型
+
+```shell
+MySQL [school]> desc student10;
++-------+---------+------+-----+---------+-------+
+| Field | Type | Null | Key | Default | Extra |
++-------+---------+------+-----+---------+-------+
+| id | int(11) | YES | | NULL | |
+| age | int(11) | YES | | NULL | |
++-------+---------+------+-----+---------+-------+
+2 rows in set (0.01 sec)
+
+MySQL [school]> alter table student10 modify age tinyint not null ;
+Query OK, 0 rows affected (0.04 sec)
+Records: 0 Duplicates: 0 Warnings: 0
+
+MySQL [school]> desc student10;
++-------+------------+------+-----+---------+-------+
+| Field | Type | Null | Key | Default | Extra |
++-------+------------+------+-----+---------+-------+
+| id | int(11) | YES | | NULL | |
+| age | tinyint(4) | NO | | NULL | |
++-------+------------+------+-----+---------+-------+
+2 rows in set (0.00 sec)
+
+MySQL [school]> alter table student10 modify id int not null primary key ; ////修改字段类型、约束、主键
+Query OK, 0 rows affected (0.02 sec)
+Records: 0 Duplicates: 0 Warnings: 0
+
+MySQL [school]> desc student10;
++-------+------------+------+-----+---------+-------+
+| Field | Type | Null | Key | Default | Extra |
++-------+------------+------+-----+---------+-------+
+| id | int(11) | NO | PRI | NULL | |
+| age | tinyint(4) | NO | | NULL | |
++-------+------------+------+-----+---------+-------+
+```
+
+#### 5.增加约束
+
+```shell
+MySQL [school]> alter table student10 modify id int not null primary key ;
+Query OK, 0 rows affected (0.02 sec)
+Records: 0 Duplicates: 0 Warnings: 0
+
+MySQL [school]> desc student10;
++-------+------------+------+-----+---------+-------+
+| Field | Type | Null | Key | Default | Extra |
++-------+------------+------+-----+---------+-------+
+| id | int(11) | NO | PRI | NULL | |
+| age | tinyint(4) | NO | | NULL | |
++-------+------------+------+-----+---------+-------+
+2 rows in set (0.00 sec)
+
+MySQL [school]> alter table student10 modify id int not null primary key auto_increment;
+ERROR 1068 (42000): Multiple primary key defined //错误,该字段已经是primary key
+
+MySQL [school]> alter table student10 modify id int not null auto_increment;
+Query OK, 0 rows affected (0.04 sec)
+Records: 0 Duplicates: 0 Warnings: 0
+
+MySQL [school]> desc student10;
++-------+------------+------+-----+---------+----------------+
+| Field | Type | Null | Key | Default | Extra |
++-------+------------+------+-----+---------+----------------+
+| id | int(11) | NO | PRI | NULL | auto_increment |
+| age | tinyint(4) | NO | | NULL | |
++-------+------------+------+-----+---------+----------------+
+```
+
+#### 6.增加主键
+
+```shell
+MySQL [school]> desc student1;
++-------+---------+------+-----+---------+-------+
+| Field | Type | Null | Key | Default | Extra |
++-------+---------+------+-----+---------+-------+
+| id | int(11) | YES | | NULL | |
+| age | int(11) | YES | | NULL | |
+| name | char(1) | YES | | NULL | |
++-------+---------+------+-----+---------+-------+
+3 rows in set (0.00 sec)
+
+MySQL [school]> alter table student1 add primary key(id);
+
+MySQL [school]> desc student1;
++-------+---------+------+-----+---------+-------+
+| Field | Type | Null | Key | Default | Extra |
++-------+---------+------+-----+---------+-------+
+| id | int(11) | NO | PRI | NULL | |
+| age | int(11) | YES | | NULL | |
+| name | char(1) | YES | | NULL | |
++-------+---------+------+-----+---------+-------+
+3 rows in set (0.00 sec)
+```
+
+#### 7.修改主键和自增
+
+```shell
+MySQL [school]> alter table student1 modify id int auto_increment;
+Query OK, 0 rows affected (0.03 sec)
+Records: 0 Duplicates: 0 Warnings: 0
+
+MySQL [school]> desc student1;
++-------+---------+------+-----+---------+----------------+
+| Field | Type | Null | Key | Default | Extra |
++-------+---------+------+-----+---------+----------------+
+| id | int(11) | NO | PRI | NULL | auto_increment |
+| age | int(11) | YES | | NULL | |
+| name | char(1) | YES | | NULL | |
++-------+---------+------+-----+---------+----------------+
+```
+
+#### 8.删除主键
+
+```shell
+MySQL [school]> desc student10;
++-------+------------+------+-----+---------+----------------+
+| Field | Type | Null | Key | Default | Extra |
++-------+------------+------+-----+---------+----------------+
+| id | int(11) | NO | PRI | NULL | auto_increment |
+| age | tinyint(4) | NO | | NULL | |
++-------+------------+------+-----+---------+----------------+
+2 rows in set (0.00 sec)
+
+MySQL [school]> alter table student10 drop primary key;
+ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
+
+删除自增
+ySQL [school]> alter table student10 modify id int not null;
+Query OK, 0 rows affected (0.04 sec)
+Records: 0 Duplicates: 0 Warnings: 0
+
+MySQL [school]> desc student10;
++-------+------------+------+-----+---------+-------+
+| Field | Type | Null | Key | Default | Extra |
++-------+------------+------+-----+---------+-------+
+| id | int(11) | NO | PRI | NULL | |
+| age | tinyint(4) | NO | | NULL | |
++-------+------------+------+-----+---------+-------+
+
+MySQL [school]> alter table student10 drop primary key;
+Query OK, 0 rows affected (0.03 sec)
+Records: 0 Duplicates: 0 Warnings: 0
+
+MySQL [school]> desc student10;
++-------+------------+------+-----+---------+-------+
+| Field | Type | Null | Key | Default | Extra |
++-------+------------+------+-----+---------+-------+
+| id | int(11) | NO | | NULL | |
+| age | tinyint(4) | NO | | NULL | |
++-------+------------+------+-----+---------+-------+
+2 rows in set (0.00 sec)
+```
+
+#### 9.复制表
+
+复制表结构+记录 (key不会复制: 主键、外键和索引)复制表结构/记录+表结构,不会将Key复制
+
+```shell
+mysql> create table new_service select * from service;
+```
+
+只复制表结构
+
+```shell
+mysql> create table new1_service select * from service where 1=2; //条件为假,查不到任何记录
+```
+
+可以复制主键,只复制表结构
+
+```shell
+mysql> create table t4 like employees;
+```
+
+#### 10.删除表
+
+```shell
+mysql> DROP TABLE 表名;
+```
+
+#### 11.修改数据表中字段的值
+
+语法:
+
+ Update 表名 set 列名=值where 条件
+
+```shell
+mysql> update student set name='123' where id=1;
+```
+
+删除某一行:
+
+ delete from 表名 where id=1
+
+```shell
+mysql> delete from type where id=1;
+```
+
+## 五:库操作
+
+#### 1.简介
+
+ 系统自带库的含义及作用
+
+```shell
+MySQL [(none)]> show databases;
++--------------------+
+| Database |
++--------------------+
+| information_schema |
+| mysql |
+| performance_schema |
+| sys |
++--------------------+
+```
+
+information_schema:虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等
+
+performance_schema:主要存储数据库服务器的性能参数
+
+mysql:授权库,主要存储系统用户的权限信息
+
+sys:主要存储数据库服务器的性能参数
+
+注意:information_schema
+
+ SCHEMATA 存放的是系统中的库
+
+```shell
+MySQL [information_schema]> 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 | mysql | latin1 | latin1_swedish_ci | NULL |
+| def | performance_schema | utf8 | utf8_general_ci | NULL |
+| def | school | latin1 | latin1_swedish_ci | NULL |
+| def | sys | utf8 | utf8_general_ci | NULL |
++--------------+--------------------+----------------------------+------------------------+----------+
+
+目录_名称
+实际库_名称
+默认_字符_设置_名称
+默认_分类_名称
+```
+
+ TABLES 存储表名
+
+```shell
+MySQL [information_schema]> select * from information_schema.TABLES\G
+*************************** 283. row ***************************
+ TABLE_CATALOG: def
+ TABLE_SCHEMA: xingdian
+ TABLE_NAME: t1
+ TABLE_TYPE: BASE TABLE
+ ENGINE: InnoDB
+ VERSION: 10
+ ROW_FORMAT: Dynamic
+ TABLE_ROWS: 1
+ AVG_ROW_LENGTH: 16384
+ DATA_LENGTH: 16384
+MAX_DATA_LENGTH: 0
+ INDEX_LENGTH: 0
+ DATA_FREE: 0
+ AUTO_INCREMENT: NULL
+ CREATE_TIME: 2022-09-22 08:18:38
+ UPDATE_TIME: 2022-09-22 08:18:54
+ CHECK_TIME: NULL
+TABLE_COLLATION: latin1_swedish_ci
+ CHECKSUM: NULL
+ CREATE_OPTIONS:
+ TABLE_COMMENT:
+283 rows in set (0.02 sec)
+```
+
+ COLUMNS 存储字段
+
+```shell
+*************************** 3083. row ***************************
+ TABLE_CATALOG: def
+ TABLE_SCHEMA: xingdian
+ TABLE_NAME: t1
+ COLUMN_NAME: id
+ ORDINAL_POSITION: 1
+ COLUMN_DEFAULT: NULL
+ IS_NULLABLE: YES
+ DATA_TYPE: int
+CHARACTER_MAXIMUM_LENGTH: NULL
+ CHARACTER_OCTET_LENGTH: NULL
+ NUMERIC_PRECISION: 10
+ NUMERIC_SCALE: 0
+ DATETIME_PRECISION: NULL
+ CHARACTER_SET_NAME: NULL
+ COLLATION_NAME: NULL
+ COLUMN_TYPE: int(11)
+ COLUMN_KEY:
+ EXTRA:
+ PRIVILEGES: select,insert,update,references
+ COLUMN_COMMENT:
+ GENERATION_EXPRESSION:
+3083 rows in set (0.03 sec)
+```
+
+#### 2.创建库
+
+方案一:交互式操作
+
+```shell
+mysql> create database xingdian;
+```
+
+数据库命名规则:
+
+ 区分大小写
+
+ 唯一性
+
+ 不能使用关键字如 create select
+
+ 不能单独使用数字
+
+方案二:非交互式
+
+```shell
+mysql -u root -pQianFeng@123 -e "create database diandian"
+```
+
+#### 3.查看数据库
+
+```shell
+mysql> show databases;
+mysql> show create database xingdian;
+mysql> select database(); 查看当前所在的库
+```
+
+#### 4.切换数据库
+
+```shell
+mysql> use xingdian;
+```
+
+#### 5.删除数据库
+
+```shell
+mysql> DROP DATABASE 数据库名;
+```