MySQL—关于数据库的CRUD—(增删改查)

embedded/2024/10/18 2:25:26/

文章目录

  • 关于数据库的使用:
    • 1. 数据库的背景知识:
    • 2. MYSQL数据库软件的使用(MYSQL安装的问题在另一篇博客中讲解)。
      • (1)启动MYSQL数据库软件
      • (2)开始使用数据库程序:
        • 1)相关的知识:
        • 2)具体使用。
          • 登录:(我是通过命令行客户端的方式登录的,后续会讲到可视化工具)。
          • 查看当前数据库服务中存在的数据库
          • 新增:
            • 创建数据库
            • 创建表:
            • 向表中插入数据
          • 查询:
            • 获取表中的全部记录:
            • 获取表中指定属性的记录:
            • 查询的字段为表达式时:
            • 查询的字段为表达式且设置别名:
            • 去重查询操作
            • 排序查询操作:
            • 条件查询WHERE:
            • 比较运算符:
            • 逻辑运算符
            • 分页查询LIMIT
          • 修改
          • 删除:


关于数据库的使用:

1. 数据库的背景知识:

(1)数据库是用来存储,管理数据的,数据库的存在建立在硬盘之上,底层用的是硬盘的存储空间,管理数据库需要对数据库进行操作。
(2)对数据库进行操作需要使用数据库语言,SQL是一种标准化定义的关系型数据库语言,用于处理,管理关系型数据库,SQL是一组预定义的指令集,可以通过它来操作,管理关系型数据库
(3)仅仅有操作数据库的语言是不够的,我们需要有专门的数据库管理系统来根据sql语言来进行接收用户的请求并进行相应地操作执行(管理数据),以及“响应“等等功能,MYSQL即是内在支持sql语言的关系型数据库软件。

2. MYSQL数据库软件的使用(MYSQL安装的问题在另一篇博客中讲解)。

(1)启动MYSQL数据库软件

启动MYSQL数据库软件的方式有几种:

  1. 可以直接打开提供的数据库程序客户端。
    可以在搜索栏中搜索MYSQL
    在这里插入图片描述
    点击即可。
  2. 通过cmd执行命令打开,需要先配置环境变量:
    找到MYSQL的MYSQL Server中的bin目录下:

在这里插入图片描述

复制文件路径:
在系统的设置相应的环境变量:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
输入安装时设置的密码即可使用。

(2)开始使用数据库程序:

1)相关的知识:

在使用数据库之前,我们先介绍一下整个MYSQL数据库程序的架构:
数据库程序分为客户端与服务器端两部分,客户端用于接收用户的操作信息并向服务端发送“请求”,服务器端接收客户端发来的请求,并执行相应的操作并对其进行“响应”。
在这里插入图片描述
数据库服务器端中可以对多个数据库提供服务。

如图:
在这里插入图片描述
数据库中的逻辑结构:

这里的“多个数据库”中的数据库并不是指数据库的统称,也不是指数据库管理系统软件,而是指具体的数据库逻辑结构:
这涉及数据库与数据结构的关系数据库底层是用数据结构来进行组织数据的,而在关系型数据库中,数据之间的关系抽象是用二维表来表示的。如上图中的学生信息的部分。在一个单个数据库中可能会有多个表,也可能只有一个表,也可能没有表。
关于表的具体描述:
在这里插入图片描述

表与表之间的关系
在单个数据库中表与表之间有可能有联系,有可能没有。
表与表之间的联系是通过具有相同的属性来链接的。

2)具体使用。

注:这里只演示一些常用的,初阶的MYSQL的使用,如果大家需要更深的知识,请去查看文档或者其他博主的博客。
注:MYSQL对字母大小写不敏感,均可以使用

登录:(我是通过命令行客户端的方式登录的,后续会讲到可视化工具)。

在这里插入图片描述
如果显示出这个页面说明登录成功。

查看当前数据库服务中存在的数据库

执行的语句:

 show databases;

在这里插入图片描述
关于此图的讲解:
在这里插入图片描述

图片中显示的即是我的电脑上当前MYSQL服务器上的数据库,(这里有一个问题,我电脑上的数据使用的数据库与MYSQL服务器中的数据库有什么关联?)

新增:

创建数据库,创建表等

创建数据库

最简单的创建数据库的方式

 create database 数据库名;

