其他分享
首页 > 其他分享> > 多表查询_概述和多表查询_内连接

多表查询_概述和多表查询_内连接

作者:互联网

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