『MySQL快速上手』-③-库的操作

文章目录

  • 1.创建数据库
  • 2.创建数据库案例
  • 3.字符集和校验规则
    • 3.2 校验规则对数据库的影响
      • 3.2.1 进行查询
      • 3.2.2 进行排序
  • 4.字符集和检验规则的作用
  • 5.操纵数据库
    • 5.1 查看数据库
    • 5.2 显示创建语句
    • 5.3 修改数据库
    • 5.4 数据库删除
  • 6.备份与恢复
    • 6.1 备份
    • 6.2 还原
    • 6.3 注意事项
  • 7.查看数据库连接情况

在这里插入图片描述

1.创建数据库

语法格式如下:

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

说明:

  • 大写的表示关键字(SQL指令是大小写忽略的,小写也没问题);

  • [] 是可选项;

  • CHARACTER SET: 指定数据库采用的字符集

  • COLLATE: 指定数据库字符集的校验规则

2.创建数据库案例

  • 创建数据库,命名为db1
create database db1

说明:

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集utf8,校验规则是:utf8_ general_ ci。这由MySQL的配置文件决定。

  • 查看MySQL配置文件
cat /etc/my.cnf

在这里插入图片描述

  • 创建一个使用utf8字符集db2 数据库;
create database db2 charset=utf8;
  • 创建一个使用utf8字符集,并带校对规则的 db3 数据库;
create database db3 charset=utf8 collate utf8_general_ci;

3.字符集和校验规则

  • 查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database';

在这里插入图片描述

  • 查看数据库支持的字符集
show charset;
  • 查看数据库支持的字符集校验规则
show collation;

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

我们可以从下面这个示例中看出校验规则对数据库的影响。

  1. 创建一个数据库,校验规则使用utf8_ general_ ci(不区分大小写);
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  1. 创建一个数据库,校验规则使用utf8_ bin(区分大小写);
create database test2 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

3.2.1 进行查询

  • 不区分大小写的查询以及结果
use test1;
select * from person where name='a';

在这里插入图片描述

  • 区分大小写的查询以及结果;
use test2;
select * from person where name='a';

在这里插入图片描述

3.2.2 进行排序

  • 不区分大小写排序以及结果:
use test1;
select * from person order by name;

在这里插入图片描述

  • 区分大小写排序以及结果:

在这里插入图片描述

4.字符集和检验规则的作用

数据库中的字符集(Character Set)和字符集校验规则(Collation)是用于定义和管理数据库中文本数据存储和比较的重要设置。它们的作用如下:

  1. 字符集(Character Set):

    • 定义了数据库中可以存储的字符集合,包括字母、数字、符号等。
    • 确定了数据库如何存储和表示不同字符和符号。
    • 不同的字符集支持不同的字符编码方式,如UTF-8、UTF-16、ISO-8859-1等。
    • 可以影响文本数据的存储空间和性能。
  2. 字符集校验规则(Collation):

    • 确定了文本数据的比较和排序方式,即如何对文本数据进行比较、搜索和排序。
    • 根据字符集校验规则,相同的字符可能在排序时被视为不同。
    • 支持不同语言和文化的排序规则,以确保文本数据的正确比较和排序。
    • 不同的字符集校验规则可能会影响查询结果的顺序和比较操作的行为。

这些设置对数据库的正确性、性能和多语言支持非常重要。以下是一些具体作用:

  • 数据完整性:字符集和字符集校验规则有助于确保数据存储的一致性和正确性。它们防止了不同字符之间的混淆,确保数据正确存储和检索。

  • 多语言支持:不同语言使用不同的字符集和校验规则,因此数据库必须支持多种字符集和校验规则,以适应不同语言的数据。

  • 搜索和排序:字符集校验规则决定了文本数据的搜索和排序方式。它们确保文本数据按照正确的规则进行比较和排序,以获得正确的查询结果。

  • 存储空间效率:不同字符集和编码方式可以影响数据存储的空间效率。例如,某些字符集需要更多的存储空间来表示特定字符。

  • 数据交互:当与其他系统或应用程序进行数据交互时,字符集和字符集校验规则的一致性非常重要,以确保数据正确传输和解释。

总之,字符集和字符集校验规则是数据库中用于管理文本数据的关键设置,它们影响了数据的正确性、性能和多语言支持,因此在创建和维护数据库时需要特别注意。

