数据库
首页 > 数据库> > 数据库

数据库

作者:互联网

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