MySQL——基础操作(1)

news2024/11/15 19:54:19

一、数据库的创建

1.1 库的创建

在使用数据库时,最先操作的是创建一个数据库。使用语法如下:

CREATE DATABASE [IF NOT EXISTS] database_name [[DEFAULT] CHARSET=charset_name] [[DEFAULT] COLLATE=collation_name];

对上述语句进行简单说明:

  • 大写的表示关键字;
  • [ ]是可选项;
  • CHARACTER SET:指定数据库采用的字符集;
  • COLLATE:指定数据库字符集的校验规则。

我们来看一个实例:

上述即为一个最为简单的创建数据的例子。当我们创建成功时,下面会给出我们提示。

1.2 字符集与校验规则

在创建数据库时,字符集和校验规则是非常重要的设置,它们决定了数据库中能够存储的字符类型以及如何校验输入的数据。其中,字符集是一套符号和编码的规则,而校验规则是对该套符号和编码的校验,定义符号的排序和比较规则。

1.2.1 查看字符集与校验规则

当我们在创建数据库时,我们并没有指定字符集和校验规则,系统会默认给我们选择字符集与校验规则。我们可以通过查看MySQL系统变量variables中的character_set_database,可以得知系统默认的字符集。具体如下图:

类似的,通过查看系统变量variables中的collation_database,可以得知系统默认的字符集校验规则。具体如下图:

其实,默认的字符集校验规则都是与我们安装MySQL时的配置文件有关,我们也可以查看配置文件/etc/my.cnf。具体如下图:

我们可以现在Linux下通过指令:show collation 查看数据库支持所有的校验规则。具体如下图:

通过指令:show charset 来查看字符集。具体如下图:

1.2.2 字符集与校验规则的设置

在我们上面的创建数据库时,并没有指定其字符集与校验规则,那么它们会是什么呢?我们来看一下。

在Linux下,我们所安装的数据库的客户端在:/var/lib/mysql 路径下。当我们创建数据库时,对应到Linux上就是创建的一个目录,本质上是在创建一个文件。具体如下图:

从上图中能够看到有一个test1的目录,这也就是我们刚刚在mysql中创建的数据库。其中包含了一个db.opt 文件,这个文件中就包含了我们创建数据库时的字符集与校验规则。如下图:

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ci。

下面我们在创建数据库时自己设置字符集与校验码,具体如下图:

当然,我们可以通过查询所有的字符集与校验码进行任意设置,但是需要注意的是我们应该使用匹配的字符集与校验码!

1.2.3 校验规则对数据库的影响

我们这里再次理解一下校验规则的概念:校验规则是对该套符号和编码的校验,定义符号的排序和比较规则。为了保证读取的数据和存储的数据是一致的,因此字符集编码格式和校验规则必须是对应的。utf8编码格式的校验规则有utf8_general_ci、utf8_bin、utf8_unicode_ci等校验规则。

当然,校验规则涉及到了对数据库中是数据进行了增删查改的影响了。举个例子来说明一下:如果你的数据库需要对文本进行多语言的比较和排序,可以选择校验规则为utf8_general_ci(UTF-8编码,不区分大小写)。而需要对文本进行大小写敏感的比较和排序时,校验规则应使用utf8_ bin(区分大小写)

下面我们来结合实际例子看一下。我们在不同校验规则的数据库中创建一个表进行数据插入,在进行排序看结果就可以。

我们先来看一下校验规则为utf8_general_ci的数据库,具体如下图:

当我们想要查找name = ‘a’ 时,也就是进行比较表中的名字为 ‘a’ 的数据。运行结果如下图:

如上图,我们可以很清晰的看到,当我们在校验时,校验规则为utf8_general_ci并不区分大小写的!

我们再来看一下校验规则为utf8_ bin的数据库。具体如下图:

我们再来查看name = ‘a’的数据,看看校验时是否区分大小写。具体如下图:

我们看到,在读取校验数据时会以严格的规则来筛选数据,也就是区分大小写的。我们也可通过排序进行观察,如下图:

排序就是根据字符的ascll码进行排序的,默认是升序的。如果不区分大小写,那么结果就是a A b B c C。

二、数据库的操作

2.1 查看数据库

查看数据库也就是我们查看我们当前都创建了哪些数据库。使用语句:show databases

在Linux下,可能操作一段时间后,我们就会不知道当前处于那个数据库里面了。可通过 select database() 语句来查看你所处的数据库。具体如下图:

删除数据库时,会将数据库内的数据一同全部删除。所以不建议创建数据库后直接对数据库进行删除。

2.2 删除数据库

删除数据库的语句如下:DROP DATABASE [IF EXISTS] db_name;

2.3 修改数据库

对数据库进行修改的语句:ALTER DATABASE db_name CHARACTER SET charset_name COLLATE collation_name。注意,这里的修改并不是指的修改数据库的名字,而是修改的是字符集和校验规则。我们看实例操作:

