SQL-DML、DQL查询数据

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://xiahunao.cn/news/352644.html

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

相关文章

员工激励:什么样的方法最合适?

经典畅销教材《人力资源管理必读12篇》曾探讨过一些不恰当的激励方式&#xff0c;那哪些激励方式实在又受人欢迎呢&#xff1f; 钱。 首先让我们回到“德普雷定理”的定义——“人们之所以需要工作&#xff0c;是因为希望得到自由发挥的机会。对于热爱工作的人来说&#xff0…

怎么搭建员工持股平台

转自&#xff1a;https://zhuanlan.zhihu.com/p/68564395 一、员工持股平台 概念 持股平台就是公司用来实施股权激励的一种操作模式&#xff0c;就是在母公司之外搭建一个有限合伙企业或者公司制的企业用来实现激励对象间接持有母公司股权的目的。 员工持股条件 在员工持股…

激励倍增法则:利用赞美激励员工 | 每天成就更大成功

激励倍增法则 激励倍增法则&#xff1a;美国管理学家彼得提出利用赞美激励员工&#xff0c;赞赏别人所付出的&#xff0c;要远远小于被赞赏者所得到的。 激励倍增法则的管理启示 员工从管理者的赞美中所得到的要远远大于管理者的付出。学会使用激励的杠杆&#xff0c;就会明白做…

员工激励的核心是人的满足感

http://cxo.cfw.cn/zhichang/v170463-1.htm 美国管理学家贝雷尔森&#xff08;Berelson&#xff09;和斯坦尼尔&#xff08;Steiner&#xff09;对激励的定义是&#xff1a;“一切内心要争取的条件、希望、愿望、动力都构成了对人的激励。——它是人类活动的一种内心状态”。在…

用Python构建大数据推荐系统:一个世界500强企业的成功案例

推荐系统是大数据时代的利器&#xff0c;它能够为企业提升用户体验、增加用户粘性、促进销售转化、提高营销效率等。但是&#xff0c;搭建一个成功的推荐系统并不容易&#xff0c;它需要综合考虑多方面的因素&#xff0c;并根据业务场景、用户需求、数据变化等不断地进行迭代和…

Windows 脚本批量打开文件

Windows 脚本批量打开文件 应用场景 对自己个人而言&#xff0c;每次学习某个内容&#xff0c;要打开一系列学习文档、代码和网页 可应用于执行某个任务需要一次性打开多个文件的场景。 方法 脚本内容 echo offstart "" "E:\Records\WebDesignLearning\la…

Vivado_除法器 IP核

本文介绍使用Vivado中除法器Divider Generator&#xff08;5.1&#xff09;的使用方法。 参考资料&#xff1a;pg151 文章目录 Divider Generator仿真测试 Divider Generator Channel Settings选项卡 #Common Options&#xff1a; Algorithm Type: 一共有三种类型&#xff0c;…

地震勘探基础(九)之地震速度分析

速度分析 在地震资料数字处理中&#xff0c;速度分析是动校正和水平叠加和地震偏移的基础。 在水平界面情况下&#xff0c;共中心点时距曲线方程是一条双曲线。在共中心点时距曲线中&#xff0c;炮检距 x x x 和时间 t 0 t_0 t0​ 都是已知的&#xff0c;只有速度 v v v 是…

C++算法:排序之二(归并、希尔、选择排序)

C算法&#xff1a;排序 排序之一&#xff08;插入、冒泡、快速排序&#xff09; 排序之二&#xff08;归并、希尔、选择排序&#xff09; 文章目录 C算法&#xff1a;排序二、比较排序算法实现4、归并排序5、希尔排序5、选择排序 原创文章&#xff0c;未经许可&#xff0c;严禁…

生活小技能

win10 屏幕亮度调节不了怎么办&#xff1f; 1、winr 输入&#xff1a;regedit &#xff0c;打开注册表 2、HKEY_LOCAL_MACHINE 3、SYSTEM 4、ControlSet001 5、Control 6、Class 7、{4d36e968-e325-11ce-bfc1-08002be10318} 8、右侧栏目添加 KMD_EnableBrightnesslnterface2 …

