插入資料是向表中插入新的記錄。這種方式可以為表中增加新的資料。在mysql中,使用insert語句來插入新的資料,可以為表的所有字段插入資料,也可以為表的指定字段插入資料。insert語句可以同時插入多條記錄,還可以将一個表中查詢出來的資料插入到另一個表中。
插入資料
1、 為表的所有字段插入資料
insert語句為表中插入資料的兩種方式:第一種方式是不指定具體的字段;第二種方式是列出表的所有字段;
(1) insert語句中不指定具體的字段名
文法:insert into 表名 values(值1,值2…值n);
表名:參數指定記錄插入到那個表中;值n:表示要插入的資料;值1~值n分别對應着表中的每個字段。表中定義了幾個字段,insert語句中就應該對應有幾個值。插入的順序與表中字段的順序相同。而且,取值的資料類型要與表中對應字段的資料類型一緻。
示例:下面向product表中插入記錄。插入記錄之前,可以通過DESC語句來檢視product表的基本結構。
DESC product;
insert into product values(1001,’ABC藥物’,’治療感冒’,’ABC制藥廠’,’北京市昌平區’);
(2) insert語句中列出所有字段
insert語句中可以列出表的所有字段,為這些字段來插入資料。
文法:insert into 表名(屬性1,屬性2,…屬性n) values (值1,值2,…值n);
屬性n:表示表中的字段名稱,此處需要列出表的所有字段的名稱;
值n:表示每個字段的值,每個值與相應的字段對應。
示例:向product表中插入記錄
insert into product(id,name,functions,company,address) values (1002,'BCD','治療頭痛','BCD制藥廠','北京市海澱區');
為表的指定字段插入資料
文法:insert into 表名(屬性1,屬性2,…,屬性m) values (值1,值2,…,值m);
insert into product (id,name,company) values (1003,’EF咳嗽靈’,’EF制藥廠’);
注:沒有指派的字段,資料庫系統會為其插入預設值。這個預設值是在建立表的時候定義的。
示例:下面向product表的id、name和company字段插入資料。
insert into product (id,company,name) values (1004,’北京制藥廠’,’OK護嗓藥’);
2、 同時插入多條記錄
同時插入多條記錄,是指一個insert語句插入多條記錄。mysql中,一個insert語句可以同時插入多條記錄。
文法:insert into 表名[(屬性清單)] values (取值清單1),(取值清單2)…,(取值清單n);
表名:指明向那個表中插入資料;
屬性清單:參數是可選參數,指定那些字段插入資料,沒有指定字段時向所有字段插入資料;
取值清單n:表示要插入的記錄,每條記錄之間用逗号隔開;
示例:向product表中一次插入多條記錄
insert into product values (1006,’頭疼靈1号’,’治療頭痛’,’DD制藥廠’,’北京市房山區’);
(1007,’頭疼靈2号’,’ 治療頭痛’,’DD制藥廠’,’北京市房山區’);
(1008,’頭疼靈3号’,’ 治療頭痛’,’DD制藥廠’,’北京市房山區’);
示例2:下面向product表的id,name,company這三個字段插入資料。
insert into product (id,name,company) values
(1009,'護發1号','北京護發素廠'),
(1010,'護發2号','北京護發素廠'),
(1011,'護發3号','北京護發素廠');
3、 将查詢結果插入到表中
insert語句可以将一個表中查詢出來的資料插入到另一個表中。這樣可以友善不同的表之間進行資料交換。
文法:insert into 表名1 (屬性清單1) select 屬性清單2 from 表名2 where 條件表達式;
表名1:參數說明記錄插入到那個表中;
表名2:參數說明表示記錄是從那個表中查詢出來的;
屬性清單1:參數表示為那些字段指派;
屬性清單2:表示從表中查詢出那些字段的資料;
條件表達式:參數設定了select語句的查詢條件;
下面将medicine表中所有資料查詢出來,然後插入到product表中。
select * from medicine;
下面将medicine表中查詢出來的資料插入到product表中。
insert into product (id,name,functions,company,address) select id,name,functions,company,address from medicine;
更新資料
更新資料是更新表中已經存在的記錄。通過這種方式可以改變表中已經存在的資料。在mysql中用update語句修改表中的資料。
文法:update 表名 set 屬性名1=取值1,屬性名2=取值2,…,屬性名n=取值n where 條件表達式;
屬性名n:參數表示需要更新的字段的名稱;
取值n:參數表示為字段更新的新資料;
條件表達式:參數指定更新滿足條件的記錄;
下面更新product表中id值為1001的記錄。将name字段的值變為’AAAA感冒藥’。将address字段的值為’北京市朝陽區’;
先查詢product表中id為1001的記錄。
select * from product where id=1001;
update product set name=’AAAA感冒藥’,address=’北京市朝陽區’ where id=1001;
下面将product表中id值為1001~1011的記錄,将function字段的值變為’護理頭發’。将address字段的值變為’北京市昌平區’。
先查詢product表中值從1009~1011的記錄。
select * from product where id>=1009 and id<=1011;
update product set functions=’護理頭發’,address=’北京市昌平區’ where id>=1009 and id<=1011;
删除資料
删除資料是删除表中已經存在的記錄。通過這種方式可以删除表中不使用的記錄。通過delete語句來删除資料。
delete from 表名 [where 條件表達式];
表名:參數指明從那個表中删除資料;
where條件表達式:指定表中要删除的資料;
下面删除product表中id值為1001的記錄。先查詢一下product表中1001的記錄。
select * from product where id=1001;
delete from product where id=1001;