MYSQL结构操作DDL指令1.数据库操作
MYSQL
mysql数据库是运用最广泛的数据库,属于甲骨文公司,其并发性好,但是不合做复杂的业务,负责业务多使用Oracle数据库,mysql主要运用于电商,SNS,论坛,对简单的业务处理效果好,在百万级/千万级用户的应用中都有非常好的效果。而且mysql是一款免费开源的数据库,可以根据实际需求进行改写。
登录
数据库跟操作系统一样需要以用户方式登录,根据不同的用户会配置不同的权限。
mysql -h 127.0.0.1 -P 3306 -u root -pmysql主流都是布置在服务器上,服务器一般都是linux作为操作系统,这是一条linux的指令在ubantu/centos中都是一样的。
前缀mysql
-h 代表host主机的IP地址,这里访问的mysql是本地的所以使用的本地换回地址
-P 代表port端口号,mysql布置使用的端口是可以在配置文件中设定的,但是一般都会选择使用3306,而且统一端口号可以提高程序的可移植性。一般配置文件中默认也是3306。
-u 代表user用户,后面跟的就是登录mysql的用户名,mysql中默认就拥有root用户,其他用户需要手动添加
-p 代表password密码登录,后续不需要跟密码,密码在输出此行指令后会单独一行输入密码,密码是没有回显的。根据mysql的版本不同新安装的mysql有不同的配置方式,一般root默认一开始都是不需要密码登录的,直接回车进入即可,但是有些可能需要修改一下配置文件才能进入。
数据库的增删查改
在登录了mysql后指令行会切换到mysql的指令行

这里使用的是mariadb,本质也是mysql所有操作都是相同的。
如果你的新的mysql没有创建任何的数据库,但是这时你输入show databases;会发现里面并不是空的有information_schema和performance_schema
information_schema是一个虚拟数据库,用于存储数据库的元信息,如表结构、字段定义、用户权限等。它是一个只读的数据库,内容是动态生成的,用于提供数据库的元数据信息。
performance_schema是一个动态性能监控数据库,用于收集和管理 MySQL 运行时的性能指标,如线程、锁、内存使用等。它也具有动态特性,内容存储在内存中,用于性能分析和优化。
这两个是mysql自带的数据库是千万不能对他进行操作的。
新建数据库
create database if not exists db_name;进入mysql中输入此行指令就能创建一个名为db_name的数据库,if not exists是可选项,可加可不加,其作用是在创建前先判断是否存在相同名字的数据库,若不存在再创建。
查找数据库
show databases;这条指令会显示当前存在的所有的数据库

删除数据库
drop database db_name;此条指令会删除对应名字的数据库。
数据库的编码格式
数据库对数据进行存储就是将其写入到磁盘或者内存中,数据再磁盘内存中不再是以字符格式存储的二进制格式,所以其需要一个转换的规则,就是编码格式。
一般国内通用的就是UTF-8比较权威中文的编码格式。
查看数据库支持的编码格式
show variables like 'character_set_database';这条指令可以查看创建数据库时默认的编码格式。

这里是utf8mb4就是utf-8,有的可能会有utf8mb3,这是旧的utf8格式若是都存在尽量还是设置为mb4的新版。
show charset;这条指令可以查看数据库支持的所有编码格式

第一行就是编码格式,这里只截取了一部分,utf8mb3/utf8mb4在下面,这里主要指的是当数据存储时的转换格式,数据库存放数据就是为了有需要的时候要获取数据,第三行的Default collation就是我们从数据库中获取数据所使用校验集,表中就是数据库支持的编码格式与校验集的对应关系,第二行是对其的描述。
数据库编码的指定和更改
数据库实际是一套数据管理的方式,一系列的配置文件,数据存放自然也是在磁盘中的某个位置,在linux中就是以文件的形式存在的,其数据的存放位置一般都是在/var/lib/mysql目录下

其一堆文件就是其配置文件,而目录文件就是在mysql中通过show databases;查看到的数据库,当我们进入其对应的数据库中

这个就是在d4目录下的所有文件

查看这个db.opt就是记录当前数据库编码和校验集的文件,说明在mysql中d4这个数据库使用的是此编码格式和校验集。
这里和上面的默认编码格式不同,是因为这个编码格式被我改了,介绍两中更改编码格式的方式
创建时更改
create database db_name charset=utf8mb4;
create database db_name character utf8mb4;这两种方式都是等价的,只是不同写法,其会自动匹配对应校验集设置collation。
也可以自定义设置collation
create databases db_name charset=utf8 collate utf8;甚至两个是可以设置成不同的编码格式,但是输出的内容很容易乱码。
对已有数据库更改
alter database db_name charset=gbk collate gbk_chinese_ci;这样就完成了对特定数据库的编码格式和校验集更改,但是一般数据库在建立之前就需要规定好其对应的格式,正常情况下不要对已有数据进行更改。
