mysql正在加载_mysql 数据库基本操作
CREATE TABLE classes(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT'班級表id',
name VARCHAR(20) COMMENT'班級名稱'
);
運行DESCRIBE classes;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT'學(xué)生表id',
name VARCHAR(20) COMMENT'學(xué)生姓名',
class_id int COMMENT'教室id,這張表中的class_id是classes表中id的值',
FOREIGN KEY (class_id) REFERENCES classes(id)
);
//FOREIGN :外來 REFERENCES:應(yīng)用,參考
運行DESCRIBE student;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| class_id | int(11) | YES | MUL | NULL | |
+----------+-------------+------+-----+---------+----------------+
班級插入數(shù)據(jù):
INSERT INTO CLASSES (name) VALUES ('一班');
INSERT INTO CLASSES (name) VALUES ('二班');
INSERT INTO CLASSES (name) VALUES ('三班');
INSERT INTO CLASSES (name) VALUES ('四班');
查看數(shù)據(jù) SELECT * FROM classes;
+----+------+
| id | name |
+----+------+
| 1 | 一班 |
| 2 | 二班 |
| 3 | 三班 |
| 4 | 四班 |
+----+------+
學(xué)生插入數(shù)據(jù):
INSERT INTO student (name,class_id) VALUES ('小趙',1);
INSERT INTO student (name,class_id) VALUES ('小錢',2);
INSERT INTO student (name,class_id) VALUES ('小孫',3);
INSERT INTO student (name,class_id) VALUES ('小李',4);
查看數(shù)據(jù) SELECT * FROM student;
+----+------+----------+
| id | name | class_id |
+----+------+----------+
| 1 | 小趙 | 1 |
| 2 | 小錢 | 2 |
| 3 | 小孫 | 3 |
| 4 | 小李 | 4 |
+----+------+----------+
若是像插入班級為5的數(shù)據(jù) 如:
INSERT INTO student (name,class_id) VALUES ('小周',5);
報錯: Cannot add or update a child row
我們刪除正在被學(xué)生表引用的'四班'試試:
DELETE classes WHERE name = '四班';
出現(xiàn):Cannot delete or update a parent row:不能刪除主表中的行
我們先刪除學(xué)生表中的 '小李'從而解除班級中'四班'的外鍵約束,再來刪除'四班'(因為小李引用了四班)
DELETE FROM student WHERE name = '小李';
再次刪除classes表中的'四班';
DELETE FROM classes WHERE name = '四班';
最后: SELECT * FROM classes;
+----+------+
| id | name |
+----+------+
| 1 | 一班 |
| 2 | 二班 |
| 3 | 三班 |
+----+------+
'四班'被成功刪除!
總結(jié):
1.主表中沒有的數(shù)據(jù),在附表中,是不可以使用的.
2.主表中記錄的數(shù)據(jù)現(xiàn)在正在被附表所引用,那么主表中正在被引用的數(shù)據(jù)不可以被刪除
3.若要想刪除,先將附表中的數(shù)據(jù)刪除在刪除主表數(shù)據(jù)
4.對于外鍵約束大家可以聯(lián)想 省,市 來進(jìn)行聯(lián)想 (市必須要依賴于省,只要省還有一個市在引用,那么就不可以刪除省,要不然市就沒有省了. 那么我們想刪除省,必須要將該省下所有的市全部刪除之后,才可以刪除這個省)
總結(jié)
以上是生活随笔為你收集整理的mysql正在加载_mysql 数据库基本操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4gl 上传文件_文件管理密码相册工具a
- 下一篇: 易语言单窗口单ip软件源码_好人多窗口同