MySQL数据库 数据库基本操作(二):表的增删查改(上)

1. CRUD

CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写,就是数据库基本操作中针对表的一系列操作.

2. 新增(create) -->insert

语法:
insert into 表名 [列名1,列名2…] values (val1,val2…)
[注意]

  • 列名可以没有,如果没有列名,所有的列都应该插入,即val包含所有列的值.
  • 后面的val必须和前面的列名对应.
  • 各个数据之间用,隔开.

2.1 单行数据+全列插入

insert into emp values (null,'张十一','java程序员',16000);

在这里插入图片描述
在这里我们看到,salary一列原生是decimal类型的数据,但是我们这里在插入的时候salary一列输入的是int类型的数据,也插入成功了,这是因为sql对int类型进行了隐式类型转换这里我们就提到了sql语言的特性:
sql语言是一种弱类型的语言,在一种语言中越支持隐式类型转换,类型越弱.

2.2 多行插入+指定列插入

insert into emp (id,name,role) values(8,'李十二','测试工程师');

在这里插入图片描述

3. 查询(retrieve) -->select

语法:
select 列名1,列名2(或是表达式) from 表名

3.1 全列查询 -->*

select * from emp
查询该表中所有数据
在这里插入图片描述
[注意]
这是一个危险的操作,虽然这个操作在现在看来没有什么异样,但是如果数据非常多,这个操作很容易造成损失,这种查询引起服务器的响应之后,返回的数据量非常大,会把网络带宽吃满,导致别的客户端出现异常.
在这里插入图片描述

3.2 指定列查询

select id,name from emp;
查询id和name两列数据
在这里插入图片描述

3.3 查询字段为表达式

select id ,name,role,salary+100 from emp;
查询的时候返回的结果集为所有人的工资加100
在这里插入图片描述
[注意]

查询的所有操作都不会对原生存在硬盘上的数据进行改变,这里虽然是在原来的薪水加上了100,但是只是返回的结果加上了100,返回的结果是一张临时表.

3.4 别名 -->as

语法:
select 列名 as 别名 from 表名;
select id ,name , chinese+math+english as total from student;
返回所有学生的总成绩,并设置为total

在这里插入图片描述

3.5 去重 -->distinct

语法:
select distinct 列名 from 表名;
select distinct chinese from student;

在这里插入图片描述
上述结果我们看到返回的值把周八那一行的语文成绩去重.
当然我们也可以对多列进行去重:
select distinct chinese,math from student;

在这里插入图片描述

3.6 排序 -->order by

语法:
asc为升序,desc为降序,默认为asc
select 列名 from 表明 order by 列名 [升降序]
select * from student order by math desc;
在这里插入图片描述
我们看到,学生们的顺序按数学成绩的降序排列了起来.

[注意]

  • 没有order by的句子返回的查询,返回的顺序都是未定义的,永远不要依赖这个顺序.
  • NULL数据排序的时候,视为比任何数据都小.升序在上面,降序在下面.
  • 可以使用表达式或者别名进行排序.
    select id,name,chinese+math+english as total from student order by total ;
    把学生的成绩按照总分升序排序.
    在这里插入图片描述
  • 可以对多个字段进行排序,优先级随书写顺序.
    select * from student order by chinese,math;
    在这里插入图片描述
    这里我们看到田七和周八的语文成绩是一样的,最后按math排序.田七在周八的后面.

3.7 条件查询 -->where

比较运算符:

运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>不等于
BETWEEN a0 AND a1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, …)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

逻辑运算符:

运算符说明
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT条件为 TRUE(1),结果为 FALSE(0)

[注意]

  • where可以使用表达式,但是不可以使用别名.
    原因: 是执行顺序的缘故,遍历表–>带入条件–>计算列名中的表达式,定义别名–>排序,聚合,
    定义别名在带入条件的后面,所以无法识别.
  • AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分.

案例:

  • 基本查询
    • select * from student where english < 100;
      查询英语成绩小于100的同学.
      在这里插入图片描述
    • select * from student where chinese+math+english<320;
      查询总分小于320的同学
      在这里插入图片描述
  • and 和 or
    • select * from student where chinese+math+english<320 and math>=120;
      查询总分小于320但数学成绩大于等于120的同学
      在这里插入图片描述
    • select * from student where chinese+math+english<320 or math>=120;
      查询总分小于320和数学成绩大于等于120的同学
      在这里插入图片描述
  • 范围查询
    1. between…and…
      select * from student where math between 100 and 110;
      查询数学成绩在100~110之间的同学在这里插入图片描述
    2. in
      针对每个记录,带入到条件中,看当前这个数值是否在( )描述的集合中存在.
      select * from student where math in (120,133);
      在这里插入图片描述
  • 模糊查询 -->like
    • select name from student where name like '周%';
      在这里插入图片描述
      %代表的是一个或者多个字符,找到所有姓周的人.
    • select name from student where name like '周_';
      在这里插入图片描述
      找到姓周但是是两个字的名字.

