『 MySQL数据库 』数据库基础之库的基本操作

文章目录

  • 库的操作
    • 创建数据库
      • 字符集与校验集
        • 那么该如何查看当前数据库默认的字符集与校验规则?
        • 查看数据库所支持的字符集与校验集
        • 不同字符集(校验集)之间的区别
    • 基本操作
      • 查看数据库
      • 显式数据库创建语句
      • 数据库的修改
      • 数据库的删除
      • 数据库的备份
      • 检查连接

库的操作

创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name [[create_specification],[create_specification]......]create_specification:
[DEFAULT] CHARACTER SET charset_name #编码集
[DEFAULT] COLLATE collation_name	#校验集

以上即为创建数据库的基本语法

其中:

  • 大写字母表示关键字 当然在MySQL中关键字不区分大小写;

  • []表示 可选项(若是不需要可选项即可默认建库);

    CREATE DATABASE db_name;

  • CHARACTER SET:表示指定数据库采用的字符集;

  • COLLATE:表示指定数据库字符集的校验集;

例:

CREATE DATABASE IF NOT EXISTS test1 CHARACTER SET utf8; #建立一个字符集为utf8的test1数据库;
CREATE DATABASE IF NOT EXISTS test2 CHARSET=utf8 COLLATE utf8_general_ci;#建立一个字符集为utf8且校验集为utf8_general_ci的test2数据库;

字符集与校验集

数据库主要用两个编码集,分别为字符集校验集;

  • 数据库编码集

    所谓字符集即为数据存入数据库时的编码形式(写);

  • 数据库校验集

    所谓数据库校验集即为支持数据库字段比较所使用的编码,本质上也是读取数据时所采用的格式(读);

但实际上在操作中,无论是什么操作,都需要尽量要使编码一致;

假设编码集采用utf-8而校验集采用gbk则可能出现未知的错误;

那么该如何查看当前数据库默认的字符集与校验规则?
show variables like 'character_set_database'; #查看默认字符集
show variables like 'collation_database'; #查看默认校验规则

而实际上在对/etc/my.cnf的mysql的配置文件中就已经配置了默认的编码格式为utf-8;


查看数据库所支持的字符集与校验集

除了查看默认的字符集与校验集以外还可以查看数据库所支持的字符集与校验集;

show charset; #查看数据库所支持的字符集
show collation; #查看数据库所支持的校验集


不同字符集(校验集)之间的区别

假设存在test1test2两个数据库;

其中两个数据库的字符集都为utf8;

test1数据库的校验集为utf8_general_ci[不区分大小写],test2数据库的校验集为utf8_bin[区分大小写];

同时都建立一个名为Person的表;

其表内数据如下:;

可使用SELECT * FROM Person来读取表内数据(前提是先得use该数据库);

同时也可使用SELECT * FROM Person WHERE name='a';来指定显式对应的数据;

在这里插入图片描述
在这里插入图片描述

这两张图表示了校验集的不同对库中数据中的影响;

  • 同时也可以使用SELECT * FROM Person ORDER BY name;

    显式该表以name属性升序排序之后的结果;

由于校验集的不同导致读取数据时状态的不同;

虽然都是以升序排序,但是utf8_general_ci校验集不区分大小写,默认根据大小写的升降顺序进行排序;

utf8_bin区分大小写,即根据ASCII码进行排序;



基本操作

查看数据库

查看数据库时可使用SHOW DATABASES;进行查看;

若是不知道当前所使用数据库是哪个则可以调用SELECT DATABASE()进行查看;


显式数据库创建语句

若是想知道数据库的创建语句则可以调用SHOW CREATE DATABASE db_name;进行查看;

其中db_name代表数据库名;

在这里必须注意两个点:

  • 该显示中的'test1'中的''是防止该数据库名正好为数据库语句中的关键字;

  • /*!40100 DEFAULT CHARACTER SET utf8*/并不是注释的意思;

    而是:若是你的MySQL版本大于40100则执行该语句;


数据库的修改

