【MySQL】数据库的基本操作
文章目录
- 1. 创建数据库
- 1.1 创建数据库的语句
- 1.2 创建一个数据库
- 1.3 查看字符串与校验规则
- 1.4 校验规则对数据库的影响
- 2. 删除数据库
- 3. 查看数据库
- 4. 修改数据库
- 5. 备份与恢复
- 5.1 数据库的备份与恢复
- 5.2 表的备份与恢复
- 6. 查看数据库的连接情况
1. 创建数据库
1.1 创建数据库的语句
创建数据库的基本语句如下:
- 上面语句中大写的表示关键字。
- [ ]中代表的是可选项。
- CHARSET用于指定数据库所采用的编码格式。
- COLLATE用于指定数据库锁采用的校验规则。
注意:如果创建数据库时未指明数据库的编码格式或校验规则,则默认使用MySQL配置文件中对应的编码格式或校验规则。
1.2 创建一个数据库
采用默认的编码格式和校验规则创建数据库
创建数据库时不指明数据库的编码格式和校验规则即可。
如果没有对MySQL的配置文件进行过修改,那么默认的编码格式是utf8,默认的校验规则是utf8_general_ci。
指定utf8编码格式创建数据库
创建数据库时通过charset指明数据库的编码格式即可。如下:
SQL中的charset=utf8,也可以写成character set=utf8或者character set utf8。
指定utf8编码格式和utf8_general_ci校验规则创建数据库
创建数据库时通过charset和collate分别指明数据库的编码格式和校验规则即可。
SQL中的collate=utf8_general_ci,也可以写成collate utf8_general_ci。
1.3 查看字符串与校验规则
查看系统默认的字符集和字符集校验规则
通过查看MySQL系统变量variables中的character_set_database,可以得知系统默认的字符集。
通过查看MySQL系统变量variables中的collation_database,可以得知系统默认的字符集校验规则。
查看数据库支持的字符集和校验规则
使用show charset语句可以查看数据库支持的字符集。
使用show collation语句可以查看数据库支持的字符集校验规则。
1.4 校验规则对数据库的影响
字符集编码格式和字符集校验规则的区别
- 字符集编码格式指的是存储数据时各个字符的底层编码,用于指定数据的存储格式。
- 字符串校验规则是在字符集内用于比较字符的一套规则,用于对数据进行比对。
比如我们村数据的时候是按照utf8的格式进行存储的,那么将来在对数据作比对时也必须按照utf8的格式进行比对,因为“存数据”和“取数据”的方式必须一致。
注意:在对数据库当中的数据进行增删查稿时,不可避免地需要进行数据的比对,因为在对数据做增删查改之前,都需要先通过比对的方式找到目标数据。
校验规则对数据库的影响
现在我们知道了,为了保证读取的数据和存储的数据是一致的,因此字符集编码格式和校验规则必须是对应的。但实际同一种字符集编码格式可能会有多种可选择的校验规则,比如utf8编码格式的校验规则有utf8_general_ci、utf8_bin、utf8_unicode_ci等校验规则。
使用不同的校验规则操作数据库中的数据可能会得到不同的结果,比如utf8_general_ci校验规则在比对数据时是不区分大小写的,而utf8_bin校验规则在对比数据时则是区分大小写的。
为了说明不同校验规则对不同数据库的影响,我们进行下面的实验。
操作数据库时使用utf8_general_ci规则
首先创建一个数据库,使用的校验规则为utf8_general_ci,数据库的编码格式默认为utf8。
在该数据库中创建一个简单的person表,由于创建时未指明表的编码格式和校验规则,因此person表将继承当前数据库的编码格式和校验规则。
向表中插入一些数据。
此时查看表中 name=‘a’ 的记录时会将 a 和 A 都筛选出来,根本原因就是utf8_general_ci校验规则在进行数据比对时是不区分大小写的。
操作数据库时采用utf8_bin校验规则
创建数据库时指定数据库的校验规则为utf8_bin,数据库的编码格式默认为utf8。
在该数据库中同样创建和刚才一样的person表,该person表会将继承当前数据库的编码格式和校验规则。
这时向表中插入刚才相同的数据。
进行数据筛选。可以看到utf8_bin是区分大小写的。
2. 删除数据库
删除数据库之后,该数据库下的所有表也都会被级联删除,因此不要随意删除数据库。
增删数据库的本质
增删数据库的本质就是在 /var/lib/mysql 路径下创建和删除目录。但是在这个路径下手动地进行创建和删除目录是极度不合理的,我们决对不能这么干,只能在mysql中进行创建和删除。
3. 查看数据库
查看数据库
使用show databases语句可以查看系统中所有数据库。
显示创建语句
使用show create database 数据库名语句可以查看对应数据库的创建语句。
说明:
- MySQL建议SQL中的关键字使用大写,但不是必须的。
- 数据库的名字加上反引号,是为了防止使用的数据库名与关键字冲突。
- /*!4
0100 DEFAULT CHARACTER SET utf8 */ 不是注释,它表示如果当前的MySQL版本大于4.10,则执行后面的SQL语句。
确认自己当前在哪个数据库
使用select database() 语句可确认自己当前在哪个数据库里。
4. 修改数据库
对数据库的修改主要指的是修改数据库的字符集或校验规则。
比如将数据库的字符集该为gbk,并将数据库的规则改为gbk_bin。
5. 备份与恢复
5.1 数据库的备份与恢复
数据库的备份
为了演示数据库备份,下面我们创建一个数据库,并在数据库中创建两个表。
然后在student表中和teacher表中2分别插入两条记录。
这时在命令行中执行以下命令即可将数据库进行备份,并指定将备份后产生的文件放在当前目录下。
打开back.sql文件就可以看到,文件中的内容实际就是我们在该数据库中执行的各种SQL命令,包括创建数据库、创建表、插入数据等SQL语句。
数据库恢复
使用source相关语句可将指定数据库恢复。
为了演示数据库恢复,我们将刚才创建的数据库删除。
这时让MySQL服务器执行下面语句即可对数据库进行恢复。
实际恢复数据库的时候就是按顺序执行数据库备份文件中的SQL语句,执行完毕之后数据库也就恢复出来了。
5.2 表的备份与恢复
表的备份
使用下面的语句可对指定表进行备份。
如果也要备份刚才创建的student表和teacher表,可以执行以下语句,并将备份后产生的文件存放到当前目录下,这样就会将历史上的与这两个表相关的语句放到文件当中。
表的恢复
表恢复之前需要先选中一个数据库,表明需要将表恢复到哪一个数据库中去,为了防止恢复出来的表与该数据库中已有的表的表明恢复,一般在恢复表时会选择创建一个空的数据库,然后在该数据库中进行表的恢复。
在数据库中使用source相关语句对指定表进行恢复。
为了演示表的恢复,我们先将刚才的数据库删除。
这时创建一个空的数据库并在该数据库中执行如下命令即可对表进行恢复。
查看恢复的表的数据。
6. 查看数据库的连接情况
这个语句可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登录的,很有可能你的数据库被人入侵了。
如果以后发现自己的数据库访问起来比较慢,可以用这个命令来查看一些数据库的连接情况。
相关文章:

