SQL-DML、DQL查询数据

news2024/11/17 5:25:18

SQL-DML、DQL查询数据

在这里插入图片描述

1 DML

DML主要是对数据进行insertdeleteupdate)操作。

1.1 添加数据

  • 给指定列添加数据

    INSERT INTO 表名(列名1,列名2,) VALUES(1,2,);
    
  • 给全部列添加数据

    INSERT INTO 表名 VALUES(1,2,);
    
  • 批量添加数据

    INSERT INTO 表名(列名1,列名2,) VALUES(1,2,),(1,2,),(1,2,);
    
    -- 给所有列添加数据,列名的列表可以省略的
    INSERT INTO 表名 VALUES(1,2,),(1,2,),(1,2,);
    

1.2 修改数据

  • 修改表数据
UPDATE 表名 SET 列名1=1,列名2=2,[WHERE 条件] ;

注意:

  1. 修改语句中如果不加条件,则将所有数据都修改
  2. 像上面的语句中的中括号,表示在写sql语句中可以省略这部分
  • 练习

    • 将张三的性别改为女

      update stu set sex = '女' where name = '张三';
      
    • 将张三的生日改为 1999-12-12 分数改为99.99

      update stu set birthday = '1999-12-12', score = 99.99 where name = '张三';
      
    • 注意:如果update语句没有加where条件,则会将表中所有数据全部修改!

      	update stu set sex = '女';
      

1.3 删除数据

  • 删除数据

    DELETE FROM 表名 [WHERE 条件] ;
    
  • 练习

    -- 删除张三记录
    delete from stu where name = '张三';
    
    -- 删除stu表中所有的数据
    delete from stu;
    

2 DQL

