SQL查询语句

一些特殊的sql查询语句 in 和 not in 要慎用,否则会导致全表扫描 应尽量避免在 where 子句中对字段进行 null 值 判断,否则将导致引擎放弃使用索引而进行全表扫描 时间字段显示为可视 查询数据库表列重复的sql 在一个varchar类型字段的数据加值 in 不存在库的给一个默认值 查找数据库表中最新一条数据 case和sum的组合 TOP子句 select into mysql不可用 IFNULL() COALESCE() FIRST()返回指定字段第一个记录的值 阅读详情

数据查询

语句格式

SELECT [ALL|DISTINCT] <目标列表达式>

  [,<目标列表达式>] …

FROM <表名或视图名>[, <表名或视图名> ] …

[ WHERE <条件表达式> ]

[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]

[ ORDER BY <列名2> [ ASC|DESC ] ];

消除取值重复的行

如果没有指定DISTINCT关键词,则缺省为ALL

查询满足条件的元组

常用的查询条件

查 询 条 件

谓    词

比    较

=,>,<,>=,<=,!=,<>,!>,!<;NOT+上述比较运算符

确定范围

BETWEEN AND,NOT BETWEEN AND

确定集合

IN,NOT IN

字符匹配

LIKE,NOT LIKE

空    值

IS NULL,IS NOT NULL

多重条件(逻辑运算)

AND,OR,NOT

 

(1) 比较大小

查询计算机科学系全体学生的名单。

   SELECT Sname

   FROM Student

   WHERE Sdept=‘CS’;

(2)确定范围

查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄

SELECT Sname,Sdept,Sage

FROM    Student

WHERE  Sage BETWEEN 20 AND 23;

(3) 确定集合

IN <值表>,  NOT IN <值表>         

[例12]查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

       SELECTSname,Ssex

       FROM  Student

       WHERESdept IN ( 'IS','MA','CS' );

[例13]查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。

SELECT Sname,Ssex

FROM Student

        WHERE Sdept NOT IN ( 'IS','MA','CS' );

(4)字符匹配

[NOT] LIKE ‘<匹配串>’  [ESCAPE ‘ <换码字符>’]

1)     匹配串为固定字符串

查询学号为200215121的学生的详细情况。

    SELECT *   

    FROM  Student 

    WHERE  Sno LIKE ‘200215121';

等价于:

     SELECT  *

     FROM  Student

     WHERE Sno = ' 200215121 ';

匹配串为含通配符的字符串

[例15]  查询所有姓刘学生的姓名、学号和性别。

     SELECT Sname,Sno,Ssex

     FROM Student

     WHERE  Sname LIKE ‘刘%’;

[例16]  查询姓"欧阳"且全名为三个汉字的学生的姓名。

     SELECT Sname

      FROM  Student

     WHERE  Sname LIKE '欧阳__';

查询名字中第2个字为"阳"字的学生的姓名和学号。

     SELECT Sname,Sno

     FROM Student

     WHERE Sname LIKE ‘__阳%’;

查询所有不姓刘的学生姓名。

     SELECT Sname,Sno,Ssex

     FROM Student

     WHERE Sname NOT LIKE '刘%';

使用换码字符将通配符转义为普通字符

 [例19] 查询DB_Design课程的课程号和学分。

     SELECT Cno,Ccredit

     FROM Course

     WHERE Cname LIKE 'DB\_Design' ESCAPE '\‘;

[例20]  查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况。

     SELECT  *

     FROM   Course

     WHERE  Cname LIKE  'DB\_%i_ _' ESCAPE ' \ ‘;

 ESCAPE'\' 表示“ \” 为换码字符

(5) 涉及空值的查询

IS NULL 或 IS NOT NULL

“IS” 不能用“=” 代替

某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。

        SELECT Sno,Cno

     FROM  SC

     WHERE  Grade IS NULL

查所有有成绩的学生学号和课程号。

     SELECT Sno,Cno

     FROM  SC

     WHERE  Grade IS NOT NULL;

(6) 多重条件查询

逻辑运算符:AND和 OR来联结多个查询条件

 AND的优先级高于OR

 可以用括号改变优先级

可用来实现多种其他谓词

[NOT] IN

[NOT] BETWEEN …   AND  …

查询计算机系年龄在20岁以下的学生姓名。

    SELECT Sname

      FROM  Student

      WHERE Sdept= 'CS' AND Sage<20;

查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

SELECT Sname,Ssex

FROM Student

WHERE Sdept IN ( 'IS','MA','CS' )

可改写为:

SELECT Sname,Ssex

FROM  Student

WHERE Sdept= ' IS ' OR Sdept= ' MA' OR Sdept= ' CS ';

ORDER BY子句

可以按一个或多个属性列排序

升序:ASC;降序:DESC;缺省值为升序

当排序列含空值时

ASC:排序列为空值的元组最后显示

DESC:排序列为空值的元组最先显示

查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

       SELECT Sno,Grade

       FROM  SC

       WHERE  Cno= ' 3 '

       ORDER BY Grade DESC;

查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。

       SELECT  *

       FROM  Student

       ORDER BY Sdept,Sage DESC; 

聚集函数

计数

COUNT([DISTINCT|ALL] *)

COUNT([DISTINCT|ALL] <列名>)

计算总和

SUM([DISTINCT|ALL] <列名>)   

计算平均值

AVG([DISTINCT|ALL] <列名>)

最大最小值

       MAX([DISTINCT|ALL] <列名>)

        MIN([DISTINCT|ALL] <列名>)

查询学生总人数。

   SELECT COUNT(*)

   FROM  Student; 

查询选修了课程的学生人数。

    SELECT COUNT(DISTINCT Sno)

    FROM SC;

计算1号课程的学生平均成绩。

         SELECT AVG(Grade)

         FROM SC

         WHERE Cno= ' 1 ';

GROUP BY子句

求各个课程号及相应的选课人数。

    SELECT Cno,COUNT(Sno)

    FROM    SC

    GROUP BY Cno; 

     查询结果:

          Cno        COUNT(Sno)

                    1             22

                  2             34

                 3             44

                    4             33

               5             48

HAVING短语与WHERE子句的区别:

§        作用对象不同

§        WHERE子句作用于基表或视图,从中选择满足条件的元组

§        HAVING短语作用于组,从中选择满足条件的组。

一、等值与非等值连接查询

v     等值连接:连接运算符为=

[例33]  查询每个学生及其选修课程的情况

                       SELECT  Student.*,SC.*

                             FROM     Student,SC

                     WHERE  Student.Sno = SC.Sno;

Student.Sno

Sname

Ssex

Sage

Sdept

SC.Sno

Cno

Grade

200215121

李勇

男

20

CS

200215121

1

92

200215121

李勇

男

20

CS

200215121

2

85

200215121

李勇

男

20

CS

200215121

3

88

200215122

刘晨

女

19

CS

200215122

2

90

200215122

刘晨

女

19

CS

200215122

3

80

 复合条件连接

WHERE子句中含多个连接条件

[例37]查询选修2号课程且成绩在90分以上的所有学生            

              SELECTStudent.Sno, Sname

              FROM    Student, SC

              WHEREStudent.Sno = SC.Sno AND  

                                            /* 连接谓词*/

                         SC.Cno= ‘2’ AND SC.Grade > 90;      

                                   /*其他限定条件 */

 

查询每个学生的学号、姓名、选修的课程名及成绩

 SELECT Student.Sno,Sname,Cname,Grade

  FROM    Student,SC,Course    /*多表连接*/

  WHERE Student.Sno = SC.Sno

                   and SC.Cno = Course.Cno;

嵌套查询

一个SELECT-FROM-WHERE语句称为一个查询块

将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询

SELECT Sname                             /*外层查询/父查询*/

    FROM Student

    WHERE Sno IN

                        (SELECT Sno             /*内层查询/子查询*/

                           FROM SC

                            WHERE Cno= ' 2 ');

 

带有IN谓词的子查询

查询与“刘晨”在同一个系学习的学生

SELECT Sno,Sname,Sdept

           FROM Student

     WHERE Sdept IN

                  (SELECT Sdept

                   FROM Student

                   WHERE Sname= ‘ 刘晨 ’);

    此查询为不相关子查询。

用自身连接完成查询要求

    SELECT  S1.Sno,S1.Sname,S1.Sdept

     FROM     Student S1,Student S2

     WHERE  S1.Sdept = S2.Sdept  AND

                      S2.Sname = '刘晨';

 

