SQL 简单查询

目录

一、投影查询

1、指定特定列查询

2、修改返回列名查询

3、计算值查询

二、选择查询

1、使用关系表达式

2、使用逻辑表达式

3、使用 BETWEEN关键字

4、使用 IN关键字

5、使用 LIKE关键字

6、使用 IS NULL/ NOT NULL关键字

7、符合条件查询

三、聚合函数查询


一、投影查询

--  投影查询

SELECT   [ ALL | DISTINCT ]  [ TOP n [ PERCENT ] ]

{ * | { { column_name | expression | IDENTITYCOL | ROWGUIDCOL }

        [ [ AS ]  column_alias ] | column_alias = expression } [ , ... n ] }

--  ALL:指定返回所有记录,也包括重复行,默认设置。面向的是表中的数据(行)。

--  DISTINCT:指定显示所有记录,但不包括重复行。

--  TOP  n [ PERCENT ]:指定从查询结果中返回前 n行,或前 n%行。

--  * :表示所有列。

--  column_name:指定要返回的列名。

--  expression:是列名、常量、函数以及由运算符连接的列名、常量和函数的任意组合,或者是子查询。

--  column_alias:使用 AS关键字来给返回集中的字段设置别名。

本文中将以下标为列。

学生表 student

成绩表 sc

课程表 course

1、指定特定列查询

--  查询 student表中的所有记录。

select  * from  student

--  返回 student表中的学号,姓名和性别。

select  sno,sname,ssex  from student

--  查看 student表中有哪些专业。

select  distinct(specialty)  from  student

--  查看 student表中的前 3行信息。

select  top  3 * from student

--  查看 student表中前 50%行的信息

select  top  50 percent  * from student

2、修改返回列名查询

在 SQL中,使用 AS关键字来修改返回集中的列名。

--  返回 student表中所有学生的学号、姓名、性别信息,要求使用中文标题。

select  sno  as  学号,sname  as 姓名,ssex as  性别 from student

select  sno  as  '学号',sname  as '姓名',ssex as  '性别' from student

select  sno '学号',sname '姓名',ssex  '性别' from student

select  '学号' =  sno,  '姓名' = sname,  '性别' = ssex  from student

3、计算值查询

在 SQL中,经常会对查询到的数据进行再次计算。

--  查询 sc表中的数据,并将成 sc表中的成绩从100分制改成150分制。

select  sno,cno,'150分制' = score*1.50 from sc

二、选择查询

1、使用关系表达式

常用的查询条件
查询条件条件
比较运算符=,>,<,>=,<=,!=,<>(不等于),!>,!<
确定范围BETWEEN  AND,NOT  BETWEEN  AND
确定集合IN,NOT  IN
字符匹配LIKE,NOT  LIKE
空值IS  NULL,NOT  NULL
多重条件

AND,OR,NOT

--  查看 sc表中,成绩大于等于80分的学号,课程号,成绩。

select  sno,cno,score  from  sc

where score >= 80

2、使用逻辑表达式

逻辑表达式
逻辑运算符描述
NOT非,对表达式的否定。
AND与,连接多个条件,所有的条件都成立时为真。
OR

或,连接多个条件,只要有一个条件成立时,就为真。

--  查看计算机专业的男生信息。

select  *  from student

where  ssex = '男'  and  specialty = '计算机'

--  查看计算机专业或男生的信息。

select  * from student

where specialty = '计算机' or ssex = '男'

3、使用 BETWEEN关键字

        在 SQL中,使用 BETWEEN关键字可以很方便地限制查询数据的范围。BEWTEEN表达式完全可以使用含有 >=和 <=的逻辑表达式来代替。使用 NOT  BETWEEN 表达式完全可以使用含有 >和 <的逻辑表达式来代替。

语法格式

表达式  [ NOT ]  BETWEEN  表达式1  AND  表达式2

--  查看成绩在80 ~90之间的学生学号,课程号和成绩。

select * from sc

where score >=80 and  score <= 90

select * from sc
where score between 80 and 90

--  查看成绩不在80 ~90之间的学生学号,课程号和成绩。

select * from sc

where  score not between 80 and 90

4、使用 IN关键字

        在 SQL中,使用 IN关键字,也是为了更方便地限制检索数据的范围。

语法格式

表达式  [ NOT ]  IN  (表达式1,表达式2, ..., 表达式n)

--  查看计算机专业 和通信工程专业的学生姓名,性别和专业。

select  sname,ssex,specialty  from  student

where  specialty  in ('计算机', '通信工程')

5、使用 LIKE关键字

        使用 LIKE关键字查询,又叫模糊查询,LIKE关键字搜索与指定模式匹配的字符串、日期或时间值。字符串中可以包含 4种通配符的任意组合。

通配符
通配符描述
%包含零个或多个字符的任意字符串。
_任意单个字符。
[ ]代表指定范围的单个字符,[ ] 中可以是单个字符(如 [ aceg ]),也可以是字符范围(如 [ a-g ])。
[ ^ ]代表不在指定范围内的单个字符,[ ^ ] 中可以是单个字符,也可以是字符范围。

--  示例