2.1 基础查询

  • 查询多个字段

    SELECT 字段列表 FROM 表名;
    SELECT * FROM 表名; -- 查询所有数据 但不建议使用
    
  • 去除重复记录(DISTINCT

    SELECT DISTINCT 字段列表 FROM 表名;
    
  • 起别名(AS

    AS: AS 也可以省略 但字段名与别名中间至少一个空格
    

2.2 条件查询 ( WHERE )

  • 语法

    SELECT 字段列表 FROM 表名 WHERE 条件列表;
    
  • 条件

    条件列表可以使用以下运算符

    符号功能
    >大于
    <小于
    >=大于等于
    <=小于等于
    =等于
    <> 或 !=不等于
    BETWEEN … AND …在某个范围之内(都包含)
    IN(…)多选一
    LIKE 占位符模糊查询 _单个任意字符 %多个任意字符
    IS NULL是 NULL
    IS NOT NULL不是 NULL
    AND 或 &&并且
    OR 或 ||或者
    NOT 或 !非,不是
  • 练习
  • 查询年龄大于20岁的学员信息

    select * from stu where age > 20;
    
  • 查询年龄大于等于20岁 并且 年龄 小于等于 30岁 的学员信息

    select * from stu where age >= 20 &&  age <= 30;
    select * from stu where age >= 20 and  age <= 30;
    

    上面语句中 &&and 都表示并且的意思。建议使用 and

    也可以使用 between … and 来实现上面需求

    select * from stu where age BETWEEN 20 and 30;
    
  • 查询年龄不等于18岁的学员信息

    select * from stu where age != 18;
    select * from stu where age <> 18;
    
  • 查询年龄等于18岁 或者 年龄等于20岁 或者 年龄等于22岁的学员信息

    select * from stu where age = 18 or age = 20 or age = 22;
    select * from stu where age in (18,20 ,22);
    
  • 查询英语成绩为 null的学员信息

    null值的比较不能使用 = 或者 != 。需要使用 is 或者 is not

    select * from stu where english = null; -- 这个语句是不行的
    select * from stu where english is null;
    select * from stu where english is not null;
    

2.3 模糊查询

模糊查询使用like关键字,可以使用通配符进行占位:

(1)_ : 代表单个任意字符

(2)% : 代表任意个数字符

  • 查询姓’马’的学员信息

    select * from stu where name like '马%';
    
  • 查询第二个字是’花’的学员信息

    select * from stu where name like '_花%';
    
  • 查询名字中包含 ‘德’ 的学员信息

    select * from stu where name like '%德%';
    

2.4 排序查询 ( ORDER BY )

  • 语法

    SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2];
    
  • 排序方式

    • ASC : 升序排列 (默认值)
    • DESC : 降序排列

    注意:
    如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

  • 练习

    • 查询学生信息,按照年龄升序排列

      select * from stu order by age ;
      
    • 查询学生信息,按照数学成绩降序排列

      select * from stu order by math desc ;
      
    • 查询学生信息,按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列

      select * from stu order by math desc , english asc ;
      

2.5 聚合函数

  • 概念

    将一列数据作为一个整体,进行纵向计算。

  • 聚合函数分类

    函数名功能
    count(列名)统计数量(一般选用不为null的列)
    max(列名)最大值
    min(列名)最小值
    sum(列名)求和
    avg(列名)平均值
  • 语法

    SELECT 聚合函数名(列名) FROM;
    
  • 练习

    • 统计班级一共有多少个学生

      select count(id) from stu;
      

      上面语句根据某个字段进行统计,如果该字段某一行的值为null的话,将不会被统计。所以可以在count(*) 来实现。* 表示所有字段数据,一行中也不可能所有的数据都为null,所以建议使用 count(*)

      select count(*) from stu;
      
    • 查询数学成绩的最高分

      select max(math) from stu;
      

2.6 分组查询( GROUP BY )

  • 语法

    SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
    

    注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

  • wherehaving 区别

    • 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
    • 可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。
  • 练习

    • 查询男同学和女同学各自的数学平均分

      select sex, avg(math) from stu group by sex;
      
    • 查询男同学和女同学各自的数学平均分,以及各自人数

      select sex, avg(math),count(*) from stu group by sex;
      
    • 查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组

      select sex, avg(math),count(*) from stu where math > 70 group by sex;
      
    • 查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的

      select sex, avg(math),count(*) from stu where math > 70 group by sex having count(*)  > 2;
      

2.7 分页查询( LIMIT )

  • 语法

    SELECT 字段列表 FROM 表名 LIMIT  起始索引 , 查询条目数;
    

    注意: 上述语句中的起始索引是从0开始

  • 起始索引计算公式:

    起始索引 = (当前页码 - 1) * 每页显示的条数
    
  • 练习

    • 从0开始查询,查询3条数据

      select * from stu limit 0 , 3;
      
    • 每页显示10条数据,查询第1页数据

      select * from stu limit 0 , 10;
      select * from stu limit (1-1)*10 , 10;
      
    • 每页显示10条数据,查询第2页数据

      select * from stu limit 10 , 10;
      select * from stu limit (2-1)*10 , 10;
      
    • 每页显示10条数据,查询第3页数据

      select * from stu limit 20 , 10;
      select * from stu limit (3-1)*10 , 10;
      

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

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

相关文章

MySQL数据库性能优化技巧介绍

MySQL是目前最流行和广泛使用的开源关系型数据库之一&#xff0c;随着数据量的增长和访问负载的提高&#xff0c;优化数据库性能变得至关重要&#xff0c;以确保系统能够高效地处理大量的并发请求。本文将记录一些MySQL数据库性能优化的技巧&#xff0c;提高数据库的运行效率&a…

程序员——应届生毕业,竟有20k高薪岗位?!

马士兵优极限训练营让我在技术和个人能力上都有了很大的提升。在未来的职业生涯中&#xff0c;我会继续努力&#xff0c;不断学习和成长&#xff0c;为自己和社会做出更大的贡献 01 选择大数据 只因更有前景 我是计算机专业出身&#xff0c;但是在大学的时候我对大数据行业更…

vue3 ---- 递归组件生成menu菜单 路由守卫鉴权

目录 递归组件​ el-menu 父组件 子组件 路由 Vue路由守卫实现登录鉴权 全局守卫 路由独享的守卫 组件内的守卫 完整的导航解析流程 对于一些有规律的DOM结构&#xff0c;如果我们再一遍遍的编写同样的代码&#xff0c;显然代码是比较繁琐和不科学的&#xff0c;而且…

5个有效方法教你如何正确使用云渲染,防错必备!

随着技术的进步和计算能力的提升&#xff0c;云渲染成为了现代计算机图形学和动画制作中不可或缺的一环。无论是在电影、游戏还是建筑可视化等领域&#xff0c;渲染图像的质量和效率都对最终结果有着巨大的影响。然而&#xff0c;云渲染也面临着一些潜在的问题&#xff0c;如渲…

一文看懂B TREE和B+TREE数据结构实现过程及数据存储结构

概述 一文看懂B TREE和BTREE数据结构实现过程及数据存储结构 一、B tree数据结构实现过程 这里有一个陌生区关于 Max. Degree&#xff0c;这个你可以理解为阶&#xff0c;也可以理解为度,即B 树的阶数&#xff08;一个节点存储的键的数量&#xff09; 这里有一个陌生区关于…

简单上手!快速将另一个报表的页面添加到 FastReport .NET!

FastReport 是功能齐全的报表控件&#xff0c;可以帮助开发者可以快速并高效地为.NET&#xff0c;VCL&#xff0c;COM&#xff0c;ActiveX应用程序添加报表支持&#xff0c;由于其独特的编程原则&#xff0c;现在已经成为了Delphi平台最优秀的报表控件&#xff0c;支持将编程开…

ROS:古月居第一次作业(话题与服务编程、动作编程、TF编程)

一.话题与服务编程 话题与服务编程&#xff1a;通过代码新生一只海龟&#xff0c;放置在&#xff08;5,5&#xff09;点&#xff0c;命名为“turtle2”&#xff1b;通过代码订阅turtle2的实时位置并打印在终端&#xff1b;控制turtle2实现旋转运动&#xff1b; demo_turtle.l…

智能出行更安全,亚马逊云科技携手木卫四助汽车客户安全合规出海

木卫四&#xff08;北京&#xff09;科技有限公司在汽车网络安全领域拥有独特专业知识&#xff0c;其融合人工智能算法的安全检测引擎可以不依赖车辆中安装的代理软件&#xff0c;只需几周即可快速部署实施&#xff0c;是汽车网络安全领域的技术领先者。 在亚马逊云科技初创团…

消息中间件之ActiveMq安装

文章目录 前言安装下载地址安装 使用控制台调整配置文件 前言 2023年年中了&#xff0c;又遇到了老朋友activeMq&#xff0c;上次接触activeMq还是在15年的时候&#xff0c;系统中用到了这个消息中间件。 阔别8年之久&#xff0c;竟然又用到了这个老家伙&#xff01; 安装 要…

【6.05 代随_48day】 打家劫舍、打家劫舍 II、打家劫舍 III

打家劫舍、打家劫舍 II、打家劫舍 III 打家劫舍1.方法图解步骤代码 打家劫舍 II1.方法代码 打家劫舍 III图解步骤代码 打家劫舍 力扣连接&#xff1a;198. 打家劫舍&#xff08;中等&#xff09; 1.方法 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i]&am…

如何利用 Electron 快速开发一个桌面端应用

前言 一直以来都有听说利用electron可以非常便捷的将网页应用快速打包生成为桌面级应用&#xff0c;并且可以利用 electron 提供的 API 调用原生桌面 API 一些高级功能&#xff0c;于是这次借着论证环信 Web 端 SDK 是否可以在 electron 生成的桌面端正常稳定使用&#xff0c;…

基于国产器件的KCF跟踪算法实现与验证

在国产的FT-M6678 DSP上实现KCF算法是我研究生期间的主要工作&#xff0c;KCF算法的原理与实现已经在之前的文章以及我的Gitee仓库中有部分介绍。这里主要介绍DSP与上位机通信的方式&#xff0c;以及XDMA Linux驱动的使用。具体的设计细节可以看我的毕业设计补充材料。 SRIO与…

SpringBoot 使用validator进行参数校验(实例操作+注意事项+自定义参数校验)

一、实例操作 ①、引入依赖 <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>6.0.4.Final</version></dependency> ②、创建实体类 package com.springboot.entity;im…

蓝桥杯2022年第十三届决赛真题-出差

题目描述 A 国有 N 个城市&#xff0c;编号为 1 . . . N。小明是编号为 1 的城市中一家公司的员工&#xff0c;今天突然接到了上级通知需要去编号为 N 的城市出差。 由于疫情原因&#xff0c;很多直达的交通方式暂时关闭&#xff0c;小明无法乘坐飞机直接从城市 1 到达城市 N&a…

【教学类-10-03】20230603《空心图案3*2-单元格不重复》( 随机图案拼贴)(中班主题)

作品展示&#xff1a; 背景需求&#xff1a; 最近在做小课题结题资料&#xff0c;看到之前做过的几个学具项目&#xff0c;其中的空心图案拼贴画很不错&#xff08;中班上学期做过&#xff09;想到中6班的孩子还没有玩过&#xff0c;就想再打印一套学具&#xff08;中班下学期…

chat聊天系统消息消费时遇到的问题及优化思路(二)

1、前言 考虑下面几个条件下如何提升kafka的消费速度 消息要求严格有序&#xff0c;如chat聊天消息业务处理速度慢&#xff0c;如处理一条数据需要100ms分片不合理&#xff0c;如有的分区很闲&#xff0c;有的分区消息数量积压 2、解决方案 1、顺序问题 关于消息消费时存在…

leetcode701. 二叉搜索树中的插入操作(java)

二叉搜索树中的插入操作 leetcode701. 二叉搜索树中的插入操作题目描述 递归解题解题思路代码演示 二叉树专题 leetcode701. 二叉搜索树中的插入操作 原题链接&#xff1a; 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problem…

保护您的邮件安全:Exchange Reporter Plus 助您全面监控与审计

引言&#xff1a; 在当今数字化时代&#xff0c;电子邮件已成为我们日常生活和工作中不可或缺的沟通工具。然而&#xff0c;随着电子邮件的广泛使用&#xff0c;邮件安全也成为一个备受关注的议题。为了保护组织的敏感信息和防止数据泄露&#xff0c;我们需要一种强大的解决方…

go 并发/并行/协程/sync锁读写锁

下面来介绍几个概念&#xff1a; 进程/线程&#xff1a; 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。线程是进程的一个执行实体&#xff0c;是 CPU 调度和分派的基本单位&#xff0c;它是比进程更小的能独立运行的基本单位。一…

APO AI一款基于GPT-4.0的AI聊天工具

APO AI APO AI是一款为用户提供AI聊天机器人功能的软件&#xff0c;用户在这里可以免费使用ChatGP3.5和ChatGPT4.0&#xff0c;这里的用户可以和AI机器人自由聊天&#xff0c;非常有趣的人工智能对话&#xff0c;并且AI还能代替你写文章、脚本、代码、文案等等。 测试GPT4.0 …