查询选修了课程名为“信息系统”的学生学号和姓名

      SELECT Sno,Sname                    ③ 最后在Student关系中取出Sno和Sname

      FROM   Student                                    

      WHERE Sno IN

            (SELECT Sno         ② 然后在SC关系中找出选修了3号课程的学生学号

              FROM    SC                                   

              WHERE  Cno IN

                    (SELECT Cno                     ① 首先在Course关系中找出

                       FROM Course                   “信息系统”的课程号,为3号

                       WHERE Cname= ‘信息系统’

                     )

              );

集合查询

查询计算机科学系的学生及年龄不大于19岁的学生。

方法一:

       SELECT *

       FROM Student

       WHERE Sdept= 'CS'

       UNION

       SELECT *

       FROM Student

       WHERE Sage<=19;

UNION:将多个查询结果合并起来时,系统自动去掉重复元组。

UNION ALL:将多个查询结果合并起来时,保留重复元组

SQL查询语句的全面实践指南 SQL(Structured Query Language)是一种用于存储、检索和操作数据库数据的标准编程语言。它允许用户执行各种操作,如查询、更新、插入和删除。掌握SQL查询语句对每个IT专业人士而言是基本功,无论是在开发应用程序、管理数据库还是进行数据分析时都不可或缺。为了满足不同层级IT从业者的需要,本章将全面展示SQL查询语句的丰富用法。从基础的SELECT语句到复杂的事务处理,从子查询到窗口函数的应用,我们会一步步深入了解SQL查询的各个方面。 阅读详情

相关推荐

解码运动想象:BCI Competition IV 2a数据集实战指南

本文提供了BCI Competition IV 2a数据集的实战指南,详细解析了该经典运动想象脑电数据集的结构、文件格式与实验范式。通过MNE-Python等工具,逐步演示了从原始信号读取、预处理(通道选择、滤波、分段)到特征提取(CSP、频带功率)和模型训练(LDA、SVM)的完整流程,并强调了受试者独立评估的重要性,为BCI研究者提供了可复现的入门与进阶路径。

weixin_29304985的博客 366

数据库:SQL数据查询(详细、全面)

以下题目中加粗字体为重点哦~ 一、查询指定列、全部列 1.查询全体学生的学号和姓名 SELECT SNO, SN FROM S 2.查询全部列 SELECT * FROM S 二、查询经过计算的值 3. 查询全体学生的姓名、出生年份 SELECT SN, 2020-AGE FROM S 4. 查村全体学生的姓名、出生年份和系名(要求用小写字母表示系名) SELECT SN, 2020-AGE ...

hhhhxxn的博客 2万+

Drools vs URule:5个真实项目场景告诉你如何选择开源规则引擎

本文通过电商风控、物流计费、会员体系、保险定价和物联网告警五个真实项目场景,深度对比了Drools与URule两款开源规则引擎。分析了两者在规则复杂度、性能表现、开发运维及适用场景上的核心差异,为技术选型提供基于实战的决策指南。

k6l7m8n9的博客 945

数据库之查询表student——查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别

SELECT sname, ssex FROM student WHERE sdept = 'CS' OR sdept = 'MA' OR sdept = 'IS';

weixin_43866499的博客 4035

智能座舱通信技术解析:从CAN总线到车载以太网与V2X

在汽车电子与智能网联快速融合的背景下,座舱智能化已不再是简单的屏幕堆砌,而是依赖底层通信技术构建的复杂系统。CAN总线因高可靠性与确定性传输,持续承担车身控制与安全信号的传递;车载以太网则凭借高带宽优势,成为多屏高清视频与OTA升级的核心通道;V2X车路协同技术进一步将座舱与外界的实时信息互联。理解这些技术的分工协作,是掌握智能座舱架构、开展座舱测试与故障排查的关键。本文从实际测试经验出发,梳理不同总线在座舱内部及外部的应用逻辑,结合低成本的实验台架搭建指南,展示从信号采集、网关转发到多媒体流传输的完整链路

weixin_29284657的博客 344

SLAM 轨迹评估工具——EVO安装、使用介绍

evo是一款用于视觉里程计和SLAM问题的轨迹评估工具. 核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差. 支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag), 同时支持这些数据格式之间的相互转换,本文轨迹展示以tum数据格式为例。

