【MySQL】数据库——库操作

文章目录

  • 1. 创建数据库
    • [IF NOT EXISTS] 的使用
  • 2. 删除库
  • 3. 数据库的编码问题
    • 查看系统默认支持的字符集
    • 查看系统默认支持的校验集
    • 只查看 database的校验集
    • 指定编码创建数据库
    • 修改字符集
    • 修改校验集
    • 验证规则对数据库的影响
      • utf8_general_ci ——不区分大小写
      • utf8_bin ——区分大小写
  • 4. 修改数据库
  • 5. 查看数据库
  • 6. 数据库的备份和恢复
    • 备份
    • 恢复
  • 7. 查看连接情况

1. 创建数据库

格式为:CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] …]

create database 表示为 固定用法
db_name 表示为 数据库名称
[IF NOT EXISTS] 表示可选项


在终端1中,通过 mysql -uroot -p 指令,登陆数据库

再输入 show databases; 查看当前用户所能看到的数据库列表


创建终端2,并输入 cd /var/lib/mysql 指令,以此查看数据库的对应内容是否变化创建终端2,并输入 cd /var/lib/mysql 指令,以此查看数据库的对应内容是否变化


在终端1中 再次输入 create database databases1; 指令, 创建 databases1数据库
在终端2中 查看发现此时多了一个databases1目录

[IF NOT EXISTS] 的使用

create database if not exists database1;
表示 当前数据库若不存在 database1,则创建该数据库


表示 当前数据库 若存在database1,则进行告警,即数据库已经存在,没有再次创建


2. 删除库

在终端1中,输入 drop database database1; 表示 要删除 database1 数据库
在终端2中, 再次查看则没有database1数据库存在


可若删除数据库,则对应的目录也被删除了,若该目录下有表存在,则也会被直接删除
所以不建议随意删除数据库


总结: 创建数据库 —— create database db_name(数据库名称); 本质 就是在 /var/lib/mysql 创建一个目录
删除数据库 —— drop database db_name (数据库名称); 本质就是在 /var/lib/mysql 删除一个目录


3. 数据库的编码问题

创建数据库时,有两个编码集:数据库的字符集数据库的校验集

数据库的字符集 —— 数据库未来存储数据
(数据库存数据时,采用什么编码)
create database db2 charset=utf8;


数据库的校验集 —— 支持数据库,进行字段比较使用的编码,本质是读取数据库中数据的采用的编码格式
( 查找或匹配数据库,就需要进行比较字段,想要被比较,两者就需要先被读出来,此时两者的校验规则应该相同)
create database db3 charset=uf8 collate utf8_fgenral_ci;


查看系统默认支持的字符集

输入 show variables like ‘character_set_database’;
字符集数据库 默认为 utf8

查看系统默认支持的校验集

输入 show variables like ‘collation_database’;
校验集数据库 默认为 utf8mb3_general_ci

只查看 database的校验集

输入 show variables like ‘collation_%’;
只查看 database的校验集

连接 、数据库进行常规操作、服务器 的 本身的校验规则 都是 utf8

指定编码创建数据库

当在终端1中创建 d1数据库时,在终端2中的var/lib/mysql路径中就会产生对应的目录d1


打开d1目录下的db.opt文件,其中包含默认系统支持的编码集合和校验集合


修改字符集

在终端1中,创建数据库d2,并指明数据库的字符集按照 uft8格式


在终端2中,此时打开d2目录下的db.opt文件,发现 字符集按照uft8格式


使用 character set utf8 cahrset=uft8 表示相同,都可以修改 数据库的字符集 为uft8格式


修改校验集

在终端1中,创建数据库d4,并 使用 collate 将校验集 置为 utf8_general_ci
在终端2中,打开目录d4中的db.opt文件,发现 校验集按照 utf8_general_ci 格式


验证规则对数据库的影响

utf8_general_ci ——不区分大小写

使用 utf8_general_ci ,校验规则是不区分大小写的

在终端1中,创建数据库 test1, 并指明 对应的校验集 为 utf8_general_ci 格式
在终端2中,打开目录test1中的db.opt文件,发现 校验集按照 utf8_general_ci 格式


输入 use test1; 即 进入test1数据库


在test1数据库中,创建 一张表 person ,内部成员为 name,类型为 20个字节


输入 insert into person (name) values ( 字符); 即向person表中插入字符


输入 select * from person; 即查看person表中1全部数据
select 表示从表中去查
* 表示 将表中数据全部显示出来