3.8 分页查询–>limit

这个语法限制了最多返回多少条记录.
语法:
select 列名 from 表名 limit n 限制返回的记录为n
select 列名 from 表名 limit n offset s 从s开始查询,返回n条记录

案例:

  • select name,math+chinese+english as total from student order by total desc limit 3;
    查询班级前三名
    在这里插入图片描述
  • select name,math+chinese+english as total from student order by total desc limit 3 offset 1;
    查询班级总成绩2~4名
    在这里插入图片描述

4. 修改 -->update

语法:
update 表名 set 列名=表达式 限制条件

案例:

  • update student set english=92 where name='周八';
    把周八的英语成绩改成92在这里插入图片描述
  • update student set english= english+10;
    将所有人的英语成绩加10分
    在这里插入图片描述

5. 删除 -->delete

语法:
delete from 表名 限制条件

案例:

  • delete from student where name ='周八';
    删除周八的成绩
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker 部署开源远程桌面工具 RustDesk

RustDesk是一款远程控制&#xff0c;远程协助的开源软件。完美替代TeamViewer &#xff0c;ToDesk&#xff0c;向日葵等平台。关键支持自建服务器&#xff0c;更安全私密远程控制电脑&#xff01;官网地址&#xff1a;https://rustdesk.com/ 环境准备 1、阿里云服务器一 台&a…

从零到一:基于 K3s 快速搭建本地化 kubeflow AI 机器学习平台

背景 Kubeflow 是一种开源的 Kubernetes 原生框架&#xff0c;可用于开发、管理和运行机器学习工作负载&#xff0c;支持诸如 PyTorch、TensorFlow 等众多优秀的机器学习框架&#xff0c;本文介绍如何在 Mac 上搭建本地化的 kubeflow 机器学习平台。 注意&#xff1a;本文以 …

标题:探索AI绘画:使用深度学习生成艺术

正文&#xff1a; 随着计算机技术的发展&#xff0c;人工智能在各个领域取得了显著的成果。通过训练深度学习模型&#xff0c;AI可以学习大量的艺术作品&#xff0c;从而生成具有独特风格和创意的新作品。 本文将介绍如何使用Python和TensorFlow实现一个简单的AI绘画程序。 二、…

运算符规则

console.log(null undefined) null和undefined都是原始类型&#xff0c;然后把这两个转换为数字。是0NaN.看规则有一个NaN的话就得到NaN. console.log({} []); 把{}和[]转换为原始类型分别为和[Object Object]。然后特殊情况有字符串&#xff0c;那就拼接字符串返回[Object…

【嵌入式DIY实例】-使用SCT-013 传感器测量交流电流

使用SCT-013 传感器测量交流电流 文章目录 使用SCT-013 传感器测量交流电流1、SCT-013介绍2、硬件准备2、如何计算电气设备消耗的电流3、代码实现SCT-013电流互感器在家用电能表中很常见。 它是一种无需断开电路即可测量导线中电流的组件。在本文中,我们将介绍如何使用 Arduin…

hexo博客7:构建简单的多层安全防御体系

【hexo博客7】构建简单的多层安全防御体系 写在最前面理解全面安全策略的重要性防御常见的网络攻击1. SQL注入攻击2. 文件上传漏洞3. 跨站脚本攻击&#xff08;XSS&#xff09;4. 跨站请求伪造&#xff08;CSRF&#xff09;5. 目录遍历/本地文件包含&#xff08;LFI/RFI&#x…

基础篇3 浅试Python爬虫爬取视频,m3u8标准的切片视频

浅试Python爬取视频 1.页面分析 使用虾米视频在线解析使用方式&#xff1a;https://jx.xmflv.cc/?url目标网站视频链接例如某艺的视频 原视频链接 解析结果: 1.1 F12查看页面结构 我们发现页面内容中什么都没有&#xff0c;video标签中的src路径也不是视频的数据。 1.2 …

异常

1&#xff0e;异常是什么? 程序中可能出现的问题 2&#xff0e;异常体系的最上层父类是谁?异常分为几类? 父类:Exception。 异常分为两类:编译时异常、运行时异常 3&#xff0e;编译时异常和运行时异常的区别? 编译时异常:没有继承RuntimeExcpetion的异常&#xff0c;直接…