这里的数据库的修改主要是对数据库的字符集以及校验集进行修改;

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

例:ALTER DATABASE test2 CHARSET=gbk COLLATION gbk_chinese_ci;


数据库的删除

数据库的删除的语法为DROP DATABASE [IF EXISTS] db_name;

  • 其中[]内为可选项;
  • 当数据库被删除时,数据库内的表以及数据都将被删除(建议尽量不要删除数据库);

数据库的备份

备份

数据库的备份语法为

# mysqldump -P3306 -uroot -p密码 -B数据库名 > 备份路径

例:# mysqldump -P3306 -uroot -p -B test2 > ./test2.sql(当前目录为/home/_User/MySQL,由于备份至当前目录,所以目录只需要到.);


当然也可以进入该备份文件查看:

实际上所备份的为历史中对该数据库操作的各种有效操作;


恢复

恢复(导入)数据库的语法为

mysql> SOURCE 路径

例如: mysql> SOURCE /home/_User/MySQL/test2.sql;

当数据库导入回的时候,会在数据库内进行备份的数据库中进行的所有操作;


备份表

若是备份的是表的话,指令即为:

\# mysqldump -u root -p 数据库名 表名1 表名2 > 保存路径;

与备份库与之不同的是,备份表时并不需要-B指令;

-B指令表示建库的操作,若是不指明-B选项则不会保留建库操作;


备份多个库

当备份多个库时指令即为

# mysqldump -P3306 -uroot -p -B db1_name db2_name > 保存路径

需要注意:若是在备份数据库时没有指明-B,则在恢复的时候需要先建库,再进行恢复!!!


检查连接

检查连接的指令为

SHOW PROCESSLIST;

该指令用于查看MySQL的连接状态;

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

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

相关文章

APISpace IP归属地查询接口案例代码

1.IP归属地查询API 1.1 API接口简介 IP归属地查询API:根据IP地址查询归属地信息,包含国家、省、市、区县和运营商等信息。APISpace 提供了IPv4 和 IPv6 的IP归属地查询接口,并且包含了各种归属地精度查询的接口。 1.2 IPv4 IPv4归属地查询…

51单片机+SIM800C(GSM模块)实现短信发送功能

一、前言 本项目利用51单片机和SIM800C GSM模块实现短信发送功能。短信作为一种广泛应用的通信方式,在许多领域具有重要的作用,如物联网、安防系统、远程监控等。通过将51单片机与SIM800C GSM模块相结合,可以实现在各种应用场景下的短信通信…

IDEA 设置 Git 在左侧展示

File->settings->Version Control->commit 勾选 Use non-model commit interface

vue.js实现科室无限层选中和回显

一、效果展示&#xff1a; 展示可选层级 查看选中的值 二、实现&#xff1a; <el-form-item label"相关科室:" prop"orgId"><el-cascaderpopper-class"cascader-my":options"orgOptions":show-all-levels"false"…

【ARM Trace32(劳特巴赫) 使用介绍 2 - Veloce 环境中使用trace32 连接 Cortex-M33】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 T32MARM 介绍Trace32 .t32 和 .cmm 差异veloce 下启动TRACE321.1.3 TAP 状态机操作命令1.1.3.1 IDCODE&#xff08;Identification Code&#xff09;寄存器 介绍 T32MARM 介绍 T32MARM 是 Lauterbach 的 Trace32 …

Android ConstraintLayout

0dp 充满约束 to左侧是控件本身,to右边是约束条件 例如: app:layout_constraintBottom_toBottomOf"id/image_1" app:layout_constraintTop_toBottomOf"id/image_1" 指定权重: app:layout_constraintHorizontal_weight"" app:layout_constra…

调试 Mahony 滤波算法的思考 10

调试 Mahony 滤波算法的思考 1. 说在前面的2.Mahony滤波算法的核心思想3. 易懂的理解 Mahony 滤波算法的过程4. 其他的一些思考5. 民间 9轴评估板 1. 说在前面的 之前调试基于QMI8658 6轴姿态解算的时候&#xff0c;我对Mahony滤波的认识还比较浅薄。初次的学习和代码的移植让…

