数据库学习之一 - 基本概念
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
主键:唯一标识一条记录,不能有重复的,不允许为空。
外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值。
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键,比如:
学生表(学号,姓名,性别,班级)
// 其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
// 其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
// 成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键。
成绩表中的学号不是成绩表的主键,但它却是学生表的主键,则称成绩表中的学号是学生表的外键,同理 成绩表中的课程号是课程表的外键 。
左连接 - 关键字左边的表中的所有行都会返回
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
相关文章推荐
- MySQL学习笔记20150923基本概念与数据库和表的创建
- Mysql数据库学习(一):数据库基本概念、关系型数据库、Mysql数据库安装配置、DDL/DCL/DML语句
- Mysql数据库学习(一):数据库基本概念、关系型数据库、Mysql数据库安装配置、DDL/DCL/DML语句
- mysql之数据库基本概念(mysql学习笔记一)
- TimesTen 应用层数据库缓存学习:1. 基本概念
- 数据库系统概论学习02-基本概念
- 学习数据库总结的一些基本概念
- 数据库学习1——基本概念和重要术语
- SQLserver学习day03 数据表基本概念和操作的学习与管理 数据库关系图
- 数据库系统学习(三)- 关系模型之基本概念
- 数据库基本概念学习-数据库设计
- DB2学习文档3——数据库基本概念复习
- python面向对象学习(一)基本概念
- 数据库学习第二篇(对基本表数据的操作)
- 数据库基本概念
- [置顶] 【DL--07】深度学习基本概念—epochs
- 学习Java的30个基本概念
- 编解码学习笔记(一):基本概念
- VF语言基础(一)数据库的基本概念
- 三维声场(虚拟3D音频)学习总结(1):基本概念