mysql 学习记录 插入、更新和删除数据

第十九章 插入数据
insert是用来插入行到数据库表的。

插入完整行
要求指定名和插入值

insert into customers 
values (null,'Pep E. LaPew','100 Main Street',
'Los Angeles','CA','90046','USA',NULL,NULL);
  1. 必须按照列定义次序插入
  2. 自动增量须指定空值,没有具体信息的列也需要写入空值
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实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据

原则
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值