5.操纵数据库

5.1 查看数据库

show databases;

在这里插入图片描述

5.2 显示创建语句

show create database 数据库名;

在这里插入图片描述
说明:

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

5.3 修改数据库

语法格式如下:

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
  • 对数据库的修改主要指的是修改数据库的字符集,校验规则

案例——将test1数据库字符集改成gbk

alter database test1 charset=gbk;

在这里插入图片描述

5.4 数据库删除

语法格式如下:

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

  • 数据库内部看不到对应的数据库;
  • 对应的数据库文件夹被删除,级联删除里面的数据表全部被删

6.备份与恢复

6.1 备份

语法格式如下:

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

案例——将test1库备份到文件

  • 首先退出mysql;

  • test1备份到 ./test1.sql

$ mysqldump -P3306 -u root -p -B test1 > ./test1.sql
  • 查看备份文件test1.sql;
  • test1.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中;
$ cat ./test1.sql

在这里插入图片描述

6.2 还原

  • 登入MySQL,删除test1
drop database test1;
show databases;

在这里插入图片描述

  • 还原;
source ./test1.sql;
show databases;

在这里插入图片描述

6.3 注意事项

  • 如果备份的不是整个数据库,而是其中的一张表,怎么做?
$ mysqldump -u root -p 数据库名 表名1 表名2 > 备份文件路径
  • 同时备份多个数据库
$ mysqldump -u root -p -B 数据库名1 数据库名2 ... > 备份文件路径
  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原;

7.查看数据库连接情况

语法:

show processlist

在这里插入图片描述
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter_逻辑控制器

逻辑控制器 控制取样器执行顺序的组件实现(分支 循环) 分类 1、如果(if) 控制器 分支实现 2、forEach控制器 循环往复实现 3、循环控制器 循环往复实现 如果(if) 控制器 需求1:测试计划中定义一个 http 请求访问百度,但是该请求不是无条件执行的,…

前端项目导入vue和element

1.安装nodejs 下载链接https://cdn.npmmirror.com/binaries/node/v18.18.0/node-v18.18.0-x64.msi 进入cmd 命令行模式 管理员身份运行 输入 (node -v)能看到版本号 npm config set prefix "C:\Program Files\nodejs" 默认路径 npm config…

聊一聊 tcp/ip 在.NET故障分析的重要性

一:背景 1. 讲故事 这段时间分析了几个和网络故障有关的.NET程序之后,真的越来越体会到计算机基础课的重要,比如 计算机网络 课,如果没有对 tcpip协议 的深刻理解,解决这些问题真的很难,因为你只能在高层做…

【微服务】mysql + elasticsearch数据双写设计与实现

目录 一、前言 二、为什么使用mysqles双写 2.1 单用mysql的问题 2.2 为什么不直接使用es 2.2.1 非关系型表达 2.2.2 不支持事务 2.2.3 多字段将造成性能低下 三、mysqles双写方案设计要点 3.1 全新设计 VS 中途调整架构 3.2 全表映射 VS 关键字段存储 3.2.1 最大程度…

《强化学习与机器人控制》:探索深度学习的应用宝典

《强化学习与机器人控制》是一本涵盖了广泛主题的深度著作,它不仅介绍了人机交互控制和强化学习的基本原理,还深入探讨了无模型强化学习控制器以及其在机器人控制中的应用。这本书对于研究生和执业工程师来说是一本极具价值的参考书,它为读者…

Markov Chain Fingerprinting to Classify Encrypted Traffic 论文笔记

0.Abstract 在本文中,提出了用于SSL/TLS会话中传输的应用程序流量的随机指纹。这个指纹基于一阶齐次马尔可夫链,模型识别应用程序的准确率,并提供了检测异常对话的可能性。 1.Introduction 通过SSL/TLS会话时的头部信息创建统计指纹&#xff…

【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库

📮1.初识git Git 原理与使用 课程⽬标 • 技术⽬标:掌握Git企业级应⽤,深刻理解Git操作过程与操作原理,理解⼯作区,暂存区,版本库的含义 • 技术⽬标:掌握Git版本管理,⾃由进⾏版本回退、撤销、修改等Git操…

Python和BeautifulSoup库的魔力:解析TikTok视频页面