【MySQL】数据库的基本操作
文章目录 1. 创建数据库1.1 创建数据库的语句1.2 创建一个数据库1.3 查看字符串与校验规则1.4 校验规则对数据库的影响 2. 删除数据库3. 查看数据库4. 修改数据库5. 备份与恢复5.1 数据库的备份与恢复5.2 表的备份与恢复 6. 查看数据库的连接情况 1. 创建数据库 1.1 创建数据库…...

Spring整合MyBatis(详细步骤)
Spring与Mybatis的整合,大体需要做两件事, 第一件事是:Spring要管理MyBatis中的SqlSessionFactory 第二件事是:Spring要管理Mapper接口的扫描 具体的步骤为: 步骤1:项目中导入整合需要的jar包 <dependency><!--Spring操作数据库需要该jar包…...

Linux:Shell编程之正则表达式
目录 绪论 1、正则表达式 1.1 通配符 1.2 正则表达式分类 1.3 基本正则 1.4 正则表达式中表示次数的表达式 1.5 位置锚定 1.5.1 词首锚定和词尾锚定 1.6 分组() 1.7 逻辑或 1.8 扩展正则 绪论 正则表达式:有一类特殊字符以及文本…...

Python Opencv实践 - 图像缩放
import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg_cat cv.imread("../SampleImages/cat.jpg", cv.IMREAD_COLOR) plt.imshow(img_cat[:,:,::-1])#图像绝对尺寸缩放 #cv.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) #指定Size大…...

大脑营行|“福安市华龙教育基金”支持家乡教育事业发展
8月8日,福安市松罗中学举行“福安市华龙教育基金”中考奖学金颁发仪式。福安市松罗乡党委书记钟文、乡长郑仁寿、福安市人民政府教育督导室副科级督导员(片区领导)陈秦、校长张明亮、各村支部书记、家长代表、受奖学生,校领导班子…...
Windows 2016安装Jenkins
Jenkins 下载,安装 下载OpenJDK 11 for Wndows 两种方式 choco install openjdk11 https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20%2B8/OpenJDK11U-jdk_x64_windows_hotspot_11.0.20_8.msi how to enable administrator user to …...

