mysql 数据库 关于库的基本操作

news2024/11/14 21:05:24

库的操作

如果想到 mysql 客户端当中数据 系统当中的命令的话,直接输入的话,会被认为是 mysql 当中的命令。

所以,在mysql 当中执行系统当中的命令的话,要在系统命令之前带上 ststem ,表示系统命令:

 但是不是所有命令都是可以使用的,只能使用部分命令。

创建/删除 数据库

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]

create_specification:
    [DEFAULT] CHARACTER SET charset_name
    [DEFAULT] COLLATE collation_name

说明:

  • 大写的表示关键字
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则
     

 IF NOT EXISTS : 表示的是 如果当前没有这个要创建的数据库,才会对这个数据库进行创建。

创建名为 db1 的数据库:

create database db1;

 其实上述创建数据库的本质其实就是在 指定存储数据库文件的目录当中,创建一个目录。


 删除一个数据库:

drop database db_name;

 而,删除一个数据库其实本质也就是 在指定存储数据库文件的路径当中删除某一个目录。

所以,其实你在 指定目录当中直接删除掉 指定的目录 文件,也可以达到把这个数据库目录删除的目的。但是我们不建议及这样做,我们还是推荐使用 数据库当中的 drop databases 命令来删除一个数据库。

数据库的 编码集 和 校验集

因为各种语言的不同,所以在计算机表示语言的编码格式不同,所以,数据库当中规定,使用某一种编码格式来 存储数据之时,就必须用 同一种编码格式来取出数据。

而数据库的编码集,是数据库在存储数据之时,使用的编码格式。

数据库的 校验集,是用户在使用数据库进行数据的 增删改查的过程当中,对于用户使用的编码格式,和数据库当中存储的数据的编码格式做效验的作用。

数据库的 校验集,支持数据库 进行字段的比较使用的编码。本质也是一种 读取数据库当中读数据采用的编码格式。

总结:

数据库对数据做的任何操作,都必须保证操作当中使用的编码 和 存储数据所使用的编码必须是一样的。


查看当前数据库当中有什么表:

show tables;


查看数据库本身的编码集:

show variables like 'character_set_database';

可以发现我们当前数据库的编码格式是 latin1 这个编码格式的。

 查看你数据库的校验集:

show variables like 'collation_database';

 查看其他的校验集:
 

show variables like 'collation_%';

由上述可以看到,链接 和 服务器当中使用的 是 utf-8 的编码格式。

 还可以查看数据库支持的所有的字符集:
 

show charset;

使用上述的命令,可以查看到当前数据库所支持的字符集编码格式。

 查看数据库支持的 校验集 编码格式:
 

show collation;


指定 编码格式 和 校验规则 创建数据库

 上述创建数据库的方式是直接进行创建,那么就会使用的默认的创建方式,这个默认的编码格式是在数据库的配置文件当中进行设置的。

那么,如果我们想要指定编码格式来 创建数据库的话,可以像如下方式来进行操作:

create database d1 charset=utf8;

像上述的方式就是以 utf-8 的方式来创建 d1 这个数据库

 除了使用上述的方式,还可以使用下述的方式定义数据库的编码格式
 

create database d2 character set utf8;


上述是指明数据库的编码格式,我们还可以指明数据库的校验规则

create database d3 charset=utf8 collate utf8_general_ci;

 如果想要查看数据库的编码格式 和 校验规则的话,需要查看这个数据库目录当中的 db.opt 这个配置文件。

 你可以看到,d3 这个数据库的 编码格式 和 校验格式 都是 utf-8 的。


数据库的校验规则对数据库的影响

 区分大小写 于 不区分大小写

 我们分别使用 utf8_general_ci utf8_bin 两种校验规则,和 utf-8 的同一种编码规则来分别创建两个数据库
 

create database test1 collate utf8_general_ci;

create database test2 collate utf8_bin;

此时这两个数据库的 编码格式是一样的,但是 校验规则是不一样的:


然后我们对两个数据库当中进行 建表的操作:
 

