1、创建和删除数据库

首先进入数据库,我们可以使用show dabatases; 查看数据库列表:

创建一个名为d1的数据库:create database d1;

根据第一篇文章所讲,我们创建一个数据库,本质上就是在/var/lib/mysql目录下创建一个目录文件。
删除名为d1的数据库:drop database d1;
另外,我们可以使用system clear;进行清屏,效果类似于Linux下的clear命令。

删除数据库,本质上就是将/var/lib/mysql下的目录删除掉。
2、字符集和校验规则
创建数据库的时候,有两个编码集:
1、数据库编码集——数据库未来存储数据的编码。
2、数据库校验集——支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式。
数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的。
查看系统默认字符集以及校验规则:
show variables like 'character_set_database';
show variables like 'collation_database';

可以看到默认采用的数据库字符编码为utf8mb3,采用的字符校验规则编码为utf8mb3_general_ci。
查看数据库支持的字符集:
show charset;
查看数据库支持的字符校验规则:
show collation;
创建数据库并设置编码为utf8mb3:
create database if not exists d2 charset=utf8mb3;
create database if not exists d3 character set utf8mb3;

if not exists可带可不带,如果带了不存在就会创建数据库,如果已经存在就不会创建。
创建字符集为utf8mb3,并带检验规则为utf8mb3_general_ci的数据库:

创建字符集为gbk,并带校验规则为gbk_chinese_ci的数据库:

3、校验规则对数据库的影响
创建数据库,我们不指定字符集,默认就是utf8mb3。下面我们创建两个数据库,采用默认的字符集,设置不同的校验规则,第一个数据库test1校验规则为utf8mb3_general_ci,第二个为utf8mb3_bin。第一个校验规则是不区分大小写的,第二个是区分大小写的,在我们后面实验可以看出来。
首先创建test1数据库,校验规则为utf8mb3_general_ci,并插入一些数据:

下面试着查看一下person表的所有数据:

创建test2数据库,校验规则为utf8mb3_bin,并插入一些数据:

下面我们进行查询:

后面跟where子句,查询name为a的信息。这是在test2数据库下的,字符校验规则为utf8mb3_bin,是区分大小写的,因此只查出了一行信息。下面我们切到数据库test1,其字符检验规则为utf8mb3_general_ci,是不区分大小写的,我们同样查看一下:

由于不区分大小写,所以查出了a和A。
下面我们再对person表进行排序输出,首先是test1:

默认使用order by排序,排的是升序,再加上不区分大小写,所以结果如图所示。
接着我们切换test2继续看看:

由于test2区分大小写,而大写字母的ASCII码值是小于小写字母的ASCII码值的,所以排序结果如图。
4、操纵数据库
1、删除某个数据库:

2、查看数据库:

确认自己是在哪个数据库:select database();

查看创建数据库时的命令:show create database db_name;

3、修改数据库:

比如修改test2数据库的字符集为gbk,校验规则为gbk_chinese_ci:

5、库的备份与恢复
5.1、库的备份

5.2、库的恢复

下面我们将test1数据库备份到/home/zzy/MySQL目录下:

删除test1数据库并进行source还原:

5.3、注意事项:

5.4、查看连接情况:


6、表的操作
6.1、创建表

下面看样例:

首先来看创建表的语法,属性名后面跟数据类型,数据类型我们会在下一篇进行讲解,comment后面跟对该列属性的描述信息,最后我们还可以设置字符集、校验规则、存储引擎。我们创建的users表的存储引擎为M有ISAM,查看对应数据库目录下的文件,发现有两个文件.MYD和.MYI,MyISAM是将数据库索引和数据分开存储的。

创建表user2,采用的存储引擎为InnoDB,我们发现数据库目录下只创建了一个文件。我们也可以不写字符集、校验规则、存储引擎,默认会采用数据库的。

直接创建表user3,我们发现默认采用的就是InnoDB的存储引擎,因为之前我们在配置了mysqld.cnf文件。
6.2、查看表结构
首先是查看数据库中有哪些表:
show tables;

然后是查看表结构:
desc 表名;


还可以查看创建表时的详细信息:
show create table user1;
show create table user1 \G**

6.3、修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename DROP (column);
修改表名:

将表名修改为user:rename to中的to可以省略。

插入一些数据:

表明后面跟括号,括号里面可以写要插入的列。或者直接不写,表示要插入所有列。
下面我们添加一列属性:



我们添加了一列属性image_path用来存储用户的头像路径,添加在birthday后面。由于历史数据不存在,所以我们查询表信息的时候,这一列就是NULL。
下面我们对一列属性字段进行修改:



我们在查看创建表的信息,我们发现name这一列之前是有comment描述的,现在就没有了,所以修改时是直接覆盖的。
删除某一列属性:


不修改表名,而是修改某一列的名称:下面将name这一列修改为xingming

6.4、删除表


1175

被折叠的 条评论
为什么被折叠?



