【MySQL — 数据库基础】深入解析MySQL数据库操作:创建、使用、删除及字符集管理

    c96f743646e841f8bb30b2d242197f2f.gif

 

692a78aa0ec843629a817408c97a8b84.gif

目录

    1. 数据库的操作    

    1.1 显示当前的数据库    

    1.2 创建数据库    

    1.3 使用数据库    

    1.4 删除数据库     

    1.5 删除磁盘文件的原理    

    1.6 退出客户端    


    文章介绍    

  • 本文详细介绍了数据库的基本操作,包括显示当前数据库、创建数据库、使用数据库、删除数据库以及删除磁盘文件的原理。
  • 同时,文章还涉及了如何在官网查看MySQL参考手册流程、创建数据库的语法、查看警告信息、创建数据库时指定字符集和排序规则,以及查看当前数据库服务全局的默认字符集。 


    1. 数据库的操作    


在一个数据库服务中,可以包含很多个数据库 :

当我们不知道DB A,DB B(DB是数据库管理员缩写)是为哪一个应用程序提供服务的时候,不能随意修改操作这两个数据库,我们操作的数据库,应该是自己熟悉的数据库;

在生成环境中,数据库管理员应该合理分配读取,连接库权限;


    1.1 显示当前的数据库    


我们首先要创建一个属于数据库,创建之前需要检查一下,同事是否已经创建过了;

那么如何检查呢?还是需要通过一些简单的SQL指令;

查看数据库服务中有多少个数据库,可以使用 show databases;


 分析表中的数据库作用:


一些常见的操作:


    1.2 创建数据库    


     1.2.1  在官网查看mysql参考手册流程    


     1.2.2  创建数据库    


    解析: 



 

如果指定的数据库不存在,则创建test_db2 :


    解析:   


    1.2.3  查看警告信息     



 if not exists 意思是如果不存在则创建,如果不加这个可选关键字,就会直接报错;

在真下在的工作中,执行SQL语句,不是手动一条一条执行的,而是批量一起执行,为了不让某一条语句的错误影响整个执行流程,都会加上一些类似于if not exists 的校验,防止因为某条SQL出错导致整个SQL中断执行 ;


    1.2.4  创建数据库并且指定字符集和排序规则     


     对于字符集:   


 8.0 中默认的字符集是 utf8mb4;5.7中默认的字符集是latin1,这个字符集无法存储中文;

创建数据库的时候强烈建议手动明确认定字符集;


    对于排序规则: 


  • 8.0 默认的是utf8mb4_0900_ai_ci,ai表示口音不敏感,ci表示大小写不敏感,虽然大小写的Ascii码不一样,但是排序规则指定 ci,会被系统识别为同一个字符;
  • 5.7 中默认的排序规则是utf8mb4_general_ci,表示通用口音,大小写不敏感的排序规则;


    创建一个名为test_db03的数据库,并指定字符集和排序规则    


    1.2.5  查看当前数据库服务全局的默认字符集    


全局默认字符集在配置文件 my.ini 中可以设置,设置了什么字符集,在 mysql 运行的时候,是可以查询的,会把信息保存到系统表中:

输入指令后,当前系统中的字符集会显示出来;

     系统使用的是 utf8mb3 这么一个编码格式,utf8mb3 和 utf8mb4 有什么区别呢?   

utf8mb3并不是一个真正意义上的 utf8 编码,支持的内容比较少,用1-3个字节表示所有的字符编码,不支持特殊的字符/表情这些编码很长的符号;


utf8mb4 的字符编码为4个字节,达到了一个整型的长度,回忆整型长度的范围,如果是无符号整型,范围可以达到0-42亿的表示长度,意味着utf8mb4 可以支持世界上任意一个特殊字符,使用utf8mb4的字符集,可以保存任意特殊字符到数据库中


如果是在默认的终端中,client 的字符集是 gbk


如果要强行当前数据库指定编码集,可以在快捷文件属性的目标文件路径后,指定 utf8mb4 即可;


    1.2.6 总结    


    补充 :能不能使用关键字为库名创建数据库呢?    


是可以的:


    解析    


    1.3 使用数据库    


     查看版本号 :   


    查看当前选择要操作的数据库是哪一个:    

这里返回 null,表示当前未选择数据库;

version(),database(),这些带括号的,都是MYSQL提供的内置方法;


     选择要操作的数据库:   


    1.4 删除数据库     




删除数据库是一个非常非常危险的操作,在自己的项目会在公司中千万这么做,使用之前一定要慎之又慎;drop 开头的SQL语句,可以了解就行;


    1.5 删除磁盘文件的原理    


