MySQL数据操作与查询
一连接查询
1连接查询分为内连接和外连接
11交叉连接(笛卡尔积)
交叉连接(CrossJoin),又称“笛卡尔连接
(Cartesian Join)”或“叉乘(Product)",它是所有类型的内连接的基础。
1.2内连接查询语法及注意
内连接的语法如下:
selecr fetdi RoM tabei Iinner joun ale2 oN ablel cojmnt-tablez solumn2
【where condition】
语法说明如下:
(1)fieldlist: table1 表和 table2 表中的字段列。如果 fieldlist 取两张表所有列,则可用“”代替,此时会出现连接依据列重复,即 table1 表的 column1 与 table2 表的 column2 为重复列。
(2)able1 INNERI JOIN table2:将table1 表与table2 表进行内连接,INNER 可省略。
(3)table1.column1=table2.column2:连接条件,其中column1和 column2 为 table1 表与 table2 表的关联列,通常它们为外键列和主键列。
(4)“inner”可省略。
(5)"where condition”可省略,它为查询条件表达式。
注意
连换依据的列可能包含null值,nul 值不与任何值四配(甚至和它本身)。
1.3自然连接
自然连接 (Natural Join)是一种特殊的内连接,它要求相连接的两张表的连接依据列必须是相同的字段(字段名相同,字段属性相同)。
自然连接的语法如下:
SELECT feldlist FROM tablel NATURAL JOIN table2 【where condition】
1.4多表连接查询
如果查询的信息来源于多张表,则可通过两两相连的方式建立多表连接查询。
语法:
SELECT fieldlist FROM table1 JOIN table2 ON table1.column1=table2.column2_1 JOIN table3 on
table2.column2_2=table3.column3 【where condition】
简单语法两表相连:
SELECT fieldlist FROM table1, table2
WHERE table1.column1=table2.column2 【and 其他条件】
三表相连语法:
SELECT feldlist FROM ablet,table2,table3
【and 其他条件】
where tablel columnttable2.colamn2_1 and table2.column2 2=tibles.column3
说明
(1) table2 与 table1 和 table3 两两相连
(2)三表以上连接查询的方法与三表连接查询的方法一样,均是通过两两相连的方式实现。