æ°æ®çå®æ´æ§çº¦æï¼2ï¼
æ°æ®çå®æ´æ§çº¦æï¼1ï¼ï¼å®ä½å®æ´æ§ãåå®æ´æ§ï¼è¯·ç¹å»è·³è½¬
ä¸ãç´¢å¼
å¨å ³ç³»æ°æ®åºä¸ï¼ç´¢å¼æ¯ä¸ç§åç¬çãç©çç对æ°æ®åºè¡¨ä¸ä¸åæå¤åçå¼è¿è¡æåºçå¨åç»æï¼å®æ¯æ个表ä¸ä¸åæè¥å¹²åå¼çéååç¸åºçæå表ä¸ç©çæ è¯è¿äºé¡µçé»è¾æéæ¸ åã
æ¯ä¸æ¯å¾æ¦æ¶©ï¼ç®åç¹ï¼å°±åæ¯æ¯æ¬ä¹¦ä¸çç®å½ã
å¨æ°æ®åºä¸æ¥è¯¢ææ¡æ°æ®ï¼æå®æ¥è¯¢ä»¥åï¼æ°æ®åºæ¯ä»ç¬¬ä¸æ¡æ°æ®å¼å§éåçï¼å¦æéè¦çæ°æ®å¨ç¬¬1000æ¡ï¼å°±ä¼ä¸ç´éåï¼ç´å°æ¾å°è¿ä¸æ¡æ°æ®ãè¿æ ·ï¼æçå°±ä¼å¤§æææ£ï¼ç´¢å¼å°±æ¯ä¸ºäºè§£å³è¿ä¸ªé®é¢ã
1.æ®éç´¢å¼
ï¼1ï¼å¨å·²ç»å建ç表ä¸ï¼ä¸ºå ¶æ个å段å建索å¼
è¯æ³æ ¼å¼
示ä¾
é¦å æå å建表stu
mysql> create table stu(
-> id int,
-> name varchar(50),
-> age int
-> );
Query OK, 0 rows affected (0.03 sec)
å¨è¡¨ä¸ç»idå段å建索å¼
mysql> create index stu_id on stu(id);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
æ¥ç表çå ·ä½ä¿¡æ¯ï¼å¯ä»¥çå°idå段æ®éç´¢å¼å建æå
mysql> show create table stu\G
*************************** 1. row ***************************
Table: stu
Create Table: CREATE TABLE `stu` (
`id` int DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL,
KEY `stu_id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | MUL | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
ï¼2ï¼å建表æ¶å建索å¼
è¯æ³æ ¼å¼
示ä¾
å¨å建表æ¶ä¸ºnameå段å建索å¼ï¼ç´¢å¼å为âstu_nameâ
mysql> create table student(
-> id int,
-> name varchar(50),
-> age int,
-> index stu_name (name)
-> );
Query OK, 0 rows affected (0.03 sec)
æ¥ç表çå ·ä½ä¿¡æ¯ï¼å¯ä»¥çå°nameå段æ®éç´¢å¼å建æå
mysql> show create table student\G
*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL,
KEY `stu_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(50) | YES | MUL | NULL | |
| age | int | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
2.å¯ä¸ç´¢å¼
æ®éç´¢å¼å 许被索å¼çæ°æ®åå å«éå¤çå¼ï¼å¯ä¸ç´¢å¼å¯ä»¥ä¿è¯æ°æ®çå¯ä¸æ§
ï¼1ï¼å¨å·²ç»å建ç表ä¸ï¼ä¸ºå ¶æ个å段å建索å¼
è¯æ³æ ¼å¼ï¼ç¨æ³ä¸æ®éç´¢å¼ä¸è´
ï¼2ï¼å建表æ¶å建索å¼
è¯æ³æ ¼å¼ï¼ç¨æ³ä¸æ®éç´¢å¼ä¸è´
3.æ¥çç´¢å¼
è¯æ³æ ¼å¼
4.å é¤ç´¢å¼
ï¼1ï¼ç¬¬ä¸ç§æ¹å¼
alter table 表å drop index ç´¢å¼åï¼
示ä¾ï¼å é¤stu表idå段çç´¢å¼
mysql> alter table stu drop index stu_id;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
æ¥ç表çå ·ä½ä¿¡æ¯ï¼stu表idå段çç´¢å¼ï¼æåå é¤
mysql> show create table stu\G
*************************** 1. row ***************************
Table: stu
Create Table: CREATE TABLE `stu` (
`id` int DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
ï¼2ï¼ç¬¬äºç§æ¹å¼
示ä¾ï¼å é¤student表ä¸ï¼name å段çç´¢å¼
mysql> drop index stu_name on student;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
æ¥ç表çå ·ä½ä¿¡æ¯ï¼å¯ä»¥çå°nameå段æ®éç´¢å¼å é¤æå
mysql> show create table stu\G
*************************** 1. row ***************************
Table: stu
Create Table: CREATE TABLE `stu` (
`id` int DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
åãå¼ç¨å®æ´æ§
å¼ç¨å®æ´æ§æ¯å¯¹å®ä½ä¹é´å ³ç³»çæè¿°ï¼æ¯å®ä¹å¤å ³é®åä¸ä¸»å ³é®åä¹é´çå¼ç¨è§åï¼ä¹å°±æ¯å¤é®çº¦æã
å¦æè¦å é¤è¢«å¼ç¨ç对象ï¼ä¹è¦å é¤å¼ç¨å®çææ对象ï¼ææå¼ç¨å¼è®¾ç½®ä¸ºç©ºã
å¤é®æå¼ç¨å¦ä¸ä¸ªè¡¨ä¸çä¸åæå¤åï¼è¢«å¼ç¨çååºè¯¥å ·æ主é®çº¦ææè å¯ä¸çº¦æã
å¤é®ç¨äºå 强两个表ï¼æ°æ®ä¹é´çè¿æ¥ã
1.æ·»å å¤é®çº¦æ
è¯æ³æ ¼å¼
示ä¾
å°å ·æå¯ä¸æ§çº¦æå段ageçstu表ä½ä¸ºä¸»è¡¨ï¼å°student表ä½ä¸ºä»è¡¨ï¼ä¸ºstudent表ageå段添å å¤é®çº¦æ
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int | YES | UNI | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
æ·»å å¤é®çº¦æ
mysql> alter table student add foreign key(age) references stu(age);
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
æ¥çstudentè¡¨å ·ä½ä¿¡æ¯ï¼å¦ä¸ï¼å¤é®çº¦ææ·»å æåï¼âstudent_ibfk_1â为å¤é®çº¦æå
mysql> show create table student\G
*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL,
KEY `age` (`age`),
CONSTRAINT `student_ibfk_1` FOREIGN KEY (`age`) REFERENCES `stu` (`age`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
å建表æ¶æ·»å å¤é®çº¦æ
é¦å å建ä¸ä¸ªå«æ主é®ç表student2
mysql> create table student2(
-> stu_id int primary key,
-> stu_name varchar(50)
-> );
å建表student3æ¶æ·»å å¤é®çº¦æ
mysql> create table student3(
-> id int,
-> name varchar(50),
-> stu_id int,
-> foreign key(stu_id) references student2(stu_id)
-> );
Query OK, 0 rows affected (0.03 sec)
æ¥ç表çå ·ä½ä¿¡æ¯ï¼å¦ä¸ï¼å¤é®çº¦æå建æå
mysql> show create table student\G
*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL,
KEY `age` (`age`),
CONSTRAINT `student_ibfk_1` FOREIGN KEY (`age`) REFERENCES `stu` (`age`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
2.å é¤å¤é®çº¦æ
å³è§£é¤ä¸¤ä¸ªè¡¨ä¹é´çå ³èå ³ç³»ã
示ä¾ï¼å é¤student表å¤é®çº¦æ
mysql> alter table student drop foreign key student_ibfk_1;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
å¦ä¸ï¼å¤é®çº¦æå é¤æå
mysql> show create table student\G
*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL,
KEY `age` (`age`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
ä½æ¯ä¸»é®è¿æ²¡æå½»åºå é¤ï¼
éç¨descè¯å¥çä¸ä¸è¡¨ç»æï¼å¯ä»¥çå°ageå段çkeyå¼ä»ç¶æå¼
mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int | YES | MUL | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
è¿æ¯å 为MySQLå¨å建å¤é®åä¼èªå¨å»ºä¸ä¸ªååçç´¢å¼ã
å æ¤ï¼éç¨ä¸é¢è¯å¥åªè½å é¤å¤é®çº¦æï¼æ æ³å½»åºå é¤å¤é®ã
æ以ï¼æ们éè¦å°ååç´¢å¼ä¹å é¤ï¼æå¯ä»¥å°å¤é®å½»åºå é¤
é¦å ï¼æ们éè¦ä½¿ç¨show index fromè¯å¥æ¥çç´¢å¼ï¼å¦ä¸ã
mysql> show index from student;
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| student | 1 | age | 1 | age | A | 0 | NULL | NULL | YES | BTREE | | | YES | NULL |
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
1 row in set (0.01 sec)
æ们å使ç¨å é¤ç´¢å¼çè¯å¥å°ç´¢å¼å é¤
mysql> alter table student drop index age;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
å次使ç¨descè¯å¥æ¥ç表ç»æï¼keyåéçMUlæ¶å¤±äº
mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| age | int | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
è¿æ ·ä¸»é®å°±å½»åºå é¤äºï¼
æ°æ®çå®æ´æ§çº¦æï¼1ï¼ï¼å®ä½å®æ´æ§ãåå®æ´æ§ï¼è¯·ç¹å»è·³è½¬