剑灵服务器延迟时间在哪看,《剑灵怎么看延迟》,剑灵怎么显示ping

在【环境设置】→【游戏】→【界面】里面。功能 下面的第一个就是了 剑灵怎么显示ping 答&#xff1a;剑灵内置并没有设置显示ping一项。如果你想看的话&#xff0c;可以通过打开任务管理器——性能——(位于下方的)资源监视器——网络选项卡——TCP连接 中就有延迟一栏可以...…

剑灵服务器名修改,“名”动服务器!你想要的剑灵名字都在这

一款游戏能不能让人着迷&#xff0c;其实最主要的是你身边够不够多人在玩&#xff0c;如果身边的朋友都在玩剑灵&#xff0c;那么自己就一定也会被其所吸引&#xff0c;你在剑灵中用的是什么剑灵名字&#xff0c;以下这些名字有没有更适合你的&#xff0c;一起来看看吧。 梦非梦…

【每日算法】【171. Excel 表列序号】

☀️博客主页&#xff1a;CSDN博客主页 &#x1f4a8;本文由 我是小狼君 原创&#xff0c;首发于 CSDN&#x1f4a2; &#x1f525;学习专栏推荐&#xff1a;面试汇总 ❗️游戏框架专栏推荐&#xff1a;游戏实用框架专栏 ⛅️点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd;&…

上海亚商投顾:沪指小幅震荡微涨 AI应用端持续活跃

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 大小指数今日走势分化&#xff0c;沪指全天窄幅震荡&#xff0c;创业板指低开低走&#xff0c;盘中一度跌超1.6%&a…

程序员——毕业年薪28w真的不可能吗?

我是一名来自湖南的普通应届毕业生。目前就职于杭州的一家电商经营的公司&#xff0c;做数据开发工程师&#xff0c;工资是20k*14薪&#xff0c;并且是每周三发一次工资。 在大学期间&#xff0c;我选择了学习计算机相关专业&#xff0c;但是课堂上所学的知识常常让我觉得晦涩…

从vue2到vue3的生命周期

1.vue2 在vue2.x中的生命周期为 beforeCreate created beforeMount mounted beforeUpdate updated beforeDestroy destroyed activated deactivated errorCaptured 在vue3中&#xff0c;新增了一个setup生命周期函数&#xff0c;setup执行的时机是在beforeCreate生命函数之前…

数据结构与算法系列之堆排序

&#x1f497; &#x1f497; 博客:小怡同学 &#x1f497; &#x1f497; 个人简介:编程小萌新 &#x1f497; &#x1f497; 如果博客对大家有用的话&#xff0c;请点赞关注再收藏 &#x1f31e; 堆的概念和结构 如果有一个关键码的集合K { &#xff0c; &#xff0c; &…

Linux之tar归档命令

目录 Linux之tar归档命令 定义 语法格式 参数及作用 常用选项 创建&#xff08;非压缩的&#xff09;包文件 ​编辑 创建带压缩的包文件 列出包文件中的文件列表 提取包文件到指定目录 tar打包时排除 --exclude -X或--exclude-from Linux之tar归档命令 定义 用于打…

替换jar包中的yml,class等文件的方法

文章目录 1.使用场景2.先准备好待替换的文件3.下载服务器上的jar包4.解压出来指定的文件5.将文件打入jar包6.查看是否替换成功 1.使用场景 由于线上项目中突然爆出一个bug问题&#xff0c;影响到用户使用&#xff0c;但是 线上的jar包版本&#xff0c;已经是很久的了&#xff…

密码学

第四章&#xff1a;安全性和电子商务 安全性在商业系统中是非常重要的&#xff0c;不管这些系统是基于物理交易还是电子交易。在现实世界中&#xff0c;我们在很大程度上依赖于物理的安全性&#xff0c;而在电子商务中&#xff0c;我们必须更加依赖于用电子的方式来保护数据&a…