库的操作+表的操作
点赞👍👍收藏🌟🌟关注💖💖
你的支持是对我最大的鼓励,我们一起努力吧!😃😃
1.库的操作
1.1创建数据库
语法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
- 大写的表示关键字
- [] 是可选项
- CHARACTER SET: 指定数据库采用的字符集
- COLLATE: 指定数据库字符集的校验规则
show databases; //查看当前数据库
对应的就是右边一个个蓝色的目录,这我们在前面就已经说过了
创建数据库
create database d1;
创建好之后,在查看就有了,同样在 /var/lib/mysql 数据目录下也有一个d1目录
如果不想用这个数据库了,同样也可以删掉。
删除数据库
drop database d1;
创建数据库:本质就是在Linux环境下MySQL特定的路径(数据路径)var/lib/mysql 创建一个目录。
删除数据库:删除目录。
那如果在该路径下创建一个目录也是数据库吗?
是的没错,删除也同样是删除数据库。但是绝对不建议这样做!
还有一种写法,如果当前没有这个数据库就创建,如果存在就不创建
create database if not exists d1;
数据库创建我们已经说完,下面谈的就是数据库的编码问题!
一般数据库相关常见数据库编码有两个重要的编码,一个是数据库字符集,一个是数据库校验集。
创建数据库的时候,有两个编码集:
1.数据库编码集
2.数据库校验集
只要是数据无论是未来的存储还是读取,数据一定是要有对应的编码格式的。数据库这种与数据打交道的软件更加注重编码集。编码集必须是统一的,就是存数据之前采用什么编码,取数据时必须以同样的编码去取。
1.数据库编码集 —> 数据库未来存储数据采用的编码集
将来把数据存到数据库里,未来要对数据做各种增、删、查、改。所有只要你这样你就是要做比较。要比较对应的某些字段一样,前提是都要先被读出来,那两个字段的被读出来的校验规则或者被读取时的编码规则必须也是一样的。要不然怎么保证是一样的呢。
2.数据库校验集 —> 支持数据库,进行字段比较使用的编码。本质也是一种读取数据库中数据采用的编码格式。
所以不管是保存时用的是什么编码还是对比读取采用的编码必须得是一样的。因此数据库不论对数据做任何操作,都必须保证操作和编码必须是编码一致的。
查看系统默认字符集以及校验规则
show variables like 'character_set_database'; //编码集
show variables like 'collation_database'; //校验集
可能你的机器并不是这个编码和校验集,这是我们在安装MySQl时就已经在配置文件中把mysql服务段对应的编码全改成utf8了。
数据连接,对数据库常规操做,服务器本身校验规则都是utf8的。
查看数据库支持的字符集
show charset;
数据库写的时候采用什么编码
查看数据库支持的字符集校验规则
show collation;
未来数据已经有了,想怎么读,读的时候怎么知道这是我想要的,所以对数据做特定的解释,然后才做能对比。
现在也知道创建数据库了,也知道编码和校验规则了。两个合并下面就可以创建出指定编码和校验规则的数据库了。
当我们创建数据库或者表没有指定编码和校验规则时,系统默认以配置文件为主,如果用户在SQL语句中手动确认了自己要采用某种编码采用的就是就近原则。也就是说用户写了就用用户的,用户没写就用默认配置文件的。
下面可以看到创建数据库没有指定,系统就用默认的。
指定了就用指定的,有两种写法
create database d2 charset=gbk;
create database d2 character set</