【MySQL库的操作】
目录:
- 前言
- 库的操作
- 创建数据库
- 字符集和校验规则
- 校验规则对数据库的影响
- 选择和查看数据库
- 修改数据库
- 删除数据库
- 备份
- 注意事项
- 查看连接情况
- 总结
前言
剑指offer:一年又二天 |
---|
库的操作
创建、选择、查看、修改、删除与备份。
创建数据库
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: 指定数据库字符集的校验规则
mysql> show databases; --- 查看所有数据库,这些数据库都是默认的,我们不用管也不要动它们
+---------------------+
| Database |
+---------------------+
| information_schema |
| README_TO_RECOVER_A |
| mysql |
| performance_schema |
| sys |
+---------------------+
5 rows in set (0.00 sec)mysql> create database db1 --- 创建数据库db1,字符集和校验规则可以不写使用默认。-> charset=utf8-> collate=utf8_bin;
Query OK, 1 row affected (0.00 sec)mysql> show databases; --- 查看所有数据库
+---------------------+
| Database |
+---------------------+
| information_schema |
| README_TO_RECOVER_A |
| db1 | ---
| mysql |
| performance_schema |
| sys |
+---------------------+
6 rows in set (0.00 sec)
字符集和校验规则
- 查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database';
- 查看数据库支持的字符集
show charset;
字符集主要是控制用什么语言。比如utf8就可以使用中文。
- 查看数据库支持的字符集校验规则
show collation;
校验规则对数据库的影响
不区分大小写
create database test1 collate utf8_general_ci; --- 创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]
区分大小写
create database test2 collate utf8_general_ci; --- 创建一个数据库,校验规则使用utf8_ bin[区分大小写]
建表插入数据
mysql> create table stu(name char); --- 在数据库test1中建表stu,插入数据(test2同操作)
Query OK, 0 rows affected (0.04 sec)mysql> insert into stu values('a'), ('b'), ('A'), ('B');
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0mysql> select * from stu; --- 插入情况
+------+
| name |
+------+
| a |
| b |
| A |
| B |
+------+
4 rows in set (0.00 sec)
- 查询对比
mysql> use test1; --- 选择数据库test1
Database changedmysql> select * from stu where name = 'a'; --- 查询名字为a的学生
+------+
| name |
+------+
| a |
| A |
+------+
2 rows in set (0.00 sec)
mysql> use test1; --- 选择数据库test2
Database changedmysql> select * from stu where name = 'a'; --- 查询名字为a的学生
+------+
| name |
+------+
| a |
+------+
1 rows in set (0.00 sec)
- 排序对比
mysql> use test1; --- 选择数据库test1
Database changedmysql> select * from stu order by name; --- 按照名字排序
+------+
| name |
+------+
| a |
| A |
| b |
| B |
+------+
4 rows in set (0.00 sec)
mysql> use test1; --- 选择数据库test2
Database changedmysql> select * from stu order by name; --- 按照名字排序
+------+
| name |
+------+
| A |
| B |
| a |
| b |
+------+
4 rows in set (0.00 sec)
选择和查看数据库
show databases;
- 查看所有数据库
select database();
- 查看当前正在使用的数据库
show create database 数据库名;
- 查看数据库创建语句
mysql> show create database db1; --- 显示创建语法
+----------+-------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------------------+
| db1 | CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */ |
+----------+-------------------------------------------------------------------------------+
1 row in set (0.01 sec)mysql> show create database db1 \G --- 更加简洁的格式显示
*************************** 1. row ***************************Database: db1
Create Database: CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */
1 row in set (0.00 sec)
MySQL 建议我们关键字使用大写,但是不是必须的,在显示时服务器(mysqld)会将我们的语法进行规范处理。
数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字。
/*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。
mysql> select database(); --- 查看现在所操作的数据库
+------------+
| database() |
+------------+
| NULL | --- 还没有选择数据库
+------------+
1 row in set (0.00 sec)mysql> use db1; --- 选择数据库db1
Database changedmysql> select database();
+------------+
| database() |
+------------+
| db1 | --- 现在在操作数据库db1
+------------+
1 row in set (0.00 sec)
修改数据库
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
- 对数据库的修改主要指的是修改数据库的字符集,校验规则
mysql> show create database db1 \G --- 字符集为 utf8 ,校验规则为 utf8_bin
*************************** 1. row ***************************Database: db1
Create Database: CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */
1 row in set (0.00 sec)mysql> alter database db1 charset=gbk; --- 修改字符集为gbk
Query OK, 1 row affected (0.00 sec)mysql> show create database db1 \G --- 修改是全部覆盖式写入,我们只指明字符集,没有指明校验规则,就改为默认
*************************** 1. row ***************************Database: db1
Create Database: CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET gbk */
1 row in set (0.00 sec)
mysql并没有提供自带的修改数据库名的操作,一种常见的做法是创建一个新的数据库,然后将旧数据库中的表结构和数据逐一导入到新数据库中,最后删除旧数据库。这样可以达到“修改”数据库名的效果。
删除数据库
DROP DATABASE [IF EXISTS] db_ name;
执行删除之后的结果:
- 数据库内部看不到对应的数据库 对应的数据库文件夹被删除,
- 级联删除,里面的数据表全部被删
(慎用)
mysql> create database test; --- 创建一个数据库test
Query OK, 1 row affected (0.00 sec)mysql> show databases like 'test'; --- 查看数据库,like:在所有结果中匹配名为test的数据库(用一下,后面会讲)
+-----------------+
| Database (test) |
+-----------------+
| test | --- 找到一个
+-----------------+
1 row in set (0.00 sec)mysql> drop database test; --- 删除数据库 test
Query OK, 0 rows affected (0.00 sec)mysql> show databases like 'test'; --- 再找,没找到
Empty set (0.00 sec)
备份
- 备份
语法:
[root@VM-4-11-centos ~]# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
-P3306:端口号
[root@VM-4-11-centos ~]# mysqldump -P3306 -u root -p -B db1 > ./db1_code.sql
-- 提示输入mysql中root账号的密码
这时,可以打开看看 db1_code.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。
- 还原
mysql> source D:/mysql-5.7.22/mytest.sql;
注意事项
- 如果备份的不是整个数据库,而是其中的一张表,怎么做?
[root@VM-4-11-centos ~]# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
- 同时备份多个数据库
[root@VM-4-11-centos ~]# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。
查看连接情况
语法
show processlist;
mysql> show processlist;
+----+--------+-----------+-------+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+--------+-----------+-------+---------+------+----------+------------------+
| 3 | root | localhost | db1 | Sleep | 3710 | | NULL |
| 5 | kz1111 | localhost | db1_1 | Query | 0 | starting | show processlist |
+----+--------+-----------+-------+---------+------+----------+------------------+
2 rows in set (0.00 sec)
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。可以用这个指令来查看数据库连接情况。
总结
数据库不支持重命名,如果真的需要改名字,就把数据库进行备份,然后创建新库并导入即可。(一般用不到)
相关文章:
【MySQL库的操作】
目录: 前言库的操作创建数据库字符集和校验规则校验规则对数据库的影响 选择和查看数据库修改数据库删除数据库备份注意事项查看连接情况 总结 前言 剑指offer:一年又二天 库的操作 创建、选择、查看、修改、删除与备份。 创建数据库 CREATE DATABASE…...
rocketmq 集群环境部署及与spring cloud 集成
1 下载zip 安装包 rocketmq-all-5.1.4-bin-release.zip 2 修改启动配置,防止默认内存配置过高 runserver.sh/runbroker.sh/tools.sh 3 启动namesrv nohup sh bin/mqnamesrv >>namesrv.log & 4 启动brokerproxy 单点模式: nohup sh bin…...