【注意】为了保证数据库的稳定性和安全性,大多数数据库系统都不支持对库名的修改操作。如果确实需要修改库名,通常需要先备份数据库,然后创建新的库,并将所有相关的对象从旧库迁移到新库。 下面我们看一下数据库的删除和备份。

2.4 数据库删除和备份

 我们在数据库备份时,要使用专门的数据库备份软件。这里我们直接使用 mysqldump 进行备份。备份语句如下:

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

这时候我们就生成了备份文件。不妨打开备份文件看看里面的内容,如下图:

通过上图我们也能看出来,备份的文件中就是保存了我们在创建该数据库时的所有指令。例如建数据库、创建表、插入数据等SQL语句。

对数据库进行备份后,就可以将原有的数据库进行删除了。建议:如果非要删除数据库,一般情况下建议先备份,后删除。

接下来我们看怎么将备份的数据库文件进行恢复。恢复的语句:source 备份文件所在的路径。具体如下:

我么不仅仅可以备份整个数据库,还可以备份数据库中的表。语句如下:

mysqldump -u root -p 数据库名 表名1 表名2 > 所要备份的路径

其备份原理和恢复的原理都一样,这里就不再过多解释。当然,我们也可以同时备份多个数据库。语句如下:

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

2.5 显示创建语句

我们也可查看当时创建数据库时所用到的语句。可使用:show create database 数据库名 进行查看。具体如下图:

【注意】

  • MySQL 建议我们关键字使用大写,但是不是必须的;
  • 数据库名字的反引号 ``, 是为了防止使用的数据库名刚好是关键字;
  • /*!40100 default.... */ 这个不是注释,表示当前 mysql 版本大于 4.01 版本,就执行这句话。

2.6 查看连接情况

有时候我们在使用数据库时,感觉到卡顿。可以查看当前都有谁在操作这个数据库。可使用show processlist命令可以查看当前正在运行的进程列表。具体实例如下图:

这个列表包含了数据库中所有正在运行的查询、操作和其他活动。以下是一些常见的属性:

  1. Id:进程的唯一标识符。
  2. User:正在运行这个进程的用户。
  3. Host:正在运行这个进程的主机。
  4. db:正在使用的数据库。
  5. Command:正在运行的命令或操作。
  6. Time:进程开始运行的时间。
  7. State:进程的状态,例如“Sleeping”、“Running”、“Writing”等。
  8. Info:有关进程的其他信息,例如正在执行的SQL语句、正在等待的锁等。

这些属性可以帮助你了解数据库中正在运行的活动,以及它们的状态和进度。例如,如果你发现某个查询正在运行很长时间,你可能需要检查它的SQL语句,看看是否有优化的空间。或者,如果你发现数据库正在等待锁,你可能需要检查是否有并发问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2104832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最佳视频编辑软件,适合专业人士和初学者

如果你想利用视频编辑软件,即使你没有很多专业知识。一段精彩的视频可能有助于你公司的成功。然而,出色的视频镜头只能在编辑工具的帮助下创建。有许多免费程序可供选择,有许多不同的需求和理由需要编辑。在编辑方面,无论你是专业…

【接入指南】快手API

快手小店自2018年上线以来,业务发展迅速,2年时间GMV增长1000倍,活跃商家达到100万,已经成为主流的电商平台,为支撑广大商家的业务处理需求,快手API成为快手平台业务处理软件高效、便捷的开发工具&#xff0…

C++学习笔记----6、内存管理(一)---- 使用动态内存(4)

3.6、多维自由内存空间上的数组 如果需要在运行时决定多维数组的维度,可以使用在自由内存空间上的数组。与一维动态分配的数组通过指针访问一样,多维动态分配的数组也可以通过指针访问。不同的地方在于在二维数组中,需要用一个指向指针的指针…

『功能项目』项目优化【21】

我们打开上一篇20主角身旁召唤/隐藏坐骑的项目, 本章要做的事情如以下几点: 1.优化资源包Resources下的层级分类 2.优化脚本包Scripts下的脚本分类 3.地形Terrain的优化(只让主角点击地面移动跳过其他石头山树等其他物体) 首…

笔记整理—uboot番外(3)环境变量的作用

环境变量的最大一个作用就是,能够在不修改代码的情况下去影响应用的运行情况。 环境变量的优先级问题:有环境变量的情况下优先使用环境变量,没有环境变量则使用代码中的值(全局变量一类的变量)。 例如,mach…

随身WiFi实测,真相让你大跌眼镜!随身携带的随身wifi哪个比较好?什么品牌的随身wifi好用?

都说随身wifi坑多,谁买谁是冤大头!我还真不信这个邪!本次我们对格行、京东云、迅优三款热门随身WiFi进行了开箱测试,实测周期为2个月。今天从外观、网速、续航、售后、适合人群及整体评价等方面进行全面剖析。 一、京东云随身WiFi…

Qt 杨帆起航

