mysql> DESC student;
+----------------+----------------+---------+------
-+-------------+----------+
| Field | Type | Null | Key | Default | Extra |
+----------------+----------------+---------+------
-+-------------+----------+
| id | int(10) | NO | PRI | NULL | |
| name | varchar(20) | NO | MUL | NULL | |
| sex | varchar(4) | YES | | NULL | |
| birth | year(4) | YES | MUL | NULL | |
| department | varchar(20) | YES | | NULL | |
| address | varchar(50) | YES | | NULL | |
+----------------+----------------+---------+------
-+-------------+----------+
6 rows in set (0.03 sec)
mysql> DESC score;
+-----------+----------------+---------+-------+-
------------+-----------------------+
| Field | Type | Null | Key | Default
| Extra |
+-----------+----------------+---------+-------+
-------------+-----------------------+
| id | int(10) | NO | PRI | NULL |
auto_increment |
| stu_id | int(10) | NO | MUL | NULL
| |
| c_name | varchar(20) | YES | | NULL
| |
| grade | int(10) | YES | | NULL
| |
+-----------+----------------+---------+-------+--
-----------+-----------------------+
4 rows in set (0.03 sec)
实际中经常要查学生的学号、姓名和成绩。根据这种情况可以创建一个temp_score表。temp_score表中存储3个字段,分别是id、name和grade。CREATE语句执行如下:
mysql> CREATE TABLE temp_score(id INT NOT NULL,
-> name VARCHAR(20) NOT NULL,
-> grade FLOAT
-> );
Query OK, 0 rows affected (0.00 sec)
然后从student表和score表中将记录导入到temp_score表中。INSERT语句如下:
INSERT INTO temp_score SELECT student.id, student.name, score.grade
FROM student, score WHERE student.id=score.stu_id ;
将这些数据插入到temp_score表中以后,可以直接从temp_score表中查询学生的学号、姓名和成绩。这样就省去了每次查询时进行表连接。这样可以提高数据库的查询速度。