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 ='周八';
    删除周八的成绩
    在这里插入图片描述

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

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

相关文章

Delphi 是一种内存安全的语言吗?

上个月&#xff0c;美国政府发布了 "回到基石 "报告&#xff1a; 通往安全和可衡量软件之路 "的报告。该报告是美国网络安全战略的一部分&#xff0c;重点关注多个领域&#xff0c;包括内存安全漏洞和质量指标。 许多在线杂志都对这份报告进行了评论&#xff0…

跑mmdec(自用)

1. 准备工作 进服务器先conda activate openmmlab 如果没有conda初始化的话&#xff0c;要先 source ~/miniconda3/bin/activate 然后cd mmdetection进目录 2. 数据处理 把数据变成这样的格式

时序预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络时间序列预测

时序预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-BiLST…

C++ //练习 11.12 编写程序,读入string和int的序列,将每个string和int存入一个pair中,pair保存在一个vector中。

C Primer&#xff08;第5版&#xff09; 练习 11.12 练习 11.12 编写程序&#xff0c;读入string和int的序列&#xff0c;将每个string和int存入一个pair中&#xff0c;pair保存在一个vector中。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#x…

设备巡检电力水利物业巡检小程序开源版开发

设备巡检电力水利物业小程序开源版&#xff0c;旨在提供一个全面而灵活的解决方案&#xff0c;以下是其主要功能概览&#xff1a; 用户身份认证&#xff1a;用户能够凭借手机号等便捷方式登录或注册账号。 主页概览&#xff1a;小程序主页呈现巡检系统的基础信息与操作指引&…

vue3+elementPlus:实现数字滚动效果(用于大屏可视化)

自行封装注册一个公共组件 案例一&#xff1a; //成功案例&#xff1a; //NumberScroll.vue /* 数字滚动特效组件 NumberScroll */<template><span class"number-scroll-grow"><spanref"numberScroll":data-time"time"class&qu…

最新408试卷分析+备考经验分享

408出题再糟糕&#xff0c;你是不是还是要考&#xff1f; 别管出题人出多刁钻的题&#xff0c;大家拿到的卷子都是一样的&#xff0c;要难就都难&#xff0c;要刁钻就一起g... 所以再潜心钻研出题规律或出题套路&#xff0c;不如多花些时间去多复习巩固几遍知识点&#xff01…

JAVAEE之IoCDI

Spring 是⼀个 IoC&#xff08;控制反转&#xff09;容器&#xff0c;作为容器, 那么它就具备两个最基础的功能&#xff1a; • 存 • 取 Spring 容器管理的主要是对象, 这些对象, 我们称之为"Bean". 我们把这些对象交由Spring管理, 由 Spring来负责对象的创建…

redis集合Set

set是一种无序集合。它和列表的区别在于列表中的元素都是可以重复的&#xff0c;而set中的元素是不能重复的。而且set中的元素&#xff0c;并不像列表那样是具有顺序的。 SADD是添加一个元素。course是集合。 SMEMBERS SISMEMBER判断Redis在不在集合course里 SREM是用来删除Re…

Celery的任务流

Celery的任务流 在之前调用任务的时候只是使用delay()和apply_async()方法。但是有时我们并不想简单的执行单个异步任务&#xff0c;比如说需要将某个异步任务的结果作为另一个异步任务的参数或者需要将多个异步任务并行执行&#xff0c;返回一组返回值&#xff0c;为了实现此…

Flutter中setState函数的使用注意事项

文章目录 Flutter中setState函数的使用注意事项只能在具有State对象的类中使用不要在build方法中使用将状态更新逻辑放在setState方法内部避免频繁调用使用回调函数更新状态 Flutter中setState函数的使用注意事项 setState()函数是Flutter中非常重要的一个函数&#xff0c;它用…

【教程】宝塔default.db占用空间几十g解决方法|宝塔占用磁盘空间特别大解决方法|宝塔磁盘被占满怎么清理

目录 一、前言二、排查问题三、解决方法 一、前言 用过宝塔创建网站&#xff0c;大家应该都非常熟悉&#xff0c;但是用随着用的时间越来越多&#xff0c;宝塔所占用的空间也越来越多&#xff0c;不停的加大数据盘都没有用&#xff0c;我原先买了30G够用了&#xff0c;随着时间…

基于单片机的盆栽自动浇花系统

**单片机设计介绍&#xff0c;基于单片机的盆栽自动浇花系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的盆栽自动浇花系统设计概要主要涵盖了通过单片机技术实现盆栽植物的自动化、智能化浇水管理。下面将从系统…

四川古力未来科技抖音小店:安全便捷,购物新体验

在数字化浪潮席卷全球的今天&#xff0c;电商平台的安全性与便捷性成为了消费者最为关心的问题。四川古力未来科技有限公司&#xff0c;凭借其强大的技术实力和深厚的行业经验&#xff0c;为广大消费者带来了一个安全可靠的购物新选择——古力未来科技抖音小店。 古力未来科技抖…

【论文速读】| MASTERKEY:大语言模型聊天机器人的自动化越狱

本次分享论文为&#xff1a;MASTERKEY: Automated Jailbreaking of Large Language Model Chatbots 基本信息 原文作者&#xff1a;Gelei Deng, Yi Liu, Yuekang Li, Kailong Wang, Ying Zhang, Zefeng Li, Haoyu Wang, Tianwei Zhang, Yang Liu 作者单位&#xff1a;南洋理工…

三维VR虚拟展馆打破传统展览的时间与空间限制

探索绿色未来&#xff0c;见证生态转型——这是长江经济带在国家发展蓝图中的承诺。如今&#xff0c;通过线上长江经济带发展阶段性成效展厅&#xff0c;这一承诺正以创新的互动体验呈现给公众&#xff0c;彰显了环境保护与经济增长的和谐统一。 深圳VR公司华锐视点精心策划的长…

网络攻防中json序列化漏洞案例,fastjson远程命令执行漏洞原理

网络攻防中json序列化漏洞案例,fastjson远程命令执行漏洞原理。 网络攻防中的JSON序列化漏洞是指当应用程序使用JSON(JavaScript Object Notation)格式来序列化和反序列化对象时,由于不当处理或不安全的编程实践,导致攻击者能够执行恶意操作的安全漏洞。这些操作可能包括远…

说说对排序算法的一些理解

对排序 - 冒泡排序的理解 冒泡排序是一种简单的排序算法&#xff0c;其基本思想是通过多次遍历数组&#xff0c;每次比较相邻的两个元素。如果前一个元素大于后一个元素&#xff0c;则交换它们的位置。这样&#xff0c;每一次遍历都会将当前未排序部分的最大元素“冒泡”到数组…

【Flutter】windows环境配置

windows 11 环境 官方教程 配置了flutter 环境变量在系统的path里 bin 路径。 死活没反应 关闭了git关闭了dart.exe关闭了vs还是不行卸载重新来 新版git flutter doctor 还需要android 环境

Redis性能管理及集群三种模式(一)

一、前期准备 至少准备三台服务器为主从复制、哨兵的实验做准备 一台主redis、两台从redis 二、Redis性能管理 2.1 查看Redis内存使用 查看Redis内存使用——info memory 2.2 内存使用率 1<内存碎片<1.5表示合理的内存碎片大于>1.5&#xff0c;需要输入shutdown save…