在这里插入图片描述
出现这条语句即说明语句执行成功。

对于要创建的数据库先检验它是否存在:

create database if not exist 数据库名;

在这里插入图片描述

指定使用字符集与排序规则的创建数据库的方式:

 create database  if not exists 数据库名 character set 字符集名 collate 排序规则

我们是用utf8mb4作为字符集名,utf8mb4_0900_ai_ci作为排序规则。
在这里插入图片描述
注:在这三种创建数据库的方式中,强烈建议大家使用第三种方式。

使用数据库

    use   数据库名 ;

在这里插入图片描述
查看当前数据库使用的默认编码集:
show variables like “%character%”;
在这里插入图片描述

删除数据库
: 对于删除的关键字用的是drop。

     drop  database 数据库名;

在这里插入图片描述
: 删除数据库是一项非常危险的操作,将来如果在工作中要涉及删除的数据库的操作,一定要慎之又慎。

显示指定数据库中现存的表:

   show tables;

在进入到指定的库中去后,执行此语句即可。
: 一般所有的查询显示操作一般均使用show这个关键字。
在这里插入图片描述
结果显示,java113库中并没有表。

创建表:
 表的格式:create table  if  not exists  表名(属性名    数据类型);其中表的属性部分的设定,至少需要设置一个属性名及其数据类型。

在这里插入图片描述
SQL语言也将数据划分成了各种数据类型,用于定义属性。
下面介绍一下常用的数据类型:
数值类型:

在这里插入图片描述
字符串类型:
在这里插入图片描述

日期类型
在这里插入图片描述
删除表
对于删除的关键字用的是drop。

      drop  table student;

在这里插入图片描述

向表中插入数据

1. 向表中插入一条数据:

语句:

             insert into 表名 (属性) values(与属性对应类型的值);

其中在此语句中属性可以是指定表的全部属性,也可以是部分属性。

全部属性
在这里插入图片描述
:当我们插入字符串属性数据时,可以用英文格式的单引号来引用,也可以用英文格式的双引号来引用。

部分属性:
在这里插入图片描述
: 当对部分属性插入数据时,要注意values中数据与前面属性的适配。

在这里插入图片描述

:当我们要插入全部属性时,可以省略属性列表部分,而直接从values()中放入数据。

      insert into 表名   values(全部属性值);

在这里插入图片描述
2. 向表中插入多条数据时:

 insert into students(属性表) values (属性对应的值),(属性对应的值)...........;

在这里插入图片描述
这说明成功插入了两条数据。

:要一次性插入多条数据时,如果要插入全部属性,也可以省略表名后面的属性列表。
在这里插入图片描述

查询:
获取表中的全部记录:
  select * from 表名;* 意为全部的意思。

在这里插入图片描述

:这条语句操作与删除数据操作一样的危险,因为在实际项目开发过程中,一个表中的记录可能极多,如果执行此语句,可能会将服务器直接挤爆,导致无法运行。

获取表中指定属性的记录:
        select 属性  from  表名;

在这里插入图片描述

查询的字段为表达式时:
    select  指定属性的表达式 from student;

在这里插入图片描述
:这个表在数据库中实际上是并不存在的,只是根据我们的操作,然后将从数据库中获取的信息进行处理,形成一个临时的表呈现在我们面前。

在这里插入图片描述

查询的字段为表达式且设置别名:
    select 属性表达式  as(可有可不有)  别名  from  表名

在这里插入图片描述

去重查询操作

获取表中去重操作后的结果:

      select  distinct  属性名 from  表名

在这里插入图片描述

排序查询操作:

按照某一属性进行排序:

 select *(属性名) from 表名  order by  属性名  [ASC|DESC] ;

其中ASC是按升序规则进行排序,DESC是按降序规则进行排序。也可以不填写此项,但是不能保证默认的排序规则是什么?不建议。
在这里插入图片描述

对NULL数值,系统将其看做是最小的数值,在升序时,放在首位,在降序时,放在末尾。

在这里插入图片描述

对表达式及其排名进行排序:

      select   属性(可有可无),表达式 (别名【可有可无】)  from 表名 order by 表达式(别名)arc/desc;

在这里插入图片描述
对每一个属性分别进行排序:
排序规则优先级是按照属性书写顺序优先级

在这里插入图片描述