服务器(一般都是用Linux系统)上删除并没有回收站这么一说,删了就没有了,这是针对操作系统而言的;

但是在磁盘上删除文件,并不是真正意义上的什么都没有了,而是把删除文件的位置,置为一个删除标记,这个文件还存在,只不过把这个文件占用的磁盘空间置为已删除状态,类似于 ArrayList的删除操作:

  • 如果要把最后一个下标位置index的数据删除,只要把size--,并且把 index 向前移动一位即可;
  • 如果一个新的元素写入集合,index++即可,就会把原来 index 下标的数据覆盖掉;

    恢复磁盘数据     

    方法一:通过磁盘厂商恢复    

删除磁盘文件的实际情况,只要这种类似的覆盖次数不多,被覆盖的数据是可以恢复的,一般是通过磁盘的厂商进行恢复的,但是需要爆金币;


    方法二:通过日志恢复数据    

还有一种非常常用的恢复数据库操作,就是通过日志处理;Mysql会在执行的过程中,只要对数据库进行修改操作(查询操作不算),都会把这些数据的内容记录在日志中,如果误删数据库,就可以通过日志,快速地把日志中记录的操作重新执行一次;


     增量备份&全量备份     

  • 数据库也会定期备份,每天备份一次(增量备份,记录的是今天比昨天新增的数据),或者每周备份一次(全量备份,数据库中的所有数据都会备份下来);
  • 当数据出现问题时,比如被恶意入侵,修改,误......可以通过礼拜天的全量备份,和前几天的增量备份,来恢复成昨天的数据量,只会损失当天的数据量,保证大部分数据都是安全的;
  • 如果恶意删除数据的人,也同时删除这台机器的日志,可以通过其他机器的日志来恢复,因为在公司的生产环境中,一般都是以集群形式部署的,这些集群的机器上的日志内容相同,副本不同,分配在集群的每一台机器上;

备份服务器,处理每天的增量备份和每周的全量备份,还会有一个物理的备份,备份分成冷备份和热备份,生产服务器的数据库服务器集群,和备份服务器会部署在不同地方,产生地理隔离,如果因为自然灾害丢失导致其中一方的数据库受损,另一方的数据库可以继续提供服务;


    1.6 退出客户端    


 可以通过输入 ?或者 \? 指令来查看 mysql 客户端指令


     c96f743646e841f8bb30b2d242197f2f.gif

692a78aa0ec843629a817408c97a8b84.gif

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

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

相关文章

k8s 优雅监控jvm及dump heap的方案探讨

背景 k8s cluster 的健康检测失败会主动重启pod,而大部份情况下健康检测失败都是由full gc引起的。往往发生重启时已经没有条件dump heap排查full gc的原因。 如何监控 为了避免因健康检测失败而导致的pod重启,我们需要实施有效的监控策略,这…

搭建Discuz论坛

lnmp l:linux操作系统 n:nginx前端页面 m:mysql数据库,账号密码等等都是保存在这个数据库里面 p:php------nginx擅长处理的是静态页面,页面登录账户,需要请求到数据库,通过php把动态…

SpringBoot3整合SpringMVC

一、实现过程: (1).创建程序 (2).引入依赖: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"…

移动应用开发课程第六次实验:为实验2添加登陆页面,用SQList存储好友基本信息

1、在Android Studio中&#xff0c;请在第二次实验成果的基础上完成以下实验要求。 向右滑动 请添加登录页面。在登录页面中&#xff0c;如果用户输入的用户名和密码正确&#xff0c;则跳转至如上图所示的好友列表&#xff0c;并记录用户的登录信息&#xff0c;在用户第一次登…

杨振宁大学物理视频中黄色的字,c#写程序去掉

先看一下效果&#xff1a;&#xff08;还有改进的余地&#xff09; 我的方法是笨方法&#xff0c;也比较刻板。 1&#xff0c;首先想到&#xff0c;把屏幕打印下来。c#提供了这样一个函数&#xff1a; Bitmap bmp new Bitmap(640, 480, PixelFormat.Format32bppArgb); // 创…

MaxEnt模型在物种分布模拟中如何应用?R语言+MaxEnt模型融合物种分布模拟、参数优化方法、结果分析制图与论文写作

目录 第一章 以问题导入的方式&#xff0c;深入掌握原理基础 第二章 常用数据检索与R语言自动化下载及可视化方法 第三章 R语言数据清洗与特征变量筛选 第四章 基于ArcGIS、R数据处理与进阶 第五章 基于Maxent的物种分布建模与预测 第六章 基于R语言的模型参数优化 第七…

数字图像处理(15):图像平移

