MYSQL结构操作DDL指令1.数据库操作

MYSQL

mysql数据库是运用最广泛的数据库,属于甲骨文公司,其并发性好,但是不合做复杂的业务,负责业务多使用Oracle数据库,mysql主要运用于电商,SNS,论坛,对简单的业务处理效果好,在百万级/千万级用户的应用中都有非常好的效果。而且mysql是一款免费开源的数据库,可以根据实际需求进行改写。

登录

数据库跟操作系统一样需要以用户方式登录,根据不同的用户会配置不同的权限。

bash 复制代码
mysql -h 127.0.0.1 -P 3306 -u root -p

mysql主流都是布置在服务器上,服务器一般都是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自带的数据库是千万不能对他进行操作的。

新建数据库

bash 复制代码
create database if not exists db_name;

进入mysql中输入此行指令就能创建一个名为db_name的数据库,if not exists是可选项,可加可不加,其作用是在创建前先判断是否存在相同名字的数据库,若不存在再创建。

查找数据库

bash 复制代码
show databases;

这条指令会显示当前存在的所有的数据库

删除数据库

bash 复制代码
drop database db_name;

此条指令会删除对应名字的数据库。

数据库的编码格式

数据库对数据进行存储就是将其写入到磁盘或者内存中,数据再磁盘内存中不再是以字符格式存储的二进制格式,所以其需要一个转换的规则,就是编码格式。

一般国内通用的就是UTF-8比较权威中文的编码格式。

查看数据库支持的编码格式

bash 复制代码
show variables like 'character_set_database';

这条指令可以查看创建数据库时默认的编码格式。

这里是utf8mb4就是utf-8,有的可能会有utf8mb3,这是旧的utf8格式若是都存在尽量还是设置为mb4的新版。

bash 复制代码
show charset;

这条指令可以查看数据库支持的所有编码格式

第一行就是编码格式,这里只截取了一部分,utf8mb3/utf8mb4在下面,这里主要指的是当数据存储时的转换格式,数据库存放数据就是为了有需要的时候要获取数据,第三行的Default collation就是我们从数据库中获取数据所使用校验集,表中就是数据库支持的编码格式与校验集的对应关系,第二行是对其的描述。

数据库编码的指定和更改

数据库实际是一套数据管理的方式,一系列的配置文件,数据存放自然也是在磁盘中的某个位置,在linux中就是以文件的形式存在的,其数据的存放位置一般都是在/var/lib/mysql目录下

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

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

查看这个db.opt就是记录当前数据库编码和校验集的文件,说明在mysql中d4这个数据库使用的是此编码格式和校验集。

这里和上面的默认编码格式不同,是因为这个编码格式被我改了,介绍两中更改编码格式的方式

创建时更改

bash 复制代码
create database db_name charset=utf8mb4;
create database db_name character utf8mb4;

这两种方式都是等价的,只是不同写法,其会自动匹配对应校验集设置collation。

也可以自定义设置collation

bash 复制代码
create databases db_name charset=utf8 collate utf8;

甚至两个是可以设置成不同的编码格式,但是输出的内容很容易乱码。

对已有数据库更改

bash 复制代码
alter database db_name charset=gbk collate gbk_chinese_ci;

这样就完成了对特定数据库的编码格式和校验集更改,但是一般数据库在建立之前就需要规定好其对应的格式,正常情况下不要对已有数据进行更改。

相关推荐
玄同76515 小时前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
吾日三省吾码15 小时前
别只会“加索引”了!这 3 个 PostgreSQL 反常识优化,能把性能和成本一起打下来
数据库·postgresql
chian-ocean15 小时前
百万级图文检索实战:`ops-transformer` + 向量数据库构建语义搜索引擎
数据库·搜索引擎·transformer
那个村的李富贵16 小时前
解锁CANN仓库核心能力:50行代码搭建国产化AIGC图片风格迁移神器
mysql·信息可视化·aigc·cann
小Tomkk16 小时前
数据库 变更和版本控制管理工具 --Bytebase 安装部署(linux 安装篇)
linux·运维·数据库·ci/cd·bytebase
qq_124987075316 小时前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计
倒流时光三十年17 小时前
SpringBoot 数据库同步 Elasticsearch 性能优化
数据库·spring boot·elasticsearch
码农小卡拉17 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
怣5017 小时前
MySQL多表连接:全外连接、交叉连接与结果集合并详解
数据库·sql
wjhx18 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt