mysql 库的操作

news2025/1/20 5:49:15

请添加图片描述

文章目录

  • mysql 库的操作
      • 1. 创建数据库
        • 创建数据库案例
      • 2. 字符集和校验规则
        • 查看系统默认的字符集合校验规则
        • 查看数据库支持的字符集
        • 查看数据库支持的字符集较验规则
        • 校验规则对数据库的影响
      • 3. 操作数据库
        • 查看数据库
        • 显示创建语句
        • 修改数据库
        • 删除数据库
        • 查看数据库连接情况

mysql 库的操作

1. 创建数据库

创建数据库的指令:

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

说明

  • 大写的表示关键字

  • [] 是可选项

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

  • COLLATE: 指定数据库字符集的校验规则

创建数据库案例

创建一个名为hellomysql的数据库

create database hellomysql; 

注: sql语句后面都需要带

可以看到我们数据hellomysql已经创建成功了,而实际上在mysql中创建一个数据库,实际上是在创建一个目录,而这些数据库文件都是放在我们自己所配置的路径下的;配置文件通常就是 ./etc/my.cnf下

下面是我的配置文件,可以看到我是将数据库文件默认存放在

/www/server/data

下的,我们切换到该路径下查看一下

可以看到在data目录下确实创建了我们的hellomysql目录,而实际上我们在数据库中创建一个表结构就是在当前数据库目录下创建一个文件

2. 字符集和校验规则

查看系统默认的字符集合校验规则

show variables like 'character_set_database';
show variables like 'collation_database';

说明:

  • **character_set_database : ** 字符集合
  • collation_database: 校验规则

从上面可以看出来:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ ci

查看数据库支持的字符集

指令

show charset;

注: 字符集主要是控制用什么语言。比如utf8就可以使用中文

查看数据库支持的字符集较验规则

sql语句:

show collation;

可以看到数据库支持的字符集校验规则还是十分多的

校验规则对数据库的影响

字符集编码格式和字符集校验规则的区别

  • 字符集编码格式指的是在存储数据时各个字符的底层编码,用于指定数据的存储格式。
  • 字符集校验规则是在字符集内用于比较字符的一套规则,作用就是对数据进行比对。

例如:我们存储数据时使用的格式是utf8,那么在对数据进行做对比时就也得按照utf8的格式进行对比,因为“存数据”和“取数据”的方式必须要保持一致

mysql中字符集和校验规则的对应关系

  • 每个校验规则唯一对应一种字符集,但一个字符集可以对应多种校验规则,其中有一个是默认(Default Collation);

  • 确定比较规则后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系;

校验规则对数据库的影响

命名惯例:以对应的字符集名称开头;以 _ci(表示大小写不敏感)_cs(表示大小写敏感)_bin(表示按编码值比较)结尾

例子:

我们创建一个数据库,校验规则适用utf8_general_ci

而后适用use切换到当前数据库下(可以理解为cd 到test1 目录下),创建一个表结构,而后插入数据,如下:

查看表里面的数据

筛选名字为curry的数据

select * from person where name = 'curry' ;

我们发现查询结果是不区分大小的

而我们再创建一个数据库test2 校验规则为collate utf8_bin

create database test2 collate utf8_bin;

如下:

我们再像上面一样,先切换到数据库test2(要想在对应的数据库下创建表结构,都得先切换到该数据库下),再插入同样的数据;如下:

我们查看插入的数据和筛选出名字为“curry"的人,查看是否区分大小写;如下:

我们会发现在校验规则为utf8_bin下,是区分大小写的

3. 操作数据库

查看数据库

show databases;

如下:

显示创建语句

show create database 数据库名;

例:

说明:

  • MySQL 建议我们关键字使用大写,但是不是必须的。

  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字

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

修改数据库

语法:

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

说明:

对数据库的修改主要指的是修改数据库的字符集,校验规则

例子:

将数据库test1 的数据库字符集改成gdk ;如下:

删除数据库

就是我们平时俗称的”删库跑路“

语法:

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

  • 数据库内部看不到对应的数据库

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

**注意:**不要随意删除数据库

下面演示将刚才创建出来的test1 删除;

查看数据库连接情况

