您的位置:首页 > 数据库

数据库学习之一 - 基本概念

2012-02-13 13:21 302 查看
什么是主键、外键?

主键:唯一标识一条记录,不能有重复的,不允许为空。

外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值。

关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键,比如:

学生表(学号,姓名,性别,班级)

// 其中每个学生的学号是唯一的,学号就是一个主键

课程表(课程编号,课程名,学分)

// 其中课程编号是唯一的,课程编号就是一个主键

成绩表(学号,课程号,成绩)

// 成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键。

成绩表中的学号不是成绩表的主键,但它却是学生表的主键,则称成绩表中的学号是学生表的外键,同理 成绩表中的课程号是课程表的外键 。

左连接 - 关键字左边的表中的所有行都会返回

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

语法:

SELECT column_name(s)

FROM table_name1

LEFT JOIN table_name2

ON table_name1.column_name=table_name2.column_name

现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。

LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

FROM Persons

LEFT JOIN Orders

ON Persons.Id_P=Orders.Id_P

ORDER BY Persons.LastName

右连接 - 关键字右边的表中的所有行都会返回

RIGHT JOIN 关键字会从右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

RIGHT JOIN 关键字语法

SELECT column_name(s)

FROM table_name1

RIGHT JOIN table_name2

ON table_name1.column_name=table_name2.column_name

现在,我们希望列出所有的定单,以及定购它们的人 - 如果有的话。

RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。

您可以使用下面的 SELECT 语句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

FROM Persons

RIGHT JOIN Orders

ON Persons.Id_P=Orders.Id_P

ORDER BY Persons.LastName
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: