mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| sex | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> desc student1;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| sex | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> desc student2;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
6.1.3 student表中插入数据:
mysql> insert into student values(1,'aa','female');
Query OK, 1 row affected (0.01 sec)
mysql> insert into student values(2,'bb','male');
Query OK, 1 row affected (0.00 sec)
mysql> select * from student;
+------+------+--------+
| id | name | sex |
+------+------+--------+
| 1 | aa | female |
| 2 | bb | male |
+------+------+--------+
2 rows in set (0.00 sec)
6.2 mysql复制表数据
sql语句: insert into
表结构完全一样的时候可以使用 insert into table1 select * from table2;
如果表结构不相同的时候需要指定列名。
实验一:将表student 表中的数据 复制到student1表中
mysql> select * from student1;
Empty set (0.00 sec)
mysql> insert into student1 select * from student where id='1';
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from student1;
+------+------+--------+
| id | name | sex |
+------+------+--------+
| 1 | aa | female |
+------+------+--------+
1 row in set (0.00 sec)
实验二:将student 表指定列的数据插入student1到指定位置
mysql> insert into student1(name) select name from student where id='1';
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from student1;
+------+------+--------+
| id | name | sex |
+------+------+--------+
| 1 | aa | female |
| NULL | aa | NULL |
+------+------+--------+
2 rows in set (0.00 sec)
实验三:将表student 表中的数据 复制到student2表中
mysql> insert into student2 select * from student where id='1';
ERROR 1136 (21S01): Column count doesn't match value count at row 1
结论:字段多的表不能直接插入到字段少的表
实验四:将student 表指定列的数据插入student2到指定位置
mysql> insert into student2(id,name) select id,sex from student;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from student2;
+------+--------+
| id | name |
+------+--------+
| 1 | female |
| 2 | male |
+------+--------+
2 rows in set (0.00 sec)
注意:为了实验,故意将字段错开
实验五:将student2 表的数据插入student
mysql> insert into student select * from student2 ;
ERROR 1136 (21S01): Column count doesn't match value count at row 1
结论:字段少的表不能直接插入字段多的表
实验六:将student2 表指定列的数据插入student
mysql> insert into student(name,sex) select 'aa',name from student2;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from student;
+------+------+--------+
| id | name | sex |
+------+------+--------+
| 1 | aa | female |
| 2 | bb | male |
| NULL | aa | female |
| NULL | aa | male |
+------+------+--------+
4 rows in set (0.00 sec)
注意:为了实验,故意将字段错开
6.3 mysql复制表结构
create table 目标表名 like 原表名
6.3.1 实验
mysql> create table student3 like student;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+--------------------+
| Tables_in_shanTest |
+--------------------+ |
| student |
| student1 |
| student2 |
| student3 |
| user1 |
+--------------------+
7 rows in set (0.00 sec)
mysql> desc student;\
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| sex | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> desc student3;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| sex | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> select * from student;
+------+------+--------+
| id | name | sex |
+------+------+--------+
| 1 | aa | female |
| 2 | bb | male |
| NULL | aa | female |
| NULL | aa | male |
+------+------+--------+
4 rows in set (0.00 sec)
mysql> select * from student3;
Empty set (0.00 sec)
结论:create table table1 like table2,只能够复制表结构,不能够复制表内容。