插入、更新与删除数据
一、插入数据
向表中插入新的记录。通过这种方式可以为表中增加新的数据。MySQL中,通过INSERT语句来插入新的数据。使用INSERT语句可以同时为表的所有字段插入新的数据,也可以为表的制定字段插入数据。INSERT语句可以同时插人多条记录,还可以将一个表中查询出来的数据插入到另一个表中。
1、为表的所有字段插入数据
插入的新记录要包含表的所有字段。INSERT语句有两种方式可以同时为表的所有字段插入数据。第一种方式是不指定具体的字段名。第二种方式是列出表的所有字段。
a、INSERT语句中不指定具体的字段名
INSERT INTO 表名 VALUES(值1,值2,.....,值n);
e.g 下面向product表中插入记录。
INSERT INTO product VALUES(1001,'ABC 药物','治疗感冒','ABC 制药厂','北京市昌平区');
b、INSERT语句中列出所有字段
INSERT INTO 表名(属性1,属性2,......,属性n) VALUES(值1,值2,.....,值n);
e.g 下面向product表中插入记录。
INSERT INTO product(id,name,function,company,address) VALUES(1002,'BCD 药物','治疗头痛','BCD 制药厂','北京市海淀区');
e.g 下面向product表中插入一条新记录。INSERT语句中字段的顺序与表定义时的顺序不同。
INSERT INTO product(id,function,name,address,company) VALUES(1003,'治疗癌症','AB 康复丸','北京市顺义区','AB 康复制药厂');
2、为表的指定字段插入数据
如果上一节中讲解的INSERT语句只是指定部分字段,这就可以为表中的部分字段插入数据了。
INSERT INTO 表名(属性1,属性2,属性3,......,属性m) VALUES(值1,值2,....,值m);
e.g 下面向product表中id、name和company这三个字段插入数据。
INSERT INTO product(id,name,company) VALUES(1004,'EF 咳嗽灵','EF 北京制药厂');
e.g 下面向product表的id,name和company字段插入数据,这三个字段的顺序可以任意排列。
INSERT INTO product(id,company,name) VALUES(1004,'北京制药厂','OK 护嗓药');
3、同时插入多条记录
用户可以使用上面两个小节中的方法逐条插入记录。但是,每次都要写一个新的INSERT语句,这样比较麻烦。MySQL中,一个INSERT语句可以同时插入多条记录。
INSERT INTO 表名[(属性列表)] VALUES(取值列表1),(取值列表2),...,(取值列表n);
e.g 下面向product表中插入三条新记录。
INSERT INTO product VALUES('1006','头痛灵1','治疗头痛','DD制药厂','北京市房山区'),('1007','头痛灵2','治疗头痛','DD制药厂','北京市房山区'),('1007','头痛灵3','治疗头痛','DD制药厂','北京市房山区');
e.g 下面向product表的id,name和company这三个字段插入数据,总共插入三条记录。
INSERT INTO product(id,name,company) VALUES('1009','护发1号','北京护发素厂'),('1010','护发2号','北京护发素厂'),('1011','护发3号','北京护发素厂');
4、将查询结果插入到列表中
INSERT语句可以将一个表中查询出来的数据插入到另一表中。这样,可以方便不同表之间进行数据交换。
INSERT INTO 表名1(属性列表1) SELECT 属性列表2 FROM 表名2 WHERE 条件表达式;
e.g 下面将medicine表中所有数据查询出来,然后插入到product表中。
INSERT INTO product(id,function,name,address,company) SELECT id,function,name,address,company FROM medicine;
二、更新数据
是更新表中已经存在的记录。可以改变表中已经存在的数据。例如,学生表中某个学生的家庭住址改变了,这就需要在学生表中该修改同学的佳通地址。MySQL中,通过UPDATE语句来更新数据。
UPDATE 表名 SET 属性名1=取值1,属性名2=取值2,....,属性名n=取值n WHERE 条件表达式;
e.g 下面更新product表中id值为1001的记录,将name字段的值变成“AAA 感冒药”,将address字段的值变为“北京市朝阳区”。
UPDATE product SET name='AAA 感冒药',address='北京市朝阳区' WHERE id=1001;
e.g 下面更新product表中id未1009到1011的记录,将function字段的值变成“护理头发”,将address字段的值变为“北京市昌平区”,先用SELECT语句查询id值从1009到1011的记录。
UPDATE product SET function='护理头发',address='北京市昌平区' WHERE id>=1009 AND id<=1011;
三、删除数据
删除表中已经存在的记录。可以删除表中不再使用的记录。例如,学生表中某个学生退学了,就需要从学生列表中删除该同学的信息。MySQL中,通过DELETE语句来删除数据。
DELETE FROM 表名 [WHERE 条件表达式];
e.g 下面删除product表中id值为1001记录。
DELETE FROM product WHERE id=1001;
e.g 下面删除product表中address值为“北京市顺义区”的记录。
DELETE FROM product WHERE address='北京市顺义区';
e.g 删除product表中所有记录
DELETE FROM product;
学员评论