初识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。

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

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


感谢阅读!

相关推荐
北友舰长21 分钟前
基于Springboot+thymeleaf图书管理系统的设计与实现【Java毕业设计·安装调试·代码讲解】
java·spring boot·mysql·课程设计·图书管理·b/s·图书
云和恩墨1 小时前
OceanBase企业版会话级SQL跟踪实操:DBMS_MONITOR(类Oracle 10046事件)
数据库·sql·oracle·oceanbase
为什么不问问神奇的海螺呢丶1 小时前
oracle 数据库巡检 sql
数据库·sql·oracle
麦麦鸡腿堡1 小时前
MySQL数据库操作指令
数据库·mysql
陈天伟教授7 小时前
人工智能训练师认证教程(2)Python os入门教程
前端·数据库·python
Elastic 中国社区官方博客8 小时前
Elasticsearch:在分析过程中对数字进行标准化
大数据·数据库·elasticsearch·搜索引擎·全文检索
聪明努力的积极向上8 小时前
【MYSQL】字符串拼接和参数化sql语句区别
数据库·sql·mysql
代码or搬砖8 小时前
RBAC(权限认证)小例子
java·数据库·spring boot
神仙别闹8 小时前
基于QT(C++)实现学本科教务系统(URP系统)
数据库·c++·qt
2301_768350238 小时前
MySQL为什么选择InnoDB作为存储引擎
java·数据库·mysql