电路布线问题动态规划详解(做题思路)

对于电路布线问题&#xff0c;想必学过动态规划的大家都很清除。今天就来讲解一下这个动态规划经典题目。 目录 问题描述输入分析最优子结构代码 问题描述 在一块电路板的上、下2端分别有n个接线柱。根据电路设计&#xff0c;要求用导 线(i,π(i))将上端接线柱与下端接线柱相…

与set和map相关的OJ题练习

一、两个数组的交集 题目链接&#xff1a; 349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给两个数组&#xff0c;求在数组里面共同出现的部分&#xff0c;就是求两个数组的交集&#xff0c;返回顺序不做要求 解题思路&#xff1a; …

技术分享 | web自动化测试-PageObject 设计模式

为 UI 页面写测试用例时&#xff08;比如 web 页面&#xff0c;移动端页面&#xff09;&#xff0c;测试用例会存在大量元素和操作细节。当 UI 变化时&#xff0c;测试用例也要跟着变化&#xff0c; PageObject 很好的解决了这个问题。 使用 UI 自动化测试工具时&#xff08;包…

ppt聚光灯效果

1.放入三张图片内容或其他 2.全选复制成图片 3.设置黑色矩形&#xff0c;透明度30% 4.粘贴复制后的图片&#xff0c;制定图层 5.插入椭圆&#xff0c;先选中矩形&#xff0c;再选中椭圆&#xff0c;点击绘图工具&#xff0c;选择相交即可&#xff08;关键&#xff09;

Spring Boot 请求/actuator/beans 无法访问 返回404

问题复现 在保证项目加入了spring-boot-starter-actuator依赖&#xff0c;并成功启动后。通过浏览器进行访问&#xff0c;返回如下图结果&#xff1a; 问题排查 1. 查看日志 从日志中可以看到基于路径’/actuator’下只暴露了一个端点 2. 访问http://localhost:8080/actua…

C# OpenCvSharp 环形文字处理 直角坐标与极坐标转换

效果1 效果2 项目 代码 using OpenCvSharp; using System; using System.Drawing; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_Demo {public partial class frmMain : Form{public frmMain(){InitializeComponent();}string fileFilter "*.*…

1. Collection,List, Map, Queue

1. java集合框架体系结构图 2. Collection派生的子接口 其中最重要的子接口是&#xff1a; 1&#xff09;List 表示有序可重复列表&#xff0c;重要的实现类有&#xff1a;ArrayList, LinkedList ArrayList特点&#xff1a;底层数组实现&#xff0c;随机查找快&#xff0c;增删…

facebook分享-错误记录

无法拉起分享 "code":30000,"msg":"fail:API_ERROR: API_ERROR" 1.确认facebook的app_id是否一致 2.确认是否在app_id应用的白名单里&#xff0c;注册meta开发者&#xff0c;然后把主页的user_id给管理员加 A ContentProvider for this app was…

小程序发成绩

在这个数字化快速发展的时代&#xff0c;让学生能够方便快捷地获取自己的成绩已经成为一项基本的需求。那么&#xff0c;如何实现这一目标呢&#xff1f;对于许多老师来说&#xff0c;可能首先想到的是使用各种代码或者Excel来发布成绩查询。今天&#xff0c;我们就来探讨一下这…

基于SSM的劳务外包管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

RK3568平台开发系列讲解(音视频篇)RTMP 推流

🚀返回专栏总目录 文章目录 一、RTMP 的工作原理二、RTMP 流媒体服务框架2.1、Nginx 流媒体服务器2.2、FFmpeg 推流沉淀、分享、成长,让自己和他人都能有所收获!😄 📢目前常见的视频监控和视频直播都是使用了 RTMP、RTSP、HLS、MPEG-DASH、 WebRTC流媒体传输协议等。 R…

基于SSM的图书管理借阅系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…