mysql表的元组的个数_数据库1 关系(relation) 元组(tuple) join

关系模型是一种基于表的模型,含有列(attribute)和数据的表即可视为relationship

关系代数集合中,重复元组总是会被排除。如 union 和 union all ,对于返回的查询结果,前者会把重复项随机删除一个

查找与排序均为不稳定,不同的操作系统对于相同的插入元组数据会有不同的排序数据

其他高级语言的数据类型自动转换仍然有效,比如float与int,100.0为float。能否强制类型转换???可以!包括显式和隐式,见 :sql类型转换

sql语句设计成最有效的方式,虽然查询的逻辑比java c等麻烦

模式:关系名和其属性集合的组合称为模式schema,例如

表名(属性1,属性2...)

在MySQL中,数据库和模式是一样的,比如在MySQL中输入:show schemas,则会返回和show databases一样的结果;

而create schema sh1 和 create database sh2 的效果是一样的;

MySQL中不存在CATALOG的概念;也没有CREATE CATALOG的语法;

数据库有一个或多个关系组成,数据库的关系集合模式叫做数据库模式(database schema)

元组: 关系中除含属性名所在行以外的其他行称作元组(tuple)如

(name,1996,ID)

关系实例:一个给定关系中的元组集合

关系约束:键。

没有任何两个元组在组成键的所有属性上具有相同的值,虽然他们有可能在组成键的部分属性上取值相同。

投影:从原有关系生成一个新的关系,包含原来关系的部分列

选择:原有关系的元组的子集合

普遍说的join为交叉连接(cross join),即笛卡尔积

自然连接(natural join):是一种特殊的等价连接,它将表中具有相同名称的列自动进行记录匹配, 自动判断相同名称的列,而后形成匹配。缺点是,虽然可以指定查询结果包括哪些列,但不能人为地指定哪些列被匹配。自然连接不必指定任何同等连接条件。连接后的结果表中匹配的列只有一个. 没有共有属性的元组忽略掉,称为悬浮元祖

A

B

C

1

2

3

6

7

8

9

7

8

+

B

C

D

2

3

4

2

3

5

7

8

10

=

A

B

C

D

1

2

3

4

1

2

3

5

6

7

8

10

9

7

8

10

使用自然连接要注意,两个表同名的列不能超过1个。

natural join:指明了两表进行自然连接,并且连接是基于两表中所有同名字段的。

join…using:用于两表有同名字段但数据类型不同,或者使用多个同名字段中的某一个做等值连接

join…on :最为灵活,可以指明连接的条件。

select *from test_table_a join test_table_b using(name);

=

select *from test_table_a, test_table_b where a.name=b.name;

连接的概念:

连接分为条件连接、等值连接和自然连接三种。

1、条件连接就是在多个表的笛卡尔积中选取满足条件的行的连接,例如 select * from A,B where A.a > A.b 之类的有条件的查询。

2、等值连接就是特殊的条件连接,当条件为某字段=某字段时,即为等值连接。如SELECT ename,sal,dname FROM emp,dept WHERE emp.deptno=dept.deptno;

3、自然连接是一种特殊的等值连接,他要求多个表有相同的属性字段,然后条件为相同的属性字段值相等,最后再将表中重复的属性字段去掉,即为自然连接。如A中a,b,c字段,B中有c,d字段,则select * from A natural join B 相当于 select A.a,A.b,A.c,B.d from A.c = B.c 。

内连接与等值连接的区别:

内连接:两个表(或连接)中某一数据项相等的连接称为内连接。等值连接一般用where字句设置条件,内连接一般用on字句设置条件,但内连接与等值连接效果是相同的。

内连接与自然连接基本相同,不同之处在于自然连接只能是同名属性的等值连接,而内连接可以使用using或on子句来指定连接条件,连接条件中指出某两字段相等(可以不同名)。

内连接与等值连接其实是一回事情(等效)。

经常有人会问到select a.id,b.name from a,b where a.id=b.pid 与

select a.id,b.name from a inner join b on a.id=b.pid 有什么区别,哪个效率更高一些。

实际上一回事情。只是内连接是由SQL 1999规则定的书写方式。两个说的是一码事。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值