&#xff08;1&#xff09;图像平移的基本原理&#xff1a;计算每个像素点的移动向量&#xff0c;并将这些像素按照指定的方向和距离进行移动。 &#xff08;2&#xff09;平移向量包括水平和垂直分量&#xff0c;可以表示为&#xff08;dx&#xff0c;dy&#xff09;&#xff…

海外的bug-hunters,不一样的403bypass

一种绕过403的新技术&#xff0c;跟大家分享一下。研究HTTP协议已经有一段时间了。发现HTTP协议的1.0版本可以绕过403。于是开始对lyncdiscover.microsoft.com域做FUZZ并且发现了几个403Forbidden的文件。 &#xff08;访问fsip.svc为403&#xff09; 在经过尝试后&#xff0…

WPF Prism 01-BootstrapperShell

Prism介绍 Prism 是一个用于在 WPF、.NET MAUI、Uno 平台和 Xamarin Forms 中构建松耦合、可维护和可测试的 XAML 应用程序的框架。每个平台都有单独的发布版本&#xff0c;并且这些版本将在独立的开发时间线上进行开发。Prism 提供了一组设计模式的实现&#xff0c;这些模式有…

计算机网络-Wireshark探索ARP

使用工具 Wiresharkarp: To inspect and clear the cache used by the ARP protocol on your computer.curl(MacOS)ifconfig(MacOS or Linux): to inspect the state of your computer’s network interface.route/netstat: To inspect the routes used by your computer.Brows…

Sketch中文版下载安装:一站式设计平台指南

Sketch&#xff0c;这个以轻量和高效著称的矢量设计工具&#xff0c;已经在全球设计领域创造了许多令人惊叹的成果。它以其矢量编辑、控件和样式等功能而闻名。而其中文版本——一站式设计平台“在线设计工具”&#xff0c;在功能全面性、中文操作环境、简洁界面以及设备兼容性…

机器学习决策树原理详解

一、引言 在当今蓬勃发展的人工智能与大数据领域&#xff0c;大模型正以前所未有的影响力改变着众多行业的格局。而决策树作为机器学习算法家族中的经典成员&#xff0c;以其简洁直观的特点和广泛的适用性&#xff0c;不仅能独立解决诸多实际问题&#xff0c;更是诸多先进大模…

Kafka怎么发送JAVA对象并在消费者端解析出JAVA对象--示例

1、在pom.xml中加入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-stream-kafka</artifactId><version>3.1.6</version></dependency> 2、配置application.yml 加入Kafk…

物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果 让树莓派可以识别身边的一些物品&#xff0c;比如电脑&#xff0c;鼠标&#xff0c;键盘&#xff0c;杯子&#xff0c;行李箱&#xff0c;双肩包&#xff0c;床&#xff0c;椅子等 1. 硬件设备 树莓派 5 raspberrypi.com/products/raspberry-pi-5/树莓派官方摄…

大数据-245 离线数仓 - 电商分析 缓慢变化维 与 拉链表 SCD Slowly Changing Dimensions

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

【LeetCode: 160. 相交链表 + 链表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

从爱尔兰歌曲到莎士比亚:LSTM文本生成模型的优化之旅

上一篇&#xff1a;《再用RNN神经网络架构设计生成式语言模型》 序言&#xff1a;本文探讨了如何通过多种方法改进模型的输出&#xff0c;包括扩展数据集、调整模型架构、优化训练数据的窗口设置&#xff0c;以及采用字符级编码。这些方法旨在提高生成文本的准确性和合理性&am…

51c大模型~合集86

我自己的原文哦~ https://blog.51cto.com/whaosoft/12772867 #MILP-StuDio 拆解高复杂运筹问题的砖石&#xff0c;打破数据稀缺的瓶颈&#xff0c;中科大提出高质量运筹数据生成方法 论文作者刘昊洋是中国科学技术大学 2023 级硕士生&#xff0c;师从王杰教授&#xff0c;…

从零用java实现 小红书 springboot vue uniapp (1)

前言 偶尔会用小红书发一些笔记 闲来无事 想自己实现一个小红书 正好可以学习一下 帖子 留言 im 好友 推送 等功能 下面我们就从零 开发一个小红书 后台依旧用我们的会员系统的脚手架 演示 http://120.26.95.195:8889/ 客户端我们使用uniapp 我们首先对主页进行一个分解 顶部我…

pyside6学习专栏(一)常用控件的使用(非QML方式)

前段业余时间在用pythonpyqt5边学边作一些小程序&#xff0c;总算作到了一个相对复杂的基本VTK三维显示地形图并计算挖填方工程量&#xff0c;作完后&#xff0c;又发现pyqt又是要收费的&#xff0c;就又看了下对应的替代库pyside6,对用此库的一些基本技能分享到此专栏中&#…