章节4:Burp Target模块
章节4:Burp Target模块 Burp渗透测试流程 01 Target模块的作用 与HTTP History的区别 HTTP History按时间顺序记录Target按主机或者域名分类记录(字母顺序) Target模块的作用 把握网站的整体情况对一次工作的域进行分析分析网站存在的攻…...

CAN总线一些经典的现场故障
本文分析一些经典的CAN总线现场故障。 1、CAN总线的常见故障 CAN总线错误分析与解决 当CAN总线出现故障或数据传输异常时,往往会出现多种奇怪的故障现象,如仪表板显示异常,车辆无法启动,启动后无法熄灭,车辆动力性能下降,某些电控系统功能失等。 这是因为相关数据或信息…...
VS+QT+Opencv使用YOLOv4对视频流进行目标检测
对单张图像的检测,请参考:https://blog.csdn.net/qq_45445740/article/details/109659938 #include <fstream> #include <sstream> #include <iostream> #include <opencv2/dnn.hpp> #include <opencv2/imgproc.hpp> #inc…...
oracle创建管理用户并授权
oracle创建管理用户并授权 创建用户 create user test identified by test;修改密码 alter user test identified by 123456;删除用户 drop user test;删除拥有对象的用户 若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,…...

三江学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》
三江学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》...
机器学习笔记 - 基于PyTorch + 类似ResNet的单目标检测
一、获取并了解数据 我们将处理年龄相关性黄斑变性 (AMD) 患者的眼部图像。 数据集下载地址,从下面的地址中,找到iChallenge-AMD,然后下载。 Baidu Research Open-Access Dataset - DownloadDownload Baidu Research Open-Access Datasethttps://ai.baidu.com/bro…...

系列二、Redis简介
一、概述 # 官网 https://redis.io/ 总结:redis是一个内存型的数据库。 二、特点 Redis是一个高性能key/value内存型数据库。Redis支持丰富的数据类型。Redis支持持久化 。Redis单线程,单进程。...

基于TF-IDF+TensorFlow+词云+LDA 新闻自动文摘推荐系统—深度学习算法应用(含ipynb源码)+训练数据集
目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境TensorFlow环境方法一方法二 模块实现1. 数据预处理1)导入数据2)数据清洗3)统计词频 2. 词云构建3. 关键词提取4. 语音播报5. LDA主题模型6. 模型构建 系统测试工程源代码下载…...

尼科彻斯定理-C语言/Java
描述 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 例如: 1^31 2^335 3^37911 4^313151719 输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。&…...

C++学习笔记——从面试题出发学习C++
C学习笔记——从面试题出发学习C C学习笔记——从面试题出发学习C1. 成员函数的重写、重载和隐藏的区别?2. 构造函数可以是虚函数吗?内联函数可以是虚函数吗?析构函数为什么一定要是虚函数?3. 解释左值/右值、左值/右值引用、std:…...
WebAPIs 第二天
DOM事件基础 事件监听事件类型事件对象 一.事件监听 ① 概念:就是让程序检测是否有事件发生,一旦有事件触发,就立即调用一个函数做出响应,也成为绑定事件或者注册事件 ② 语法:元素对象.addEventListener(事件类型&…...

解决macOS执行fastboot找不到设备的问题
背景 最近准备给我的备用机Redmi Note 11 5G刷个类原生的三方ROM,MIUI实在是用腻了。搜罗了一番,在XDA上找到了一个基于Pixel Experience开发的ROM:PixelExperience Plus for Redmi Note 11T/11S 5G/11 5G/POCO M4 Pro 5G (everpal)…...
Linux命令 -- chmod
Linux命令 -- chmod 参数含义权限说明修改文件权限修改目录权限 参数含义 文件用户 u 文件所有者g 文件所有者同组的用户o 其它用户a 所有用户 文件权限 r 读权限(对应数值4)w 写权限(对应数值2)x 执行权限(对应数…...
国产超低功耗32位MCU的应用
随着物联网技术的不断发展,超低功耗MCU已经成为了物联网方案中主要的芯片处理技术。超低功耗MCU具有众多的优点,其中一大所用就是能够大大提高物联网设备的续航能力,保证设备在长时间内不掉电不断电。那么,超低功耗MCU在物联网方案…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...