广告
返回顶部
首页 > 资讯 > 数据库 >SQL中关键字的使用示例
  • 303
分享到

SQL中关键字的使用示例

2024-04-02 19:04:59 303人浏览 泡泡鱼
摘要

这篇文章主要介绍了sql中关键字的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。起别名在实际的项目中,有时候我们的表名、字段名过于复

这篇文章主要介绍了sql中关键字的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

起别名

在实际的项目中,有时候我们的表名、字段名过于复杂以致于我们的 SQL 写出来过长、过于复杂,这时候我们往往会通过起别名的方式将一些名字较长、较为复杂的字段或是表名简化。

我们可以使用别名(Alias)来对数据表或者列进行临时命名,既然是别名,也就是说并不会修改原表或列的原始名称,仅仅用于当前查询的简介化显示。

给表起别名:

select * from person as p
where p.id = 1;

一旦为表执行了别名,那么本次查询的子查询语句中都可以直接引用别名替代原表的引用。

给列起别名:

select name as n,age as a from perosn;

除了使用关键字 as 来给表或是列起别名外,还可以直接使用空格字符达到同样的效果,但是个人认为要么全部使用 as 进行别名,要么全部使用空格进行别名,不要交叉使用使得你的 SQL 复杂又难以看懂。

消除重复记录

有时候,我们的数据库中会存在两条完全一样的数据,我们也叫做冗余数据,当然不希望在查询数据的时候查出来这么些冗余的重复数据,我们要把它们过滤掉。

LeetCode 上的一道简单题:

有一个courses 表 ,有: student (学生) 和 class (课程)。

请列出所有超过或等于5名学生的课。

例如,表:

+---------+------------+
| student | class  |
+---------+------------+
| A  | Math  |
| B  | English |
| C  | Math  |
| D  | Biology |
| E  | Math  |
| F  | Computer |
| G  | Math  |
| H  | Math  |
| I  | Math  |
+---------+------------+

应该输出:

+---------+
| class   |
+---------+
| Math    |
+---------+

你可以花个一分钟思考一下,运用我们之前的基本功,应该是不难的。

显然是需要用到分组的,想要统计每门课有多少人选,就得按照学科进行分组,每个分组内就是该门学科选修的学生记录。

那么 SQL 语句也就信手拈来了:

select class from courses
group by class
having count(student) >=5

但是你提交后在海量测试用例下,会返回给你解答错误的提示,不信你试试,问题出在哪?

问题就出现在冗余数据这个边界条件没有被考虑,如果 A 选了两次 Math,当我们对 Math 这个分组进行计数时就会多算一次选 Math 的人数,实际上这是不符合逻辑的,我们需要过滤掉那些重复选择的数据记录。

解决方案如下:

select class from courses
group by class
having count(distinct student) >=5

有些人可能看出来了,我们在 count 函数的列参数前添加了一个 distinct 关键字,它表示如果 student 列的值重复出现的话只计数一次。

当然,distinct 除了可以在聚合函数中使用外,也可以直接用在查询语句的列筛选阶段,例如:

//取出所有的学生,不允许重复名字的学生同时出现
select distinct name from students

连接结果集

UNION 运算符可以将一个或多个 SELECT 语句的结果连接组合成一个结果集,但要求两个或多个结果具有相同数量的列,列的数据类型相同,举个例子:

构建一个学生表:

+----+------+----------+-------+
| id | name | uNo  | fees |
+----+------+----------+-------+
| 1 | 张三 | 15263501 | 18000 |
| 2 | 李四 | 15263506 | 15960 |
| 3 | 王二 | 15263512 | 2500 |
+----+------+----------+-------+

学生表主要有学生的姓名,学号和学费。

构建一个教师表:

+----+--------+------+--------+
| id | name | tNo | salary |
+----+--------+------+--------+
| 1 | 李老师 | 1001 | 10000 |
| 2 | 杨老师 | 1002 | 15000 |
| 3 | 曹老师 | 1030 | 5000 |
+----+--------+------+--------+

现在有一个需求,需要拿到全校所有人的姓名和编号,包括学生和老师。一般来说,我们两次 select 查询就好了,但是没法合并在一个结果集中显示,这是一个问题。

于是我们可以使用 union 来连接两个结果并在一张表中显示出来:

select name,uNo from students
union
select name,tNo from teacher

查询结果:

+--------+----------+
| name   | uNo      |
+--------+----------+
| 张三   | 15263501 |
| 李四   | 15263506 |
| 王二   | 15263512 |
| 李老师 | 1001     |
| 杨老师 | 1002     |
| 曹老师 | 1030     |
+--------+----------+

看起来是不是直观了很多,除此之外的是,如果两个结果集中存在完全重复的数据记录,合并后的结果集中不会重复出现该数据记录。

当然了,如果你不需要在合并结果集的时候删除掉重复的数据行,你可以转而使用关键字 UNION ALL 替代 UNION。

TOP