语法:

show processlist

例:

  • 说明:

  • Id列:一个标识,可以在MySQL中通过kill id杀死指定id的线程。

  • User列:显示当前用户,如果不是root,这个命令就只显示你权限范围内

    SQL语句。

  • Host列:显示这个语句是从哪个IP的哪个端口上发出的,可用来追踪出问题语句的用户。

  • db列:当前执行的命令是在哪一个数据库上,如果没有指定数据库,则该值为NULL。

  • Command列:显示当前连接执行的命令,一般就是休眠(Sleep)、查询(Query)和连接(Connect)。

  • Time列:表示该线程处于当前状态的时间,单位是秒。

  • State列:显示使用当前连接的SQL语句的状态。

  • Info列:一般记录的是线程执行的语句,默认只显示前100个字符,如果要看全部信息,需要使用show full processlist。

当前执行的命令是在哪一个数据库上,如果没有指定数据库,则该值为NULL。

  • Command列:显示当前连接执行的命令,一般就是休眠(Sleep)、查询(Query)和连接(Connect)。

  • Time列:表示该线程处于当前状态的时间,单位是秒。

  • State列:显示使用当前连接的SQL语句的状态。

  • Info列:一般记录的是线程执行的语句,默认只显示前100个字符,如果要看全部信息,需要使用show full processlist。

show processlist可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

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

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

相关文章

强化学习:值迭代和策略迭代

值迭代 通过上一章的学习,我们知道了贝尔曼最优方程的求解实际上分两部分,一是给定一个初始值 v k v_k vk​ 找到最优策略 π k 1 π_{k1} πk1​ ,二是更新 v k 1 v_{k1} vk1​   下面,我们将详细剖析这个算法&#xff0…

Java字节流battle字符流

目录 Java字节流(Byte Stream) FileInputStream和FileOutputStream Java字符流(Character Stream) FileReader和FileWriter 如何在使用是区分什么时候用输出什么时候用输入 Write方法 close方法 Java中的close方法本身抛出…

基本定时器工作模式

计数和定时 BasicTimer支持8位或16位向上计数模式。当计数值大于等于比较寄存器(CMPH、CMPL),会产生计数中断标志,并从自动重载寄存器(LOADH、LOADL)加载新的比较值。这样可以实时调整每个计数周期的计数长…

python自动化测试-最常用的自动化测试框架

在开始学习python自动化测试之前,先了解目前市场上的自动化测试框架有哪些? 随着技术的不断迭代更新,优胜劣汰也同样发展下来。从一开始工具型自动化,到现在的框架型;从一开始的能用,到现在的不仅能用&…

Qt6.5 grpc组件使用 + golang grpc server示例

1. 资料 1) Protobuf 开发文档 https://protobuf.dev/ 2) protobuf安装指南 https://grpc.io/docs/protoc-installation/ 3) protoc 下载 https://github.com/protocolbuffers/protobuf/releases/tag/v23.1 2. Qt grpc 组件 & 工具 1) Qt6.5 安装目录下 xx\Qt\6.5.…

实验7 多用户界面、菜单以及对话框程序设计

实验内容 1.设计一个具有两个页面的程序,第一个页面显示一张封面的图片,第二个页面显示“欢迎进入本系统”,这两个页面之间能相互切换。    2.设计一个具有3个选项的菜单程序,当单击每个选项时,分别跳转到3个不同的页面。 3.设…

快速搭建一个 Kubernetes+Crane 环境,以及如何基于 Crane 优化你的集群和应用初体验

文章目录 一、活动介绍二、环境搭建三、安装本地的 Kind 集群和 Crane 组件四、界面截图五、主要功能六、整体架构七、Crane的优势八、总结参考文献 一、活动介绍 Crane 是由腾讯云主导开源的国内第一个基于云原生技术的成本优化项目,遵循 FinOps 标准,…

零基础如何入门网络安全?一般人还真不行

前景 很多零基础朋友开始将网络安全作为发展的大方向,的确,现如今网络安全已经成为了一个新的就业风口,不仅大学里开设相关学科,连市场上也开始大量招人。 那么网络安全到底前景如何?大致从市场规模、政策扶持、就业…

