Mysql库操作

一:库的操作

1:创建数据库

mysql> create database test1;
Query OK, 1 row affected (0.00 sec)

mysql> create database test2 charset=utf8;
       create database test2 character utf8;

Query OK, 1 row affected (0.00 sec)

mysql> create database test3 charset=utf8 collate=utf8_general_ci;
       create database test3 character utf8 collate=utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

上面的字符集2种方式都可以

一共创建了3个数据库:

  • test1创建时没有指定字符集和校验集,会采用数据库默认字符集和校验规则。
  • test2创建时指定了字符集为utf8。
  • test3创建时指定了字符集和校验规则。

 2:字符集和校验规则

2.1:概念

字符集:数据库存储数据的编码集。

校验规则:数据库进行字段比较所用的编码集,也就是读取数据库时采用的编码集。

2.2:查看系统默认的字符集和校验规则

 2.3:查看数据库支持的字符集和校验规则

show charset;
show collation

2.4:查看当前数据库采用的字符集和校验规则

cd /var/lib/mysql/数据库名

cat db.opt

我们再创建一个数据库,使用的校验规则采用区分大小写。

test3:

test4:

因此我们可以得出结论,创建数据库的字符集和校验集采用就近原则,如果不指定,就采用数据库默认的字符集和校验集。

 2.5:字符集和校验集对数据库的影响

可以看到test3采用的不区分大小写,查询出来的a大小写都有。

而对test4进行查询只能查到小写的。

因此字符集是存储时采用的一种编码格式,校验集是在读取数据库时进行字段比较时采用的一种编码规则。

3:查看数据库

mysql> show databases;//查看有什么数据库
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| README_TO_RECOVER_A |
| jfhelloworld        |
| mysql               |
| performance_schema  |
| sys                 |
| test1               |
| test2               |
| test3               |
| test4               |
+---------------------+
10 rows in set (0.00 sec)

mysql> show create database test1;//查看创建数据库时的语句
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| test1    | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select database();//查看当前正在使用哪个数据库
+------------+
| database() |
+------------+
| test4      |
+------------+
MySQL 建议我们关键字使用大写,但是不是必须的。
数据库名字的反引号 ``, 是为了防止使用的数据库名刚好是关键字

