表和数据:
-- 创建部门 CREATE TABLE dept ( id int not null AUTO_INCREMENT PRIMARY KEY, name VARCHAR(10) not null COMMENT ‘部门名称‘ ) -- 添加部门数据 INSERT INTO `dept` VALUES (‘1‘, ‘教学部‘); INSERT INTO `dept` VALUES (‘2‘, ‘销售部‘); INSERT INTO `dept` VALUES (‘3‘, ‘市场部‘); INSERT INTO `dept` VALUES (‘4‘, ‘人事部‘); INSERT INTO `dept` VALUES (‘5‘, ‘鼓励部‘); -- 创建人员 CREATE TABLE `person` ( id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, name varchar(50) NOT NULL, age tinyint(4) DEFAULT ‘0‘, gender enum(‘男‘,‘女‘) NOT NULL DEFAULT ‘女‘, salary decimal(10,2) NOT NULL DEFAULT ‘2500.00‘, hire_date date NOT NULL, dept_id int(11) DEFAULT NULL ) -- 添加人员数据 -- 教学部 INSERT INTO `person` VALUES (‘1‘, ‘A‘, ‘28‘, ‘女‘, ‘53000.00‘, ‘2010-06-21‘, ‘1‘); INSERT INTO `person` VALUES (‘2‘, ‘B‘, ‘23‘, ‘男‘, ‘8000.00‘, ‘2011-02-21‘, ‘1‘); INSERT INTO `person` VALUES (‘3‘, ‘C‘, ‘30‘, ‘男‘, ‘6500.00‘, ‘2015-06-21‘, ‘1‘); INSERT INTO `person` VALUES (‘4‘, ‘D‘, ‘18‘, ‘女‘, ‘6680.00‘, ‘2014-06-21‘, ‘1‘); -- 销售部 INSERT INTO `person` VALUES (‘5‘, ‘E‘, ‘20‘, ‘女‘, ‘3000.00‘, ‘2015-02-21‘, ‘2‘); INSERT INTO `person` VALUES (‘6‘, ‘F‘, ‘20‘, ‘女‘, ‘2000.00‘, ‘2018-01-30‘, ‘2‘); INSERT INTO `person` VALUES (‘7‘, ‘G‘, ‘20‘, ‘女‘, ‘2000.00‘, ‘2018-02-27‘, ‘2‘); INSERT INTO `person` VALUES (‘8‘, ‘H‘, ‘20‘, ‘女‘, ‘2000.00‘, ‘2015-06-21‘, ‘2‘); -- 市场部 INSERT INTO `person` VALUES (‘9‘, ‘I‘, ‘21‘, ‘女‘, ‘4000.00‘, ‘2014-07-21‘, ‘3‘); INSERT INTO `person` VALUES (‘10‘, ‘J‘, ‘22‘, ‘女‘, ‘4000.00‘, ‘2015-07-15‘, ‘3‘); -- 人事部 INSERT INTO `person` VALUES (‘11‘, ‘K‘, ‘17‘, ‘女‘, ‘5000.00‘, ‘2014-06-21‘, ‘4‘); -- 鼓励部 INSERT INTO `person` VALUES (‘12‘, ‘L‘, ‘33‘, ‘女‘, ‘1000000.00‘, ‘2018-02-21‘, null);
-- 多表查询语法 select 字段1,字段2 from 表1,表2 [where 条件]; 注意: 如果不加条件直接进行查询,则会出现以下效果,这种结果我们称之为"笛卡尔乘积" 笛卡尔乘积公式 : A表中数据条数 * B表中数据条数 = 笛卡尔乘积 -- 查询人员和部门所有信息 select * from person,dept;
id name age gender salary hire_date dept_id id1 name1 1 A 28 女 53000 2010-06-21 1 1 教学部 1 A 28 女 53000 2010-06-21 1 2 销售部 1 A 28 女 53000 2010-06-21 1 3 市场部 1 A 28 女 53000 2010-06-21 1 4 人事部 1 A 28 女 53000 2010-06-21 1 5 鼓励部 2 B 23 男 8000 2011-02-21 1 1 教学部 2 B 23 男 8000 2011-02-21 1 2 销售部 2 B 23 男 8000 2011-02-21 1 3 市场部 2 B 23 男 8000 2011-02-21 1 4 人事部 2 B 23 男 8000 2011-02-21 1 5 鼓励部 3 C 30 男 6500 2015-06-21 1 1 教学部 3 C 30 男 6500 2015-06-21 1 2 销售部 3 C 30 男 6500 2015-06-21 1 3 市场部 3 C 30 男 6500 2015-06-21 1 4 人事部 3 C 30 男 6500 2015-06-21 1 5 鼓励部 4 D 18 女 6680 2014-06-21 1 1 教学部 4 D 18 女 6680 2014-06-21 1 2 销售部 4 D 18 女 6680 2014-06-21 1 3 市场部 4 D 18 女 6680 2014-06-21 1 4 人事部 4 D 18 女 6680 2014-06-21 1 5 鼓励部 5 E 20 女 3000 2015-02-21 2 1 教学部 5 E 20 女 3000 2015-02-21 2 2 销售部 5 E 20 女 3000 2015-02-21 2 3 市场部 5 E 20 女 3000 2015-02-21 2 4 人事部 5 E 20 女 3000 2015-02-21 2 5 鼓励部 6 F 20 女 2000 2018-01-30 2 1 教学部 6 F 20 女 2000 2018-01-30 2 2 销售部 6 F 20 女 2000 2018-01-30 2 3 市场部 6 F 20 女 2000 2018-01-30 2 4 人事部 6 F 20 女 2000 2018-01-30 2 5 鼓励部 7 G 20 女 2000 2018-02-27 2 1 教学部 7 G 20 女 2000 2018-02-27 2 2 销售部 7 G 20 女 2000 2018-02-27 2 3 市场部 7 G 20 女 2000 2018-02-27 2 4 人事部 7 G 20 女 2000 2018-02-27 2 5 鼓励部 8 H 20 女 2000 2015-06-21 2 1 教学部 8 H 20 女 2000 2015-06-21 2 2 销售部 8 H 20 女 2000 2015-06-21 2 3 市场部 8 H 20 女 2000 2015-06-21 2 4 人事部 8 H 20 女 2000 2015-06-21 2 5 鼓励部 9 I 21 女 4000 2014-07-21 3 1 教学部 9 I 21 女 4000 2014-07-21 3 2 销售部 9 I 21 女 4000 2014-07-21 3 3 市场部 9 I 21 女 4000 2014-07-21 3 4 人事部 9 I 21 女 4000 2014-07-21 3 5 鼓励部 10 J 22 女 4000 2015-07-15 3 1 教学部 10 J 22 女 4000 2015-07-15 3 2 销售部 10 J 22 女 4000 2015-07-15 3 3 市场部 10 J 22 女 4000 2015-07-15 3 4 人事部 10 J 22 女 4000 2015-07-15 3 5 鼓励部 11 K 17 女 5000 2014-06-21 4 1 教学部 11 K 17 女 5000 2014-06-21 4 2 销售部 11 K 17 女 5000 2014-06-21 4 3 市场部 11 K 17 女 5000 2014-06-21 4 4 人事部 11 K 17 女 5000 2014-06-21 4 5 鼓励部 12 L 33 女 1000000 2018-02-21 1 教学部 12 L 33 女 1000000 2018-02-21 2 销售部 12 L 33 女 1000000 2018-02-21 3 市场部 12 L 33 女 1000000 2018-02-21 4 人事部 12 L 33 女 1000000 2018-02-21 5 鼓励部
注意:多表查询时,一定要找到两个表中相互关联的字段,并且作为条件使用
-- 查询人员和部门所有信息 select * from person,dept where person.id = dept.id;
1
原文:https://www.cnblogs.com/believepd/p/10439997.html