库和表的操作
库的操作
- 创建数据库
1 | create database 库名; |
小tips:当创建数据库时没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ci
字符集:utf8 为可变字节,从1到4个字节,3个字节代表中文
- 创建使用utf8字符集的数据库,并带校验规则
1 | create database 库名 charset=utf8 collate utf8_general_ci; |
字符集和校验规则
- 查看系统默认的字符集以及校验规则
1 | show variables like 'character_set_database'; |
- 查看数据库支持的字符集和字符校验规则
1 | show charset; |
校验规则对数据库的影响
不区分大小写:校验规则按照存表顺序
1
2校验规则使用utf8_general_ci [不区分大小写]
create database 库名 collate utf8_general_ci;区分大小写:校验规则按照ASCII来排序
1
2校验规则使用utf8_bin [区分大小写]
create database 库名 collate utf8_bin;
操纵数据库
- 查看数据库是如何被创建出来的
1 | show create database 库名; |
案例:
1 | mysql> show create database test1; |
说明:
- /!40100 DEFAULT CHARACTER SET utf8 / 这句话不是注释,它的意义是mysql当前版本大于4.01版本的话就会执行该语句,若小于则将其当做为注释。
- 数据库名字的反引号
,是为了防止使用的数据库名刚好是关键字。
#####数据库修改
语法:
1 | ALTER DATABASE db_name |
说明:
对数据库的修改主要指是修改数据库的字符集和校验规则
1
2将数据库字符集改为 gbk
alter database 库名 charset=gbk;
数据库删除
语法:
1 | DROP DATABASE [IF EXISTS] db_ name; |
删除库后的结果
- 数据库内部看不到对应的数据库
- 对应的数据库文件夹被删除,级联删除,里面的数据全部被删除
注意:不要随意删除数据库
恢复与备份
查看链接情况
语法:
1 | show processlist; |
实例:
1 | mysql> show processlist; |
- 通过查看链接情况,可以得知有哪些用户链接到我们的数据库,如果查出某个用户不是你正常登录的,就有可能你的数据库被入侵了。如果发现自己的数据库比较慢时,可以用该指令来查看数据库连接情况。
表的操作
创建表
语法:
1 | CREATE TABLE table_name ( |
说明:
- field 标识列名
- datatype 标识列的数据类型
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所载数据库的校验规则为准
- engine 存储引擎,如果没有指定存储引擎,则默认使用Innodb存储引擎
创建表案例
1 | create table users ( |
说明:
使用不同的存储引擎,创建的表的文件不一样
例如使用MyISAM存储引擎创建表,在数据目录中就会有三个不同文件,分别是:
- .frm:表结构
- .MYD:表数据
- .MYI:表引索
Innodb存储引擎中 .idb:表数据,相比于MyISAM存储引擎少了表引索
查看表结构
语法:
1 | desc 表名; |
实例:
1 | mysql> desc person; 引索类型 |
向表中插入数据:
1 | insert into 表名 values(1,'a','b'); |
修改表
语法:
1 | 添加字段 |
插入新字段后,对原来表中数据没有影响:
1 | mysql> alter table student add age int(3); |
注意:删除字段是要小心,删除字段会将其对应的列数据全部删除
删除表
语法:
1 | DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... |
实例:
1 | drop table 表名; |
清空表的内容
语法:
1 | truncate table 表名称; |