输入 select * from person where name =‘a’; 即从person表 拿出来 name名称为 a的信息
由于test1数据库 的校验集按照utf8_general_ci 格式,不区分大小写
所以当查找a信息时,会取到peson表中的A和a


utf8_bin ——区分大小写

在终端1中,创建数据库 test2, 并指明 对应的校验集 为 utf8_bin 格式
在终端2中,打开目录test2中的db.opt文件,发现 校验集按照 utf8_bin 格式


输入 use test2; 即使用test2数据库
在test2数据库中,创建 一张表 person ,内部成员为 name,类型为 20个字节


输入 insert into person (name) values ( 字符); 即向person表中插入字符 a A b B


输入 select * from person where name =‘a’; 即从person表 拿出来 name名称为 a的信息
由于test2数据库 的校验集按照utf8_bin 格式,不区分大小写
所以当查找a信息时,只会取到peson表中的a

4. 修改数据库

输入 alter database test2 charset=gbk collate gbk_chinese_ci;
修改test2数据库的字符集为gbk
修改test2数据库的校验集为gbk_chinese_ci


在创建数据库时,所设置的创建选项

输入 show create database test2; 查看创建test2数据库时,相关的命令

5. 查看数据库

输入 show databases; 查看数据库


select database(); 判断当前在那个数据库里面
如:当前处于 数据库d1中

6. 数据库的备份和恢复

备份

在终端1中,输入 show databases; 发现 存在test1数据库


备份关键字为 mysqldump
-B 表示指明哪一个数据库
在终端2中, 将 test2数据库的历史上所有做过的有效操作备份起来了
备份到 test1.tql中


在终端1中,删除test1数据库


在终端2中,打开 var/lib/mysql 路径后,发现不存在 test1目录
但是存在 test1.tql 即test1目录的备份


恢复

此时就可以通过test1.tql ,恢复一个test1目录

在终端2中,输入 pwd 指令,查询当前路径 /var/lib/mysql


在终端1中,输入 source +test1.tql所在路径 即 source /var/lib/mysql/test1.tql

就可以使 test1.sql 中的历史命令 全部在新的mysql中执行一次


在终端1中,输入 show databases; 即又查询到test1数据库的存在


注意事项

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据
库,再使用source来还原

7. 查看连接情况

输入 show processlist; 查看连接情况

User 表示 用户 ,即当前用户为root
db 表示数据库, 即当前连接的是test1数据库
command 表示 命令

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

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

相关文章

什么是会话固定以及如何在 Node.js 中防止它

什么是会话固定以及如何在 Node.js 中防止它 在深入讨论之前,我们需要了解会话是什么以及会话身份验证如何工作。 什么是会话? 正如我们所知,HTTP 请求是无状态的,这意味着当我们发送登录请求时,并且我们有有效的用…

智能售货柜:小本投资的不二之选

智能售货柜:小本投资的不二之选 智能售货柜的运营优势在于:一是降低运营成本,不需要大量员工;二是具备自动识别和智能结算功能,提高运营效率;三是提供数据分析,优化产品和服务。相比传统零售店&…

教育案例分享 | 安全狗云安全体系为高校提升立体化纵深防御能力

一、客户情况 某高校有服务器500台,对外站点200个,核心交换流量20G。 二、客户痛点 校园网系统分类较多,并且每类网站中安全级重要程度又各不相同,同时有多个网络出口(如:教育网、电信网、移动网等),二级学…

论文阅读——RetNet

transformer的问题:计算量大,占用内存大,不好部署。 所以大家在找能解决办法,既能和transformer表现一样好,又能在推理阶段计算复杂度很低。 这些方法大概分类三类:一是代替transformer非线性注意力机制的…

【Linux】文件系统中inode与软硬链接以及读写权限问题

文章目录 前言一、 简单理解文件系统二、文件操作具体步骤1.新建文件2.删除文件3.查找文件 三、目录的重新理解1.目录下没有w权限,无法对其下的文件进行创建与删除2.目录下没有r权限,无法对其下的文件进行查看3.目录下没有x权限,无法进入这个…

内网Jenkins 部署.net(dotnet)项目

一、前置条件 内网部署Jenkins,并安装好所需插件 此篇内容需承接内网搭建Jenkins自动化远程部署项目到Windows服务器_jenkins内网安装-CSDN博客 ,才更好操作与理解 二、在Jenkins中创建项目 三、配置项目 General Source Code Management Build Envi…

Docker - 容器数据卷

Docker - 容器数据卷 什么是容器数据卷 等同于挂载,将容器内的目录地址指向于宿主机文件系统中 直接使用命令来挂载 -v docker run -it -v 主机目录:容器内目录# 测试 docker run -it -v /root:/home centos /bin/bash [rootiZ2zeg7mctvft5renx1qvbZ ~]# docker …

