当前位置: 首页 > news >正文

【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 表示 命令

相关文章:

【MySQL】数据库——库操作

文章目录 1. 创建数据库[IF NOT EXISTS] 的使用 2. 删除库3. 数据库的编码问题查看系统默认支持的字符集查看系统默认支持的校验集只查看 database的校验集指定编码创建数据库修改字符集修改校验集验证规则对数据库的影响utf8_general_ci ——不区分大小写utf8_bin ——区分大小…...

Python 轻量 ORM peewee 上手

介绍 有时候需要用 Python 直接操作数据库, 手工撸 SQL 倒也不是不能行, 但是总觉得有点背离了 人生苦短, 我用 Python 的初心, 习惯了 SQLAlchemy 的直接操作后, 就变懒了. 但是对于比较简单的数据库操作场景, 再跑一套 SQLAlchemy 又显得有些臃肿, 这次上手轻量 Python ORM …...

微信小程序开发的OA会议之会议,投票,个人中心的页面搭建及模板

目录 一.自定义组件 1.1.创建 1.2.定义 1.3.编写 1.4.使用 二.会议 2.1.数据 2.2.显示 2.3. 样式 三.个人中心 3.1.页面 3.2.样式 四.投票 4.1.引用 4.2.数据 4.3.页面 4.4.样式 好啦今天就到这里了,希望能帮到你哦!!&…...

决策树-入门

1、认识决策树 决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法 怎么理解这句话?通过一个对话例子 想一想这个女生为什么把年龄放在最上面判断!&a…...

使用Redis发布订阅模式实现 Session共享

其实并不是实现session共享,而是通过redis的发布订阅,让所有集群的服务器,都让自己的session发送一下消息。比如说userId在第35台服务器上, 有100台服务器,那么第1台服务器收到消息,需要通知userId&#xf…...

安达发|AI在APS生产计划排程系统中的应用与优势

随着科技的不断发展,人工智能(AI)已经在许多领域取得了显著的成果。在生产管理计划系统中,AI技术的应用也日益受到关注。本文将探讨如何将AI人工智能用在生产管理计划系统上,以提高生产效率、降低成本并优化资源配置。…...

国产低功耗MCU芯片:Si24R03

Si24R03集成了基于RISC-V核的低功耗MCU和工作在2.4GHz ISM频段的无线收发器模块,是一款高度集成的低功耗SOC片。 应用领域: 1、物联网 2、智N门锁 3、电机控制 4、消费电子 5、工业控制 其无线收发器模块是专为低功耗无线场合设计,在关…...

【Java】学生管理系统项目演示

目录 学生管理系统 学生管理系统代码思路分析 nextLine() 和 nextInt() 区别 学生管理系统 需求:实现对学生的增删改查功能,学生(学号,姓名,年龄,地址)字段 学生管理系统代码思路分析 定义学…...

Rust错误处理

返回值和错误处理 panic 深入剖析 主动调用 fn main() {panic!("crash and burn"); }backtrace 栈展开 panic 时的两种终止方式 当出现 panic! 时,程序提供了两种方式来处理终止流程:栈展开和直接终止 何时该使用 panic! 先来一点背景知…...

Golang操作数据库简单示例

目录 准备工作准备数据创建项目连接数据库查询数据修改数据插入数据删除数据释放资源完整代码最终执行结果 准备工作 在开始之前,你需要确保自己安装了Golang的编程环境,安装MySQL数据库,有一个可以用于编写代码的编辑器或IDE工具。我在这里…...

亚马逊测评,买家号支付不了、砍单率高是什么问题,需要怎么解决

下半年旺季很多卖家都在使用自养号测评给产品冲一波权重,但是很多朋友会遇到下不了单或者砍单率过高等问题。有人以为是支付卡的问题,也有人觉得是IP被关联了。其实他们讲的也没错,但是,亚马逊风控不会针对某个点去进行检测&#…...

B. Jellyfish and Game-Codeforces Round 902 (Div. 2)

B. Jellyfish and Game 交换k轮使得第一个同学拥有数值总数最大&#xff1b; 很容易看出这道题需要判断k奇偶数。 当k是奇数时可以看作第一个同学操作一轮。 k为偶数可以看作两个同学各操作一轮。 #include<iostream> #include<vector> #include<algorithm>…...

Linux下的命令行参数和环境变量

命令行参数 什么是命令行参数 命令行参数是指在执行命令行程序时&#xff0c;给程序传递的额外参数。在Linux终端中&#xff0c;命令行参数通常通过在命令后面添加空格分隔的参数来传递。 Linux下以main函数举例说明 #include<stdio.h>int main(int argc char* argv[])…...

语音芯片KT142C两种音频输出方式PWM和DAC的区别

目录 语音芯片KT142C两种音频输出方式PWM和DAC的区别 一般的语音芯片&#xff0c;输出方式&#xff0c;无外乎两种&#xff0c;即dac输出&#xff0c;或者PWM输出 其中dac的输出&#xff0c;一般应用场景都是外挂功放芯片&#xff0c;实现声音的放大&#xff0c;比如常用的音箱…...

Kotlin 协程的挂起和阻塞的区别

一&#xff0c;简介 Kotlin协程引入了非常强大的异步编程模型&#xff0c;通过挂起而不是阻塞来实现并发操作。以下是有关Kotlin协程挂起和阻塞的详细介绍&#xff1a; 挂起&#xff08;Suspending&#xff09;&#xff1a; 挂起是指一个协程的执行可以在不阻塞线程的情况下暂…...

解决Github Markdown图片显示残缺的问题

title: 解决Github Markdown图片显示残缺的问题 tags: 个人成长 categories:杂谈 在Github存放Markdown文档&#xff0c;如果图片没有存放在Github服务器上&#xff0c;github会尝试生成Github图片缓存&#xff0c;使用Github图片缓存&#xff0c;进行实际的展示。但比较蛋疼的…...

[MAUI]深入了解.NET MAUI Blazor与Vue的混合开发

文章目录 Vue在混合开发中的特点创建MAUI项目创建Vue应用使用element-ui组件库JavaScript和原生代码的交互传递根组件参数从设备调用Javascript代码从Vue页面调用原生代码 读取设备信息项目地址 .NET MAUI结合Vue的混合开发可以使用更加熟悉的Vue的语法代替Blazor语法&#xff…...

1209. 带分数

题目&#xff1a; 1209. 带分数 - AcWing题库 思路&#xff1a; 1.targetab/c&#xff0c;由题意a,b,c会包含1~9 且每个数出现且只能出现一次。我们可以抽象化为9个坑位分成3份分别给a,b,c。 2.先采用递归搜索树写出9个坑位的全排列&#xff0c;再分成3个区&#xff0c;分…...

【树莓派触摸屏等学习笔记】

前言 树莓派触摸屏 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、触摸屏硬件驱动 出现黑屏的时候&#xff0c;恢复一下txt config.txt 全屏显示 showFull Exec &#xff1a;自启动 surf 算法 特征点识别 算法的复杂度挺高的 特性树莓派强大…...

ERR_PNPM_JSON_PARSE Unexpected end of JSON input while parsing empty string in

终端报错&#xff1a;  ERR_PNPM_JSON_PARSE  Unexpected end of JSON input while parsing empty string in   报错原因&#xff1a;依赖没有删除干净  解决办法&#xff1a;  ①删除node_modules  ②在package.json的dependencies删除不需要依赖  ③重新pnpm i...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...