03 库的操作
目录
- 创建
- 查看
- 修改
- 删除
- 备份和恢复
- 查看连接情况
1. 创建
语法
CRATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] …]
create_specification:
CHARACTER SET charset_name
CPLLATE collation_name
说明:
大写的标识关键字
[]是可选项
CHARACTER SET:指定数据库采用的字符集
COLLATE:指定数据库字符集的校验规则
create_specification:采用的编码规则
创建数据库时有两个编码集,分为数据库编码集和校验集,编码集市数据库存储数据时使用的,椒盐基支持数据库比较使用的编码,本质是一种读取数据库中采用的编码格式
数据库无论任何操作,都必须保证操作和存储是编码一致的
案例
- 先进入数据库存放文件夹
cd var/lib.mysql

- 创建名为db1的数据库
create database db1;

说明:创建数据库没有指定字符集和校验规则时,系统默认字符集:utf8,校验规则是:utf8_general_ci
创建数据库就是在上面的文件夹里创建文件夹

- 创建一个使用utf8字符集的db2数据库
create database db2 charset=utf8;
create database db2 character set utf-8; //另一种写法

- 创建一个使用utf字符集,并带校对规则的db3数据库
create database db3 chareset=utf8 collate utf8_general_ci;

- IF NOT EXISTS 选项,表示不存在的话创建
- 创建一个db3,带这个选项
create database if not exists db3;
如果数据库已经存在,这个操作不会执行,可以避免因对象已存在导致的错误。

字符集和校验规则
查看系统默认字符集和校验规则
show variables like ‘character_set_database’;
show variables like ‘collation_database’;

查看默认所有椒盐基
show variables like ‘collation_%’;

查看数据库支持的字符集
show charset;

字符集主要控制用什么语言,比如utf8就可以使用中文
查看数据库支持的字符集校验规则
show collation;

校验规则对数据库影响
数据库的字符集和校验影响着创建的表的规则,字符集和校验集,存储和读取必须一致
在数据库中有配置文件db.opt查看
cat db.opt;

- 不区分大小写
创建一个数据库,校验规则用utf8_general_ci[不区分大小写],下面的操作是创建数据库,创建person表,插入四条数据
create database test1 collate utf8_general_ci;
use test1;
create table person (name varchar(20));
insert into person values (‘a’);
insert into person values (‘A’);
insert into person values (‘b’);
insert into person values (‘B’);
- 区分大小写
创建一个数据库,校验规则使用utf8_bin[区分大小写]
create database test2 collate utf8_bin;
use test2;
create table person (name varchar(20));
insert into person values (‘a’);
insert into person values (‘A’);
insert into person values (‘b’);
insert into person values (‘B’);
- 查询
不区分大小写的查询及结果
use test1;
select * from person where name=‘a’;

区分大小写的查询及结果
use test2;
select * from person where name=‘a’;

对于不区分大小写的,A也看做是a,所以查询到两个
- 结果排序
不区分大小写排序结果
use test1;
select * from person order by name;

区分大小写排序结果
use test2;
select * from person order by name;

区分大小写,就会以ascii码排序,大写比小写的值小
2. 查看
查看所有数据库
show databases;
显示创建语句
show create database 数据库名;

说明:
MySQL建议我们关键字使用大写,但不是必须的
数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
/!40100 default…/这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话
3. 修改
说明:对数据库的修改主要指修改数据库的字符集,校验规则
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]…]alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
实例
将test2数据库集改为gbk
alter database test2 charset=gbk;


当修改了字符集后,校验集会自动和它匹配
4. 删除
DROP DATABASE [IF EXISTS] db_name;
执行完删除之后的结果:
- 数据库内部看不到对应的数据库
- 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
注意,不要随意删除数据库,会造成很多上层的工程需要修改
5. 备份和恢复
备份
备份有最直接的方法,将数据库文件拷贝,但是这样遇到版本不同的sql可能会出现错误,mysql提供了备份的方法
语法,需要退出数据库在命名行输入:
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
示例,将test2库备份(退出连接)
mysqldump -P3306 -u root -p -B mytest > mytest.sql
打开备份文件,里面都是数据库操作的语句,建库,建表,导入数据的语句都在里面

还原
mysql> source 数据库路径;
注意
如果备份的不是整个数据库,而是其中的表,怎么做
mysqldump -u root -p 数据库名 表名1 表名2 > test2.sql
同时备份多个数据库
mysqldump -P3306 -u root -p -B 数据库名1 数据库名2 > 数据库存放路径
如果备份一个数据库时,没有带上-B选项,在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原,如:
mysqldump -P3306 -u root -p mytest > mytest.sql
这时恢复需要先创建数据库
6. 查看连接情况
语法:
show processlist;

