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

news2025/2/26 9:33:07

文章目录

  • 关于数据库的使用:
    • 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.coloradmin.cn/o/2214439.html

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

相关文章

【微信小程序_13_页面配置与网络数据请】

摘要:本文介绍了微信小程序的页面配置与网络数据请求。页面配置文件可对单个页面进行个性化设置,与全局配置冲突时以页面配置为准。网络数据请求有严格限制,包括只能用 HTTPS 接口并添加到信任列表。可通过wx.request()发起 GET 和 POST 请求,能在页面加载时自动请求数据。…

机器学习-决策树详解

决策树 决策树简介 学习目标 1.理解决策树算法的基本思想 2.知道构建决策树的步骤 【理解】决策树例子 决策树算法是一种监督学习算法,英文是Decision tree。 决策树思想的来源非常朴素,试想每个人的大脑都有类似于if-else这样的逻辑判断&#xff…

使用 python 下载 bilibili 视频

本文想要达成的目标为:运行 python 代码之后,在终端输入视频链接,可自动下载高清 1080P 视频并保存到相应文件夹。 具体可分为两大步:首先,使用浏览器开发者工具 F12 获取请求链接相关信息(根据 api 接口下…

Java多线程--实现跑马小游戏

线程的实现方式 继承Thread类:void run()方法没有返回值,无法抛异常实现Runnable接口:void run()方法没有返回值,无法抛异常实现Callable接口:V call() throws Exception 返回结果,能够抛异常 实现Callab…

分类预测|基于鹦鹉优化宽度神经网络的数据分类预测Matlab程序 PO-BLS多特征输入多类别输出

分类预测|基于鹦鹉优化宽度神经网络的数据分类预测Matlab程序 PO-BLS多特征输入多类别输出 文章目录 前言分类预测|基于鹦鹉优化宽度神经网络的数据分类预测Matlab程序 PO-BLS多特征输入多类别输出 一、PO-BLS模型PO-BLS:鹦鹉优化宽度神经网络分类预测原理1. 宽度神…

06DSP学习-利用syscfg配置DAC

在做实验的过程中,有些变量(例如逆变器的电压相位、计算过程中的数字量)是没有办法通过示波器观察的,因此需要将数字量转换为模拟量,一般转换成电压。 DSP有三个片上DAC,本篇博客学习如何使用syscfg配置DAC F28379D DAC介绍 TM…

【opencv】以A4纸为参照物测量物体尺寸(包含:偏移纠正,轮廓检测,绘制轮廓函数)

文章目录 测试结果原图python代码ObjectMeasuremetn.pyutils.py测试结果 原图 python代码 ObjectMeasuremetn.py import cv2 import numpy as np import utilswebcam = False path = ../da

记录一次hiveserver2卡死(假死)问题

问题描述 给开发人员开通了个账号,连接hive进行查询,后来发现,hive服务有时候会卡死,查询不了,连不上(所有账号/客户端都连不上hive),但在chd里面看监控,服务器资源状态…

SpringBoot 之 配置 RestTemplate + 跳过https 验证

上截图 目录文件结构 在配置文件下创建下面两个文件 文件内容 HttpsClientHttpRequestFactory.java package org.fri.config;import org.apache.http.ssl.SSLContexts; import org.apache.http.ssl.TrustStrategy; import org.springframework.context.annotation.Configur…

用自己的数据集复现YOLOv5

yolov5已经出了很多版本了,这里我以目前最新的版本为例,先在官网下载源码:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite 然后下载预训练模型,需要哪个就点击哪个模型就行&am…

JavaSE——String类详解

目录 一、String类简介 二、关于字符串拼接的号 三、StringJoiner类——通过连接符拼接字符串 四、String类常用方法详解 五、instanceof关键字 一、String类简介 String是被final修饰的类,不能被继承,因此不能使用匿名内部类。String是一个常量&a…

leetocode二叉树(六)-翻转二叉树

题目 226.翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。、 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2: 输入:root [2,1,3] 输出&#x…

【STM32项目】基于stm32四足跳舞机器人设计与实现(完整工程资料源码)

目录 前言 一、设计目的: 1.1 设计背景 1.2 设计意义 1.3 设计功能 二、硬件部分 2.1 sg90舵机(8个) 2.2 stm32f103c8t6(1个) 2.3 OLED显示屏(1个) 2.4 HC-05蓝牙模块(1个&#xff…

C语言malloc超级详细用法和calloc 扩展

前提 在C语言中&#xff0c;malloc&#xff08;内存分配&#xff09;用于动态分配内存。它是标准库中的一部分&#xff0c;包含在 <stdlib.h> 头文件中。使用 malloc 可以在运行时请求所需的内存空间&#xff0c;而不是在编译时就确定内存大小。 语法 在cplusplus中mall…

LeetCode岛屿数量

题目描述 给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以假设该网…

Elasticsearch生产应用(进阶版),不知道怎么提升生产ES集群性能,看这篇就可以了

这里借助kibana进行修改相应的配置 elasticsearch集群的部署&#xff0c;详情请看上一篇文章&#xff1a; Elasticsearch最新版快速入门看这个就可以了-CSDN博客 基础ES集群运维篇可以查看 Elasticsearch 生产应用&#xff08;实用版&#xff09;&#xff0c;知晓这些&…

“探索Adobe Photoshop 2024:订阅方案、成本效益分析及在线替代品“

设计师们对Adobe Photoshop这款业界领先的图像编辑软件肯定不会陌生。如果你正考虑加入Photoshop的用户行列&#xff0c;可能会对其价格感到好奇。Photoshop的价值在于其强大的功能&#xff0c;而它的价格也反映了这一点。下面&#xff0c;我们就来详细了解一下Adobe Photoshop…

Python语言实现梯度提升树 (Gradient Boosting Machines, GBM)算法

梯度提升树&#xff08;Gradient Boosting Machines, GBM&#xff09;是一种集成学习方法&#xff0c;通过迭代地训练决策树&#xff0c;并让每棵新的树拟合前一棵树的残差&#xff0c;从而逐步提高模型的准确率。下面是一个简单的Python实现GBM的例子&#xff1a; 实现思路&a…

机器人大功率主轴SycoTec 4060 ER-S汽车电机机芯焊缝铣削打磨加工

在汽车制造的精密领域&#xff0c;每一个细节都关乎着整车的性能与品质&#xff0c;而汽车电机机芯的焊缝加工更是其中至关重要的一环。在机器人末端加装德国进口电主轴 SycoTec 4060 ER-S&#xff0c;为汽车电机机芯焊缝铣削打磨加工带来全新的解决方案。 SycoTec 4060 ER-S转…

gbase8s之建表相关问题

第一章..绪论 1.1..背景 需要对明年所有系统的表新建。 1.2..要求 对导切建表可能遇到的一些问题罗列及解决办法。 第二章..新建表的的过程 1.1..获取DDL 获取DDL一定要在服务器上去获取&#xff0c;千万别用gds去导出ddl。 1.1.1..切换数据库用户 su – gbasedbt 1.1…