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

文章目录

  • 关于数据库的使用:
    • 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语句的执行记录)再执行一遍来恢复。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode动态规划(一)-理论基础

本节主要参考:代码随想录 题目分类 动态规划释义 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 动态规划中每一个状态一定是由上一个状态推导出来…

车辆管理的SpringBoot技术革新

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了车辆管理系统的开发全过程。通过分析车辆管理系统管理的不足,创建了一个计算机管理车辆管理系统的方案。文章介绍了车辆管理系统的系统分析部分&…

使用 OpenWebUI 一键部署 Mistral-Large-Instruct-2407-AWQ

教程及模型简介 该教程是使用 OpenWebUI 一键部署 Mistral-Large-Instruct-2407-AWQ,相关环境和配置已经搭建完成,只需克隆启动容器即可进行推理体验。 Mistral-Large-Instruct-2407-AWQ 是法国人工智能公司 Mistral AI 发布的新一代旗舰 AI 模型&…

操作系统简介:作业管理

作业管理 一、作业管理1.1 作业控制1.2 作业的状态及其转换1.3 作业控制块和作业后备队列 二、作业调度2.1 调度算法的选择2.2 作业调度算法2.3 作业调度算法性能的衡量指标 三、人机界面 作业:系统为完成一个用户的计算任务(或一次事务处理)…

RabbitMQ 核心功能详解

引言 在现代分布式系统中,消息队列已经成为一种不可或缺的组件。它不仅能够实现应用之间的解耦,还能提高系统的灵活性和可扩展性。RabbitMQ 是一款基于 AMQP(Advanced Message Queuing Protocol)协议的消息中间件,以其…

【人工智能】人工智能的10大算法详解(优缺点+实际案例)

人工智能(AI)是现代科技的重要领域,其中的算法是实现智能的核心。本文将介绍10种常见的人工智能算法,包括它们的原理、训练方法、优缺点及适用场景。 1. 线性回归(Linear Regression) 模型原理 线性回归…

2021年10月自考《软件开发工具》03173试题

目录 一.选择题 二.填空题 三.简答题 五.综合题 一.选择题 1.下列各项属于集成化开发工具的是 (书中)P96页 A.WORDSTAR B.FLOW C.Dictionary/3000 D.Visual Studio 2.软件工程的思想主要服务于 (书中)P84页面 A.用户 B.项目…

虚拟现实辅助工程技术在现代汽车制造中的重要性

虚拟现实辅助工程(VR Aided Engineering),简称VAE,作为数字化转型的重要手段,在各行各业被越来越广泛的应用。随着汽车变得越来越复杂,虚拟现实辅助工程技术逐渐成为汽车行业产品开发过程中不可或缺的一部分…

Redis --- 第四讲 --- 常用数据结构 --- string类型

一、认识数据类型和编码方式 有序集合,相当于除了存储member之外,还需要存储一个score(权重,分数) Redis底层在实现上述数据结构的时候,会在源码层面,针对上述实现进行特定的优化,来…

3 机器学习之假设空间

归纳(induction)与演绎(deduction)是科学推理的两大基本手段。前者是从特殊到一般的“泛化”(generalization)过程,即从具体的事实归结出一般性规律;后者则是从一般到特殊的“特化”(specialization)过程,即从基础原理推演出具体状况。例如&a…

学习JAVA中的Spring MVC常用注解及三层架构,这一篇就够了

Spring Web MVC 一:什么是 Spring Web MVC?什么是Servlet呢?什么是Servlet API1.1 MVC 定义1.2 什么是Spring MVC ?1.3SpringBoot和SpringMVC的区别 二:Spring MVC中常用注解的使用2.1 RequestMapping:地址映射2.2 RequestBody:请…

Golang | Leetcode Golang题解之第476题数字的补数

题目&#xff1a; 题解&#xff1a; func findComplement(num int) int {highBit : 0for i : 1; i < 30; i {if num < 1<<i {break}highBit i}mask : 1<<(highBit1) - 1return num ^ mask }

大模型缺的脑子,终于在智能体上长好了

智能体是一种通用问题解决器&#xff0c;从软件工程的角度看来&#xff0c;智能体是一种基于大语言模型的&#xff0c;具备规划思考能力、记忆能力、使用工具函数的能力&#xff0c;能自主完成给定任务的计算机程序。 大模型拥有接受输入&#xff0c;分析推理&#xff0c;继而…

k8s备份恢复(velero)

velero简介 velero官网&#xff1a; https://velero.io/ velero-github&#xff1a; https://github.com/vmware-tanzu/velero velero的特性 备份可以按集群资源的子集&#xff0c;按命名空间、资源类型标签选择器进行过滤&#xff0c;从而为备份和恢复的内容提供高度的灵活…

【Linux】【Jenkins】后端maven项目打包教程-Linux版

本次安装版本&#xff1a;2.4 jenkins详细安装教程1、安装git环境2、安装mavne环境2.1 下载依赖2.2、解压、赋权2.2、配置环境变量2.3、验证安装 3、jenkins-插件下载3.1、进入jenkins-->系统管理3.2、进入系统管理-->插件管理3.3、下载两个插件&#xff08;如果之前下载…

创建GitHub仓库和Git更换远程仓库

文章为个人笔记&#xff0c;详情请看reference 创建 GitHub 创建好账号点击自己头像&#xff0c;出现下拉菜单&#xff0c;点击Your profile 创建成功如下 下载Git 绑定用户 设置ssh-key ssh-keygen -t rsa -C “xxxxxx163.com 之后一直en回车 C:\Users\Y\ .ssh id_rsa…

数据不裸奔:如何确保AI分析顾客数据时的隐私保护

在这个信息爆炸的时代&#xff0c;数据已成为最宝贵的资源之一。人工智能&#xff08;AI&#xff09;技术的发展&#xff0c;使得我们能够从海量数据中提取有价值的信息&#xff0c;为商业决策提供支持。然而&#xff0c;随着AI在数据分析领域的广泛应用&#xff0c;顾客隐私保…

Leetcode 1857. 有向图中最大颜色值

1.题目基本信息 1.1.题目描述 给你一个 有向图 &#xff0c;它含有 n 个节点和 m 条边。节点编号从 0 到 n – 1 。 给你一个字符串 colors &#xff0c;其中 colors[i] 是小写英文字母&#xff0c;表示图中第 i 个节点的 颜色 &#xff08;下标从 0 开始&#xff09;。同时…

免费版视频压缩软件:让视频处理更便捷

现在不少人已经习惯通过视频来记录生活、传播信息和进行娱乐的重要方式。但是由于设备大家现在录制的文件都会比较大&#xff0c;这时候就比较需要一些缩小视频的工具了。今天我们一起来探讨视频压缩软件免费版来为我们带来的生动世界。 1.Foxit视频压缩大师 链接直达&#x…

《深度学习》【项目】自然语言处理——情感分析 <上>

目录 一、项目介绍 1、项目任务 2、评论信息内容 3、待思考问题 1&#xff09;目标 2&#xff09;输入字词格式 3&#xff09;每一次传入的词/字的个数是否就是评论的长度 4&#xff09;一条评论如果超过32个词/字怎么处理&#xff1f; 5&#xff09;一条评论如果…