什么是CMDB?为什么企业需要CMDB?

CMDB即Configuration Management Database,配置管理数据库,它是组织IT基础结构中配置项CI(Configuration Item)及其关系的数据库。 而CI是指任何需要进行管理以确保成功提供服务的条目,CI可以是一个具体的实体,如服务器、交换机&…

基于单片机设计的水平仪(STC589C52+MPU6050)

一、前言 【1】项目背景 水平仪是一种常见的测量工具,用于检测物体或设备的水平姿态。在许多应用中,如建筑、制造和航空等领域,保持设备的水平姿态是非常重要的。为了实现实时的水平检测和显示,基于单片机设计的水平仪是一个常见…

堆的应用-----Top k 问题

目录 前言 Topk问题 1.问题描述 2.解决方法 3.代码实现(C/C) 前言 在人工智能算法岗位的面试中,TopK是问得最多的几个问题之一: 到底有几种方法? 这些方案里蕴含的优化思路究竟是怎么样的? 为啥T…

【从入门到起飞】JavaSE—IO工具包(Commons-io,Hutool) (2)

🎊专栏【JavaSE】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 文章目录 🌺工具包Commons-io⭐使用步骤🛸新建一个文…

代驾预约小程序系统源码 :提起预约,避免排队 带完整搭建教程

大家好啊,又到罗峰来给大家分享好用的源码系统的时间了。今天要给大家分享的第一款代驾预约小程序源码系统。传统的代驾服务中,用户往往需要在酒后代驾、长途驾驶等场景下,面对排队等待代驾司机空闲时间的繁琐过程。这不仅浪费了用户的时间和…

如何准备2024年的系统设计面试?

1 前言 如果你正在准备软件工程师或软件开发人员的面试,那么你可能知道由于其开放性质和广泛性,准备系统设计是多么困难,但同时你也不能忽略它。在软件工程界,如果你正在申请高级工程师/主管/架构师或更高级别的角色,系统设计是最受追捧的技能,也是整个过程中最重要的环节之一…

CSS 实现新拟态(Neumorphism) UI 风格

什么是新拟态(Neumorphism) UI 风格?网上似乎还没有一个准确统一的定义。按照我个人的通俗理解,就是将界面的一部分凸起来,另一部分凹下去,形成的一种错落有致的拟物风格。代表作是乌克兰设计师 Alexander Plyuto 在各平台发布的新…

雷欧REO控制器维修REOVIB MFS268 M DP24

REO雷欧控制器维修常见型号包括: MFS268, MTS442, MTS443, MFR100/200, MFS158,MFS168等 涉及双层线圈层间短路的修理:振动控制器维修,双层线圈在上下层间发生层间短路,是由于层间材质不好或嵌…

AJAX入门Day01笔记

Day01_Ajax入门 知识点自测 如下对象取值的方式哪个正确? let obj {name: 黑马 }A: obj.a B: obj()a 答案 A选项正确 哪个赋值会让浏览器解析成标签显示? let ul document.querySelector(#ul) let str <span>我是span标签</span>A: ul.innerText str B: ul…

【App测试】adb三大连接方式-夜神模拟器+真机+android真机(详细步骤)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 adb连接安卓模拟器…

接口测试自动化测试的总结与思考,超详细的~

服务端接口测试介绍 什么是服务端? 一般所说的服务端是指为用户在 APP 或 PC 使用的互联网功能提供数据服务的背后的一切。以天猫精灵智能音箱系列的产品链路为例&#xff0c;服务端便是网关&#xff08;包括网关在内&#xff09;之后的链路。 什么是接口? 官方点说&#…

你应该知道关于Python的这几个技巧!

随着大数据时代的到来&#xff0c;我们每天都在接触爬虫相关的事情&#xff0c;这其中就不得不提及Python这门编程语言。我已经使用Python编程有多年了&#xff0c;即使今天我仍然惊奇于这种语言所能让代码表现出的整洁和对DRY编程原则的适用。这些年来的经历让我学到了很多的小…

开源维修上门服务小程序SAAS系统源码 带完整搭建教程

在现代生活中&#xff0c;家电设备维修往往是一个耗时且繁琐的过程。消费者需要花费大量时间寻找合适的维修人员&#xff0c;并面临服务质量不稳定的风险。同时&#xff0c;对于维修人员来说&#xff0c;寻找客户和接收订单的过程也十分繁琐。因此&#xff0c;开发一款基于小程…