SpringBoot——配置及原理
优质博文:IT-BLOG-CN 一、Spring Boot全局配置文件 application.properties与application.yml配置文件的作用:可以覆盖SpringBoot配置的默认值。 ◀ YML(is not a Markup Language:不仅仅是一个标记语言)࿱…...

fiddler抓包安卓
一、打断点 1、安卓手机和电脑在同一局域网下,手机连接的网络开启手动代理,ip填写电脑ip,端口填写fiddler中配置的端口。 ip查看: 端口配置:tools-options-connections 2、安装证书,手机浏览器输入电脑ip…...

Maven 进阶学习指南---setting详解
前言 当我们在开发项目时,有时需要用到外部依赖组件,例如当我们需要 Json 序列化的时候需要用到 FastJson 组件,我们可以通过下载对应 jar 包加载到项目中。但当一个大的项目同时需要依赖各种各样的外部服务,就存在着配置繁琐、依…...
人工智能与我们的生活
人工智能对我们的生活影响有多大 1. 人工智能的领域 人工智能涉及的领域广泛,包括但不限于: a. 医疗保健领域 人工智能在医疗诊断、药物研发、患者管理等方面发挥了重要作用。医疗影像分析、基因组学研究等都受益于人工智能技术,为医学领…...
前端将blob转换为可下载的url及下载
一.转换 //将blob转换为url const changeBlobToUrl blobData > {return new Promise(resolve > {//创建Blob对象const blob new Blob([blobData])// 创建FileReader对象const reader new FileReader()reader.onload function (e) {resolve(e.target.result)}// 使用F…...

