初识MySQL · 库的操作

目录

前言:

有关编码


前言:

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

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


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

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

sql 复制代码
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。

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

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


感谢阅读!

相关推荐
独行soc12 分钟前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain30 分钟前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship31 分钟前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站34 分钟前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
老王笔记35 分钟前
GTID下复制问题和解决
mysql
装不满的克莱因瓶37 分钟前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
Lojarro2 小时前
【Spring】Spring框架之-AOP
java·mysql·spring
梦想平凡2 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
TianyaOAO2 小时前
mysql的事务控制和数据库的备份和恢复
数据库·mysql
Ewen Seong3 小时前
mysql系列5—Innodb的缓存
数据库·mysql·缓存