【MySQL】MySQL操作库

ops/2025/3/29 6:33:17/

【MySQL】MySQL操作库

​ 本文带着大家一起了解MySQL的基本使用与操作库。首先我们连接MySQL的服务器:

# 如果没有写 -h 127.0.0.1 默认是连接本地
# 如果没有写 -P 3306 默认是连接3306端口号
mysql -h 127.0.0.1 -P 3306 -u root -p

​ 然后我们开始了解MySQL中关于库的操作。

库的操作

创建数据库

创建数据库实例

​ 首先让我们来简单认识一下MySQL中的数据库创建命令。

mysql"># 创建一个数据库db1
create database db1;
# 创建一个使用utf8字符集的 db2 数据库
create database db2 charset=utf8;
# 创建一个使用utf8字符集,并带校对规则的 db3 数据库。
create database db3 charset=utf8 collate utf8_general_ci;

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci

​ 操作过程如下:

我们首先使用show databases;的命令看看当前系统中存在哪些数据库

在这里插入图片描述

然后我们使用创建数据库的语句创建出一个名为db的数据库,并手动设置字符集和校验集:

在这里插入图片描述

最后我们再使用show databases;的命令观察现象:

在这里插入图片描述

发现系统中多了一个名称为db的数据库,创建完毕。

​ 除此之外,MySQL会有一个存放数据的数据目录,我们在使用MySQL时会在数据目录下产生相应的结果。在我的Linux环境下该目录是’/var/lib/mysql’,如果我们按照上面的操作创建一个名为db的数据库,那么在该数据目录下就会创建出一个叫做db的目录:

在这里插入图片描述

字符集与校验集

数据库的字符集和校验集都是在处理和存储数据时起着重要作用的概念。

  1. 字符集(Character Set):字符集定义了数据库中可以存储的字符的集合,它包括了支持的字符以及它们的编码方式。常见的字符集包括 ASCII、UTF-8、UTF-16 等。选择适当的字符集对于确保数据的正确存储和处理至关重要。如果数据库的字符集不支持某些特定的字符,那么在存储这些字符时可能会导致数据损坏或者乱码。

  2. 校验集(Collation):校验集定义了对字符的比较和排序规则。在某些语言中,同一个字符的不同形式可能会被认为是相等的,比如在英语中,大小写字母可能被视为相等。校验集决定了在进行比较和排序时字符的处理方式。选择适当的校验集可以确保在查询时返回正确的结果,比如按字母顺序排列字符串或执行基于字符串的搜索操作时。

​ 总的来说,字符集和校验集都是数据库中确保数据正确性和一致性的重要组成部分,它们影响着数据的存储、处理和检索。因此,在创建数据库时,选择合适的字符集和校验集是至关重要的。

​ 下面是一些关于字符集与校验集的指令:

mysql"># 查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database';
# 查看数据库支持的字符集
show charset;
# 查看数据库支持的字符集校验规则
show collation;

操纵数据库

查看数据库
mysql">show databases;
显示创建语句
mysql">show create database 数据库名;

示例:

在这里插入图片描述

说明:

  • 这里显示出的内容是我们创建出这个数据库可以使用的语句(优化后),MySQL会记录我们的所有操作痕迹。
  • MySQL 建议我们关键字使用大写,但是不是必须的。(本文中常用小写字母)
  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字。
  • /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。
修改数据库

​ 这里对于数据库的修改主要指的是修改数据库的字符集,校验规则。

mysql"># 语法:
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...] alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

示例:
在这里插入图片描述

数据库删除
mysql"># 语法:
DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

​ 注意,在我们平常使用数据库时不能随意删除数据库,这会导致使用了该数据库的上层的服务出现很大的问题。

数据库的备份和恢复
mysql"># 备份数据库
mysqldump -P3306 -u root -p 密码 -B 数据库名1 数据库名2 ... > 数据库备份存储的文件路径;
# 还原数据库
source 数据库备份存储的文件路径;# 如果备份的是数据库中的表:
mysqldump -u root -p 数据库名 表名1 表名2 > 备份存储的文件路径;
source 备份存储的文件路径;
查看连接情况
mysql">#语法
show processlist;

示例:

在这里插入图片描述

表的操作

创建表

mysql"># 语法
CREATE TABLE [IF NOT EXISTS] table_name (field1 datatype,field2 datatype,field3 datatype #(最后一列不需要加逗号)# ...
) [character set 字符集 collate 校验规则 engine 存储引擎];
# 说明:
# [ ]表示可选项
# field 表示列名
# datatype 表示列的类型
# character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
# collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

示例:

在这里插入图片描述

​ 通过这样的SQL语句,我们在数据库db创建出一个想要到得到的表。当我们在一个数据库中添加一个表之后,MySQL就会在对应的数据目录下添加一些表的文件,这些文件根据搜索引擎的不同而不同。我们创建出上述的表之后产生的是如下的一些文件:
在这里插入图片描述

查看表

mysql">#语法
desc 表名;

示例:
在这里插入图片描述

​ 这些表结构的信息从左到右分别是字段名字,字段类型,是否允许为空,索引类型,默认值,扩充。

​ 除此之外,我们还可以使用show create table 表名 这样的语句显示出我们当初创建表的语句:
在这里插入图片描述

​ 如果你觉得需要去掉这条语句中显示的很多不必要的地方,可以以‘\G’作为语句的结尾,它可以去掉这些内容:
在这里插入图片描述

修改表

​ 在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型, 表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

mysql"># 语法:
ALTER TABLE 表名 ADD (column datatype [DEFAULT expr][,column
datatype]...);ALTER TABLE 表名 MODIfy (column datatype [DEFAULT expr][,column
datatype]...);ALTER TABLE 表名 DROP (column)

示例:
向表中插入两行数据:
在这里插入图片描述

​ 向表中添加新的字段:

在这里插入图片描述

​ 插入新的字段后,对于原来的数据是没有影响的,新的字段下的值都为NULL。

​ 如果我们这时使用show create table user \G这条语句,将会显示如下结果:
在这里插入图片描述

​ 修改name列的属性,将其长度改为60:
在这里插入图片描述

​ 需要注意的是,这里的修改是对原定义的直接覆盖,而并不是你想要修改一下类型就只修改类型:
在这里插入图片描述

​ 我们可以看到,原来的comment已经没有了,只剩下我们当时修改时定义的类型。

​ 删除图片路径(image_path)列:
在这里插入图片描述

​ 需要注意的是,如果删除了这一列,那么这一列之前的数据都会被删除。

​ 修改表名为User:

在这里插入图片描述

​ 修改name列为Name:

在这里插入图片描述

删除表

mysql"># 语法:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

在这里插入图片描述


http://www.ppmy.cn/ops/16472.html

相关文章

「 网络安全常用术语解读 」SBOM主流格式SPDX详解

SPDX(System Package Data Exchange)格式是一种用于描述软件组件(如源代码)的规范,它提供了一种标准化的方法来描述软件组件的元数据,包括其许可证、依赖项和其他属性。SPDX最初由Linux基金会于2010年发起&…

嵌入式学习62-C++

知识零碎: 构造函数 在执行过程中的三个过程 ←(背) 1.传参:实参向形参传…

企微SCRM私域运营:构建高效客户关系管理的关键路径

随着市场竞争的日益激烈,客户关系管理(CRM)已成为企业提升竞争力的关键所在。而企业微信(企微)作为连接企业与客户的桥梁,其强大的SCRM(社会化客户关系管理)功能为企业提供了私域运营…

深入了解Eureka:微服务架构中的服务发现与注册中心

引言 微服务架构的兴起使得应用程序变得更加模块化和可扩展。在这种架构下,服务发现与注册中心扮演着至关重要的角色。本文将深入探讨Eureka作为服务发现与注册中心的作用、优缺点、重要性以及其服务架构。 一、Eureka的作用 Eureka是Netflix开源的一款用于构建分…

访问控制列表配置实验

ACL,全称 Access Control List(访问控制列表),是一种实现访问控制的机制,用于规定哪些主体(如用户、设备、IP地址、进程等)可以对哪些资源(如网络服务、文件、系统对象等&#xff09…

基于Python实现的推箱子小游戏

Python贪吃蛇小游戏实现: 推箱子曾经在我们的童年给我们带来了很多乐趣。推箱子这款游戏现在基本上没人玩了,甚至在新一代人的印象中都已毫无记忆了。。。但是,这款游戏可以在一定程度上锻炼自己的编程能力。 运行效果如图所示: 游戏关卡有点…

【Hadoop】-Apache Hive概述 Hive架构[11]

目录 Apache Hive概述 一、分布式SQL计算-Hive 二、为什么使用Hive Hive架构 一、Hive组件 Apache Hive概述 Apache Hive是一个在Hadoop上构建的数据仓库基础设施,它提供了一个SQL-Like查询语言来分析和查询大规模的数据集。Hive将结构化查询语言(…

联想用万全智算,画出中国AI的山脊

如果我们把欧亚大陆看作一个整体,会发现中国是一个有几座山脉的超大半岛,横断山脉与天山、阴山、昆仑山、南岭、大兴安岭,一横五纵的山脊,描绘出了中华大地的轮廓。 一方水土的休养生息,需要山脉作为屏障;一…