【Linux-MYSQL】数据库的使用

article/2025/11/4 8:13:45

目录

1.数据库介绍 

 🌈1.1数据库的分类

 🌈1.2存储引擎

2.数据库的操作 

🌈2.1创建数据库

​编辑👿 1.查show databases;

👿2删除 drop database+库名

 👿3.创建 create

 查看创建数据库的详细信息

🌈2.2数据库的字符集和校验规则 

🌈2.3数据库的创建

🌈2.4校验规则对数据库的影响

 👿1编码集,校验规则本质会影响谁?

​编辑

​编辑

​编辑

​编辑

👿知识点补充:

👿编码集和校验规则的作用

🌈2.5修改数据库

🌈 2.6数据的备份 

👿查看链接状况

3.表的操作 

🌈3.1创建表

🌈3.2查找表

​编辑

🌈3.3表的修改 

👿3.31插入

👿 3.32修改

👿3.33删除

👿3.34表和列的改名 

🌈 3.4慎重删除


这里我们是在xshell环境下进行mysql的代码编写的。

1.数据库介绍 

 🌈1.1数据库的分类

按照用途分类:

  • 数据定义语言(DDL):用于定义数据库对象,如创建表、修改表结构等。
  1. CREATE:创建数据库、表、视图、索引等。
  2. ALTER:修改数据库、表、列、约束等。
  3. DROP:删除数据库、表、视图、索引等。
  • 数据操作语言(DML):用于对数据库中的数据进行操作,如插入、更新、删除数据等。
  1. INSERT:插入数据。
  2. UPDATE:更新数据。
  3. DELETE:删除数据。
  • 数据查询语言(DQL):用于查询数据库中的数据,如SELECT语句等。
  1. SELECT:查询数据。
  2. FROM:指定查询的数据表。
  3. WHERE:指定查询条件。
  4. GROUP BY:按照指定的列进行分组。
  5. HAVING:对分组后的数据进行筛选。
  6. ORDER BY:按照指定的列进行排序。
  • 数据控制语言(DCL):用于控制数据库用户的访问权限,如GRANT、REVOKE语句等。
  1. GRANT:授权。
  2. REVOKE:撤销授权。

 🌈1.2存储引擎

MySQL引擎存储是指MySQL数据库中使用的不同的存储引擎。存储引擎是MySQL提供的一种底层存储数据的机制,它负责处理数据的存储、管理、读取和查询等操作。在MySQL中,可以使用不同的存储引擎来存储数据,每种存储引擎都有自己的特点和适用场景。

  • 查看存储引擎的命令:
show engines;  //别忘分号

 输入quit退出数据库,输入命令:

vim /etc/my.cnf

就可以查看我们配置的搜索引擎。 

2.数据库的操作 

🌈2.1创建数据库

CREATE DATABASE  db_name;  //database不带s,而且是data不是date

这是一般的格式,有时候我们还会加上一下限定词[if not exist](如果不存在,再创建数据库),注意大小写问题,数据库名是啥就是啥,不能大小写不分,但是其他操作名大小写可以通用。

我们先创建一个数据库,为了好演示,我们创建一个分屏。

先退出普通用户,然后输入命令:

1.     
2.     ll

👿 1.查show databases;

 ​​​

 f凡是刚才uroot目录下的数据库在root目录下都能找到 ,注意当前目录是超级账户

 那是不是就意味着我在右边的目录下创建一个文件就代表创建一个数据库?

但是绝对不建议这么做,这就是狸猫换太子了。

👿2删除 drop database+库名

比如删除stet1这个数据库。

 👿3.创建 create

 查看创建数据库的详细信息

show create database +库名;

seeyou库中和我们写的有点不太一样,这是数据库对数的优化。

🌈2.2数据库的字符集和校验规则 