在 test1 数据库当中建立一个 person 表:

 查看 test1 当中的全部表:
 

 查看 Perosn的 表结构:

 向 test1 数据库当中的person 表插入一些值:

 此时,我们查询 perosn 表当中 name='a' 的字段的话,发现不管是 'a' 还是 'A' 都被查找出来了:

 说明,utf8_general_ci 这个校验规则是不区分大小写的。


 同样的,我们在 test2 数据库当中也创建一个person表;

 还是插入一些 大小写的 数据:
 

 此时查询 name='a' 的字段,发现只查找出了 'a'  的字段:

 说明,utf8_bin 是区分大小的写的


 区分大小写 于 不区分大小写排序以及结果

 test2 当中对 name 进行排序输出:
 

 test1 当中对 name 进行排序输出:

 因为 在 ascll 表当中,大写字符的 ascll 码值 是要小于 小写字符的 ascll 码值的,所以,在区分大小写的 text2 数据库的当中,排序结果就是按照 升序来 排列的。

但是,在 text1 数据库使用的 校验规则 是不区分大小写的,所以,对于 'a' 和 'A' 两个字符是一个字符,所以直接进行输出。

上述的例子,告诉我们一件事情:

数据库的校验集是会影响我们的查询,比较结果的。


 库的 删改查

 查看数据库 

show databases;

显示创建语句

show create database 数据库名;

例子:

