关系的基本运算有两类:一类是传统的集合运算(并、差、交等),另一类是专门的关系运算(选择、投影、联接等),有些查询需要几个基本运算的组合,要经过若干步骤才能完成。
一、传统的集合运算
1、并(UNION) 设有两个关系R和S,它们具有相同的结构。R和S的并是由属于R或属于S的元组组成的集合,运算符为∪。记为T=R∪S。
2、差(DIFFERENCE) R和S的差是由属于R但不属于S的元组组成的集合,运算符为-。记为T=R-S。
3、交(INTERSCTION) R和S的交是由既属于R又属于S的元组组成的集合,运算符为∩。记为T=R∩S。 R∩S=R-(R-S)。
二、选择运算
从关系中找出满足给定条件的那些元组称为选择。其中的条件是以逻辑表达式给出的,值为真的元组将被选取。这种运算是从水平方向抽取元组。 在FOXPRO中的短语FOR<条件>和WHILE<条件>均相当于选择运算。
如:LIST FOR 出版单位='高等教育出版社' AND 单价<=20
三、投影运算
从关系模式中挑选若干属性组成新的关系称为投影。这是从列的角度进行的运算,相当于对关系进行垂直分解。在FOXPRO中短语FIELDS<字段1,字段2,…>相当于投影运算。 如: LIST FIELDS 单位,姓名
四、联接运算
选择和投影运算都是属于一目运算,它们的 *** 作对象只是一个关系。联接运算是二目运算,需要两个关系作为 *** 作对象。
1、联接 联接是将两个关系模式通过公共的属性名拼接成一个更宽的关系模式,生成的新关系中包含满足联接条件的元组。运算过程是通过联接条件来控制的,联接条件中将出现两个关系中的公共属性名,或者具有相同语义、可比的属性。联接是对关系的结合。在FOXPRO中有单独一条命令JOIN实现两个关系的联接运算。如:
SELE 1
USE 定单
SELE 2
USE 商品
JOIN WITH A TO XGX FOR A->货号=货号 AND 库存量>=A->定购量
设关系R和S分别有m和n个元组,则R与S的联接过程要访问m×n个元组。由此可见,涉及到联接的查询应当考虑优化,以便提高查询效率。
2、自然联接 自然联接是去掉重复属性的等值联接。它属于联接运算的一个特例,是最常用的联接运算,在关系运算中起着重要作用。
如果需要两个以上的关系进行联接,应当两两进行。利用关系的这三种专门运算可以方便地构造新的关系。
五、外关键字
如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关系的关键字,则称为该关系的外关键字。
综上所述,关系数据库系统有如下特点:
(1)数据库中的全部数据及其相互联系都被组织成关系,即二维表的形式。
(2)关系数据库系统提供一种完备的高级关系运算,支持对数据库的各种 *** 作。
(3)关系模型有严格的数学理论,使数据库的研究建立在比较坚实的数学基础上。
SQL中'<>'和'!='没有区别。
在SQL语句中,<>(不等于)比较两个表达式(比较运算符)。当使用此运算符比较非空表达式时,如果左 *** 作数不等于右 *** 作数,则结果为 TRUE。否则,结果为 FALSE。运算符两边可以是数值型、字符型、布尔型、集合、字符串,互相相容。其功能与!=(不等于)比较运算符相同。
扩展资料:
比较运算符进行实型与整型比较时,需要先将整形转换为实型,再进行比较。例如:
Var Num : Real; Result : Boolean;
Num := 10 ;
Result := Num <> 12 ; {True}
实际上是按 Num<>120 进行比较的。
参考资料来源:
百度百科——<>
百度百科——!=
可以
方法一
sqlserver
select a/b,a+b,ab
数字类型的计算,可以直接这样写的
方法二
select aa/bb,aa+bb
from a left join b on ac=bc
Transact-SQL介绍
Transact-SQL语言是用在微软的SQL Server 的关系型数据库管理系统中编程语言。
主要有六大类:
算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符和字符串联运算符。
算术运算符包括(+)、减(-)、乘()、除(/)和取模(%)
赋值运算符"="
位运算符 " & ^ |"
比较运算符 =、>、<、>=、<=、<>、!=、!>、!<
逻辑运算符 AND、OR、NOT
字符串联运算符 +
做
逻辑运算
时,写程序里好还是
sql数据库
里好
如果你的数据库服务比较繁忙,还是放到CS中处理较好。
数据库的任务主要是保存数据/查询数据
计算的事,能放在CS中尽量放到CS中。
从以上程序的输出信息可以得出结论,短路不会浪费时间在无意义的计算上。
形式为exp1
&&
exp2,如果&&运算符左边的运算表达式exp1为false,那么其右边的运算表达式exp2不进行计算,因为&&运算符已经知道完整的表达式不可能是true,所以直接返回false
形式为exp1
||
exp2,如果||运算符左边的运算表达式exp1为true,那么其右边的运算表达式exp2不进行计算,因为||运算符已经知道完整的表达式不可能是false,所以直接返回true
下面来讨论oracle的逻辑运算符是否短路,本人的测试数据库是oracle
database
10g
enterprise
edition
release
102010
首先创建一个测试function
create
or
replace
function
f
return
number
isbegindbms_outputput_line('f');return(1);end
f;
这个function的作用是用来验证是否被执行,如果执行会打印出字符串“f”
(1)验证sql语句的逻辑运算符是否短路
select
'x'
from
dual
where
(1
=
0
and
f
=
1);--打印出f
select
'x'
from
dual
where
(1
=
1
or
f
=
1);--没有打印信息
说明sql语句中的逻辑运算符and不具备短路功能,而or具备短路功能。
(2)验证plsql语句的逻辑运算符是否短路beginif
1
=
0
and
f=1
thennull;end
if;end;--没有打印信息beginif
1
=
1
or
f=1
thennull;end
if;end;--没有打印信息
以上就是关于关系数据库主要支持的3种基本运算是什么全部的内容,包括:关系数据库主要支持的3种基本运算是什么、SQL中'<>'和'!='有区别吗、sql语句能做乘除法逻辑运算吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)