LVS-DR实验
实验前准备 DR服务器:192.168.188.11 192.168.188.15 NFS服务器:192.168.188.14 Web服务器1:192.168.188.12 Web服务器2:192.168.188.13 Vip:192.168.188.188 客户端:192.168.188.200 配置负载均衡调度…...

MYSQL索引使用注意事项
索引使用注意事项: 1.索引列运算 不要在索引列上进行运算操作,否则索引将失效; 2.字符串不加引号 字符串类型使用时,不加引号,否则索引将失效; 3.模糊查询 如果仅仅是尾部模糊匹配,索引将不会失…...

深入理解Java中的String、StringBuilder和StringBuffer(每天一个技术点,第一天)
大家好,我是你们的博主每天一个技术点。今天,我们将探讨Java中的一个重要主题:String、StringBuilder和StringBuffer。这些类在Java编程中无处不在,但它们之间的区别和用法可能并不是所有人都清楚。所以,让我们深入了解…...
PHP逻辑运算符学习资料
PHP逻辑运算符 在PHP中,逻辑运算符用于组合和比较不同的逻辑条件。下面是PHP中常用的逻辑运算符示例: 1. 与运算符(&& 或 and) $age 25; $isStudent true;if ($age > 18 && $isStudent) {echo "You …...
深入解析CPU工作原理与细节
计算机是现代社会中不可或缺的工具,而CPU(中央处理器)则是计算机的核心组件。CPU负责执行指令和控制计算机的各种操作,它的性能直接影响着计算机的速度和效率。 1. CPU的基本结构 CPU通常由以下几个主要组成部分构成:…...

计算机网络(超详解!) 第二节 物理层(上)
1.物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 物理层的作用是要尽可能地屏蔽掉不同传输媒体和通信手段的差异。 用于物理层的协议也常称为物理层规程(procedure)。 2.物理层的主要任务 主要…...
c++ 打怪升级
内联函数 调用时,直接会把代码拷贝到调用处; 函数指针 可以类比数组 //内联函数 调用时直接将代码拷贝过来 inline const string& longerStr(const string &s1,const string & s2){return s1.size()>s2.size() ? s1:s2; }int main(i…...

代码随想录第十三天(一刷C语言)|翻转二叉树对称二叉树
创作目的:为了方便自己后续复习重点,以及养成写博客的习惯。 一、翻转二叉树 ledcode题目:https://leetcode.cn/problems/invert-binary-tree/ AC代码: /*** Definition for a binary tree node.* struct TreeNode {* int …...

Temu已成拼多多第二曲线
11月28日,拼多多公布最新一季业绩报告。三季度,该集团实现营收688.4亿元,同比增长93.9%;实现美国通用会计准则口径净利润155.4亿元,净利润率为22.6%。相比市场此前预测的营收537.7亿元、经调整净利润129.74亿元&#x…...

vue+el-tooltip 封装提示框组件,只有溢出才提示
效果 封装思路 通过控制el-tooltip的disabled属性控制是否提示通过在内容上绑定mouseenter事件监听内容宽度和可视宽度,判断内容是否溢出 封装代码 <template><div style"display: flex" class"column-overflow"><el-tooltip…...

GAN:PacGAN-生成对抗网络中两个样本的威力
论文:https://arxiv.org/pdf/1712.04086.pdf 代码:GitHub - fjxmlzn/PacGAN: [NeurIPS 2018] [JSAIT] PacGAN: The power of two samples in generative adversarial networks 发表:2016 一、摘要 1:GAN最重大的缺陷是…...

【面试】typescript
目录 为什么用TypeScript? TS和JS的区别 控制类成员可见性的访问关键字? public protected),该类及其子类都可以访问它们。 但是该类的实例无法访问。 私有(private),只有类的成员可以访问…...

初识向量数据库
背景 现在的数据分为20%的传统结构化数据,80%的非结构化数据 结构化数据:主要单元是数值与符号,数据类型高度抽象且易于组织。基于数值运算与关系代数,可以轻松地对结构化数据进行分析。 非结构化数据:常见的类型包括…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...