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.mzph.cn/news/791205.shtml

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

相关文章

【Redis】Redis的使用

登录redis [roottest2 ~]# redis-cli 127.0.0.1:6379> 或[roottest2 ~]# redis-cli -h 192.168.67.12 -p 6379 192.168.67.12:6379> redis-benchmark 测试工具 redis-benchmark 是官方自带的Redis性能测试工具&#xff0c;可以有效的测试Redis服务的性能 基本的测试语…

C# 实现子进程跟随主进程关闭

文章目录 前言一、如何实现&#xff1f;1、创建作业对象&#xff08;1&#xff09;、创建对象&#xff08;2&#xff09;、设置销毁作业时&#xff0c;关闭拥有的进程 2、子进程加入作业对象3、销毁作业对象&#xff08;1&#xff09;、手动销毁&#xff08;2&#xff09;、所在…

从零起步:开启你的IT职业之旅

简介&#xff1a; 信息技术&#xff08;IT&#xff09;行业以其快速发展和广阔的就业前景吸引着全球众多职场新人。但对于零基础的求职者而言&#xff0c;挺进这一行业似乎是条充满挑战的道路。进入IT行业可能看起来是一项艰巨的挑战&#xff0c;尤其是对于那些没有任何相关经…

redis乱码\xac\xed\x00\x05t\x00H解决

发现数据库乱码&#xff1a; 这数据库是来自rdids队列list实现的一个简单队列&#xff0c;停止使用该list的服务&#xff0c;查看里面的值&#xff0c;发现 乱码\xac\xed\x00\x05t\x00H&#xff0c;如下图&#xff1a; 很明发送数据端的问题&#xff0c;检查代码&#xff1a; …

20240403在ubuntu20.04下解压缩gz压缩包

20240403在ubuntu20.04下解压缩gz压缩包.txt 2024/4/3 15:17 缘起&#xff1a;使用友善之臂FriendlyElec的NanoPi NEO Core开发板 https://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO/zh#.E8.BF.90.E8.A1.8CFriendlyCore NanoPi NEO/zh http://wiki.friendlyelec.com/w…

人工智能会拥有反思能力吗?

一、背景 人工智能是否能拥有真正的反思能力&#xff0c;目前仍在探索和发展之中。虽然现有的AI系统可以在一定程度上进行自我学习、自我调整和优化&#xff0c;但是它们的“反思”还远未达到人类意义上的深度和全面性。 传统的人工智能系统依赖于预设的算法和模型&#xff0c…

微信小程序怎么制作?制作一个微信小程序需要多少钱?

随着移动互联网的快速发展&#xff0c;微信小程序已成为连接用户与服务的重要桥梁。它以其便捷性和易用性&#xff0c;为各类企业和个人提供了一个全新的展示和交易平台。那么&#xff0c;如何制作一个微信小程序&#xff1f;又需要投入多少资金呢&#xff1f;本文将为您提供全…

C++实现二叉搜索树的增删查改(非递归玩法)

文章目录 一、二叉搜索树的概念结构和时间复杂度二、二叉搜索树的插入三、二叉搜索树的查找四、二叉搜索树的删除&#xff08;最麻烦&#xff0c;情况最多&#xff0c;一一分析&#xff09;3.1首先我们按照一般情况下写&#xff0c;不考虑特殊情况下4.1.1左为空的情况&#xff…

【HTML】简单制作一个动态3D正方体

目录 前言 开始 HTML部分 JS部分 CSS部分 效果图 总结 前言 无需多言&#xff0c;本文将详细介绍一段代码&#xff0c;具体内容如下&#xff1a; 开始 首先新建文件夹&#xff0c;创建两个文本文档&#xff0c;其中HTML的文件名改为[index.html]&#xff0c;JS的文件名改…

win11安装wsl报错:无法解析服务器的名称或地址

