项目五-3跨表连接查询
任务目标任务一交叉连接查询任务二内连接查询任务三自然连接查询任务四外连接查询
任务一交叉连接查询
基本查询主要内容:连接查询语法交叉连接规律交叉连接应用场合重点难点:交叉连接规律和应用场合
基本查询查阅语法:官网文档:/doc/refman/8.0/en/join.html语法:SELECT[ALL|DISTINCT]select_expr[,select_expr...][FROMtable_references[WHEREwhere_condition][GROUPBY{col_name|expr|position},...[WITHROLLUP]][HAVINGwhere_condition][ORDERBY{col_name|expr|position}[ASC|DESC][LIMIT{[offset,]row_count|row_countOFFSEToffset}]]
跨表数据查询ANSI连接语法:SELECT字段列表FROM表1[连接类型]JOIN表2ON连接条件WHERE条件表达式MySQL连接语法:(适合内连接、交叉连接,同SQLSERVER语法一致)SELECT字段列表FROM表名列表WHERE连接条件
交叉连接交叉连接(CROSSJOIN)不带ON子句,即不带连接条件,返回的是两表的乘积,也叫笛卡尔积。即第一个表的每一行记录均与第二个表的每一行记录进行组合形成新的记录。语法一:SELECT字段列表FROM表1CROSSJOIN表2语法二格式:SELECT字段列表FROM表1,表2
交叉连接观察交叉连接的结果例1:mysqlUSEdb_shop;mysqlSELECT*FROMdepartment,staffer;例2:mysqlUSEdb_shop;mysqlSELECT*FROMdepartmentCROSSJOINstaffer;
考考你对职员表和部门表进行交叉连接
任务二内连接查询
基本查询主要内容:内连接查询语法内连接规律内连接应用场合重点难点:内连接规律和应用场合
内连接查询ANSI语法:SELECT字段列表FROM表1[INNER]JOIN表2ON连接条件WHERE条件表达式;作用:如果两个来源表的相关字段满足连接条件,则从这两个表中提取数据并组合成新的记录。MySQL连接语法:SELECT字段列表FROM表名列表WHERE连接条件;
内连接查询例1:mysqlUSEdb_shop;mysqlSELECTstaffer.*,department.*FROMstafferINNERJOINdepartmentONdepartment.dept_id=staffer.dept_id;例2:mysqlUSEdb_shop;mysqlSELECT* FROMstaffer,department WHEREdepartment.dept_id=staffer.dept_id;
内连接查询例3:mysqlUSEdb_shop;mysqlSELECT* FROMstaffer,department WHEREdepartment.dept_id=staffer.dept_id ANDdept_name=销售部;
内连接查询可为来源表定义别名:表名[AS]别名例1:mysqlUSEdb_shop;mysqlSELECTA.*,B.*FROMstafferAINNERJOINdepartmentBONA.dept_id=B.dept_id;例2:mysqlUSEdb_shop;mysqlSELECT* FROMstafferA,departmentB WHEREA.dept_id=B.dept_id;
内连接查询如果打算从两个以上的表中检索符合连接条件的记录,则需要使用嵌套形式的INNERJOIN运算。语法:SELECT字段列表FROM表1[INNER]JOIN表2ON连接条件[INNER]JOIN表3ON连接条件
内连接查询例2.4.3查询订单中的商品名单、单价基本信息、库存信息及