数据库必须要有一整套的字符集保证数据的存储,校验集保证数据的取。

  • 字符集(character set)指的是一组字符的编码集合,用于将字符映射为计算机能够理解的数字编码,以便在计算机上进行存储和处理。不同的字符集支持不同的字符范围和编码方式,例如ASCII字符集支持128个字符,UTF-8字符集支持全球范围内的Unicode字符集。
  • 校验集(collation)则是指对于特定字符集中的字符,定义了排序和比较规则。校验集会对字符集中的字符进行排序和比较,以便进行各种类型的操作,例如搜索、排序和匹配等。不同的校验集支持不同的字符排序和比较方式,例如utf8_general_ci校验集使用一般的Unicode排序规则,而utf8_bin校验集则按照二进制比较方式进行排序。
  • 查看服务器字符集
SHOW VARIABLES LIKE 'character_set_server';
  • 查看数据库字符集
SHOW CREATE DATABASE database_name;
  • 查看表字符集
SHOW CREATE TABLE table_name;
  • 查看列字符集
SHOW FULL COLUMNS FROM table_name;

如果说把后面的命令改成 character_set_%   ,这里的%是模糊匹配也就是说查找所有character的编码集编码      

SHOW VARIABLES LIKE 'character_set_%';

 改成%叫模糊匹配,凡是character的全部显示出来。

一般字符集和校验规则是是匹配的。

  • 查看校验规则的命令 
show variables like 'collation_database'

上面查看编码集的也可以写成小写。

show variables like 'collation_%';

  • 查看系统当中所支持的所以字符集:
show charset; 

注意第三行default collation是编码集对应的校验集,如果匹配错了后面可能出错。

  • 查看所以的校验集:
show collation;

一般我们使用最多的是utf-8,所以如果我们想把编码集改成默认utf-8可以执行以下操作:

切换到超级用户root然后输入命令:

vim /etc/my.cnf

然后重启mysql:

systemctl restart mysqld

 这些编码集是给数据库和数据库中的表来用的,根本上就是给表来用的。就是我们在创建数据库时指定编码集和校验规则。(编码集合字符集一样)。

🌈2.3数据库的创建

1.默认编码集和校验规则。

cat 库名/db.opy   //查看默认的编码集和校验规则

2.指明编码集gbk; 

1.create database character set 编码集名称;2.create database charset=编码集名称;      //这里要加上=

 这里他给我们自动匹配默认的校验规则。

3.指明校验规则

这里的校验规则直接写在编码集后面就行。如果没指明编码集,直接写校验规则就行。

1.collate 校验集名称2.collate=校验集名称

 未来我们创建数据库时不指明字符集和校验规则。默认的就行。

🌈2.4校验规则对数据库的影响

数据库使用的这些数据集和校验规则到底对数据库有啥影响?

 👿1编码集,校验规则本质会影响谁?

其实影响的是数据库中创建的表的编码集和校验规则。

先创建两个数据库:

 然后在gc_db库中创建一张表person,使用数据库命令:

use 数据库名;

 查看表的属性:

desc 表名   //desc表上查一个表的属性列

 往表中插入字符:

 然后查看表中的所有列数据:

SELECT * FROM table_name;    //返回表中的所有列的数据。

 然后查看表中的字符。

select * from person where name='a';

可以发现他是不区分大小写的。

同理我们在bin_db数据库进行一模一样的操作:

 

这个是区分大小写的。 

 同样的编码集不同的校验规则,他俩的区别就表现出来了。

如果你忘记当前在那个数据库:

select database();

 我们根据表中的name进行排列:未指定就是升序

select* from person order by name;

 根据ascll码值进行的升序排列。

我们在切换到gc_db数据库,虽然不区分大小写,但是a一定在b前,b一定在c前,同理A也是

 这里大小写的顺序可能会变化(根原始表的结构有关,原始表大写在前,那就大写在前面),但是单词的顺序不变。

查看创建的数据库的详细信息:

show create database 表名:

👿知识点补充:

