03 库的操作

目录

  1. 创建
  2. 查看
  3. 修改
  4. 删除
  5. 备份和恢复
  6. 查看连接情况

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;

在这里插入图片描述
可以告诉我们哪些用户连接了,可以查出非正常连接,如果数据库比较慢时,可以用这个指令看看连接情况

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

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

相关文章

基于YOLOv8的小麦种子品质检测系统

基于YOLOv8的小麦种子品质检测系统 (价格85) 包含 [bad seed, healthy seed, impurity] 3个类 通过PYQT构建UI界面,包含图片检测,视频检测,摄像头实时检测。 (该系统可以根据数据训练出的yolov8的权重文件,运用在…

【多线程-从零开始-捌】代码案例2—阻塞队列

什么是阻塞队列 阻塞队里是在普通的队列(先进先出队列)基础上,做出了扩充 线程安全 标准库中原有的队列 Queue 和其子类,默认都是线程不安全的 具有阻塞特性 如果队列为空,进行出队列操作,此时就会出现阻…

vue2知识点4(组件 全局组件 局部组件 父子组件的生命周期钩子函数 父子组件之间的数据传递 局部路由)

目录 一、组件 1. 介绍 2. 全局组件 使用全局组件 实例和组件之间的数据不互通 组件复用 data函数式和data对象的区别: 注意 3. 局部组件 全局组件和局部组件的区别: 注册多个子组件(局部组件) 4. 父子组件的生命周期钩子函数 加载渲染过程…

RIP路由协议之网络工程师软考中级

几种常见的路由协议 路由协议名称路由协议分类(工作原理)协议分类(工作区域)路由算法RIP距离矢量IGPBellman-FordOSPF-ISIS链路状态IGPDijkstraBGP路径向量EGP/ IGP称为内部网关协议(I人,内向&#xff09…

python判断和循环语句

python判断语句 1、单个条件判断 if 条件:满足条件要做的事情1满足条件要做的事情2 else:不满足条件要做的事情3不满足条件要做的事情2 2、多个条件判断(满足条件1就不会判断条件2) else可以省略不写 if 条件1:满足条件1要做的事情a满足条件1要做的事…

爆款短视频素材去哪里找?做抖音短视频爆款热门素材网站分享

爆款短视频素材寻宝:哪里是创作者的宝藏地? 在短视频创作的世界里,找到高质量的素材是打造爆款视频的关键。无论你是初入短视频领域的新手,还是拥有庞大粉丝群的资深创作者,选择合适的视频素材网站可以极大提升你的视…

NET 定时器 Timer和线程Thread

是否可以更新UI线程的内容 》》》资源占用:‌ 》定时器可以的,不存在跨线程问题 》Thread创建的线程,不能更新UI线程的内容, 存在跨线程 Control.CheckForIllegalCrossThreadCalls false;//默认是True 》》执行方式&#xff…

软考:软件设计师 — 11.UML 建模

十一. UML 建模 UML 建模部分是下午场考试中第三个题目,分值 15 分。先介绍一下这类题目的考查形式。 1. 考察形式 (1)类图与对象图 填类名,方法名,属性名填关系填多重度 UML 中四种基本关系: 依赖关…

数据库连接池的深入学习

为什么需要数据库连接池? 正常操作数据库需要对其进行连接,访问数据库,执行sql语句,断开连接。 创建数据库连接是一个昂贵的过程,在高并发的情况下,频繁的创建数据库的连接可能会导致数据库宕机。 有了连…

【python015】常见成熟AI-图像识别场景算法清单(已更新)

1.欢迎点赞、关注、批评、指正,互三走起来,小手动起来! 【python015】常见成熟AI-图像识别场景算法清单及代码【python015】常见成熟AI-图像识别场景算法清单及代码【python015】常见成熟AI-图像识别场景算法清单及代码 文章目录 1.背景介绍2…

【ML】self-supervised Learning for speech and Image

【ML】self-supervised Learning for speech and Image 1. self-supervised Learning for speech and Image1.1 自监督学习在语音处理领域的方法及其特点1.2 自监督学习在图像处理领域的方法及其特点 2. Predictive Approach2.1 特点2.2 适用场景 3. contrastive Learning4. 语…

上架10天,下载量6W+!用AI绘画 Stable Diffusion 做表情包真的可以赚钱!(AI绘画副业教程分享)

大家好,我是画画的小强 拜托,你不会还不知道吧,在大家还忙着跟网友斗图的时候,已经有人靠做某信表情包快速变现了!光靠一套表情包就躺赚50W! 紫沐甜心生成的表情包胭脂公主,上架10天后下载量就…

C:冒泡排序

1、冒泡排序介绍: 冒泡排序的核心思想就是:两两相邻的元素进行比较。 先用一个例子来帮助大家理解一下冒泡排序的算法是怎们进行的 有一排高矮不同的人站成一列,要按照从矮到高的顺序重新排队。 冒泡排序的方法就是,从第一个人…

Python代码之特征工程基础

1. 什么是特征工程 特征工程是指从原始数据中提取、转换和创建适合于模型训练的数据特征的过程。它是机器学习和深度学习中非常重要的一步,因为好的特征工程可以显著提高模型的性能。特征工程涉及从数据中提取有意义的信息,并将其转换为模型可以理解和使…

Python实战:类

一、圆的面积、周长 class Circle:# 初始化一个类参数:rdef __init__(self,r):self.r r# 计算面积的方法def get_area(self):return 3.14*pow(self.r,2)# 计算周长的方法def get_perimeter(self):return 2*3.14*self.r#创建对象 r eval(input(请输入圆的半径&…

linux系统编程:(4)

1.系统时间的获取函数 1. time函数 功能: 获得1970年到现在的秒数 参数: t:存放秒数的空间首地址 返回值: 成功返回1970年到现在的秒数 失败返回-1 2.localtime 函数 功能: 将一个秒数转化成日历时间 参数: timep:保存秒数空间的地址 返回值: 成功…

深度学习入门(四):激活函数与LSTM

激活函数 激活函数在神经网络中扮演着至关重要的角色。它们的主要功能是引入非线性因素,这使得神经网络能够学习和近似任何非线性函数,从而处理复杂的数据模式和决策边界。如果没有激活函数,即使网络拥有很多层,其表达能力仍然只…

write_sdc和write_script区别

文章目录 一、set_disable_clock_gating_check二、write_sdc和write_script区别1. write_sdc2. write_script 一、set_disable_clock_gating_check set_disable_clock_gating_check对指定的cell/pin/lib_cell/lib_pin设置是否进行clock gating的时序检查。 对于工具插入或者…

多模态大语言模型的免训练视觉提示学习 ControlMLLM

ControlMLLM: Training-Free Visual Prompt Learning for Multimodal Large Language Models github paper 在本研究中,提出了一种无需进行训练的方法,通过可学习的潜变量优化将视觉提示注入到多模态大型语言模型(MLLMs)中。 在…

本地Linux服务器创建我的世界MC私服并实现与好友异地远程联机游戏

文章目录 前言1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 前言 本…