1. 程式人生 > 資料庫 >mysql8.0啟動報錯:thr innodb_system data file ibdata1 must be writable

mysql8.0啟動報錯:thr innodb_system data file ibdata1 must be writable

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;