为啥有时会在表明或者库名上加``(这个叫反引号,esc下面那个键)?

  1. 数据库名和表名使用反引号(`)进行包裹的主要原因是为了避免与MySQL保留关键字或语句产生冲突。如果你在数据库或表的名称中使用了MySQL的保留关键字或语句,MySQL可能会在执行查询时遇到问题。
  2. 用``(反引号)括起来的标识符是被认为是保留字、关键字或特殊字符的标识符。例如,如果您在表名中使用了MySQL关键字,MySQL就不会将其解释为关键字,而是将其解释为表名。
  3. 此外,使用``括起来的标识符还允许您在标识符中使用特殊字符,如空格、连字符和其他非字母数字字符。这可以让您在表名和列名中使用更具描述性的名称,以提高代码的可读性。

👿编码集和校验规则的作用

编码集和校验规则在数据库中的作用非常重要。编码集用于表示字符集,即定义了一组字符及其对应的编码方式,例如 ASCII、UTF-8、GBK 等,以便存储和处理数据时正确地解析字符。校验规则用于检验数据的正确性和完整性,以便防止出现数据错误或损坏。以下是它们的一些具体作用:

  1. 保证数据正确性:正确的编码集和校验规则能够确保数据的正确性,防止数据在存储和处理时出现错误或损坏。

  2. 支持多语言处理:不同的编码集支持不同的字符集,而不同的校验规则可以用于处理不同语言的数据,因此它们支持多语言处理非常重要。

  3. 提高数据的可读性:正确的编码集能够保证数据的可读性,而良好的校验规则能够让用户更加容易地检查和确认数据的正确性。

  4. 优化存储和检索性能:选择适当的编码集和校验规则,能够优化数据存储和检索的性能,减少存储和检索时的时间和空间成本。

总之,编码集和校验规则是数据库中非常重要的概念,它们能够保证数据的正确性、多语言处理、可读性和性能优化等方面,因此在数据库设计和应用中需要认真考虑它们的选择和应用。

🌈2.5修改数据库

alter database db_name;

要修改就修改编码集,或者编码集和校验规则。

🌈 2.6数据的备份 

数据库的的备份是很重要的一件事,容不得一点马虎。有一种备份方式是直接拷贝这个数据库下的所有文件。但是这个做法很不好。。用张三的话来说就是不违法但是不道德。

数据库备份分类:

  • 对数据进行备份
  • 对操作语句进行备份(主流)

对数据进行备份不好,因为数据没有上下文,但是操作语句有上下文

 命令:

mysqldump -P3306 -uroot -p -B gc_db>gc_db.sql
  • mysqldump: 一个 MySQL 命令行工具,用于备份 MySQL 数据库;
  • -P3306: 指定 MySQL 服务端口号,这里是 3306;
  • -uroot: 指定 MySQL 用户名,这里是 root;
  • -p: 选项表示需要提示输入密码,执行该命令时将会提示输入密码;
  • -B: 指定需要备份的数据库名称,这里是 gc_db;
  • gc_db>gc_db.sql: 将备份数据输出到 gc_db.sql 文件中,这里使用大于符号 > 来将输出导入到指定文件中。

 这个可不是在数据库中完成的,而是切换到root目录下进行的。

  •  备份的还原

 这个实在mysql中进行还原的,不是在root下。

source +mysql所在路径+ database.sql;

  • 然后在 show databases;

 像备份一张表,或者备份多个数据库就不进行操作了。

👿查看链接状况

show processlist;

 这里就可以把我们的数据库信息看的一清二楚。

3.表的操作 

🌈3.1创建表

CREATE TABLE table_name (column1 datatype,column2 datatype,column3 datatype,...
);
  • column1column2等是你要创建的表的列名,
  • datatype是列的数据类型。
  • 可以在表创建时指定多个列,每个列以逗号分隔。

 我们在创建一个学生表:

🌈3.2查找表

查找表一共有三种形式:

  • 1.查看表的名称
  • 2.查看表的属性
  • 3.查看表的创建语句
show tables;desc table_name;show create table table_name \G  //不带分号

其他演示过了,我们就看一下最后一个: 

🌈3.3表的修改 

接下来有点难度,但不多。效率不高的同志们可以休息一下再看。

改动还是alter+表名+要修改的内容,本质就三种:增加一个add删除一个drop修改一个modify。

👿3.31插入

我们继续用user表进行插入:

 其实不写前面括号了的(id, name等)也是没问题的,但是意味着后面values插入是全部插入。

select * from table_name;

 但是先在我又想加一列存每个人头像所在路径地址。是每个人的头像路径没存到数据库。我想把他们的头像地址再存到数据一份。

alter table table_name add 列名 其他属性;

👿 3.32修改

这个是修改某一列的某个或多个属性。

alter table user modify 列名 修改属性;

比如我们修改一下name的varchar.

 但是这个修改是在原来的数据中进行修改还是直接覆盖掉原来的数据?

 这个直接覆盖了原来的数据进行修改的。因为原来的name有注释这个没有。

👿3.33删除

如果我们想删除一列(id):

这个很简单,我就不过多介绍了。

👿3.34表和列的改名 

  •  修改列名:
alter table table_name change  列名 x新列名 属性;

  •  修改表名
alter table table_name rename  新名字;

🌈 3.4慎重删除

MySQL 进行删除操作时需要慎重,主要原因是因为删除操作会永久性地将数据从数据库中删除,而且这个过程是不可逆的。因此,如果没有谨慎处理删除操作,可能会造成数据丢失、数据不一致或者数据泄漏等问题,对系统的稳定性和安全性造成威胁。

另外,在删除操作时,还需要注意如下几点:

  1. 删除前最好先备份:对于重要的数据或者数据量较大的情况,最好在进行删除操作前先备份数据,以便在需要的时候进行恢复。

  2. 注意删除条件:在进行删除操作时,需要根据实际情况明确删除条件,确保只删除需要删除的数据,避免误删或者删除不完整的数据。

  3. 删除操作可能会对性能造成影响:删除操作可能会导致数据库中的数据结构发生变化,从而影响数据库的性能。因此,在进行删除操作时,需要考虑到系统的负载情况,避免对系统性能产生过大影响。

总之,进行删除操作时需要谨慎对待,遵循数据库管理的最佳实践,以确保数据的完整性和安全性。


http://chatgpt.dhexx.cn/article/eAw5jAlG.shtml

相关文章

Linux系统中安装数据库

1.在linux系统的root目录中创建一个temp目录 mkdir temp2.将MySQL安装包传输到Linux系统中temp目录下 3.解压压缩包,将解压后的文件移动到/usr/local,同时命名为mysql 解压:[rootlocalhost temp]# tar zxvf mysql-5.7.27-linux-glibc2.12-x…

数据库的概念?怎么在linux内安装数据库?怎么使用?

目录 一、概念 二、mysql安装及设置 1.安装mysql 2.数据库服务启动停止 三、数据库基本操作 1、数据库的登录及退出 2、数据表的操作 3、mysql查询操作 一、概念 数据库:是存放数据的仓库,它是一个按数据结构来存储和管理数据的计算机软件系统。数据库管理…

Linux下常用数据库介绍

一、数据库介绍 1.什么是数据库; 数据库就是一个存放计算机数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组 织形式或数据之间的联系)来对数据进行组织和存储的,可以通过数据库提供的多种方法来管理其…

Linux下访问数据库

Linux下访问数据库 声明:本文只简单描述Linux系统下访问mysql数据库的步骤,关于连接上数据库之后的简单的对于数据库的增删改查等操作只是稍微提及,关于增删改查的语句书写,本文不再讲述。 一般来说,访问数据库有如下几…

Linux_MySQL数据库基础

文章目录 1.基本使用连接MySQL服务器创建与删除数据库创建删除数据库表查看数据库表结构,向数据库表中插入,查询数据2. MySQL架构SQL分类存储引擎 注意一般情况下: MySQL服务并不暴露在公网上。MySQL一般会更改服务端口。 MySQL服务&#x…

linux:数据库连接

MySql数据库 视图:虚拟的表 索引:目录 事务:操作 安装数据库:sudo apt install mysql-server //mysql8.0 安装C/C开发库:sudo apt install libmysqlclient-dev 数据库:1.mysql 文件本身 2…

在linux上安装数据库服务

一、通过本地包安装mysql 1.先通过软件将包从windows传到linux上,四个rpm包。 2.检查Linux上是否卸载了数据库自带的包,会导致安装不上。如果有,卸载掉。 rpm -qa | grep mysql rpm -qa | grep mariadb 卸载命令 rpm -e -nodeps 自带的包…

Linux环境下的数据库(基础篇上)

数据库 一、Linux环境下数据库的安装二、数据库的基础操作三、数据库中表的操作 一、Linux环境下数据库的安装 需要在 root 用户权限下进行数据库的一系列安装操作 安装 mariadb 服务: # yum install -y mariadb-server安装 mariadb 命令行客户端: …

Linux之数据库操作

一、mysql基本操作 1,连接数据库 mysql -u root -p -h 127.0.0.1 mysql -u root -p -h 192.168.12.56 2,授予远程连接的权限 grant all privileges on *.* to root"%" identified by "nihao123" 3,修改root用户的密码 先…

Linux和数据库

Linux命令:软件测试第一个任务,一般都需要进行环境搭建,一部分环境搭建内容是在服务器上实现的,跟服务器交互(没有图形化页面),需要使用Linux命令 数据库:所有的软件在使用过程中所产生的数据,最终都要存在数据库当中,而测试工作往往会需要去校验数据的正确与否,因此需要学习数…

Linux服务器操作数据库

一、进入mysql数据库 1、使用命令连接进入数据库 mysql -u root -p参数解析: root-是连接数据库的用户 连接成功的截图如下 2、可以查看当前用户有哪些数据库权限 show databases; 3、进入到指定的数据库 use test;参数解析:test-是数据库名称 4、…

SolrCloud介绍和应用

SolrCloud是基于Solr和Zookeeper的分布式搜索方案,是正在开发中的Solr4.0(目前还是ALPHA版本,基于lucene4.0)的核心组件之一,它的主要思想是使用Zookeeper作为集群的配置信息中心。它有几个特色功能:1)集中…

Solr简介Solr使用及SolrCloud搭建

一、Solr简介 1、Solr是什么? 1.1就是一个war项目 2、自己的项目如何Solr进行交互? 2.1特定的API叫做SolrJ(底层其实就是HttpClient) 3、具备数据持久化功能 3.1Solr中会存储需要进行搜索的数据 3.2把所有的数据都初始化到Solr中. 4、Solr作用&#…

solrcloud导入mysql数据配置

最简单的solr7集群搭建(不需要tomcat) 添加jar (三个节点都要) 复制solr解压目录中dist下的solr-dataimporthandler-7.5.0.jar solr-dataimporthandler-extras-7.5.0.jar 复制到WEB-INF/lib下 添加mysql-connection jar包到WEB-INF/lib下,我这里是mysq…

Solr+Zookeeper 搭建搜索集群SolrCloud

目录 一、简介 1、SolrCloud是个什么玩意? 2、Solr是个什么玩意? 3、zookeeper是个什么玩意? 4、实现负载均衡的方式: (Nginx、Redis槽、Zookeeper) 二、SolrCloud的结构 1、物理结构 2、逻辑结构 三、SolrCloud的搭建(3…

solrCloud分布式检索流程

好久没写solr的文章了,刚好需要在公司作个分享,先总结一些先。 引用请声明原文:http://blog.csdn.net/duck_genuine/article/details/17014991 solrCloud分布式检索主要流程如下: 搜索 video,“美女斗秀场” 取按…

solr全文检索技术学习(三)-搭建SolrCloud集群问题总结

什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请…

对SolrCloud集群Collection进行手动二次Sharding

我们已经基于SolrCloud 4.3.1Tomcat 7搭建了搜索服务器集群,一个Collection对应3个节点上的3个分片(Shard),同时包含对应分片的副本(Replica),此时,该Collection一共有6000万左右Doc…

Solr SolrCloud相关概念

Solr支持服务器的分布式集群部署,即SolrCloud。在SolrCloud中,一个索引可以被分布到不同的服务器,即不同的node,所有的这些node组成一个collection,并且充分考虑了高可靠性和容错的设计。 SolrCloud使用zookeeper来管理…

SolrCloud概述

在Lucene/Solr的SVN trunk中的SolrCloud已经可用, 在即将发布的4.0版本中将正式包含. 目前SolrCloud已经成熟, 可以支持分布式索引和分布式搜索. 下面是我们一个项目采用新的SolrCloud的部署结构图: 看起来是否非常简单? 下面我们看看内部的一些实现细节. SolrCloud功能和架…