MySQL数据库基础入门——day11
一、操作关联表
1.关联关系:
关联关系有:多对一、多对多和一对多。
一对一关联关系可以应用在以下几方面:
(1)分割具有很多列的表
(2)由于安全原因而隔离表的一部分
(3)保存临时的数据,并且可以毫不费力地通过删除该表而删除这些数据
2.添加数据:
首先添加主键约束:
ALTER TABLE 表名 ADD CONSTRAINT FK_ID FOREIGN KEY(外键字段名) REFERENCES 主表表名(主键字段名);
然后为表添加数据:
INSERT INTO 主表表名 | {从表表名}? (字段名1{,字段名2...}) VALUES (值1,值2...);
3.删除数据:
DELETE FROM 表名 WHERE 字段名=值;
二、连接查询
1.交叉连接:
交叉连接返回的结果是被连接的两个表中所有数据行的笛卡儿积,也就是返回第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。其语法格式如下:
SELECT * FROM 表1 CROSS JOIN 表2;
上述语法格式中CROSS JOIN用于连接两个要查询的表,通过该语句可以查询两个表中所有的数据组合。
2.内连接:
内连接(Inner Join)又称简单连接或自然连接,是一种常见的连接查询。内连接使用比较运算符对两个表中的数据进行比较,并列出与连接条件匹配的数据行,组合成新的记录。
SELECT 查询字段 FROM 表1 [INNER] JOIN 表2 ON 表1.关系字段 = 表2.关系字段;
INNER JOIN 用于连接两个表,ON来指定连接条件,其中INNER可省略。
3.外连接:
语法格式如下:
SELECT 所查字段 FROM 表1 LEFT|RIGHT [OUTER] JOIN 表2
ON 表1.关系字段 = 表2.关系字段 WHERE 条件;
其中LEFT JOIN是左连接:返回左表中的所有记录和右表中符合连接条件的记录。
其中RIGHT JOIN是右连接:返回右表中的所有记录和左表中符合连接条件的记录。