初识MySQL · 库的操作

目录

前言:

有关编码


前言:

由前文可得,MySQL是目前主流的数据库,mysql是客户端,mysqld是一种网络服务,mysqld是一种数据库服务,而对于数据库来说,是一种存储数据、组织数据的一种手段,那么我们肯定就是要学数据库是如何操作的?对于数据库我们应该如何增删查改?删除了如何备份等问题。

那么就随着博主的脚步,进入到今天的主题吧!


增加数据库,也就是创建数据库,现在我们先进入到数据库:

使用指令sudo mysql -uroot即可进入,进入之后,我们现在尝试创建一个数据库,基本语法为:

复制代码
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

我们在第一章已经创建过了,这里简单顺便简单回忆一下:

展现数据库是使用show databases,随即我们使用指令create database db_name; 创建了数据库。

其中大写的表示关键字,所以CREATE代表的是create,[]里面的代表是可选项,比如if not exists:

我们虽然是创建成功了,但是也有警告,因为这里已经存在了的数据库,所以不会重新创建新表,报了个警告直接返回了就。

那么下面的两个,就涉及到了编码了。

有关编码

在MySQL里面,存在两种编码,一种是字符集,一种是字符集的校验规则,比如我们在vs2022常用的字符集就是utf-8,偶尔会有utf-16的,这是用于存储,也就是数据库采用的一种存储方式。那么校验规则就是对该套字符集的一种校验,不同的校验规则有不同的方式去校验,我们一会儿可以看看。

那么我们不妨指定一下字符集和校验规则,说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则 是:utf8_ general_ ci,查看对应的字符集和校验规则是show charset; show collation;

我们创建一个字符集为utf8的数据库:

创建一个字符集为utf8 校验规则为utf8_general_ci的数据库:

因为我这里是ubuntu环境,所以有些告警。

这些是默认的配置,而utf8mb4是utf8的扩展,所以会有些告警,但是不影响。

我们不妨验证一下不同的校验规则的影响是什么:

都使用utf8的字符集,这个使用校验规则utf8_general_ci,特点是不区分大小写:

这个使用utf8_bin,区分大小写:

插入对应数据,插入完毕之后,我们进行查询:

使用select * from person查询该表的所有结果,这是test,utf8_general_ci的,不区分大小写。

对于test2,区分大小写的,所以查询,只能查到一个b,没有B。

那么对于数据库来说,我们还可以进行排序:

这是test1的:

这是test2的:

那么以上是创建数据库以及数据库中的两种规则。


删除还是有点说法的,我们在数据库基础部分,知道了创建数据库的本质就是创建目录:

在/var/lib/mysql的目录下,我们就可以可以看到某些蓝色的目录,其中test1 test2就是我们创建的数据库,那么我们删除数据库,是否可以直接在这里面删除呢

删除肯定是可以的,但是非常非常不推荐这种删除方式,实在是太业余了的感觉。

删除使用的sql语句是drop:

这样就删除了。

那么对于数据如何备份,这里给个链接,同学们自行查阅哦~

超详细讲解:数据库的备份与数据恢复方法举例与说明(完全备份、差异备份、增量备份)_举例说明增量备份-CSDN博客


对于查找这个功能来说,我们可以查数据库,也可以查数据库中的表:

使用的sql语句都是show ...,比如show databases; show tables;等。

那么同样,我们也可以show创建语句,而这里和我们平常变成时候不一样的是/**/并不是注释,而是表示如果mysql的版本大于4.0.1的话,就执行这条语句,比如CHARAVTER SET就代表存储的字符集是utf8mb3,其中的'test1'是为了防止数据库名刚好是关键字。

其实当们修改一下数据库的字符集,里面的utf8mb3就会变成我们修改之后的了。


我们拿查的例子来举例,我们先将数据库的字符集修改一下,修改为gbk:

确实就修改完毕了。

对于改来说,对应的sql语句就是alter。

当然了,可以改字符集,也可以改校验规则。

这里就留给同学们自己尝试啦。


感谢阅读!

相关推荐
gmaajt8 小时前
JavaScript中闭包对垃圾回收器GC标记清除算法的影响
jvm·数据库·python
NineData8 小时前
NineData 亮相 2026 德国汉诺威工业博览会,加速拓展欧洲及全球市场
运维·数据库·人工智能·数据库管理·ninedata·ai服务·玖章算术
撩得Android一次心动8 小时前
Android Room 数据库详解【源码篇】
android·数据库·android jetpack·room
m0_495496418 小时前
C#怎么操作音频文件 C#如何用NAudio播放录制和处理WAV MP3音频文件【工具】
jvm·数据库·python
dFObBIMmai9 小时前
CSS如何检测页面浮动元素位置_使用审查工具与clear
jvm·数据库·python
qq_460978409 小时前
实现 Svelte 中基于数组索引的 details 元素单开单关交互
jvm·数据库·python
这个DBA有点耶9 小时前
3步抓出慢SQL,别等半夜被叫醒😴
数据库·代码规范
dfdfadffa9 小时前
SQL窗口函数如何优化嵌套子查询_提升执行效率
jvm·数据库·python
m0_588758489 小时前
如何查看集群版本_crsctl query crs activeversion当前版本
jvm·数据库·python
摇滚侠10 小时前
Oracle19c 导出 Oracle11g 导入,Oracle19c 导出导入,Oracle11g 导出导入
java·数据库·oracle