开源博客项目Blog .NET Core源码学习(13:App.Hosting项目结构分析-1)

开源博客项目Blog的App.Hosting项目为MVC架构的&#xff0c;主要定义或保存博客网站前台内容显示页面及后台数据管理页面相关的控制器类、页面、js/css/images文件&#xff0c;页面使用基于layui的Razor页面&#xff08;最早学习本项目就是想学习layui的用法&#xff0c;不过最…

数据结构记录

之前记录的数据结构笔记&#xff0c;不过图片显示不了了 数据结构与算法(C版) 1、绪论 1.1、数据结构的研究内容 一般应用步骤&#xff1a;分析问题&#xff0c;提取操作对象&#xff0c;分析操作对象之间的关系&#xff0c;建立数学模型。 1.2、基本概念和术语 数据&…

UE4_普通贴图制作法线Normal材质

UE4 普通贴图制作法线Normal材质 2021-07-02 10:46 导入一张普通贴图&#xff1a; 搜索节点&#xff1a;NormalFromHeightmap 搜索节点&#xff1a;TextureObjectparameter&#xff0c;并修改成导入的普通贴图&#xff0c;连接至HeightMap中 创建参数normal&#xff0c;连接…

软件杯 深度学习YOLO抽烟行为检测 - python opencv

文章目录 1 前言1 课题背景2 实现效果3 Yolov5算法3.1 简介3.2 相关技术 4 数据集处理及实验5 部分核心代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习YOLO抽烟行为检测 该项目较为新颖&#xff0c;适合作为竞赛课…

反截屏控制技术如何防止信息通过手机拍照泄漏?

反截屏控制技术为企业数据安全提供了重要的防护措施。通过以下几点&#xff0c;有效阻止了信息通过拍照等方式的泄漏&#xff1a; 反截屏控制开启&#xff0c;用户启动截屏操作时&#xff0c;允许非涉密内容截屏操作&#xff0c;但所有涉密内容窗口会自动隐藏&#xff0c;防止涉…

【计算机视觉】四篇基于Gaussian Splatting的SLAM论文对比

本文对比四篇论文&#xff1a; [1] Gaussian Splatting SLAM [2] SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM [3] Gaussian-SLAM: Photo-realistic Dense SLAM with Gaussian Splatting [4] GS-SLAM: Dense Visual SLAM with 3D Gaussian Splatting …

第二十一章 RabbitMQ

一、RabbitMQ 介绍 在介绍 RabbitMQ 之前&#xff0c;我们先来看下面一个电商项目的场景&#xff1a; - 商品的原始数据保存在数据库中&#xff0c;增删改查都在数据库中完成。 - 搜索服务数据来源是索引库&#xff08;Elasticsearch&#xff09;&#xff0c;如果数据库商品…

【VUE+ElementUI】el-table表格固定列el-table__fixed导致滚动条无法拖动

【VUEElementUI】el-table表格固定列el-table__fixed导致滚动条无法拖动 背景 当设置了几个固定列之后&#xff0c;表格无数据时&#xff0c;点击左侧滚动条却被遮挡&#xff0c;原因是el-table__fixed过高导致的 解决 在index.scss中直接加入以下代码即可 /* 设置默认高…

vue快速入门(四)v-html

注释很详细&#xff0c;直接上代码 上一篇 新增内容 使用v-html将文本以html的方式显示 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …

PS从入门到精通视频各类教程整理全集,包含素材、作业等(7)

PS从入门到精通视频各类教程整理全集&#xff0c;包含素材、作业等 最新PS以及插件合集&#xff0c;可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制&#xff0c;今天先分享到这里&#xff0c;后续持续更新 PS敬伟01——90集等文件 https://www.alipan.com/s…

Vue ElementPlus Input 输入框

Input 输入框 通过鼠标或键盘输入字符 input 为受控组件&#xff0c;它总会显示 Vue 绑定值。 通常情况下&#xff0c;应当处理 input 事件&#xff0c;并更新组件的绑定值&#xff08;或使用v-model&#xff09;。否则&#xff0c;输入框内显示的值将不会改变&#xff0c;不支…

【环境变量】命令行参数 | 概念 | 理解 | 命令行参数表 | bash进程

目录 四组概念 命令行参数概念&理解 查看命令函参数 命令行字符串&命令行参数表 命令行参数存在的意义 谁形成的命令行参数 父进程&子进程&数据段 bash进程 最近有点小忙&#xff0c;可能更新比较慢。 四组概念 竞争性: 系统进程数目众多&#xff0c…