笔记数据库技术与应用Chapter5

鎴戝浗鐧界櫆椋庣煡鍚嶄笓瀹? http://m.39.net/news/a_5941636.html
笔记/数据库技术与应用/Chapter5/数据查询目录1.关系运算1.1传统关系运算

传统关系运算包括并,交,差,笛卡尔积。l其中并,交,差需要两个表有完全相同的字段名。

将用到以下两个列表来演示:

列表一

ABC

列表二

ABC1.1.1并运算

所有的相加,除去重复的。

ABC012.1.2交运算

只保留两个表共同的。

ABC.1.3差运算

一个表中数值减去另一个表中含有的数值。如:列表二差列表一

ABC012.1.4笛卡尔积

将一个表的每一行与另一个表的每一行放在一起。列表一与列表二的笛卡尔积一共有3+3=6个字段名,3×4=12行,下面只展示一部分。

ABCABC231230121.2专门运算

专门运算主要包括选择,投影,连接,将在下文介绍。

2.查询的SQL实现2.1SELECT语句2.1.1selectfrom

select后面为要查询的列,from后面为从哪个表查询。

selectstu_id,name

fromstu_info#查询指定列

select*

fromstu_info#查询全部列

selectstu_idasA,

nameasB

fromstu_info#给列添加别名

`

2.1.2where

用来过滤掉不需要的数据

selectstu_id,name

fromstu_info

wheregrade60

andsex=male

#where语句后可以加逻辑运算

2.1.3havinggroupby

having用处基本和where相同,但是当条件里有函数的时候只能用having。

考虑以下情况,每次考试对应一条数据,想查询考试数量5的学生id,但在stuinfo表中每个stuid有多个数据,直接查询,每个stu_id会出现很多次,这时便需要使用groupby子句。

selectstu_id,name

fromstu_info

groupbystu_id

havingcount(num_exam)5

这样,对于每个stu_id,便只会得到一条数据。

2.1.4orderby

用来对查询结果排序。

selectstu_id,name

fromstu_info

orderbystu_idDESC#降序

selectstu_id,name

fromstu_info

orderbystu_idASC#升序

2.1.5查询语句执行顺序(扩展知识)

(1)from(3)join(2)on(4)where(5)groupby(6)avg,sum…(7)having(8)select(9)distinct2.2选择运算

放在where后面的条件,主要有以下几种:

比较大小:=,!=,

确定范围:(not)betweenin

确定集合:(not)in

涉及空值:is(not)null

字符匹配:(not)like

多重条件下可用and,or来连接多个逻辑运算符,and优先于or。

2.3投影运算

放在select后面,用于计算列。

ditinct可删去重复行

selectdistinctstu_id

fromstu_info

以下是常用的投影运算函数

2.4连接运算

连接运算用于连接两个以上的表

其子句为joinon

连接的关键字段名字不一定要相同,但数据类型得相同

2.4.1内连接2.4.1.1自然连接innerjoin

条件字段同等值相连接,不包含重复字段。

select*

frombook,stu

innerjoinstu

onbook.stuid=stu.stuid

2.4.1.2等值连接

条件字段同等值相连接,包含重复字段。

select*

frombook,stu

wherebook.stuid=stu.stuid

2.4.1.3非等值连接

即把上面的=改为或。

2.4.2外连接2.4.2.1左连接右连接

用以下代码来讲解

select*

frombook,stu

leftjoinstu

onbook.stuid=stu.stuid

相当于对左边的字段(即book.stuid)做一个for循环,假如右边表格对应字段有相等的,不管数量如何,返回全部查询结果,如果一个都没有则返回null。

2.4.2.2全连接

对左右各做一次for循环。语句为fullouterjoinon。

3.在设计视图中的查询3.1交叉查询

用以生成一个二维的表,行列均可分成多级。

3.2操作查询

生成表查询:将查询结果生成一个新表

更新查询:对多个字段同时更改

追加查询:向表中追加数据

删除查询:从表中删除查询到的数据

4.SQL的其他查询4.1联合查询

将两个数据类型相同查询结果加在一起。

selectA.aa,A.bbfromA

union

selectB.aa,B.bbfromB

#union会删除相同数据

selectA.aa,A.bbfromA

unionall

selectB.aa,B.bbfromB

#unionall会保留相同数据

4.2子查询

将一个查询的结果作为另一个查询的输入。

```sqlselect*#主查询from(selectsellerid,transactiondate,pay#子查询fromtableA)

4.3数据定义查询

即对表的操作,包括创建,删除和更改表,语法已在前三章介绍。

本文PDF格式免费下载链接:

链接:



转载请注明地址:http://www.sanbaicaoasb.com/scls/8589.html
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章