/*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话  

 4:修改数据库

mysql> alter database test3 collate utf8_bin;#修改校验规则
Query OK, 1 row affected (0.00 sec)

5:删除数据库

#删除数据库————本质是在/var/lib/mysql中删除一个目录
#不建议直接删除数据库,建议备份后删除
mysql> drop database database1;
Query OK, 0 rows affected (0.01 sec)

 6:备份数据库

mysql> mysqldump -P 3306 -u root -p -B test3 > /home/wjw/test3.sql;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysqldump -P 3306 -u root -p -B test3 > /home/wjw/test3.sql' at line 1
注意,备份数据库的时候不能在mysql中使用,因为这是一个操作系统的bash。所以要退出数据库连接再使用。

 我们先进入/var/lib/mysql目录下

使用指令

# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
[root@hcss-ecs-efdb mysql]# mysqldump -P 3306 -uroot -p -B test3 > /home/wjw/test3.sql
Enter password: 
打开备份的文件
可以看到备份其实是把我们整个创建数据库,建表,导入数据的语句都装载这个文
件中。

7:还原数据库

bash: test3.sql: line 1: syntax error near unexpected token `('
bash: test3.sql: line 1: `-- MySQL dump 10.13  Distrib 5.7.43, for Linux (x86_64)'

 报错是因为还原指令是mysql的语句,不是bash。所以要先连接到数据库才行。

mysql> source /home/wjw/test3.sql;
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Database changed
Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 5 rows affected (0.01 sec)
Records: 5  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

实际上备份和恢复都是采用query的形式,也就是备份query语句,通过query再重新创建。

8:备份一个或多个表或者多个数据库

#仅备份几张张表
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

#同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

9:查看数据库连接情况

记住是在mysql中查询。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

差生文具多之(一)eBPF

前言 在问题排查过程中, 通常包含: 整体观测, 数据采集, 数据分析这几个阶段. 对于简单问题的排查, 可以跳过前两个步骤, 无需额外收集数据, 直接通过分析日志中的关键信息就可以定位根因; 而对于复杂问题的排查, 为了对应用的行为有更完整的了解, 可以通过以下形式收集更多的…

掌握Maven和SpringBoot的灵活性:定制化lib目录和依赖范围

前言 在开发基于Maven和SpringBoot的项目时,我们经常会使用第三方库来满足需求。然而,有时候我们需要更灵活地控制这些库的依赖范围和加载方式。本文将介绍如何使用Maven和SpringBoot实现定制化的lib目录和依赖范围。经过如下定制化后,打包执…

【算法 | 哈希表 No.2】leetcode 219. 存在重复元素II

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

JVM类的声明周期

文章目录 版权声明生命周期概述加载阶段查看内存中的对象 连接阶段连接阶段之验证连接阶段之准备连接阶段之解析 初始化阶段练习题目一练习题目二练习题目三练习题目四 使用阶段卸载阶段总结 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明…

Microsoft Edge不能工作了,可能原因不少,那么如何修复呢

Microsoft Edge打不开或不能加载网页是用户在Windows 10、Android、Mac和iOS设备上的网络浏览器上遇到的许多错误之一。其他Microsoft Edge问题可能包括浏览器窗口和选项卡冻结、网站崩溃、互联网连接错误消息以及丢失Microsoft Edge书签、收藏夹、密码和收藏。 Microsoft Edg…

【安全】Java幂等性校验解决重复点击(6种实现方式)

目录 一、简介1.1 什么是幂等?1.2 为什么需要幂等性?1.3 接口超时,应该如何处理?1.4 幂等性对系统的影响 二、Restful API 接口的幂等性三、实现方式3.1 数据库层面,主键/唯一索引冲突3.2 数据库层面,乐观锁…

学习Opencv(蝴蝶书/C++)相关——1. 前言 和 第1章.概述

文章目录 1. 整体架构1.1 OpenCV3.01.2 Opencv4.xX. 在线文档X.1 Opencv cheatsheet(小抄)1. 整体架构 1.1 OpenCV3.0 对于Opencv3.x版本,网上最常见的图,图自OpenCV Tutorial-Itseez 现在已经不是500+的算法了,而是2500+,详见:About

STM32G030F6P6 芯片实验 (二)

STM32G030F6P6 芯片实验 (二) Hello World - GPIO LED 尝试了下, 从 0 开始建 MDK HAL M0plus Project, 成功点亮 LED了。 但是 ST-LINK跑着跑着, 码飞了! 不知飞哪去了。 只好拿 MX 建了个 MDK Base。 呼叫 SysTick HAL_Delay(), 切换 LED。 基本上都是一样的用法, 只是换…

ICCV2023 Tracking paper汇总(一)(多目标跟随、单目标跟随等)

一、PVT: A Simple End-to-End Latency-Aware Visual Tracking Framework paper: https://openaccess.thecvf.com/content/ICCV2023/papers/Li_PVT_A_Simple_End-to-End_Latency-Aware_Visual_Tracking_Framework_ICCV_2023_paper.pdf github: https://…

java EE 进阶

java EE 主要是学框架(框架的使用,框架的原理) 框架可以说是实现了部分功能的半成品,还没装修的毛坯房,然后我们再自己打造成自己喜欢的成品 这里学习四个框架 : Spring ,Spring Boot, Spring MVC, Mybatis JavaEE 一定要多练习,才能学好 Maven 目前我们主要用的两个功能: …

图像新型拼接

道路摄像头拼接 拼接道路上的摄像头,比较麻烦,如图所示 前后的摄像头都是如此,那么如何拼接摄像头画面呢,像下面这样拼接 测试代码 测试一下代码,使用python import cv2 import numpy as npimg cv2.imread("…

antv/g6之交互模式mode

什么是mode 在 AntV G6 中,“mode” 是用于配置图表交互模式的一种属性。通过设置 “mode”,可以控制图表的行为,以满足不同的交互需求。可能在不同的场景需要展现的交互行为不一样。比如查看模式下点击一个点就选中的状态,在编辑…

数据可视化:折线图

1.初看效果 (1)效果一 (2)数据来源 2.JSON数据格式 其实JSON数据在JAVA后期的学习过程中我已经是很了解了,基本上后端服务器和前端交互数据大多是采用JSON字符串的形式 (1)JSON的作用 &#…

本地idea远程调试服务器程序

本文主要介绍idea本地调试远程服务器程序的方式。相信很多同行跟我一样,在最初接触公司项目的时候,遇到测试提出的缺陷,往往会在本地进行调试、替换jar包远程调试等方式,本地调试往往会导致数据和环境不一致的问题使得问题无法复现…

没想到这么齐全!这份 Python 实战干货yyds

今天我分享一些Python学习神器资料,有需要的小伙文末自行免费领取。 1.200Python练手案例: 2.Python全套视频教程等: 3.浙大Python学习套装: * 4.Python实战案例: 5.Pandas学习大礼包 6.学习手册大礼包 Python知识…

CSAPP BOMB LAB part3

CSAPP BOMB LAB part3 phase_4 bomb.s phase_4的代码: 格式: 40102e行,比较0x8rsp的值和0xe, 需要让0x8rsp小于0xe, 然后跳转到40103a, func函数根据bomb.s 转化为c代码: 这个直接参考了知乎网友的翻译, func4的返回值等于0, 跳转到40…

分治法——找众数

分治法——找众数 要求: 寻找整数数组的众数,如果存在多个众数,则返回权值最小的那个 第一步: 要利用分治法找众数,首先就先要使数组有序。这里,我们用C语言库中的qsort进行快排: qsort(nums…

3D高斯泼溅(Splatting)简明教程

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 3D场景编辑器 3D 高斯泼溅(Splatting)是用于实时辐射场渲染的 3D 高斯分布描述的一种光栅化技术,它允许实时渲染从小图像样…

直流无刷电机(BLDC)六步换相驱动

直流无刷电机(BLDC)六步换相驱动 文章目录 直流无刷电机(BLDC)六步换相驱动1. 前言2. 六步换相原理3. 电角度与机械角度4. 动手实践4.1 霍尔输出表测量4.2 换向控制4.3 代码编写 5. 总结 1. 前言 直流无刷电机相对直流有刷电机具…

Redis之Java操作Redis的使用

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《Redis实战开发》。🎯🎯 …