u010196944的博客 1万+

Sql server数据库数据查询

答:查询所需的代码如下:USE学生管理数据库GOSELECTFROM学生信息表执行结果如下:答:查询所需的代码如下:USE学生管理数据库GOSELECT学号姓名性别FROM学生信息表执行结果如下:答:查询所需的代码如下:USE学生管理数据库GOSELECTTOP5FROM学生信息表执行结果如下:答:查询所需的代码如下:USE学生管理数据库GOSELECTDISTINCT专业FROM学生信息表。

weixin_62399938的博客 4390

LDRA Testbed软件静态分析_操作指南

从本文起,将开始LDRA Testbed(TBrun)教程的系列文章,包括软件静态分析、单元测试、集成测试,以及基于Testbed的自动化工具开发、持续集成、常见问题解答等。LDRA公司是专业的软件测试工具与测试技术、咨询服务提供者,其总部位于英国利物浦。其旗舰产品Testbed/TBrun功能全面、易于使用,不仅适合于主机平台软件测试,同时适合于嵌入式软件测试。不仅能进行软件静态测试,还能进行软件单元测试、软件集成测试,在白盒测试领域运用比较广泛。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1万+

3. 查询表student——查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别。

SELECT sname, ssex FROM student WHERE sdept = 'CS' OR sdept = 'MA' OR sdept = 'IS';

weixin_43939570的博客 1万+

k230 +canMV+ LVGL控件 仿手表表盘触摸屏滚动、选中后弹窗效果完整示例程序

现在智能手表用的越来越多,其交互方式比较有特点,现在k230开发板上,基于LVGL(Light and Versatile Graphics Library)编写一个嵌入式GUI应用程序,使用LVGL配合触摸屏实现模仿智能手表的表盘滚动效果,实际效果如下:程序使用LVGL图形库和MediaManager程序,创建带有触摸屏交互的GUI应用。程序主要功能包括显示初始化、LVGL初始化、创建GUI界面(包含一个可滚动的按钮列表,每个按钮点击会弹出消息框),以及处理触摸屏输入。

weixin_47446386的博客 1175

深度强化Q学习-基于微软AirSim仿真环境的自动驾驶案例(原理代码详解简易可行)

最近在学习《强化学习原理与Python实现》,肖智清著。参考第十二章的自动驾驶案例,写一篇总结,尽量做到简单可行,让有志于自动驾驶的小伙伴可以通过此篇博客可以管中窥豹,初步了解自动驾驶的强化学习训练过程。 本篇将自动驾驶问题转化为回合制的强化学习任务,设计以车辆观察图像和运行状态为输入的自动驾驶算法,并在AirSim仿真环境中进行训练和测试。本篇使用带经验回放和目标网络的基于深度Q网络算法设计并实现智能体,对经验回放、目标网络和深度Q学习算法进行简单介绍,并用代码实现。

shao918516的博客 8600

SQL数据查询

文章目录1 单关系查询1.1 投影查询1.2 选择查询1.3 聚集(Aggregation)查询2 连接查询3 嵌套查询 1 单关系查询 1.1 投影查询 1.2 选择查询 1.3 聚集(Aggregation)查询 2 连接查询 3 嵌套查询

流水无心恋落花 2118

高速电路设计必看:同步开关噪声问题解析

数字电路中的同步开关噪声(SSN)问题日益突出,尤其是随着高速器件应用增多。本文分析了地弹和电压弹的产生机理,指出其与电源网络电感、输出驱动电流变化率密切相关。文章详细阐述了地弹参数特征,包括峰值电压、脉冲宽度等关键指标,并探讨了负载电容、信号压摆率等因素对地弹的影响。最后提出系统化的解决方案,涵盖芯片选型、电路设计、PCB布局和后期调试等多个环节,强调通过降低回路电感和控制电流变化率来有效抑制SSN。这些措施需要在性能、成本和复杂度之间取得平衡,为高速数字电路设计提供了重要参考。

一只豌豆象的博客 301

SQL查询语句大全(个人总结)

全面的sql查询总结

shang_0122的博客 8万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SQL经典常用查询语句

