第十九章 插入数据
insert是用来插入行到数据库表的。
插入完整行
要求指定名和插入值
insert into customers
values (null,'Pep E. LaPew','100 Main Street',
'Los Angeles','CA','90046','USA',NULL,NULL);
- 必须按照列定义次序插入
- 自动增量须指定空值,没有具体信息的列也需要写入空值
insert into customers (cust_name,cust_address,cust_city,cust_state,
cust_zip,cust_country,cust_contact,cust_email)
values ('Pep E. LaPew','100 Main Street','Los Angeles','CA','90046','USA',NULL,NULL);
指定了列名,在插入值时不用担心表结构改变而发生错误。这里不用插入cust_id,因为cust_id为自动增值。
插入数据必须使用给出指定列表的insert语句
如果指定了列名则必须提供值,否则发生错误
如果表定义允许null值或有默认值时,在插入时可以不用列出
使用Insert时,会降低select性能,可以使用insert low_priority into 降低性能
插入多行
方法1: 提交多个insert 语句
insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country)
values('Pep E. LaPew','100 Main Street','Los Angeles','CA','90046','USA');
insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country)
values('M. Martian','42 Galaxy Way','New York','NY','11213','USA');
#方法2: 只要每条INSERT语句中的列名(和次序)相同,可以如下组合各语句
单条INSERT语句有多组值,每组值用一对圆括号括起来,用逗号分隔
insert into customers(cust_name,cust_address,cust_city,cust_state,
cust_zip,cust_country)
values('Pep E. LaPew','100 Main Street','Los Angeles','CA','90046','USA'),
('M. Martian','42 Galaxy Way','New York','NY','11213','USA');
用单条insert语句处理多个插入比使用多条insert语句快
插入检索出的数据
insert select语句
insert into customers (cust_contact,cust_email,cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country)
select cust_contact,cust_email,cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country from custnew;
这条语句将插入多少行有赖于custnew表中有多少行。列名可以不用一一对应。
可包含where子句过滤数据。
更新数据
update
更新表中特定行;更新表中所有行
UPDATE customers
SET cust_name = 'The Fudds',
cust_email = 'elmer@fudd.com'
WHERE cust_id = 10005;
--也可以赋予空值来删除列值如果允许null值
如果update多列时发生错误整个update操作将被取消,可使用ignore忽略错误,继续更新。 update ignore customers
注意需要以where子句结束,否则将会更新表中所有行
删除数据
delete
从表中删除特定行;从表中删除所有行
注意需要以where子句结束,否则将会删除表中所有行,若要删除指定列需要使用update语句
delete from customers where cust_id = 10006;
– truncate table语句
如果想从表中删除 所有行,不要使用DELETE,可使用TRUNCATE TABLE语句
TRUNCATE实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据
原则