【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在物联网方案…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
