好久没怎么用了,本来就不是很扎实的sql知识更加模糊了,特作文予以记录。
http://www.chinesewalker.ik8.com/teacher/databaselesson/index.htm
1、下载了 SQL循序渐进教程 [CHM].rar
2、http://sql.1keydata.com/cn/sql-links.php 这个网站还不错
3、http://www.chinesewalker.ik8.com/teacher/databaselesson/chapter01.htm
关系数据库的一些基本知识
4、http://www.chinesewalker.ik8.com/teacher/databaselesson/chapter02.htm
5、第三章 关系数据库标准语言SQL http://www.chinesewalker.ik8.com/teacher/databaselesson/chapter03.htm#node1
与 是两个都为1时 返回1
或 是两个有一个为1时 返回1
异或 是两个不同时 返回1
非 是单目 是0就返回1 是1就返回0
按位的意思是转换成二进制形式 然后对每一位进行运算后返回
逻辑的意思是转换成Boolen形式 然后进行运算
逻辑与 &&
逻辑或 ||
逻辑异或 (bool)num1 != (bool)num2
逻辑非 !
按位与 &
按位或 |
按位异或 ^
按位非 ~
二、传统的关系运算
(集合运算)
1、简述
⑴交、差、并、笛卡儿积(二目运算)涉及两个关系的运算。在做交
、差
、并
操作时,必须保证两个关系相容
,即:两个关系有相同的目或度,也就是有相同的属性个数,并且对应的属性取自相同的域。
⑵关系运算还涉及到比较运算和逻辑运算,其运算符分别是
比较运算符:>
、≥
、<
、≤
、=
、≠
逻辑运算符:┐
(非)、∧
(与)、∨
(或)
⑶我们以下列两个关系来说明传统的关系运算
◎篮球兴趣小组(设为关系R
)
姓名 |
系名 |
性别 |
王捷 |
数学系 |
男 |
张炎 |
物理系 |
男 |
陈仪 |
外语系 |
女 |
●计算机兴趣小组(设为
关系S
)
姓名 |
系名 |
性别 |
赵铭 |
中文系 |
男 |
陈仪 |
外语系 |
女 |
孙森茂 |
法律系 |
男 |
王捷 |
数学系 |
男 |
2、并操作∪(或)UNION
⑴返回的关系由两个指定关系中所有的元组构成。
⑵重复元素的处理,由属于关系R或
属于关系S的元组组成,其运算结果仍为关系。
⑶关系代数中的并,不是通常数学中的并;它是一种特殊类型的并,要求两个参与操作的关系是同一类型。如果两个关系属于同一类型,那就可以进行并操作,得到的结果是一个相同类型的关系;封闭的特性被保持了下来。
例 :篮球兴趣小组(关系R)∪计算机兴趣小组(关系S)的结果是
姓名 |
系名 |
性别 |
赵铭 |
中文系 |
男 |
陈仪 |
外语系 |
女 |
张炎 |
物理系 |
男 |
孙森茂 |
法律系 |
男 |
王捷 |
数学系 |
男 |
3、交操作∩(且)INTERSECT
⑴返回关系由同时出现在两个指定关系中的元组构成。
⑵由属于关系R同时又
属于关系S的元组组成,其运算结果是关系。
例:篮球兴趣小组(关系R)∩计算机兴趣小组(关系S)的结果是
姓名 |
系名 |
性别 |
王捷 |
数学系 |
男 |
陈仪 |
外语系 |
女 |
4、差操作-MINUS
⑴R-S返回的关系由那些属于第一个关系却不属于第二个关系的元组构成。
⑵如果是R-S,则由属于关系R而不属于关系S的元组组成,其运算结果是关系。
例:篮球兴趣小组(关系R)-计算机兴趣小组(关系S)的结果是
⑶差操作要注意注意次序,如果是S-R,则由属于关系S而不属于关系R的元组组成,其运算结果也是关系,就像通常数学中的减法(“5-2”和“2-5”不是同一件事情)。
例:计算机兴趣小组(关系S)-篮球兴趣小组(关系R)的结果是
姓名 |
系名 |
性别 |
赵铭 |
中文系 |
男 |
孙森茂 |
法律系 |
男 |
5、笛卡儿积×TIMES
返回一个关系,包含任意两个分别来自两个指定关系的元组组合的所有可能的元组。
例: 计算机兴趣小组(关系S)×篮球兴趣小组(关系R)的结果是
R.姓名 |
R.系名 |
R.性别 |
S.姓名 |
S.系名 |
S.性别 |
王捷 |
数学系 |
男 |
赵铭 |
中文系 |
男 |
王捷 |
数学系 |
男 |
陈仪 |
外语系 |
女 |
王捷 |
数学系 |
男 |
孙森茂 |
法律系 |
男 |
王捷 |
数学系 |
男 |
王捷 |
数学系 |
男 |
张炎 |
物理系 |
男 |
赵铭 |
中文系 |
男 |
张炎 |
物理系 |
男 |
陈仪 |
外语系 |
女 |
张炎 |
物理系 |
男 |
孙森茂 |
法律系 |
男 |
张炎 |
物理系 |
男 |
王捷 |
数学系 |
男 |
陈仪 |
外语系 |
女 |
赵铭 |
中文系 |
男 |
陈仪 |
外语系 |
女 |
陈仪 |
外语系 |
女 |
陈仪 |
外语系 |
女 |
孙森茂 |
法律系 |
男 |
陈仪 |
外语系 |
女 |
王捷 |
数学系 |
男 |
我们可以观察到,笛卡儿积会产生大量无实际意义的元组,可以利用专门的关系运算产生符合实际需要的关系。
三、专门的关系运算
1、选择、投影、连接和除法
2、
选择运算(Selection)
⑴返回一个关系,其中的元组来自指定关系中所有满足指定条件的元组。
⑵选择运算是从关系的水平方向进行运算,是从关系中选择满足给定条件的元组,记作
。
⑶例:求
,其结果为
姓名 |
系名 |
性别 |
赵铭 |
中文系 |
男 |
孙森茂 |
法律系 |
男 |
王捷 |
数学系 |
男 |
3、投影运算(Projection)
⑴返回一个关系,由去掉若干属性列后的指定关系中剩余的所有(子)元组组成。
⑵投影关系是从关系的垂直方向进行运算,即在关系R中选择出若干属性列A组成新的关系,记作
。
⑶例:求
,其结果为
姓名 |
系名 |
王捷 |
数学系 |
张炎 |
物理系 |
陈仪 |
外语系 |
⑷投影运算后,不仅取消了关系中的某些列,还可以取消某些元组,因为当取消了某些属性之后,就可能出现重复元组,投影运算将自动取消这些相同的元组。
4、连接运算(Join)
⑴连接分为θ连接
、等值连接
和自然连接
三种。鉴于自然连接在实际操作中的重要性,以下面三个关系为例集中阐述自然连接的具体使用。由于连接运算的目的是操作不同的关系从而求出所需的数据,相对来说复杂些。
关系S
学号
|
姓名
|
性别
|
系名
|
年龄
|
3001 |
王平 |
女 |
计算机 |
18 |
3002 |
张勇 |
男 |
计算机 |
19 |
4003 |
黎明 |
女 |
机械 |
18 |
4004 |
刘明远 |
男 |
机械 |
19 |
1041 |
赵国庆 |
男 |
通信 |
20 |
1042 |
樊建玺 |
男 |
通信 |
20 |
关系C
课程号
|
课程名
|
学分
|
1 |
数据库 |
3 |
2 |
数学 |
4 |
3 |
操作系统 |
4 |
4 |
数据结构 |
3 |
5 |
数字通信 |
3 |
6 |
信息系统 |
4 |
7 |
程序设计 |
2 |
关系SC
学号
|
课程号
|
成绩
|
3001 |
1 |
93 |
3001 |
2 |
84 |
3001 |
3 |
84 |
3002 |
2 |
83 |
3002 |
3 |
93 |
1042 |
1 |
84 |
1042 |
2 |
82 |
⑵连接运算是从两个关系R和S的笛卡儿积中选取满足条件的元组。可以认为笛卡儿积是无条件连接,其他连接是有条件连接。
⑶θ连接
:从R与S的笛卡儿积中选取属性间满足一定条件的元组,记作
,其中,XθY为连接的条件,θ是比较运算符,X和Y分别为R和S上度数相等,且可比的属性组。
⑷等值连接
:当θ为=时,称之为等值连接,记为
。
⑸自然连接
:是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组
,并且在结果集中将重复属性列去掉
。一般连接是从关系的水平方向运算,而自然连接不仅要从关系的水平方向,而且要从关系的垂直方向运算。自然连接记为
。
例1:求
的结果
学号
|
姓名
|
性别
|
系名
|
年龄
|
课程号
|
成绩
|
3001 |
王平 |
女 |
计算机 |
18 |
1 |
93 |
3001 |
王平 |
女 |
计算机 |
18 |
2 |
84 |
3001 |
王平 |
女 |
计算机 |
18 |
3 |
84 |
3002 |
张勇 |
男 |
计算机 |
19 |
2 |
83 |
3002 |
张勇 |
男 |
计算机 |
19 |
3 |
93 |
1042 |
樊建玺 |
男 |
通信 |
20 |
1 |
84 |
1042 |
樊建玺 |
男 |
通信 |
20 |
2 |
82 |
例2:求
的结果
课程号
|
课程名
|
学分
|
学号
|
成绩
|
1 |
数据库 |
3 |
3001 |
93 |
1 |
数据库 |
3 |
1042 |
84 |
2 |
数学 |
4 |
3001 |
84 |
2 |
数学 |
4 |
3002 |
83 |
2 |
数学 |
4 |
1042 |
82 |
3 |
操作系统 |
4 |
3001 |
84 |
3 |
操作系统 |
4 |
3002 |
93 |
例3:求
的结果
学号
|
姓名
|
性别
|
系名
|
年龄
|
课程号
|
成绩
|
课程名
|
学分
|
3001 |
王平 |
女 |
计算机 |
18 |
1 |
93 |
数据库 |
3 |
3001 |
王平 |
女 |
计算机 |
18 |
2 |
84 |
数学 |
4 |
3001 |
王平 |
女 |
计算机 |
18 |
3 |
84 |
操作系统 |
4 |
3002 |
张勇 |
男 |
计算机 |
19 |
2 |
83 |
数学 |
4 |
3002 |
张勇 |
男 |
计算机 |
19 |
3 |
93 |
操作系统 |
4 |
1042 |
樊建玺 |
男 |
通信 |
20 |
1 |
84 |
数据库 |
3 |
1042 |
樊建玺 |
男 |
通信 |
20 |
2 |
82 |
数学 |
4 |
5、除法(Division)
⑴映射是指两个非空集合A、B之间的一种对应法则,若对应法则f使得A中任一元素与B中唯一元素对应,则f叫作A到B的映射,记作f:A→B,A叫作这个映射的原象集
,B叫作象集
。
⑵在关系中对于象集
:给定一个关系R(X,Z),X和Z为属性组。我们定义,当t[X]=x时,x在R中的象集(Images
Set)为:Zx
={t[Z]|t∈R, t[X]=x},它表示R中属性组X上值为x的诸元组在Z上分量的集合。
⑶除运算是同时从关系的水平方向和垂直方向进行运算。给定关系R(X,Y)和S(Y,Z),X、Y、Z为属性组。R÷S应当满足元组在X上的分量值x的象集Yx
包含关系S在属性组上投影的集合。
⑷在进行运算时,将被除关系R的属性分成两部分:与除关系相同的部分Y和不同的部分X。在被除关系R中,按X的值分组,即相同X值的元组分为一组。除法的运算是求包括除关系中全部Y值的组,这些组中的X值将作为除结果的元组。
⑸除法含有“for all
”的语义,这个含义非常重要。
⑹例1:设有如下关系R、S,求R÷S的结果
关系R:
X
|
Y
|
X1
|
Y1
|
X2
|
Y1
|
X2
|
Y2
|
X2
|
Y3
|
关系S:
解题过程如下:
被除数R中有X1,X2两个值,X1的象集是{Y1};X2的象集是{Y1,Y2,Y3}
除数S在Y上的投影为{Y1,Y2}
只有X2的象集包含了S在Y上的投影
所以R÷S的结果是:
⑺例2:设有如下关系R、S,求R÷S的结果
关系R:
学号
|
课程号
|
3001
|
1
|
3001
|
3
|
3002
|
2
|
3003
|
1
|
3003
|
2
|
3003
|
3
|
关系S:
解题过程如下:
被除数R中有3001、3002、3003三个值,3001的象集是{1,3};3002的象集是{2};3003的象集是{1,2,3}
除数S在课程号上的投影为{1,2,3}
只有3003的象集包含了S在课程号上的投影
所以R÷S的结果是
请思考本例R÷S结果的实际意义,在实际应用中,该结果其实常被描述成“查询选修了所有课程的学生学号
”
⑻例3:求SC÷C的结果。
备注:
单个关系:[选择运算:水平,投影运算:垂直]
多个关系:【无条件:笛卡尔乘积,有条件:连接运算(连接运算>@连接>等值连接>自然连接)】
分享到:
相关推荐
全面的SQL语言,高清晰的DOC模式,会成为您U盘里面的一个宝贵的帮助和查看的手册。
《VC++与SQL Server构建公司备忘录系统详解》 在信息技术高度发展的今天,公司备忘录系统已经成为企业管理日常事务、提升工作效率的重要工具。本文将深入探讨如何利用Microsoft的编程语言VC++和数据库管理系统SQL ...
基于SpringBoot+Vue的备忘录系统源码+sql数据库(课程大作业).zip 基于SpringBoot+Vue的备忘录系统源码+sql数据库(课程大作业).zip 基于SpringBoot+Vue的备忘录系统源码+sql数据库(课程大作业).zip 【资源说明】 项目...
SQL语句备忘手册是一本全面涵盖SQL基本到高级操作的手册,对于SQL学习者和开发者来说,这是一份非常实用的参考资料。手册分为多个部分,详细介绍了SQL的各种语句和函数,帮助用户掌握数据库管理和数据操作的核心技能...
企业备忘录管理系统是一款专为企业内部沟通和信息记录设计的应用,它结合了C++编程语言的前台界面和SQL数据库管理系统的后台数据存储。这个系统旨在提高工作效率,方便员工记录、查询和分享工作中的重要事项,确保...
《企业备忘录管理系统——C++与SQL Server的完美结合》 在当今信息化时代,企业的日常运作离不开各种信息管理工具。本文将详细探讨一个由C++编程语言与SQL Server数据库系统共同实现的企业备忘录管理系统,它为中小...
【标题】"Web个人日历备忘系统"是一款基于C#编程语言和SQL数据库技术开发的应用,主要用于个人日常事务管理。这个系统集成了登录、注册、添加、删除以及编辑备忘录的功能,使得用户能够方便地在线管理和追踪自己的...
快速SQL备忘单快速提醒所有相关SQL查询以及有关如何使用它们的示例。 该存储库由社区不断更新和添加。 拉请求是欢迎的。 享受! 快速SQL备忘单表快速提醒所有相关SQL查询以及有关如何使用它们的示例。 该存储库由...
这个系统集成了身份验证、成员信息管理、类型管理、备忘录信息管理和查询管理等多个功能模块,通过与SQL Server数据库的紧密结合,实现了数据的安全存储和快速检索,极大地提升了工作效率。 首先,身份验证是系统的...
在SQL Server数据库管理系统中,T-SQL(Transact-SQL)是用于操作和管理数据库的主要语言,它是SQL标准的一个扩展,特别针对微软的SQL Server进行了优化。本资料集重点讨论了如何利用T-SQL语句来实现用户映射,这...
《SQL99标准:数据库语言SQL的基石》 在IT领域,尤其是数据库管理与操作方面,SQL(Structured Query Language)是不可或缺的一部分。SQL99,作为SQL标准的一个重要版本,于1999年由ANSI(美国国家标准协会)、ISO...
代码中的“Android 备忘录源码”可能包含了SQLiteOpenHelper的子类,用于管理数据库版本和操作SQL语句。 3. **内容提供者(Content Provider)**:为了与其他应用共享数据,备忘录应用可能会使用Content Provider。...
2. 删除备忘录:系统提供了一个删除功能,用户可以选择要删除的备忘录,系统在后台通过SQL语句将选定的备忘录标记为已删除,而非直接从数据库中移除。 3. 查看与管理:用户可以浏览所有备忘录,搜索特定内容,还可以...
采用C#+SQL2000的组合完成了系统 主要包括哪些功能模块,实现了哪些主要功能? 该系统主要是添加特定日子的重要信息,已达到提醒的作用。备忘分为三种约会、备忘、以及纪念日。添加后的备忘可进行修改更新。另外还有...
使用SQL(结构化查询语言)进行数据操作,如INSERT插入新的备忘录,UPDATE修改已有的,SELECT查询特定的备忘录,以及DELETE删除不再需要的条目。 在功能实现上,系统提供以下关键操作: 1. 添加备忘录:用户可以...
本项目名为"C#自制桌面备忘录(自制日历)",采用C#编程语言和Visual Studio 2012开发环境,结合Microsoft SQL Server 2012作为数据存储平台,为用户提供了高效、便捷的日程管理功能。 一、C#语言基础 C#是微软推出...
在Android中,我们通过SQLiteOpenHelper的子类来创建和升级数据库,然后使用SQL语句来执行数据操作。例如,`CREATE TABLE`用于创建表结构,`INSERT INTO`用于添加数据,`DELETE FROM`和`UPDATE`分别用于删除和修改...