
目录
数据库的操作
1.创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
创建数据库使用的是create指令,输入指令create database XXX;就可以简单地创建一个数据库,其中XXX代表的是数据库的名称。
我们还可以在创建数据库的时候加上if not exists选项,表示如果该数据库不存在才创建,如果存在了就不创建了。这个选项是可以选择填或者不填的。
例如:create database is not exists XXX。
2.指定字符集和校验集
数据库是用来存储数据的,所以数据库在创建的时候必须有统一的编码。当我们用数据库存储数据时,需要按照特定的编码来进行存储,这由字符集保证。当我们从数据库中取数据时,需要按照特定的编码来比较数据,这由数据库的校验编码来保证。所以我们在创建数据库时规定好了统一的编码之后,一般字符集和校验规则是匹配的。
我们可以用show charset;查看数据库支持的字符集:

还可以用show collation;查看数据库支持的字符集校验规则:

我们可以在创建数据库的时候指定校验集,但是一般不需要我们自己指定,因为我们只需要指定字符集,MySQL就会帮我们自动匹配对应的校验集。如果要自己指定校验集,可以使用指令create database test_d1 charset=utf8 collate utf8_general_ci;进行设置。
校验规则对数据库的影响
创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]
创建一个数据库,校验规则使用utf8_ bin[区分大小写] 还有排序顺序等
3.删除数据库
删除数据库使用的是drop指令,其语法为drop database [if exists] XXX;
DROP DATABASE [IF EXISTS] db_ name;
执行删除之后的结果:
- 数据库内部看不到对应的数据库
- 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
注意:不要随意删除数据库
4.查看数据库
查看数据库使用的是show指令,输入指令show databases;就可以查看当前已经创建好的数据库:

显示创建语句
我们可以用show create database 数据库名;来查看创建数据库时的语句。例如我们查看test_d1的创建语句,则输入指令show create database test_d1;:

注意:
- MySQL 建议我们关键字使用大写,但是不是必须的。
- 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
- /*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话
5.修改数据库
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
修改数据库使用的是alter指令,需要说明的是,修改数据库主要指对数据库的字符集、校验集的修改,MySQL语句早期是有修改数据库名称的语句的,但现在已经没有了,MySQL目前不支持修改数据库名称,要想修改只能删除数据库重新创建。
例如:原本test_for_database的字符集是gbk,我们想将test_for_database数据库的字符集改成utf8,输入指令alter database test_for_database charset=utf8;

6.数据库的备份
我们有时候可能会误删数据,所以备份是十分有必要的。
MySQL数据库备份可以使用mysqldump工具,可以将指定的数据库备份到指定的文件里。
# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径


我们发现事实上MySQL的备份并不是将数据库的内容进行备份,而是将该数据库历史上的所有操作语句进行备份,只需要将该数据库的所有操作语句保存起来,未来在恢复的时候,只需要将该文件里的所有语句再从头到尾执行一次,就可以恢复出一模一样的数据库了。
7.数据库的还原
我们使用mysqldump工具将数据库备份到指定的文件之后,可以使用source指令还原该数据库。在MySQL客户端执行指令source 备份文件带路径的文件名;即可恢复数据库。

提醒:路径可以用pwd去查找
8.查看连接情况
我们当前采用的MySQL是root用户,MySQL可以多个用户同时登录,也可以使用show processlist;指令查看当前有哪些用户在使用我们的数据库:

表的操作
1.创建表
创建一张表使用的也是create命令,和创建一个数据库有点类似,只不过创建数据库是create database,而创建表是create table。
create table 表名称 (
列名称 列类型
列名称 列类型
) charset=字符集 collate 校验规则 engine 存储引擎;

注意,创建表前,需要确定一下自己现在正在使用哪个数据库。
2.查看表结构
desc 表名;


3.修改表
在项目的实际开发中,经常会修改表的某个结构,比如某个字段的名字、字段的大小、字段的类型、表的字符集校验集、表的存储引擎等等。修改表使用的是alter指令,修改的操作主要是指修改表的属性,包括增加表的属性、修改表的属性、删除表的属性。其基本语法如下:
alter table 表名 add (字段名 字段类型 说明 加入位置);
alter table 表名 modify (字段名 字段类型 说明);
alter table 表名 drop (列名);
插入数据
insert into users values(1,'a','b'),(2,'b','c');

修改name,将其长度改成60
mysql> alter table users modify name varchar(60);

删除password列
mysql> alter table users drop password;
mysql> desc users;

除此之外,我们还可以修改列名称以及表名称,例如我们将name列名称改为xingming,使用以下语句:
alter table student change name xingming varchar(60); //新字段需要完整定义
如果我们想将student的表名改成users,使用以下语句:
alter table student rename to `user`;
4.删除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
例如:
drop table users

1684

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