like  'ac%':返回以 'ac' 开头的任意字符串。

like  '%AB':返回以 'AB' 结尾的任意字符串。

like  '%AC%':返回包含 'AC' 字符的任意字符串。

like  '_ab%':返回包含 'ab' 结束的三个字符的字符串。

like  '[ ABC ]%':返回以 'A' ,'B', 'C' 开头的任意字符串。

like  '[ A-Z ] ing%':返回4个字符串,结尾是 'ing',首字符是范围从 A到 Z。

like  'M [ ^ c]':返回以 M开始,且第二个字符不是 'c'的任意长度的字符串。

--  示例:查询 student表中张性的学生信息。

select  * from  student

where  sname  like '张%'

6、使用 IS NULL/ NOT NULL关键字

        在 WHERE子句中,不能使用比较运算符对空值进行判断,只能使用空值表达式来判断某个字段值是否为空。

语法

表达式   IS  [ NOT ]  NULL

--  示例:查看所有成绩为空的学生的学号、课程号和成绩。

select  sno,cno,score  from  sc

where  score  is  null

7、符合条件查询

        在 WHERE中,可以使用逻辑运算符把若干个搜索条件合并起来,组合成复杂的符合搜索条件。在一个 WHERE子句中,同时包含多个逻辑运算符时,其优先等级从高到底依次是:NOT、AND、OR。

--  示例:查询 student表中,专业为计算机 和网络工程的女生的信息。

select  * from  student

where  ssex = '女'  and

( specialty = '计算机'  or specialty = '网络工程' )

三、聚合函数查询

        在 SQL中,提供了一系列聚合函数,这些函数把存储在数据库中的数据描述为一个整体而不是一行行孤立的记录,通过使用这些函数可以实现数据集合的汇总或是求平均值等各种运算。

常用的聚合函数
函数名描述
sum(列名)返回一个数字列的总和。
avg(列名)对一个数据列计算平均值。
min(列名)返回一个数字、字符串或日期列的最小值。
max(列名)返回一个数字、字符串或日期列的最大值。
count(列名)返回一个列的数据项数,条数。
count(*)返回找到的函数

        在 SELECT中子句中,可以使用聚合函数进行运算,运算结果作为新列出现在结果集中,但此列没有列名。在聚合运算的表达式中,可以包括列名、常量以及由算术运算符连接起来的函数。

--  示例:查看 sc表中成绩的平均值,列标题为 ‘平均值’

select  '平均值' = avg(score)  from  sc

--  示例:查看 student表中专业个数。

select  '专业个数' = count( distinct  specialty)  from  student

--  示例:查看学号为 '201501001'的平均成绩和最高成绩。

select  avg(score),max(score)  from sc

where  sno = '201602001'

一般情况下,可以在两个地方使用聚合函数,即 SELECT子句 和 HAVING子句中。

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

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

相关文章

vuepress搭建个人文档

vuepress搭建个人文档 文章目录 vuepress搭建个人文档前言一、VuePress了解二、vuepress-reco主题个人博客搭建三、vuepress博客部署四、vuepress后续补充 总结 vuepress搭建个人文档 所属目录&#xff1a;项目研究创建时间&#xff1a;2024/7/23作者&#xff1a;星云<Xing…

Nuxt 使用指南:掌握 useNuxtApp 和运行时上下文

title: Nuxt 使用指南&#xff1a;掌握 useNuxtApp 和运行时上下文 date: 2024/7/21 updated: 2024/7/21 author: cmdragon excerpt: 摘要&#xff1a;“Nuxt 使用指南&#xff1a;掌握 useNuxtApp 和运行时上下文”介绍了Nuxt 3中useNuxtApp的使用&#xff0c;包括访问Vue实…

[Spring] Spring日志

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

python实现责任链模式

把多个处理方法串成一个list。下一个list的节点是上一个list的属性。 每个节点都有判断是否能处理当前数据的方法。能处理&#xff0c;则直接处理&#xff0c;不能处理则调用下一个节点&#xff08;也就是当前节点的属性&#xff09;来进行处理。 Python 实现责任链模式&#…

在浏览器中测试JavaScript代码方法简要介绍

在浏览器中测试JavaScript代码方法简要介绍 在浏览器中测试JavaScript代码是前端开发中的一个重要技能。方法如下&#xff1a; 1. 浏览器控制台 最简单和直接的方法是使用浏览器的开发者工具中的控制台&#xff08;Console&#xff09;。 步骤&#xff1a; 在大多数浏览器…

Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示

Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示 目录 Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示 一、简单介绍 二、共享纹理 1、共享纹理的原理 2、共享纹理涉及到的关键知识点 3、什么可以实现共享 不能实现共享…

有关于链表带环的两道OJ题目

目录 1.判断链表是否带环 1.1快指针的速度为慢指针的2倍 1.2快指针的速度为慢指针的3倍 2.找出带环链表开始入环的第一个节点 2.1将快慢指针相遇的节点与后面分开&#xff0c;构造交叉链表 2.2记录快慢指针相遇节点&#xff0c;与头结点一起向后走&#xff0c;相遇点为入…

远程开启空调,享受即刻凉爽