TOP 子句用于从一张数据表中取回前 N 个或者 X% 的记录,但是需要注意的是,没有一个数据库实现是支持 TOP 的,各自有各自的关键字作为替代,例如 Mysql 和 SQLserver 使用 LIMIT 关键字,oracle 使用 ROWNUM 关键字。

例如:

select * from students limit 2;

mysql 数据库取出前两条数据,等效的 Oracle 数据库写法:

select * from students
rownum <= 2

感谢你能够认真阅读完这篇文章,希望小编分享的“SQL中关键字的使用示例”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: SQL中关键字的使用示例

本文链接: https://www.lsjlt.com/news/57625.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL中关键字的使用示例
    这篇文章主要介绍了SQL中关键字的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。起别名在实际的项目中,有时候我们的表名、字段名过于复...
    99+
    2022-10-18
  • use关键字在PHP中的使用示例
    这篇文章主要介绍了use关键字在PHP中的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.用于命名空间的引用<phpnamespace admin\...
    99+
    2023-06-14
  • C#中using关键字的使用方法示例
    目录1 :using 指令(命名空间)2 :using 语句(1 ):using (ResourceType Identifier = Expression ) State...
    99+
    2022-11-13
  • Kotlin中Object关键字的使用示例介绍
    目录1.定义单例类2.对象表达式3.伴生对象在kotlin中的超类是Any,并没有使用Java中的Object关键字表示超类。 在Kotlin中Object关键字,另有作用。 1.定...
    99+
    2022-11-13
  • python中命名关键字参数的使用示例
    小编给大家分享一下python中命名关键字参数的使用示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、如果函数定义中已经有了一个可变参数,后面跟着的命名关键字...
    99+
    2023-06-15
  • SQL中关于distinct关键字的使用方法
    这篇文章主要介绍SQL中关于distinct关键字的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有...
    99+
    2022-10-18
  • php替换关键字的示例
    这篇文章将为大家详细讲解有关php替换关键字的示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php替换关键字的方法:首先创建一个PHP示例文件;然后通过“str_replace(find,replac...
    99+
    2023-06-08
  • SQL的Merge关键字怎么使用
    这篇文章主要介绍“SQL的Merge关键字怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SQL的Merge关键字怎么使用”文章能帮助大家解决问题。Merge关键字是一个神奇的DML关键字。它...
    99+
    2023-06-27
  • SQL Server中如何使用Apply关键字
    SQL Server中如何使用Apply关键字,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、概念介绍APPLy关键字是SQLServe...
    99+
    2022-10-18
  • Java关键字final的示例分析
    小编给大家分享一下Java关键字final的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、常见问题所有的final修饰的字段都是编译期常量吗如何理解p...
    99+
    2023-06-15
  • C++示例讲解friendstaticconst关键字的用法
    目录一、友元函数1.1重载operator<<1.2友元函数1.3友元类二、关键字const2.1const修饰类的成员函数三、关键字static3.1static类成员...
    99+
    2022-11-13
  • JAVA并发中VOLATILE关键字的示例分析
    小编给大家分享一下JAVA并发中VOLATILE关键字的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!并发编程中的三个概念:1.原子性在Java中,对基本...
    99+
    2023-06-15
  • C语言volatile关键字的作用与示例
    目录写在前面volatile和内联汇编的volatile的选择写在前面 版本信息:Linux操作系统,x86架构,Linux操作系统下GCC9.3.1版本。GCC 9.3.0手册。 ...
    99+
    2023-05-15
    C语言volatile关键字 C语言volatile
  • SQL中UNION关键字怎么用
    小编给大家分享一下SQL中UNION关键字怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SQL中的UNION...
    99+
    2022-10-19
  • SQL中distinct关键字的作用是什么
    在SQL中,DISTINCT关键字用于返回唯一不重复的记录。当在SELECT语句中使用DISTINCT关键字时,查询结果将只返回不重...
    99+
    2023-09-14
    SQL
  • defer关键字、panic和recover的示例分析
    这篇文章给大家介绍defer关键字、panic和recover的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。defer关键字defer关键字可以让函数或语句延迟到函数语句块的...
    99+
    2022-10-19
  • java基础之关键字的示例分析
    这篇文章将为大家详细讲解有关java基础之关键字的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、static关键字1.1 使用static关键字定义属性在讲解static定义属性操作之前,首先...
    99+
    2023-06-20
  • Java中Volatile关键字详解及代码示例
    一、基本概念先补充一下概念:Java内存模型中的可见性、原子性和有序性。可见性:可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了...
    99+
    2023-05-30
    java volatile关键字 ava
  • Kotlinthis关键字的使用实例详解
    目录this可以用来访问类的成员使用this访问类实例二级构造函数的委托在 Kotlin 中,this 关键字允许我们引用一个类的实例,该类的函数恰好正在运行。此外,还有其他方式可以...
    99+
    2023-02-17
    Kotlin this关键字 Kotlin this的使用
  • Javascript中this关键字指向问题的示例分析
    这篇文章主要介绍了Javascript中this关键字指向问题的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。测试题目第一题<...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作