可以告诉我们哪些用户连接了,可以查出非正常连接,如果数据库比较慢时,可以用这个指令看看连接情况
相关文章:
03 库的操作
目录 创建查看修改删除备份和恢复查看连接情况 1. 创建 语法 CRATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] …] create_specification: CHARACTER SET charset_name CPLLATE collation_name 说明: 大写的标识关键…...
嵌入式人工智能(44-基于树莓派4B的扩展板-LED按键数码管TM1638)
树莓派性能非常强悍,但是对于某些复杂的项目来说,会出现心有余而口不足的情况,为了解决这类问题,可以在树莓派上使用扩展板,我们介绍几款常见的扩展板,不仅可以扩展到树莓派,其他单片机或嵌入式…...
linux通过抓包工具tcpdump查看80端口访问量情况
方法: tcpdump -i ens32 -tn dst port 80 -c 10 | awk -F"." {print $1"."$2"."$3"."$4} | sort | uniq -c | sort -nr |head -n 10 #-i:指定端口 #-t:在输出的每一行不打印时间戳 #-nÿ…...
Mac 上安装和卸载 SDKMAN 及管理多个 JDK
前言 当电脑上有多个 JDK 环境的时候,切换管理比较麻烦,这时候可以使用 SDKMAN 来安装、管理 JDK。 一、安装 SDKMAN! 1. 安装前置条件 首先,确保已经安装了 curl 。如果没有,可以通过 Homebrew 来安装: brew inst…...
字节测开一面面经
1 . 自我介绍 2 . 讲一下常见的数据结构 : 讲了数组,set,list,map,树,图,队列 , 栈等 ; 3 . 讲一下java反射场景和作用 ; 4 . 讲一下你了解的机器学习算法 ; 5 . 我讲完ML之后 , 问了knn和贝叶斯的使用的场景区别(没答上来) ; 6 .…...
HTML 段落
HTML 段落 概述 HTML(超文本标记语言)是构建网页的标准语言,而段落是构成网页内容的基本单元。在HTML中,段落是通过<p>标签来定义的。本文将详细介绍HTML段落的相关知识,包括段落的基本结构、样式设置、以及在…...
【Mind+】掌控板入门教程04 迷你动画片
还记得小时候每天放学必看的动画片吗?还记得那些年陪伴我一起长大的卡通人物吗?勇救爷爷的葫芦娃,我们的朋友小哪吒,相信这些经典的动画形象已经成为了一代人童年的美好回忆。今天就让我们用掌控板来制作一部迷你动画片吧。 项目示…...
文件上传漏洞-HackBar使用
介绍 HackBar 是一个用于浏览器的扩展插件,主要用于进行网络渗透测试和安全评估。它提供了一系列方便的工具和功能,可以帮助用户执行各种网络攻击和测试,包括 XSS、SQL 注入、CSRF、路径穿越等 下载地址 可以到github上面去下载࿰…...
鸿蒙媒体开发【相机数据采集保存】音频和视频
相机数据采集保存 介绍 本示例主要展示了相机的相关功能,使用libohcamera.so 接口实现相机的预览、拍照、录像、前后置摄像头切换进行拍照、录像,以及对焦、曝光等控制类功能。 效果预览 使用说明 弹出是否允许“CameraSample”使用相机?…...
【java基础】徒手写Hello, World!程序
文章目录 前提:java环境变量配置使用vscode编写helloworld解析 前提:java环境变量配置 https://blog.csdn.net/xzzteach/article/details/140869188 使用vscode编写helloworld code .为什么用code看下图 报错了!!!&…...
对 vllm 与 ollama 的一些研究
今天咱们来聊聊 vllm 和 ollama 这两个听起来就挺酷的玩意儿。这俩都是现在 AI 圈子里的大明星,专门用来让那些超大型的 AI 模型跑得更顺溜。 先说说 vllm 吧,这家伙的绝活儿是剪枝。啥叫剪枝呢?想象一下,你有个花园,…...
浅谈基础的图算法——强联通分量算法(c++)
文章目录 强联通分量SCC概念例子有向图的DFS树代码例题讲解[POI2008] BLO-Blockade题面翻译题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 思路AC代码 【模板】割点(割顶)题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示…...
C#:通用方法总结—第13集
大家好,今天继续讲解我们的通用方法系列。 下面是今天要介绍的通用方法: (1)这个通用方法为ug获取选择圆边的圆心 /// <summary> /// ug获取选择圆边的圆心 /// </summary> /// <param name"a">&l…...
AI答题应用平台相关面试题
目录 1、请介绍整个系统后端的架构设计,有哪些模块以及各模块之间的关系? 2、你在项目中是如何设计库表的?可以从字段、索引、关联等方面回答。 3、为什么使用策略模式来封装不同的应用评分算法?它有哪些好处?具体如…...
树莓派NAS系统搭建教程:使用Flask和SQLite实现HTTP/HTTPS文件管理(代码示例)
一、项目概述 随着物联网(IoT)技术的发展,数据存储和共享需求日益增长。本文将介绍如何利用树莓派(Raspberry Pi)搭建一个网络附加存储(NAS)系统,以实现数据的集中管理、共享和访问…...
mysql如何储存大量数据,分库存分表的建议和看法
MySQL 在处理大量数据时,分库分表是常见的策略,可以有效提升数据库的性能和扩展性。下面是关于 MySQL 分库分表的建议和看法: 1. 何时考虑分库分表 数据量大:当单一数据库实例无法处理大规模数据或达到性能瓶颈时,可以…...
Golang | Leetcode Golang题解之第310题最小高度树
题目: 题解: func findMinHeightTrees(n int, edges [][]int) []int {if n 1 {return []int{0}}g : make([][]int, n)deg : make([]int, n)for _, e : range edges {x, y : e[0], e[1]g[x] append(g[x], y)g[y] append(g[y], x)deg[x]deg[y]}q : []i…...
【面试系列】软件架构师 高频面试题及详细解答
欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。 ⭐…...
二百五十四、OceanBase——Linux上安装OceanBase数据库(四):登录ocp-express,配置租户管理等信息
一、目的 在部署OceanBase成功后,接下来就是登录ocp-express,配置租户管理等信息! 二、ocp-express网址以及账密信息 三、实施步骤 1 登录ocp-express 2 集群总览 3 租户管理 3.1 新建租户 3.2 配置新租户信息 剩下的几个模块了解即可&am…...
HCIP学习作业一 | HCIA复习
要求: R1-R2-R3-R4-R5 RIP 100 运行版本2 R6-R7 RIP 200 运行版本1 1.使用合理IP地址规划网络,各自创建环回接口 2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R3使用R2访问R1环回 4.减少路由条目数量,R1-R2之间…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
