SQL DML-数据查询

简介: SQL DML-数据查询

SQL DML,数据操纵语言,分成数据查询和数据更新两类。而数据更新分为插入、删除和修改三种操作。

       SQL DDL是对表结构的构建操作,SQL DML是对已经构建好的表结构内增加数据的操作。对于整个数据库来说,前者是框架,后者是内容。


       先来看查询:

       select语句基本句法:   select<属性>

                                  from<关系>

                                   where<条件表达式>


   where子句的条件表达式中的运算符:

   算术比较运算符:<,<=,>,>=,=,<>或!=

   逻辑运算符:and,or,not

   集合成员资格运算符:in,not in

   谓词:exists(存在量词),all,some,unique

   聚合函数:avg(平均值),min(最小值),max(最大值),sum(和),count(计数)

   另一个select子句:select子句嵌套

   select子句的查询结果可以进行集合的并、交、差操作。

   集合运算符:union(并),intersect(交),except(差)


   关键是where子句中条件表达式可以很复杂,因此select句型能表达所有的关系代数表达式。



select语句三种写法:连接查询、嵌套查询、带存在量词的嵌套查询


       1、连接查询:select s.s#,sname

                               from s,sc

                               where s.s#=sc.s#  and  c#='c2'

               先对from后的基本表s和sc做笛卡尔积操作,然后再做等值连接、选择和投影等操作。


       2、嵌套查询:select s#,sname

                               from s

                               where s# in(select s#

                                                   from sc

                                                   where c#='c2')

               嵌套的子查询先执行,然后执行外层查询。


        查询涉及多个基本表时用嵌套结构逐次求解层次分明,具有结构程序设计特点。

       嵌套查询的执行效率比连接查询的笛卡尔积效率高。

       在嵌套查询中,in是常用谓词,结构“元组in(集合)”,表示元组在集合内。


                               select s#,sname

                               from s

                               where 'c2' in(select c#

                                                   from sc

                                                    where s#=s.s#)

       3、使用存在量词的嵌套查询:select s#,sname

                                                       from s

                                                       where exists(select *

                                                                           from sc

                                                                           where sc.s#=s.s#  and  c#='c2')

           谓词exists表示存在量词符号,语义是内层查询的结果应该为非空(至少存在一个元组)。        


       select语句完整句法:select<目标表的列名或列表达式序列>

                                  from<基本表名和(或)视图序列>

                                  [where<行条件表达式>]

                                  [group by<列名序列>]

                                           [having<组条件表达式>]

                                   [order by<列名[asc|desc]>,...]

           

       (1)读取from子句中基本表、视图的数据,执行笛卡尔积操作

       (2)选取满足where子句中给出的条件表达式的元组

       (3)按group子句中指定列的值分组,同时提取满足having子句中组条件表达式的那些组

       (4)按select子句中给出的列名或列表达式求值输出

       (5)order子句对输出的目标表进行排序,按附加说明asc升序排列,或按desc降序排列。

       select子句中,where子句称为“行条件子句”,group子句称为“分组子句”,having子句称为“组条件子句”,order子句称为“排序子句”。


       与查询有关的,DDL中创建的索引、视图等,其功能仅限于查询时起作用。


相关文章
|
10月前
|
关系型数据库 BI 分布式数据库
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
无需创建和开通资源,在预置环境中免费体验PolarDB MySQL及其NL2BI解决方案
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
|
5月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
130 0
|
10月前
|
SQL 数据库
SQL Server 单表数据查询
SQL Server 单表数据查询
144 1
|
5月前
|
SQL 存储 大数据
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
243 0
|
4天前
|
SQL 数据管理 数据库
SQL语句实例教程:掌握数据查询、更新与管理的关键技巧
SQL(Structured Query Language,结构化查询语言)是数据库管理和操作的核心工具
|
5月前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
329 6
|
2月前
|
SQL 关系型数据库 数据挖掘
SQL 基础入门简直太重要啦!从零开始,带你轻松掌握数据查询与操作,开启数据世界大门!
【8月更文挑战第31天】在数字化时代,数据无处不在,而 SQL(Structured Query Language)则是开启数据宝藏的关键钥匙。无论你是编程新手还是数据处理爱好者,掌握 SQL 都能帮助你轻松提取和分析信息。SQL 简洁而强大,像一位魔法师,能从庞大数据库中迅速找到所需数据。从查询、条件筛选到排序、分组,SQL 功能多样,还能插入、更新和删除数据,助你在数据海洋中畅游无阻。
38 0
|
2月前
|
SQL 关系型数据库 数据库
|
2月前
|
SQL 关系型数据库 数据库
|
3月前
|
SQL DataWorks 安全
DataWorks产品使用合集之在进行数据查询和数据处理时,如何通过数据建模与开发模块来创建和管理SQL脚本
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。