7.1 插入完整数据记录
语法:
insert into table_name(field1,field2,field3,……)values(value1,value2,value3,……);
例如:
我们先创建一张user表,如下:
mysql> create table user(
-> id int,
-> name varchar(20),
-> address varchar(60)
-> );
Query OK, 0 rows affected (0.17 sec)
接着,向user表中插入一条记录如下:
mysql> insert into user(id,name,address) values(1,’kkdd’,’shanghai’);
Query OK, 1 row affected (0.16 sec)
为了验证这条记录师傅插入成功,执行下面的查询语句:
mysql> select * from user;
我们也可以在SQLyog中查看user表是否有我们刚刚插入的数据,如下:
另外,当我们插入完整数据记录时,也可以采用省略字段的方式:
语法:
insert into table_name values(value1,value2,value3,……);
7.2 插入数据记录一部分
语法:
insert into table_name(field1,field2,field3,……) values(value1,value2,value3,……)
我们先创建一张student表,如下:
mysql>create table student(
-> id int >primary key auto_increment,
-> name varchar(20),
-> address varchar(60)
-> );
Query OK, 0 rows affected (0.07 sec)
接着我们先插入一条完整记录(以作对比)
mysql>insert into student(id, name, address) values(1,’Davaid’,’shanghai’);
Query OK, 1 row affected (0.14 sec)
然后插入一条部分记录
mysql> insert into student(id, name) values(2,’Dandan’);
Query OK, 1 row affected (0.10 sec)
再插入一条部分记录
mysql> insert into student(name, address) values(‘Qingqing’, ‘beijing’);
Query OK, 1 row affected (0.15 sec)
最后,执行查询语句:
mysql> select * from student;
注意:这里我们发现一个问题,当我们插入第二个部分记录时,插入语句中并没有插入字段id,但是我们看到表里自动加上了字段id,这是由于字段id是“自动增加”约束的原因。
7.3 插入多条数据记录
语法:
insert into table_name(field1,field2,field3,……) values(value11,value12,value13,……),
(value21,value22,value23,……),(value31,value32,value33,……), … …(valuen1,valuen2,valuen3,……);
7.4 插入查询结果
语法:
insert into table_name1(field11,field12,field13,……) select (field21,field22,field23,……) from table_name2 where……;
目的:将一张表中的查询记录插入另一张表
例如:
我们已经有了一张student表,如下:
这里,我们再新建一张student2表,如下:
我们看到,新建的student2表中没有数据记录
此时,我们将student表中的所有记录插到student2表中,如下:
mysql> insert into student2(id, name, address) select * from student;
Query OK, 3 rows affected (0.09 sec)
Records: 3 Duplicates: 0 Warnings: 0
结果如下:
7.5 更新特定数据记录
语法:
update table_name set field1=value1, field2=value2, field3=value3, … where condition;
例如:
现有student表如下:
接着,我们修改一下姓名为Qingqing的学生的地址,由beijing变为江苏,如下:
mysql> update student set address=”jiangsu” where name=”Qingqing”;
Query OK, 1 row affected (0.15 sec)
Rows matched: 1 Changed: 1 Warnings: 0
我们来验证一下,是否修改正确
7.6 更新所有数据记录
语法:
update table_name set field1=value1, field2=value2, field3=value3, … where condition;
例如:
现有student表如下:
接着,我们将所有学生的地址都改为tianjin,如下:
mysql> update student set address=”tianjin” where id<4;
Query OK, 3 rows affected (0.11 sec)
Rows matched: 3 Changed: 3 Warnings: 0
我们来验证一下,是否修改正确:
7.7 删除特定数据记录
语法:
delete from table_name where condition;
例如:
现有student表如下:
现想要删除姓名为Davaid的数据信息,如下:
mysql> delete from student where name=”Davaid”;
Query OK, 1 row affected (0.07 sec)
我们来验证一下,是否已删除,如下:
7.8 删除所有数据记录
语法:
delete from table_name where condition;
例如:
现有student表如下:
现想要删除表中的所有记录,如下:
mysql> delete from student where id<4;
Query OK, 2 rows affected (0.06 sec)
我们来验证一下,是否已删除,如下:
mysql> select * from student;
Empty set (0.00 sec)