在SQL中,查询表中所有数据是最基本的操作之一。通过使用语句,可以获取指定表中的所有记录和列。例如,假设有一个名为employees将返回employees表中的所有数据,包括员工的姓名、职位、工资等所有字段。这种查询方式适用于需要查看表中完整数据的情况,但需要注意,当表中数据量较大时,返回的结果集可能会非常庞大,对性能有一定影响。

5070

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

SQL 基础查询语句详解

SQL(Structured Query Language,结构化查询语言)是操作关系型数据库的标准语言,而查询语句是 SQL 中最核心、最常用的部分。无论是数据提取、报表生成还是数据分析,都离不开基础查询的灵活运用。本文将系统讲解 SQL 基础查询语句的语法、用法及实战案例,帮助初学者快速入门。

2302_76756558的博客 2094

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

SQL查询语句详解

SQL查询语句详解(一) 一、基本语法 Select select_list From table_name Where condition_expression Group by group_columns having condition_expression Order by sort_columns 二、查询实例 查询所有字段 查询指定字段 用DISTINCT去除结果中的重复行 查询指定数据 带有in关键字的查询 带between and的范围查询 带like的字符匹配查询 表1:

qq_43550060的博客 1万+

Windows server 2016——SQL server T-SQL查询语句

本系列文章将会讲解SQL server 中 server T-SQL查询语句,并且会同步视频进行安装讲解。视频教程:Windows server 2016——SQL server 数据库和表的管理SQL Server是由微软公司开发的关系型数据库管理系统,现在是全世界主流数据库之一。它具备方便使用、可伸缩性好、相关软件集成程度高等优势,能够从单一的笔记本上运行或以高倍云服务器集群为基础,或在这两者之间任何一种方式上运行。SQL (结构化查询语言)关系数据库的标准语言非过程化语言统一的语言。

yj11290301的博客 6613

sql查询语句 布尔类型_SQL 简单查询语句

SQL 语句中最核心的是查询语句。目录一、基本的查询语句二、指定查询条件三、注释和 SQL 语句注意事项四、运算符五、字符串模糊查询(新增)六、sqlzoo 网站 select 查询语句练习题正文一、基本的查询语句select 语句是 SQL 语句中使用最多也是最核心的语句。在 navicat 中输入查询语句,数据库将返回查询结果。子句是 SQL 语句的组成要素,以某个关键字开始。 selec...

weixin_39953673的博客 2260

GaussDB SQL查询语句执行过程解析

在下推算子执行时,会考虑数据本地性,尽可能在本地计算,减少数据在网络中的传输开销。(2)ABO(AI Based Optimization,基于机器学习的查询优化):通过对历史经验的不断学习,ABO将目标场景的模式进行抽象化,形成动态的模型,自适应地针对用户的实际场景进行优化,从而获得最优的执行计划。物化算子一般指算法要求,在做算子逻辑处理的时候,要求把下层 的数据进行缓存处理,因为对于下层算子返回的数据量不可提前预 知,因此需要在算法上考虑数据无法全部放置到内存的情况,例如 Agg、Sort。

feng6693的博客 999

SQL基础查询语句

SQL语句 目录SQL语句1、select 查询语句1.1、where 条件查询1.2 比较条件与between-and1.3 and or not1.4 null1.5 some any all1.6 集合操作1.7 like 模糊查询1.8 in与exists1.9 排序 order by2、函数2.1 单行函数2.1.1 日期函数2.1.1.1 sysdate/current_date2.1.1.2 add_months(d,x)2.1.1.3 last_day(d)2.1.1.4 months_

忄凝^的博客 1390

SQL查询语句基础构成

本文是基本的SQL查询语句用法,内容主要来自Alan Learning SQL这本书第3章,包括select,from,where,group by,having,order by六个查询子句,后续会深入介绍每个查询子句的用法。 1. 查询机制 在已经创建数据库连接的情况下,当查询被发送到服务器端时,服务器在执行查询语句之前需要进行检查: 用户是否有权限执行该语句? 用户是否有...

数据客 2011

SQL语言中的查询语句整理

快速认识一下sql语言中的查询语句

拔高、提升、创新! 5015

SQL查询语句大全集锦

SQL查询语句大全集锦 MYSQL查询语句大全集锦 一、 简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname...

1519
上一篇: HTML图片预览实现
下一篇: 数据库的连接——通用版
Ailion.Wang
博客等级 码龄15年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值