SQL进阶操作初步

简介: 引入SQL作为一种语言,肯定不仅仅有之前提到的创建、插入、查找、提取等功能,它势必存在一些“看起来像是编程语言的功能”今天我们就一起来看看SQL的进阶操作有哪些吧

引入


SQL作为一种语言,肯定不仅仅有之前提到的创建、插入、查找、提取等功能,它势必存在一些“看起来像是编程语言的功能”

今天我们就一起来看看SQL的进阶操作有哪些吧


1.order by语句排序


和python这类高级编程语言一样,SQL的排序也不需要自己从底层的算法写起。不用管什么冒泡排序还是快速排序,我们只需要会用order by就可以了——语法如下

select 字段名 from 表名 order by 字段1,字段2,... asc|desc;


其中asc表示升序排序,desc反之,是降序排序。

字段1,字段2,...表示的是我们需要按照什么字段为关键字段排序。默认先按字段1排序,在字段1一样的情况下按字段2排序……以此类推


image.png

image.png

比如上面的例子是我们需要提取员工的姓名和薪资这两列,但是我们希望提取的信息按照员工的薪资升序排序,于是我们加上order by并且设定字段1为salary,就成功输出了我们想要的信息,如图。

在没有加asc或desc的情况下,是默认按照升序排列的


2.update语句更新数据


前面我们介绍了insert语句用于插入数据到指定的表里。那么如果我们想在已经有的表里把数据修改一下呢?。update就是实现这个功能的。

语法:

update 表名 set 字段1=值1,字段2=值2,... [where子句];

中括号中的where子句是可以省略的。在我们需要对特定记录进行更新的时候添加where子句指定条件,否则默认更新所有数据。


image.png

image.png

上面的例子中,我们发现赵六的员工号和经历编号都未填写,此时我们希望对其进行更新。将deptno=2,manager=4参数传入,我们就成功更新了数据。再次查询发现结果是我们需要的。


3.delete语句删除记录


这个无需多解释了,顾名思义就是把数据从表中移除。为什么把它放到进阶操作里呢?因为删除是个严肃的事,一个疏忽可能造成严重的后果。 把它放到进阶操作来勉励自己要把这个简单的东西当作复杂的语句来认真对待。

语法很简单:

delete from 表名 [where 子句];

这里的where子句和上面一样,是选择性输入的。如果不输入,表中所有数据都会被删掉

所以我才说必须要注意吧~


4.index索引访问


使用索引可以提高计算机运行效率、提高访问数据的速度。

创建索引的语句如下:

create index 索引名 on 表名(字段1,字段2,...)

使用索引查找时SQL语法和直接查找是一样的。不过SQL会自动使用索引提高访问数据的速度。


5.view视图


利用这个语句可以提取多个数据组建一个新的可视化表。这个视图中的字段可以是来自多个数据库的。视图语法为:

create view 视图名 as select语句;

image.png

我们直接来看一个例子。我们选取员工的名字和薪资创建了一个视图。可以直接用select来查询视图。

image.png

我们修改了张三的薪资,然后重新查找,发现原表中的数据也已经被修改了。说明视图是可以用来更新原数据的


6.null值


代表遗漏的未知数据。他的作用是一个占位符,用以代替未知或不合适的数据

需要特别注意的是,null的判断不是用=或者<>,而是is null或者is not null


7.字段和表的别名


SQL中允许我们赋予表名或字段名临时的别名,别名只在当前该句SQL语句中有效,但其可以加强语句的可读性。

当字段名字过长、语句涉及多个表(表中有相同字段名)的时候,我们往往就会赋予表或者字段别名。用法如下:

select 字段名 [as] 别名 from 表名 [as] 别名;

as可选择性输入


image.png

image.png

如图,我们在上面的操作中就是将name赋予了“姓名”的别名,salary赋予“工资”的别名,输出的就是如图中显示的别名。

相关文章
|
8天前
|
SQL 关系型数据库 分布式数据库
数据管理DMS操作报错合集之DMS SQL执行失败且无法看到原因,如何解决
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
|
4天前
|
SQL Java 关系型数据库
实时计算 Flink版操作报错合集之通过flink sql形式同步数据到hudi中,本地启动mian方法报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
24 8
|
6天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之当 SQL Server 源数据库中的数据更新后,CDC 吐出的操作(op)是怎样的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
16 0
|
8天前
|
SQL Java 数据库连接
【JavaEE】懒人的福音-MyBatis框架—复杂的操作-动态SQL(下)
【JavaEE】懒人的福音-MyBatis框架—复杂的操作-动态
7 0
|
7天前
|
SQL Java 数据库连接
【JavaEE】懒人的福音-MyBatis框架—复杂的操作-动态SQL(上)
【JavaEE】懒人的福音-MyBatis框架—复杂的操作-动态SQL
6 0
|
8天前
|
SQL JSON 分布式计算
实时数仓 Hologres产品使用合集之在执行SQL语句时,在插入语句后面直接跟上了insert,insert操作就会报错如何解决
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
60 0
实时数仓 Hologres产品使用合集之在执行SQL语句时,在插入语句后面直接跟上了insert,insert操作就会报错如何解决
|
8天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在DataWorks中使用ODPS SQL时遇到"该文件对应引擎实例已失效,请重新选择可用的引擎实例"的错误提示”,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
40 0
|
8天前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之在sql 里嵌套查询时,查询条件带有instr时报错,如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
8天前
|
SQL 数据库
[AIGC] SQL中的数据添加和操作:数据类型介绍
[AIGC] SQL中的数据添加和操作:数据类型介绍
|
8天前
|
SQL 安全 数据库
第三章用sql语句操作数据
第三章用sql语句操作数据
11 0