随着夏季的热浪逐渐侵袭&#xff0c;我们都渴望回到家中那一刻&#xff0c;能感受到一丝丝的凉意。但是&#xff0c;有时候&#xff0c;即使我们提前开窗通风&#xff0c;房间里的温度依然像烤箱一样闷热难耐。那么&#xff0c;有没有一种方法&#xff0c;能让我们在外头酷暑难…

升级Nvidia CUDA 遇到 sub-process /usr/bin/dpkg returned an error code (1)

1.问题描述 在自己Ubuntu22.04的服务器环境上存在cuda版本为11.5&#xff0c;按照官网教程升级为12.1运行安装命令 sudo apt-get -y install cuda 报错&#xff1a;sub-process /usr/bin/dpkg returned an error code (1) 官网教程&#xff1a; https://developer.nvidia…

PCIE软件基础知识

什么是PCIE PCIe&#xff0c;全称 Peripheral Component Interconnect Express&#xff0c;是一种高速串行计算机扩展总线标准&#xff0c;用于连接计算机内部的硬件组件&#xff0c;如显卡、存储设备、网络适配器等。PCIe是一种点对点的双向通信标准&#xff0c;这意味着它在发…

微信小程序canvas 使用案例(一)

一、cavans 对象获取、上线文创建 1.wxml <!-- canvas.wxml --><canvas type"2d" id"myCanvas"></canvas> 2.js /*** 生命周期函数--监听页面加载*/onLoad(options) {const query wx.createSelectorQuery()query.select(#myCanvas).f…

分离式网络变压器的集成化设计替代传统网络变压器(网络隔离滤波器)尝试

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;今天分享的是应用了分离式网络变压器设计的的新型网络变压器&#xff08;网络隔离变压器&#xff09; 今天我们一起来看这款新型网络变压器&#xff0c;它就是应用分离式网络变压器集成到电路板上&#xff0c;加上外…

CAS乐观锁原理

1、什么是CAS&#xff1f; compare and swap也就是比较和交换&#xff0c;他是一条CPU的并发原语。 他在替换内存的某个位置的值时&#xff0c;首先查看内存中的值与预期值是否一致&#xff0c;如果一致&#xff0c;执行替换操作。 这个操作是一个原子性操作。 Java中基于Un…

昇思学习打卡-21-生成式/Diffusion扩散模型

文章目录 Diffusion扩散模型介绍模型推理结果 Diffusion扩散模型介绍 关于扩散模型&#xff08;Diffusion Models&#xff09;有很多种理解&#xff0c;除了本文介绍的离散时间视角外&#xff0c;还有连续时间视角、概率分布转换视角、马尔可夫链视角、能量函数视角、数据增强…

虚拟机迁移报错:虚拟机版本与主机“x.x.x.x”的版本不兼容

1.虚拟机在VCenter上从一个ESXi迁移到另一个ESXi上时报错&#xff1a;虚拟机版本与主机“x.x.x.x”的版本不兼容。 2.例如从10.0.128.13的ESXi上迁移到10.0.128.11的ESXi上。点击10.0.128.10上的任意一台虚拟机&#xff0c;查看虚拟机版本。 3.确认要迁移的虚拟机磁盘所在位…

操作系统---死锁相关

目录 一. 基础概念死锁的定义死锁与饥饿死锁产生原因死锁产生的必要条件资源分配圈&#xff1a;循环等待 VS 死锁 死锁处理策略 二. 死锁预防破坏互斥条件破坏不可剥夺条件破坏请求并保持条件破坏循环等待条件 三. 死锁的避免系统安全状态银行家算法 四. 死锁检测和解除死锁检测…

Mysql注意事项(一)

Mysql注意事项&#xff08;一&#xff09; 最近回顾了一下MySQL&#xff0c;发现了一些MySQL需要注意的事项&#xff0c;同时也作为学习笔记&#xff0c;记录下来。–2020年05月13日 1、通配符* 检索所有的列。 不建议使用 通常&#xff0c;除非你确定需要表中的每个列&am…

微软研发致胜策略 06:学无止境

这是一本老书&#xff0c;作者 Steve Maguire 在微软工作期间写了这本书&#xff0c;英文版于 1994 年发布。我们看到的标题是中译版名字&#xff0c;英文版的名字是《Debugging the Development Process》&#xff0c;这本书详细阐述了软件开发过程中的常见问题及其解决方案&a…

【运维】软件运维方案(2024word完整版)

1. 文档介绍 2. 人员与责任 3. 运维过程内容 4. 运维资源 5. 运维服务规划保障 6. 事件处置 7. 质量改进 8. 运维边界及内容 获取方式&#xff1a; 本文末个人名片直接获取。

2024年技校大数据实验室建设及大数据实训平台整体解决方案

随着信息技术的迅猛发展&#xff0c;大数据已成为推动产业升级和社会进步的重要力量。为适应市场需求&#xff0c;培养高素质的大数据技术人才&#xff0c;技校作为职业教育的重要阵地&#xff0c;亟需加强大数据实验室的建设与实训平台的打造。本方案旨在提出一套全面、可行的…