天道酬勤,恒者能胜。追求卓越,成功就会在不经意间追上你。

数据库SQL语言之SQL的数据操作语言(三.2)

上一篇 / 下一篇  2013-01-09 15:19:17 / 精华(1) / 置顶(1) / 个人分类:Oracle数据库

和二货同学探讨公厕感应冲水的工作原理,她一脸认真对我说:你没看见下面有个摄像头么!那就是连到一值班室的,工作人员在里值班,一看你屁股抬起来了,按个按钮就冲水了…”



5、 数据查询中的限定和规定

a)        可以使用聚合函数

                        i.             求某一列值的平均值avg(<列名>)

                      ii.             求某一列值的最小值min(<列名>)

                     iii.             求某一列值的最大值max(<列名>)

                     iv.             求某一列值的总和sum(<列名>)

                      v.             对一列中的值计算个数count(<列名>)

                     vi.             计算元组的个数count(*)

b)        Select子句的规定:select [all|distinct]<列名或列表达式序列>|*

                        i.             Distinct选项保证重复的行将从结果中去除

                      ii.             all是默认的,保证重复的行不从结果中去除;

                     iii.             *号是对于from子句中命名表的所有列的简写;

                     iv.             列表达式是对于单列求聚合值的表达式;

                      v.             允许表达式中出现+-*/以及列名、常数的算术表达式。

c)        列和基本表的改名操作:旧名as新名

                        i.             有时,一个基本表在select语句中多次出现,就是该表被多次调用,为区别不同的引用,应该标上不同的名字。

d)        集合的并、交、差操作:当两个子查询结构完全一致,可以使用并、交、差

                        i.             (select查询语句1)  union (select查询语句2)

                      ii.             (select查询语句1)  intersect (select查询语句2)

                     iii.             (select查询语句1)  except (select查询语句2)

6、 基本表的连接操作语法

a)        自连接:一个表可以连接自身,自连接要求使用表的别名

select * from <基本表> as <基本表名1> inner join/left outer join/right outer join/full

outer join <基本表> as <基本表名2> on <基本表名1>.<列名>=<基本表名2>.<列名>

b)        内连接:消除交叉连接中不满足内连接匹配条件的记录形成的

select * from <基本表名1> inner join <基本表名2> on <基本表名1>.<列名>=<基本表名2>.<列名>

c)        外连接:包含内连接的所有记录,以及左表中所有未匹配记录

select * from <基本表名1> left outer join <基本表名2> on <基本表名1>.<列名>=<基本表名2>.<列名>

d)        右外连接:包含内连接的所有记录,以及右表中所有未匹配记录

select * from <基本表名1> right outer join <基本表名2> on <基本表名1>.<列名>=<基本表名2>.<列名>

e)        完全外连接:包含内连接的所有记录,以及左、右表中所有未匹配记录

select * from <基本表名1> full outer join <基本表名2> on <基本表名1>.<列名>=<基本表名2>.<列名>

f)         笛卡尔积连接:包含m*n条记录,由两个表中所有可能的记录对组成

select * from <基本表名1> cross join <基本表名2>

g)        合并连接:是全外连接减去内连接

select * from <基本表名1> union join <基本表名2> on <基本表名1>.<列名>=<基本表名2>.<列名>

7、 条件表达式中的比较操作符

a)        算术比较操作符(算术比较判断):比较两个表达式的值,

                        i.             算术比较操作符的符号有:<<=>>==<>!==

                      ii.             语法:<表达式1>&<表达式2>

between..and ..not between…and…

b)        算术范围操作符(之间判断):搜索(不)在给定范围内的数据

                        i.             算术范围保留字是between…and…

                      ii.             语法:<表达式1>[not] between<表达式2> and <表达式3>

c)        字符串的匹配操作(相同判断):查找(不)包含给定模式的值

                        i.             字符串匹配操作符是like,有两个通配符;

                      ii.             语法:<字符串> [not] like <匹配模式>

百分号(%):与零个或多个字符组成的字符串匹配

下划线(_):与单个字符匹配

d)        空值的比较操作(空值判断):判断某值是否为空值

                        i.             空值的保留字是null

                      ii.             语法:<表达式>is [not] null

e)        集合成员资格的比较(之内判断):判断某元组是否在某集合内

                        i.             集合成员资格的保留字是in

                      ii.             语法:<元组> [not] in (<集合>)

f)         集合成员的算术比较(限定比较判断):元组与集合中每一个元组满足&比较

                        i.             集合成员算术的保留字是some,all,any

                      ii.        

TAG: 零测试 exist Exist 外连接 in IN unique 内连接 聚合函数 between

 

评分:0

我来说两句

Open Toolbar