信息收集-目录信息

(一)目录结构 网页的目录结构跟整个网站的布局有关,收集到的信息可以包括目录名称、目录结构、目录所包含的文件、文件类型、文件大小等。收集到的信息有助于评估网站的安全性、了解网站的架构和目录结构,甚至可能有助于发现敏感…

3个月出国|材料科学老师自费赴韩国访学

K老师指定韩国为访学的目标国家,希望专业匹配,尽快出国。最终我们获得了韩国庆北大学的邀请函,其学校名气、专业匹配度及导师影响力都符合K老师的要求。本案例从开始委托我们申请到最终出国,仅仅用时3个月。 K老师背景&#xff1a…

基于pytest的接口测试框架详解,一定有你想知道的

目录 需求一:一套用例可以测试多套环境 需求二: 可以被jenkins调度执行 需求三 拥有测试报告 需求四:接口中某些字段值在每次请求中不重复 需求五: 可以多接口关联测试 需求六 构造的表数据可以和接口字段数据关联 需求七 pytest用例和…

java内部类和异常类1

文章目录 一、Java内部类二、Java匿名类总结 一、Java内部类 成员变量和方法,实际上,类还有一种成员:内部类。在一个类中定义另一个类,我们把这样的类称作内部类,包含内部类的类称作内部类的外嵌类。 内部类和外嵌类…

编辑距离00

题目链接 爬楼梯 题目描述 注意点 word1 和 word2 由小写英文字母组成返回将 word1 转换成 word2 所使用的最少操作数 解答思路 本题本质上的操作只有三种:在单词 A 中插入一个字符;在单词 B 中插入一个字符;修改单词 A 的一个字符&…

OpenGL之元素缓冲对象

文章目录 EBO(元素缓冲对象)创建元素缓冲对象创建两个相邻不同颜色的三角形 EBO(元素缓冲对象) 素缓冲对象(Element Buffer Object,EBO),也叫索引缓冲对象(Index Buffer Object,IBO)。要解释元素缓冲对象的工作方式最好还是举个例子&#xf…

【Python redis】零基础也能轻松掌握的学习路线与参考资料

Python redis是一种非常流行的缓存数据库,对于Python Web应用程序开发非常有用,能快速地处理大量的数据请求。Python redis的学习路线需要对Python语言有深刻的理解,并了解使用redis的API。在掌握了Python redis的基本知识后,就可…

这个 希尔排序详解过程 我能吹一辈子!!!

文章目录 希尔排序概念希尔排序算法思路希尔排序实现 希尔排序概念 希尔排序(Shellsort)也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。希尔(Donald Shell)于1959…

关系数据库设计理论

关系数据库设计理论 目录 关系数据库设计理论是什么函数依赖完全函数依赖(Full Functional Dependency)部分函数依赖(Partial Functional Dependency)传递函数依赖(Transitive Functional Dependency) 异常插入异常(Insertion Anomaly)更新异常(Update Anomaly)删除异常(Deleti…

Mit6.006-problemSession04

4-1 序列旋转 下面是一个序列AVL树T。执行操作T.delete_at(8),该操作期间,每次旋转操作执行完后,画出该树。 4-2 Fick Nury Fick Nury领导n名超级英雄组成了精英团队——复仇者联盟。他听说:超人Sanos正在一个遥远星球上制造麻烦…

【JVM】7. 方法区

文章目录 7. 方法区7.1. 栈、堆、方法区的交互关系7.2. 方法区的理解7.2.1. 方法区在哪里?7.2.2. 方法区的基本理解7.2.3. HotSpot中方法区的演进 7.3. 设置方法区大小与OOM7.3.1. 设置方法区内存的大小7.3.2. 如何解决这些OOM 7.4. 方法区的内部结构7.4.1. 方法区&…

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问)

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问) 3.1 内存中字的存储问题 3.1 3.2 DS 和 [address]问题 3.2 3.3 字的传送问题 3.3问题 3.4 3.4 mov、add、sub 指令3.5 数据段问题 3.53.1~3.5 小结检测点 3.1 3.6 栈3.7 CPU 提供的栈机制问题 3.6 3.8 …