概述 短视频平台如TikTok已成为信息传播和电商推广的重要渠道。用户通过短视频分享生活、创作内容,吸引了数以亿计的观众,为企业和创作者提供了广阔的市场和宣传机会。然而,要深入了解TikTok上的视频内容以及用户互动情况,需要借…

YOLOv8-seg 分割代码详解(一)Predict

前言 本文从 U-Net 入手熟悉分割的简单方法,再看 YOLOv8 的方法。主要梳理 YOLOv8 的网络结构,以及 Predict 过程的后处理方法。 U-Net 代码地址:https://github.com/milesial/Pytorch-UNet YOLOv8 代码地址:https://github.com/…

B站双11,联手天猫暴涨2亿消费新势力

一直以来,手持高活跃、高粘性用户群体的B站是行业用来观察年轻人消费习惯的重要平台。以至于用户群体的不断壮大带动了B站的商业价值。如今B站的商业舞台越来越大,不断地向外界招手,欢迎更多品牌积极加入到这个千万年轻人聚集的内容社区。 2…

大数据疫情分析及可视化系统 计算机竞赛

文章目录 0 前言2 开发简介3 数据集4 实现技术4.1 系统架构4.2 开发环境4.3 疫情地图4.3.1 填充图(Choropleth maps)4.3.2 气泡图 4.4 全国疫情实时追踪4.6 其他页面 5 关键代码最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据疫…

Web Worker:JS多线程的伪解药?

前言 在前端开发领域,JavaScript 的单线程限制一直是一个难以忽视的挑战。当谈到解决JavaScript的单线程限制时,HTML5引入的Web Worker被普遍认为是一剂解药💊。同时,业界中大量的文章也是聚焦于讨论web worker的神奇力量。然而&…

Android内存回收机制、GC算法及内存问题分析解决

Android内存回收机制、GC算法及内存问题分析解决 在Android开发中,Java内存回收和垃圾收集(GC)机制是确保应用程序高效运行的关键部分。针对不同对象存活率,Android平台采用了引用计数算法和可达性分析法来判定对象的可回收性&am…

RTC实时时钟——DS1302

DS1302目录 一、DS1302简介引脚定义与推荐电路 二、芯片手册1.操作寄存器的定义2.时序定义dc1302.cds1302.h 三、蓝桥杯实践 一、DS1302简介 RTC(Real Time Clock):实时时钟,是一种集成电路,通常称为时钟芯片。现在流行的串行时钟电路很多,如…

华为李鹏:到 2025 年智能算力需求将达到目前水平的 100 倍

在第十四届全球移动宽带论坛上,华为高级副总裁、运营商 BG 总裁李鹏表示,大模型为代表的 AI 应用发展带来对智能算力的爆发式需求。 李鹏在题为《加速 5G 商业正循环,拥抱更繁荣的 5.5G》的讲话中表示,「5G 已经走在商业成功的正确…

C# OpenCvSharp 去除字母后面的杂线

效果 项目 代码 using OpenCvSharp; using System; using System.Drawing; using System.Windows.Forms;namespace OpenCvSharp_Demo {public partial class frmMain : Form{public frmMain(){InitializeComponent();}string image_path "";private void Form1_Loa…

三国志14信息查询小程序(历史武将信息一览)制作更新过程05-后台接口的编写及调用

1,创建ASP.NET Web API项目 生成完毕,项目结构如下: 运行看一下: 2,后台接口编写 (1)在Models文件夹中新建一个sandata.cs文件(就是上篇中武将信息表的model文件) u…

伦敦金开户需要多少资金,有开户条件吗?

伦敦金(London Gold)是黄金市场中备受瞩目的投资种类之一,无论是专业投资者还是新手,都对伦敦金感兴趣。但关于开户需要多少资金,以及是否有特定的开户条件,这些问题可能会让一些新手投资者感到困惑。 首先…

notepad++搜索结果窗口不见了

1、使用notepad打开一个文件文件 2、ctrlf,打开搜索窗口,随便搜索一个内容 3、按F7,然后AltF7 切换焦点到Find result. 会有一个小窗口出现,内容是:还原,移动,大小等 4,点移动,使…

[答疑]校长出轨主任流程的业务建模

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 艳阳天 2023-10-27 19:45 我有点迷糊。校长出轨主任在酒店被拍到,不属于学校的业务流程,但闹出这种事对学校有很大影响。如果学校想用一个系统抓风纪&#xff…