[MySQL]MySQL库的操作

news/2024/11/15 3:43:29/

[MySQL]MySQL库的操作

文章目录

  • [MySQL]MySQL库的操作
    • 1. 创建数据库
    • 2. 字符集和校验规则
      • 2.1. 基本概念
      • 2.2. 查看系统默认字符集以及校验规则
      • 2.3. 查看数据库支持的字符集
      • 2.4 查看数据库支持的校验规则
      • 2.5 指明字符集和校验规则创建数据库
      • 2.6 校验规则对数据库的影响
    • 3. 删除数据库
    • 4. 查看数据库
      • 4.1 查看数据库
      • 4.2 显示创建语句
      • 4.3 查看当前所处数据库
    • 5. 使用数据库
    • 6. 修改数据库
    • 7. 备份和恢复
      • 7.1 备份
      • 7.2 还原
    • 8. 查看连接情况
    • 9. 关于数据库操作

1. 创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name[create_specification [,create_specification] ...]create_specification:
[DEFAULT] CHARACTER SET charset_name  	#指定字符集
[DEFAULT] COLLATE collation_name		#指定校验规则

说明:

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

创建数据库示例:

image-20230702152839567

创建名为database1的数据库:

image-20230702153332360

使用if not exits和不使用的区别:

image-20230702153837161

2. 字符集和校验规则

2.1. 基本概念

创建数据库时,有两个编码集:

  1. 数据库编码集 – 数据库存储数据采用的编码
  2. 数据库校验集 – 读取数据库中数据采用的编码 (支持数据库进行字段比较使用的编码)

数据库的存储本质是以二进制形式存储,只有使用相匹配的编码方式解析数据才能正确地读取数据,而不是读取乱码。数据库无论对数据作何操作,都必须保证编码一致。

2.2. 查看系统默认字符集以及校验规则

语法:

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

说明:如果在使用SQL语句创建数据库指定了编码格式,数据库采用指定的编码格式,

如果没在创建数据库指定编码格式,数据库采用系统默认的编码格式。

笔者在配置文件中设置了编码格式为utf-8,因此默认采用都是utf-8格式。

查看系统默认字符集以及校验规则示例:

image-20230702161110734

2.3. 查看数据库支持的字符集

查看指令:

show charset;

查看数据库支持的字符集示例:

数据库支持的字符集都是可以使用的,需要时可以采用。

2.4 查看数据库支持的校验规则

查看指令:

show collation;

查看数据库支持的校验规则示例:

image-20230702162110399

2.5 指明字符集和校验规则创建数据库

在创建数据库时,会默认创建一个文件记录字符集以及校验规则。

image-20230702164909002

方式1:

create database d2 charset=utf8;

image-20230702170216429

方式2:

create database d3 character set utf8;

image-20230702170402835

方式3:

create database d4 charset=utf8 collate utf8_general_ci;

image-20230702170515717

说明:在使用指定字符集和校验规则的创建方式时可以借助数据库的字符集表和校验规则表。

image-20230702170926671

image-20230702171046908

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

为了说明校验规则对数据库的影响,采用如下示例,创建两个数据库test1,test2,字符集相同为utf8,test1的校验规则为utf8_general_ci[不区分大小写],test2的校验规则为utf8_bin[区分大小写],插入相同的数据,对其进行数据读取。

image-20230702185932219

采用相同的对比条件读取数据:

image-20230702190441264

对数据库进行排序:

image-20230702190712765

3. 删除数据库

语法:

DROP DATABASE [IF EXISTS] db_ name;

删除数据库示例:

image-20230702193011261

执行删除之后的结果:

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

注意:不要随意删除数据库

4. 查看数据库

4.1 查看数据库

语法:

show databases;

image-20230702193115915

4.2 显示创建语句

语法:

show create database db_name;

显示创建语句示例:

image-20230702194827755

说明:

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

4.3 查看当前所处数据库

语法:

select database();

查看当前所处数据库示例:

image-20230702193623006

5. 使用数据库

语法:

use db_name;

使用数据库后,便可以对该数据库内的数据(表)进行各种操作。

使用数据库示例:

image-20230702193632334

6. 修改数据库

