『 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的连接状态;

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

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

相关文章

【ES专题】ElasticSearch功能详解与原理剖析

目录 前言要点阅读对象阅读导航前置知识笔记正文一、ES数据预处理1.1 Ingest Node:摄入节点1.2 Ingest Pipeline:摄入管道1.3 Processor:预处理器——简单加工1.4 Painless Script:脚本——复杂加工1.5 简单实用案例 二、文档/数据…

网际报文协议ICMP及ICMP重定向实例详解

目录 1、ICMP的概念 2、ICMP重定向 3、利用ICMP重定向进行攻击的原理 4、如何禁止ICMP重定向功能? 4.1、在Linux系统中禁用 4.2、在Windows系统中禁用 5、关于ICMP重定向的问题实例 VC常用功能开发汇总(专栏文章列表,欢迎订阅&#xf…

数据结构与算法—插入排序选择排序

目录 一、排序的概念 二、插入排序 1、直接插入排序 直接插入排序的特性总结: 2、希尔排序 希尔排序的特性总结: 三、选择排序 1、直接选择排序 时间复杂度 2、堆排序—排升序(建大堆) 向下调整函数 堆排序函数 代码完整版: …

VUE多语言i18n配置

1、i18n官网 格式化 | Vue I18n 2、安装i18n 8---指版本号 // vue2必须安装8版本的i18n包,vue3必须安装9版本的i18n包。 npm i vue-i18n8 3、卸载i18n npm uninstall vue-i18n 4、安装 js-cookie npm install vue-cookies --save 5、代码 5.1 main.js /…

GPT出现了Something went wrong.

网络上的一种说法如下

数据结构(超详细讲解!!)第二十二节 广义表

1.定义 广义表,顾名思义,也是线性表的一种推广。广义表被广泛地应用于人工智能等领域的表处理语言LISP语言中。在LISP语言中,广义表是一种最基本的数据结构,就连LISP 语言的程序也表示为一系列的广义表。 广义表又称列表&#x…

11.(vue3.x+vite)组件间通信方式之ref与$parent、$children

前端技术社区总目录(订阅之前请先查看该博客) 示例效果 注: (1)ref 加在标签(div等)上,是拿到dom 对象 (2)ref加上组件上,拿到的是组件的引用 (3)让父组件获取子组件的数据或者方法需要通过defineExpose对外暴露,另外让父组件获取子组件的数据或者方法需要通过d…

NIO 笔记(一)基础内容

【笔记来自:it白马】 NIO基础 **注意:**推荐完成JavaSE篇、JavaWeb篇的学习再开启这一部分的学习,如果在这之前完成了JVM篇,那么看起来就会比较轻松了。 在JavaSE的学习中,我们了解了如何使用IO进行数据传输&#xf…

C语言每日一题(27)链表中倒数第k个结点

牛客网 链表中倒数第k个结点 题目描述 描述 输入一个链表,输出该链表中倒数第k个结点。 思路分析 这是一道经典的快慢指针题,fast和slow最开始都指向头结点,对于输入值k,先让快指针fast先走k步,之后再让两个指针一…

ABAP Json和对象的转换

se24新建类ZCL_JSON保存 点击修改,进入下图界面,点击红框。 复制粘贴下面代码 CLASS zcl_json DEFINITIONPUBLICCREATE PUBLIC .PUBLIC SECTION. *"* public components of class ZCL_JSON *"* do not include other source files here!!!TYP…

某银行软件测试笔试题,满分一百你能得多少分?

(时间90分钟,满分100分) 考试要求:计算机相关专业试题 一、填空题(每空1分,共10分) 1. ______验证___是保证软件正确实现特定功能的一系列活动和过程。 2. 按开发阶段分,软件测试可…

超全总结!大模型算法面试指南(含答案)

大家好,从 2019 年的谷歌 T5 到 OpenAI GPT 系列,参数量爆炸的大模型不断涌现。可以说,LLMs 的研究在学界和业界都得到了很大的推进,尤其去年 11 月底对话大模型 ChatGPT 的出现更是引起了社会各界的广泛关注。 近些年&#xff0…

简述扫码登录原理及测试要点

扫码登录本质是解决将APP端的用户登录信息(通常是Token)通过扫码的形式安全稳定地同步给Web端。 操作流程: 打开登录页面,展示一个二维码(web);打开APP扫描该二维码后,APP显示确认、取消按钮(app)&#xf…

上市公司-赫芬达尔指数(2000-2022年)(数据+2种结果)

上市公司-赫芬达尔指数(HHI)可衡量一个公司在市场中的相对份额或集中度。它是由每家公司在市场中份额的平方和得到的。指数值越高,表示该市场或行业的集中度越高,竞争可能相对较小;而指数值越低,则意味着该…

uni-app学习笔记(二)

目录 一、路由与页面跳转 1、tabar与普通页面跳转例子 2、navigateTo 3、switchTab 二、vue组件 1、传统vue组件的使用 2、easycom 三、uView组件库 1、安装配置 2、引入配置 3、使用 四、Vuex 1、认识 2、state基本使用 3、mapState使用 五、网络请求 1、封装…

Maven简介

一、Maven模型 二、模型实现 三、对应代码项目介绍

JAVA开源项目 于道前端项目 启动步骤参考

1. 安装 启动过程有9个步骤: 1.1 安装 Node JS , V18版本的 (安装步骤省略) 1.2 安装 npm install -g yarn ,node JS里边好像自带npm ,通过npm的命令安装 yarn 1.3 切换到项目中去安装,npm install &a…

Android Glide transform旋转rotate圆图CircleCrop,Kotlin

Android Glide transform旋转rotate圆图CircleCrop,Kotlin import android.graphics.Bitmap import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import com.bumptech.glide.load…

[第二章—Spring MVC的高级技术] 2.2 置multipart解析器

使用Servlet 3.0解析multipart请求 兼容Servlet 3.0的StandardServletMultipartResolver没有构 造器参数,也没有要设置的属性。 这样,在Spring应用上下文中,将 其声明为bean就会非常简单,如下所示: ● 既然这个Bean方…

将Modbus转Profinet网关用于自动给料机的案例

自动给料机通过使用Modbus转Profinet网关(XD-MDPN100)连接1200PLC与G120变频器Modbus通信。这种通信方式可以实现设备之间的数据交换和控制命令传输,大大提高了自动给料机的运行效率和精度。使用这个网关,1200PLC可以准确地将控制…