【数据库基础】用SQL语言关键字表示关系代数的交 并 差 内连接 外连接操作
2017-07-31 18:04
966 查看
关系代数转换为SQL语言还存在着一个思维的转换。一般转换的过程如下:
SQL语言进行查询时用select….from…..where……
同时有多个条件约束时,用and or。其实本质上就是关系代数中的操作,select 就是关系代数中的投影,from后面跟着多个表名时,这些表就默认做笛卡尔积。where 后面的子句就是对表中的每一个元组进行筛选过滤,选出符合条件的元组,用到的and和or 对应关系代数中的交(intersect)和并(union)、。最后形成新表。
所以我们能不能直接用SQL语言更直接表达关系代数语句呢?
SQL提供了一些关键字来直接翻译关系代数语句。
or
or
or
有些低版本的DBMS不支持intersect 和expect
1.θ连接
基本语法:
2 自然连接
eg:
SQL语言进行查询时用select….from…..where……
同时有多个条件约束时,用and or。其实本质上就是关系代数中的操作,select 就是关系代数中的投影,from后面跟着多个表名时,这些表就默认做笛卡尔积。where 后面的子句就是对表中的每一个元组进行筛选过滤,选出符合条件的元组,用到的and和or 对应关系代数中的交(intersect)和并(union)、。最后形成新表。
所以我们能不能直接用SQL语言更直接表达关系代数语句呢?
SQL提供了一些关键字来直接翻译关系代数语句。
交
如:求学过001号课程或者学过002号课程的同学的学号。select S# from Sc where C#="001" union select S# from Sc where C#="002";
or
select S# from Sc where C#="001" or C#="002";
并
如:既学过001号课程又学过002号课程的同学的学号。select S# from Sc where C#="001" intersect select S# from Sc where C#="002";
or
select S# from Sc where C#="001" and S# in (select S# from sc where C#="002");
差
eg:假定所有学生都有选课,求没学过002号课程的学生。select distinct S# from Sc except slect S# from Sc where C#="002";
or
select S# from Sc Sc1 where not exists (select * from Sc SC2 where C#="002" and Sc.S#=Sc.S#);
有些低版本的DBMS不支持intersect 和expect
内链接:
为了方便,语法都按两个表连接写得。1.θ连接
基本语法:
select 列名 [,[列名]……] from 表名1 inner join 表名2 {on 连接条件 | using (colname)(,{colname……})}} where 检索条件
2 自然连接
select 列名 [,[列名]……] from 表名1 natural join 表名2 where 检索条件
外连接
基本语法:select 列名 [,[列名]……] from 表名1 {left outer|right outer|full outer} join 表名2 {on 连接条件 | using (colname)(,{colname……})} where 检索条件
eg:
相关文章推荐
- JavaWeb整理-数据库基础/数据库介绍.MySQL安装.DB DBS DBMS关系.登陆MySQL.SQL语言认识..SQL语言对数据库操作.SQL语言对数据表操作.SQL语言对数据表中的记录操作
- 01_03 JSP基础语法之page指令2(数据库的连接操作)
- 【数据库关系模型之关系代数】θ连接,等值连接和自然连接之间的差异
- 数据库连接的用法-使用关系代数合并数据
- Hibernate基础入门(连接数据库操作)
- 关系代数θ连接操作与除操作
- 数据库基础之关系代数和关系演算
- 【数据库关系模型之关系代数】关系代数的基本操作
- 数据库基础--关系代数中的除法运算
- C# 连接 SQL Server 2008 基础操作+数据库增删改查
- C#进阶ADO.NET基础一 基本概念、数据库连接操作基础
- 数据库系统基础教程一:关系数据库与关系代数
- python连接sqlite(mysql)数据库以及sqlite数据库基础操作
- Postgresql基础操作1-连接数据库
- Spring-JDBC连接以及基础数据库操作
- Java自学之路-Java基础教程-36:Java的数据库连接操作以及外部jar包导入
- 关系数据库基础
- 关系数据库标准SQL语言
- C# 连接Mysq数据库及持久化方法操作
- vb 利用ADO.Net实现数据库的连接,修改,删除,插入操作