语法:

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

修改数据库示例:

image-20230702194603525

7. 备份和恢复

7.1 备份

语法:

# mysqldump -P 端口号 -u 用户名 -p 密码 -B 数据库名 > 数据库备份存储的文件路径

备份示例:

image-20230702202507415

打开备份文件可以发现,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

备份多个数据库中的表:

# mysqldump -u 用户名 -p 密码 数据库名 表名1 表名2 > 数据库备份存储的文件路径

备份多个数据库:

# mysqldump -u 用户名 -p 密码 -B 数据库名1 数据库名2 ... > 数据库存放路径
  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。(实际上就是备份文件中没有备份创建数据库操作)

7.2 还原

mysql> source 备份文件路径;

还原示例:

image-20230702203634377

image-20230702203705564

8. 查看连接情况

语法:

show processlist;

查看连接情况示例:

image-20230702203943423

9. 关于数据库操作

数据库操作中最常见用的就是创建数据库的操作,因为对数据库修改和删除是会对后续操作产生影响的,数据库寻找数据依赖于数据名,数据库校验数据于校验规则,修改数据库的名字和校验规则会导致程序错误,删除数据库会将数据库的内容一并删除,可能造成数据缺失。


http://www.ppmy.cn/news/762757.html

相关文章

Vue3---激活状态显示

Router-Link组件默认支持激活样式显示的类名&#xff0c;只需要给active-class属性设置对应的类名即可 <RouterLink active-class"active" :to"/category/${item.id}">{{ item.name }}</RouterLink><style scoped langscss> .active {c…

Win10 + 1050Ti 安装 tensorflow-gpu-1.8.0 踩坑笔记

故事起因 本人十分热爱动漫&#xff0c;特别对宫崎骏、新海诚的画风十分喜欢&#xff0c;最近看到Github上有个项目可以将图片转化为二次元风格&#xff0c;于是迫不及待的想本地实现一下&#xff0c;详情请看&#xff1a;《用 AnimeGAN 实现 “万物皆为二次元”》。本次主要讨…

行业追踪,2023-07-06,市场反馈平平

自动复盘 2023-07-06 成交额超过 100 亿 排名靠前&#xff0c;macd柱由绿转红 成交量要大于均线 有必要给每个行业加一个上级的归类&#xff0c;这样更能体现主流方向 rps 有时候比较滞后&#xff0c;但不少是欲杨先抑&#xff0c; 应该持续跟踪&#xff0c;等 macd 反转时参与…

localStorage封装过期时间

localStorage 当我们需要使用localStorage存储数据时&#xff0c;他是永久存储的除非用户删除 这就使得我们在设置一些有时效性的数据存入localStorage时非常繁琐&#xff0c;因此封装了这个类用于实现此功能。 class useStorage {/*** 额外设置一条 key__expires__: 时间戳 …

微信小程序获取手机号授权完整实现

官方文档&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 一.app.js配置 App({onLaunch: function () {},onShow: function () {},onHide: function () {// console.log(getCurrentPages())},onError: function (msg) {//c…

微信有趣的“隐身”功能!关掉这几个开关,别人怎么都搜不到你

微信是使用人数最多的社交APP&#xff0c;正因为是社交APP&#xff0c;添加好友是难免的事&#xff0c;随着微信的用途不断的开发&#xff0c;每天都有很多陌生人添加好友&#xff0c;不胜其烦&#xff0c;其实我们可以关闭微信一些功能&#xff0c;就能杜绝这种情况。 首先打…

项目中集成微信扫码登陆,绑定手机号功能

一、准备工作 微信开放平台 注册并申请资质 微信提供介绍的文档 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 使用 项目中新建模块 添加依赖&#xff0c;调用微信提供的接口用到httpClient <dependencies><depen…

uniapp 获取手机号 和微信授权

uniapp 微信授权登录。 前提&#xff1a;想要授权的话 一定要是小程序的开发者。不然头像的标签。授权等等都无法实现 uniapp 提供获取手机号的按钮 和 授权登陆的按钮 这是手机号的。 注意的是&#xff1a;只能用户点击才会触发 授权登录的按钮 讲open-type 里面的值改成 get…