条件查询WHERE:
比较运算符:

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

逻辑运算符
  1. 在使用逻辑运算符时,他们之间是有优先级的,不建议被优先级,使用括号即可。
    在这里插入图片描述
  2. WHERE条件可以使用表达式,但不能使用别名。

在这里插入图片描述
出现这种情况的原因是因为sql的一条语句中,这几个指令的执行是有先后顺序的。

所以,在执行where语句时,并没有num属性,所以报错。

分页查询LIMIT

在之前我们讲过通过select * from 表名获取表中全部数据是一项非常不安全的操作,因此我们可以通过分页查询来将获取的结果

分页查询的语句规则:

  1.  select  属性名  from 表名  [where]  [order by]  limit n ;
    

limit是记录限制的关键字,n是记录的条数

  1. select  属性名  from 表名  [where]  [order by]  limit  s, n;
    

s是偏移量,从第几条记录开始来往后获取n条记录。

  1. select 属性名 from 表名 [where] [order by] limit n offset s;
    这条语句比第二条语句更明确规则,offset表示偏移量。

在这里插入图片描述

修改
update  表名  set  column = 值 [column = 值.....] [where....] [order by......][limit ....];

在这里插入图片描述

在这里插入图片描述

删除:
 delete from 表名  [where...]  [order by]   [limit] ;

在这里插入图片描述
删除指定的几条记录:
在这里插入图片描述
删除整个表中全部记录:
我们可以通过delete来删除表中全部的记录,在不加任何限制条件的情况下,
在这里插入图片描述
我们只是会删除表中全部的记录,而不是会销毁表,销毁表需要drop关键字。

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

我们在工作中一般不会使用delete操作,而是设置一个deleteState字段,如果要表示删除这条记录,则通过update语句来将deleteState的值置为1(表示已删除),恢复的话则置为0(表示未删除).
即使在工作中真的不小心删除掉了一个表中全部的记录,我们也可以通过日志(全部sql语句的执行记录)再执行一遍来恢复。


http://www.ppmy.cn/embedded/128324.html

相关文章

学习threejs,THREE.LineDashedMaterial 虚线材质,基于gosper高斯帕曲线生成雪花动画

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.LineDashedMaterial虚…

python 中*的用处

自己经常混*的用处,为此特意总结记录。 在Python中,函数定义中的*(星号)用于指示位置参数的结束和关键字参数的开始。具体来说,*之后的参数必须以关键字参数的形式传递。 用在函数参数中 在我的例子中: …

Git 基本命令行操作

Git是一个开源的分布式版本控制系统,用于管理源代码和文档的版本。以下是Git的基本命令行操作: 一、配置 安装完成后,需要配置Git的用户名和邮箱,以便在提交记录时记录操作者的信息。 配置全局用户名:git config --g…

Windows的一些技巧

一、如何去掉桌面程序图标的小箭头 1、使用WIN + R 快捷键调出运行窗口 2、在运行 窗口输入 regedit,打开注册表编辑器 3、在注册表编辑器 中找到 HKEY_CLASSES_ROOT\lnkfile 4、在右侧窗格中找到 IsShortcut 项,右键 删除 二、WIN10如何打开图片查看器 1、使用WIN + R 快…

【力扣150Golang】除自身以外数组的乘积

题目: 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,…

GESP CCF python三级编程等级考试认证真题 2024年9月

一、单选题(每题 2 分,共 30 分) 第 1 题 据有关资料,山东大学于1972年研制成功DJL-1计算机,并于1973年投入运行,其综合性能居当时全国第三位。DJL-1计算机运算控制部分所使用的磁心存储元件由磁心颗粒组成…

用python的eval函数自定义行情指标公式

用python的eval函数自定义行情指标公式 先看效果实现步骤计算结果 先看效果 实现步骤 在前端配置规则和公式,不同的结果可以自定义背景颜色和字体颜色。 def _compute_rule(self, localdict):""":param localdict: dictionary containing the cur…

oracle数据坏块处理(一)-通过rman备份修复

表有坏块时,全表查询会报错: 这时候如果有前面正常的rman备份,那么我们就可以通过rman备份直接对数据文件块做恢复 先对数据文件做个逻辑检查: RMAN> backup check logical VALIDATE DATAFILE EXB_DATA/exb/datafile/cuteinf…