多表查询_概述和多表查询_内连接
作者:互联网
select * from 表名,表名 查询多表
sql:
-- 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); INSERT INTO dept(NAME) VALUES ('开发部'),('市场部'),('财务部'); # 创建员工表 CREATE TABLE emp( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10), gender CHAR(1), -- 性别 salary DOUBLE, -- 工资 join_date DATE, -- 入职时间 dept_id INT, FOREIGN KEY (dept_id) REFERENCES dept(id) -- 外键,关联部门表(部门表的主键) ); INSERT INTO emp (NAME,gender,salary,join_date,dept_id) VALUES('孙悟空','男',7200,'2013-02-24',1); INSERT INTO emp (NAME,gender,salary,join_date,dept_id) VALUES('猪八戒','男',3600,'2010-12-02',2); INSERT INTO emp (NAME,gender,salary,join_date,dept_id) VALUES('唐僧','男',9000,'2008-08-08',2); INSERT INTO emp (NAME,gender,salary,join_date,dept_id) VALUES('白骨精','女',5000,'2015-10-07',3); INSERT INTO emp (NAME,gender,salary,join_date,dept_id) VALUES('蜘蛛精','女',4500,'2011-03-14',1);
笛卡尔积
有两个集合 A,B 取这个集合的所有组成情况
要完成多表查询,需要消除无用的数据
多表查询_内连接
内连接查询:
隐式内连接使用:使用where消除无用的数据
例子
-- 吃查询所有员工信息和对应的部门信息 SELECT * FROM emp,dept WHERE emp.dept_id = dept_id;
-- 查询员工表的名称性别,部门表的名称 SELECT emp.name,emp.gender,dept.NAME FROM emp,dept WHERE emp.dept_id = dept.id;
显示内连接:
语法:select 字段列表 from 表名1 [inner] join 表名2 on 条件
SELECT * FROM emp INNER JOIN dept ON emp.dept_id = dept_id;
SELECT * FROM emp JOIN dept on emp.dept_id = dept.id;
搜索
复制
标签:多表,NAME,--,gender,查询,dept,概述,emp,id 来源: https://www.cnblogs.com/12-12-12/p/16517144.html