这里写自定义目录标题 引入1、Qt安装1.1 OSX1.1.1 HomeBrew 方式安装1.1.2 自己编译 1.2 Windows x、IDEx.1 Clionx.1.1 ui 文件到Qt设计师x.1.2 ui文件更新,为及时调用uiCompile生成或更新cpp文件x.1.3 qt资源文件创建x.1.4 帮助文档的配置 引入 机缘巧合&#xf…

图像缩放操作

图像缩放操作 微信公众号:幼儿园的学霸 在图像处理过程中,有时需要把图像调整到同样大小,便于处理,这时需要用到图像resize(),该函数比较简单,此处对函数中涉及的各种插值方法进行分析。 目录 文章目录 图…

利用Python解析json生成PPT、xmind思维导图教程

文章目录 背景部分json样例PPT生成思维导图生成 背景 通过调用阿里通义听悟接口,对视频进行了语音转写、智能总结等,现在需要解析返回的PPT和思维导图json文件,以可视化的形式进行呈现。关键点在于: PPT生成时,注意用…

【电池专题】软包电池封装工序

铝塑膜成型工序冲坑 铝塑膜成型工序,软包电芯可以根据客户的需求设计成不同的尺寸,当外形尺寸设计好后,就需要开具相应的模具,使铝塑膜成型。 成型工序也叫作冲坑,顾名思义,就是用成型模具在加热的情况下,在铝塑膜上冲出一个能够装卷芯的坑,具体的见下图。 …

推荐4个一键生成 PPT的AI工具,让你畅享智能办公!

对于职场人士来说,ai PPT 工具已经成为了高效办公的一大得力助手 。它可以让你从繁琐的 PPT 制作中解脱出来,把更多的时间放在其他的工作准备上面。并且它们有极大的设计能力,会让我们的PPT变的设计感十足,如果大家正在为PPT制作烦…

【Linux】进程周边:进程概念

🌷相关专栏:《c学习》《Linux进阶之路》🌷 全片内容总览: 目录 1.进程基本概念 2.进程的本质?为什么要有进程控制块PCB? 1)为什么要有进程控制块PCB? 2)进程的本质 …

sqli-labs靶场通关攻略(41-60)

第四十一关 联合查询爆出数据库 但这关考察的时堆叠注入 ,我们给他注入一条数据 输入id50即可查到我们注入的数据 第四十二关 看页面似曾相识,上次我们是用注册新用户然后对其他账户进行登录从而造成注入,但这次不能注册新用户了 存在堆叠注…

leetcode 1645 Hopper公司查询2(postgresql)

需求 表: Drivers -------------------- | Column Name | Type | -------------------- | driver_id | int | | join_date | date | -------------------- driver_id是该表的主键。 该表的每一行均包含驾驶员的ID以及他们加入Hopper公司的日期。 表: Rides ---------------…

【JAVA入门】Day27 - 单列集合体系结构综述

【JAVA入门】Day27 - 单列集合体系结构 文章目录 【JAVA入门】Day27 - 单列集合体系结构1.1 Collection 集合的基本方法1.2 Collection 集合的遍历方式1.2.1 迭代器遍历1.2.2 增强 for 遍历1.2.3 利用 Lambda 表达式进行遍历 1.3 List 集合的基本方法1.4 List 集合的遍历方式 J…

云手机怎样简化海外社媒平台运营

随着越来越多的卖家希望拓展海外市场,运营TikTok、Facebook等社交媒体平台已经成为吸引流量和促进销售的重要手段。然而,在管理海外社媒账号的过程中,许多人会面临网络连接的问题。这时,使用一款高效便捷的云手机工具就显得尤为便…

企业财税自动化解决方案案例分享与经验总结

数字经济时代,企业在财税管理方面面临着越来越多的挑战,作为企业运营的核心部分,其效率和准确性直接关系到企业的财务健康和决策效率。为全面提升财务管理工作的效率和质量,推动业财融合,许多企业开始探索,…

ML17_变分推断01:KL散度、ELBO

1. KL散度 KL散度(Kullback-Leibler divergence),也称为相对熵(relative entropy),是由Solomon Kullback和Richard Leibler在1951年引入的一种衡量两个概率分布之间差异的方法。KL散度不是一种距离度量&am…

Flutter的升级和降级步骤

升级 1.版本升级 // 升级到指定版本 flutter upgrade 版本号 // 升级到最新版本 flutter upgrade 2. 更新开发配置 启动 Android Studio。 打开 Settings 对话框,查看 SDK Manager。 如果你已经打开了一个项目,请打开 Tools > SDK Manager。 如果…

设置Virtualbox虚拟机共享文件夹

由于工作环境的原因,选择Virtualbox的方式安装虚拟操作系统,常用的操作系统为ubuntu,不知道道友是否也曾遇到这样的问题,就是虚拟机和主机进行文件拖拽的时候,会因为手抖造成拖拽失败,虚拟机界面显示大个的…