数据库
作者:互联网
CREATE TABLE demp1
(
deptId INT PRIMARY KEY AUTO_INCREMENT,
deptName VARCHAR(20),
location VARCHAR(50)
);
CREATE TABLE emp2(
emp_id INT PRIMARY KEY AUTO_INCREMENT,
emp_name VARCHAR(30),
age INT,
deptId INT,
CONSTRAINT dept_emp_id FOREIGN KEY (deptId) REFERENCES demp1(deptId)
);
INSERT INTO demp1(deptName, location) VALUES ('销售部', '广州');
INSERT INTO demp1(deptName, location) VALUES ('开发部', '上海');
INSERT INTO demp1(deptName, location) VALUES ('实施部', '深圳');
INSERT INTO emp2(emp_name, age, deptId) VALUES ('张三', 18, 1);
INSERT INTO emp2(emp_name, age, deptId) VALUES ('李四', 18, 2);
INSERT INTO emp2(emp_name, age, deptId) VALUES ('王五', 18, 2);
SELECT * FROM demp1;
SELECT * FROM emp2;
表的联合查询
多表的联合查询 INNER JOIN ON 内连接, 将左右两个边表有数据就都查出来,没有数据则不展示
SELECT e.*, d.deptName
, d.location
FROM demp1 d INNER JOIN emp2 e ON d.deptId
= e.deptId
多表查询 左连接 注意,查询已左边表为主表,主表的数据全部展示,从表数据,有则直接展示,没有则使用NULL 进行填充
SELECT e.*, d.deptName
, d.location
FROM demp1 d LEFT JOIN emp2 e ON d.deptId
= e.deptId
多表查询 左连接 注意,查询已右边表为主表,主表的数据全部展示,从表数据,有则直接展示,没有则使用NULL 进行填充
SELECT e.*, d.deptName
, d.location
FROM demp1 d RIGHT JOIN emp2 e ON d.deptId
= e.deptId
内连接的简化写法
SELECT e.*, d.deptName
, d.location
FROM demp1 d, emp2 e WHERE d.deptId
= e.deptId
注意:多表连接,如果不添加外键相等的条件则会出现, 出现数据的冗余。两张表的数据都会一一进行组合。
SELECT e.*, d.deptName
, d.location
FROM demp1 d, emp2 e
数据删除 关键字是用delete
DELETE FROM emp WHERE empId = 3;
数据修改
SELECT * FROM emp;
UPDATE emp SET empName = '王五', sex = '男' WHERE empId = 2;
标签:deptId,demp1,数据库,emp2,emp,deptName,location 来源: https://www.cnblogs.com/Sorry-/p/13949459.html