mysql> show create database mytest;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| mysql | CREATE DATABASE `mytest` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
  • MySQL 建议我们关键字使用大写,但是不是必须的。
  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字。
  • /*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

 数据库删除

DROP DATABASE [IF EXISTS] db_ name;

需要注意的是:如果我们直接对一个数据库进行删除的话,相当于是把这个数据库的目录直接删除掉了,那么在这个数据库当中存储的数据,也就直接被我们删除掉了。

所以我们是不建议直接删除数据库这样的操作的。

 执行删除之后的结果:

  • 数据库内部看不到对应的数据库。
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。

 修改数据库

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]

alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
  •  对数据库的修改主要指的是修改数据库的字符集,校验规则。

比如:修改 test2 数据库的 编码集 和 校验集:

查看 test2 数据库的   编码集 和 校验集:

 数据库的备份和恢复

 如果是在 Linux 当中我们想对 一个文件进行的备份的话,其实就是把这个文件拷贝一份。文件夹的话,就是使用 zip 等等命令压缩的一下,打个包,备份一下。

但是,如果是在数据库当中进行上述方式进行备份的话,那么如果这个数据库是在 版本5.7 创建的话,打包备份到其他 数据库版本,比如是 5.0 ,那么可能这个数据库就因为环境的不兼容,所以就不能使用了。

所以,像上述这种直接打包数据库的文件的操作我们是完全不推荐的

 在现如今的数据库版本当中,对于数据库名字的修改命令已经没有了。这是因为,如果你修改了数据库的名字,同时有别人正在访问这个数据库的话,那么别人来说体验就极其不好了。

mysqldump 工具  和 source

但是,对于数据的文件的备份在数据库当中是命令来实现的

对于 mysqldump 这个工具,在安装 mysql 之时就已经安装了。 

# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
  • -P:要使用的端口号;
  • -u:要使用的用户
  • -p:用户对应的密码
  • -B:要拷贝的数据库名,然后使用 ">" 指定这个数据库要拷贝到的 文件路径,也就是 重定向到这个路径当中。

比如现在我们要拷贝这个 test1 的这个数据库:
 

 

如上所示的操作,就会帮我们把 test1 数据库的内容拷贝到 test1.sql 这个文件当中。

但是,在这个 test1.sql 文件当中存储的其实是我们曾经对 test1 的各种操作的命令,还有一些配置文件等等,我们使用 vim 打开这个拷贝过后的文件:
 

这些都是我们曾经对 test1 这个数据库当中曾经使用的过的 有效操作

 所以,以后当有别人拷贝了上述的 test1.sql 这个拷贝过后的文件的话,即使在对方的mysql 当中是没有 test1 这个数据库的,但是可以通过这个 test1.sql 文件,直接创建出一个 于test1相同的数据库出来:

使用 下述的命令来使用上述的 test1.sql 文件创建一个新的 数据库出来:

source 备份文件所在路径;

 

此时就相当于是 使用 test1.sql 文件当中的 保存的 有效操作的命令,就可以创建出一个 和 原本test1 数据库相同的数据库出来。

 注意:如果上述在使用 mysqldump 工具之时,没有使用 -B 选项指定 数据库,那么他会默认在当前 use 的数据库当中记录 有效操作,但是在这些操作当中是不会记录 create 数据库这个操作的。所以,此时请先创建一个数据库,在使用 source 命令还原数据库

 


备份的不是整个数据库,而是其中的一张表:
 

mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库:

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

查看当中数据库的链接情况

show processlist

 使用上述命令可以查看当中数据库此时有多少人正在链接,还有其他的信息都可以通过上述命令来查看:
 

 

  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[css] flex wrap 九宫格布局

<div class"box"><ul class"box-inner"><li>九宫格1</li><li>九宫格2</li><li>九宫格3</li><li>九宫格4</li><li>九宫格5</li><li>九宫格6</li><li>九宫格7&l…

2024年高效远程协同运维工具推荐

随着企业的不断发展以及变化&#xff0c;企业的内部IT环境也是日益复杂&#xff0c;一跨高效远程协同运维工具必不可少&#xff0c;不仅可以提高生产力&#xff0c;还能降低运营成本。这里就给大家推荐2024年高效远程协同运维工具。 高效远程协同运维工具应用场景 1、IT运维管…

WPF仿网易云搭建笔记(1):项目搭建

文章目录 前言项目地址动态样式组合样式批量样式覆盖Prism新建UserControler修改Material Design 笔刷收放列表可以滚动的StackPanel列表点击展开或折叠 实现效果 前言 今天接着继续细化代码&#xff0c;把整体框架写出来 项目地址 WPF仿网易云 Gitee仓库 动态样式 【WPF】C#…

linux 查看服务启动时间

文章目录 linux 查看服务启动时间参数解析 linux 查看服务启动时间 [root104 ~]# ps -o lstart -p ps -ef |grep -v grep |grep "zookeeper"|awk {print$2}STARTED Fri Dec 15 16:54:10 2023参数解析 linux 命令中 ps -ef 详解 ps -ef表示查看全格式的进程。 ps …

视频号小店需要缴纳保证金吗?保证金缴纳标准,不懂的快来看!

我是电商珠珠 入驻视频号小店&#xff0c;需要缴纳保证金吗&#xff1f;具体缴纳多少&#xff1f;... 这是想要入驻视频号小店的热门话题&#xff0c;今天我就来给大家一一讲明白。 想要入驻视频号小店&#xff0c;就必须要缴纳保证金。保证金是平台为了约束商家的行为&…

LLM之Agent(六)| 使用AutoGen、LangChian、RAG以及函数调用构建超级对话系统

本文我们将尝试AutoGen集成函数调用功能。函数调用最早出现在Open AI API中&#xff0c;它允许用户调用外部API来增强系统的整体功能和效率。例如&#xff0c;在对话过程中根据需要调用天气API。 函数调用和Agent有各种组合&#xff0c;在这里我们将通过函数调用调用RAG检索增强…

Windows 7如何将分区标记为活动分区?

引导分区&#xff0c;也称为引导卷&#xff0c;是包含引导加载程序和Windows操作系统所需文件的磁盘分区&#xff0c;是正常启动计算机的前提。一个正确的引导分区不只要包含相关的可引导数据&#xff0c;还需要将分区标记为活动分区。那么&#xff0c;如何将Windows 7分区标记…

网络安全——基于Snort的入侵检测实验

一、实验目的要求&#xff1a; 二、实验设备与环境&#xff1a; 三、实验原理&#xff1a; 四、实验步骤&#xff1a; 五、实验现象、结果记录及整理&#xff1a; 六、分析讨论与思考题解答&#xff1a; 七、实验截图&#xff1a; 一、实验目的要求&#xff1a; 1、掌握…

SuperMap iPortal权限介绍

作者&#xff1a;yx 文章目录 前言一、内置权限二、自定义权限&#xff08;11.1.0及以后版本&#xff09;1、修改配置文件2、页面展示3、api调用4、结果验证5、实际应用 前言 iPortal 用户访问和使用门户中资源的能力取决于其用户类型与在门户中拥有的权限&#xff0c;权限通过…

深入分析ClassLocader工作机制

文章目录 一、ClassLoader简介1. 概念2. ClassLoader类结构分析 二、ClassLoader的双亲委派机制三、Class文件的加载流程1. 简介2. 加载字节码到内存3. 验证与解析4. 初始化Class对象 四、常见加载类错误分析1. ClassNotFoundException2. NoClassDefFoundError3. UnsatisfiledL…

2023.12.13 关于 MySQL 复杂查询

目录 聚合查询 聚合函数 group by 子句 执行流程图 联合查询 笛卡尔积 内连接 外连接 左外连接 右外连接 自连接 子查询 单行子查询 多行子查询 EXISTS 关键字 合并查询 union on 和 union 的区别 聚合查询 聚合函数 函数说明COUNT([DISTINCT] expr)返回查询到…

wpf TelerikUI使用DragDropManager

首先&#xff0c;我先创建事务对象ApplicationInfo&#xff0c;当暴露出一对属性当例子集合对于构成ListBoxes。这个类在例子中显示如下代码&#xff1a; public class ApplicationInfo { public Double Price { get; set; } public String IconPath { get; set; } public …

【【ZYNQ 7020显示 图片 实验 】】

ZYNQ 7020显示 图片 实验 关键配置 BRAM 因为本次 我想显示的 图片是 400*400 所以在 内部 的 ROM 存储单元选择 了160000 ZYNQ7020的内部资源 最多是 大概 200000左右的 大小 大家可以根据 资源选择合适的像素 此处存放 内部的 图片转文字的COE文件 PLL设置 我选用的是按…

详解wmvcore.dll丢失的解决方法

wmvcore.dll是一款由Microsoft开发的Windows系统文件&#xff0c;主要用于存储和处理多媒体文件&#xff0c;尤其是Windows媒体视频。该文件对于音频和视频的播放至关重要。如果电脑上缺少这个文件&#xff0c;可能会出现播放问题或者相关的应用程序运行错误。在本文中&#xf…

Netty详解

目录标题 1、前期知识科普1.1 NIO 基本概念1.2 java BIO与NIO对比1.3 Reactor 模型 2、Netty 基础概念2.1 Netty 简介2.2 Netty 执行流程2.3 Netty 核心组件 3、Netty Demo编写3.1 总体框架3.2 具体代码 4、交流群 1、前期知识科普 1.1 NIO 基本概念 阻塞&#xff08;Block&a…

0x21 树与图的遍历

0x21 树与图的遍历 树与图最常见的储存方式就是使用一个邻接表保存它们的边集。邻接表以head数组为表头&#xff0c;使用ver和edge数组分别存储边的终点和权值&#xff0c;使用next数组模拟链表指针&#xff08;就像我们在0x13节中讲解邻接表所给出的代码那样&#xff09;。 …

科技铸就企业转型钢筋铁骨,群硕获评2023年度数字化影响力企业

12月15日&#xff0c;STIF2023第四届国际科创节暨DSC2023国际数字服务大会在北京顺利举行&#xff0c;本次大会以“数实融合 推动高质量发展”为主题&#xff0c;各大科技服务企业齐聚一堂&#xff0c;共同探讨2023科技发展新趋势。 大会上&#xff0c;群硕软件继2022年后再度…

Java版商城:Spring Cloud+SpringBoot b2b2c实现多商家入驻、直播带货及免 费小程序商城搭建

1. 涉及平台 平台管理、商家端&#xff08;pc端、手机端&#xff09;、买家平台&#xff08;h5/公众号、小程序、app端&#xff08;ios/android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 spring cloud、spring boot、mybatis、redis 3. 前端框架…

如何远程访问Axure RP制作的本地web站点实现协同办公

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…

浅析AI视频分析与视频管理系统EasyCVR平台及场景应用

人工智能的战略重要性导致对视频智能分析的需求不断增加。鉴于人工智能视觉技术的巨大潜力&#xff0c;人们的注意力正在从传统的视频监控转移到计算机视觉的监控过程自动化。 1、什么是视频分析&#xff1f; 视频分析或视频识别技术&#xff0c;是指从视频片段中提取有用信息…