一 说明 项目开发中&#xff0c;需要用到wsl&#xff0c;因此根据wsl官方&#xff08;WSL安装教程&#xff09;命令 wsl --install 进行wsl的安装。而本文主要是记录自己在安装wsl中遇到的问题 “无法解析服务器的名称或地址” 的解决办法。 二 方法一&#xff1a;更改DNS&…

HCIA-RS基础-VLAN技术原理和配置

目录 VLAN 技术原理和配置1. VLAN 技术的背景2. VLAN 标签的产生方法3. VLAN 标签的应用规则4. VLAN 的配置总结 VLAN 技术原理和配置 1. VLAN 技术的背景 VLAN&#xff08;Virtual Local Area Network&#xff09;是一种逻辑上划分网络的技术&#xff0c;可以将一个物理局域…

算法打卡day25

今日任务&#xff1a; 1&#xff09;491.递增子序列 2&#xff09;46.全排列 3&#xff09;47.全排列 II 491.递增子序列 题目链接&#xff1a;491. 非递减子序列 - 力扣&#xff08;LeetCode&#xff09; 给定一个整型数组, 你的任务是找到所有该数组的递增子序列&#xff0c…

composure合成透明通道

composure合成透明通道 2022-05-23 08:59 [技巧分享]使用配有HDRI的背板的进行合成 Using Composure with a Bac - 1.Using Composure with a Backplate and H.mp41启用插件2线性色彩空间3打开合成面板4面板新建合成新建三个图层 FG前面物体&#xff0c;背景物体 去掉阴影 flo…

Zabbix6 - Web管理网络拓扑/端口流量监控配置手册

Zabbix6 - Web管理网络拓扑/端口流量监控配置手册 概述: 1)Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 Zabbix由两部分构成,Zabbix Server与可选组件Zabbix Agent。通过C/S模式采集数据,通过B…

60道Java经典面试题总结

1、Spring 有几种配置方式&#xff1f; 1、xml 配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:…

量化交易入门(四十一)ASI指标Python实现和回测

老规矩先上图&#xff0c;看看ASI指标使用苹果数据回测后的结果如何。 一、策略运行结果 执行的结果&#xff1a; Starting Portfolio Value: 100000.00 Final Portfolio Value: 92514.82 Annualized Return: -1.93% Sharpe Ratio: -0.27 Max Drawdown: 25.34% Max Drawdown …

【教学类-09-04】20240401细线迷宫图03(A4横版一页-4份横版)

作品展示&#xff1a; 背景需求&#xff1a; 【教学类-09-02】20240331细线迷宫图01&#xff08;A4横版一页1份横版&#xff09;-CSDN博客文章浏览阅读779次&#xff0c;点赞28次&#xff0c;收藏6次。【教学类-09-02】20240331细线迷宫图01&#xff08;A4横版一页1份横版&…

机器学习周记(第三十二周:文献阅读-时空双通路框架)2024.3.25~2024.3.31

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要 1.3 论文模型 1.3.1 Spatial Encoder&#xff08;空间编码器&#xff09; 1.3.2 Temporal Encoder&#xff08;时间编码器&#xff09; 2 相关代码 摘要 本周阅读了一篇运用GNN进行时间序列预测的论文。论文…

【数据处理包Pandas】分组及相关操作

目录 一、初步认识分组并查看分组信息&#xff08;一&#xff09;通过聚合函数查看分组信息&#xff08;二&#xff09;转换成列表查看所有组的信息&#xff08;三&#xff09;通过循环查看各组的名称和组中的数据信息&#xff08;四&#xff09;通过get_group()方法直接获得一…

【蓝桥杯练习】tarjan算法求解LCA

还是一道比较明显的求LCA(最近公共祖先)模型的题目,我们可以使用多种方法来解决该问题&#xff0c;这里我们使用更好写的离线的tarjan算法来解决该问题。 除去tarjan算法必用的基础数组&#xff0c;我们还有一个数组d[],d[i]记录的是每个点的出度&#xff0c;也就是它的延迟时间…