MySQL必知必会 —— 第十九章 插入数据

1.数据插入

INSERT是用来插入(或添加)行到数据库表的。插入可以用几种方式使用:
❑ 插入完整的行;
❑ 插入行的一部分;
❑ 插入多行;
❑ 插入某些查询的结果。

2.出入完整的行

把数据插入表中的最简单的方法是使用基本的INSERT语法,它要求指定表名和被插入到新行中的值。

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);

当知道表中列名的排序时,可以简单的写成一下代码

insert into customers
	values('Pep E. LaPew',
  	'100 Main Street',
  	'Los Angeles',
  	'CA',
  	'90046',
  	'USA',
  	NULL,
  	NULL);

总是使用列的列表 一般不要使用没有明确给出列的列表的INSERT语句。使用列的列表能使SQL代码继续发挥作用,即使表结构发生了变化。
仔细地给出值 不管使用哪种INSERT语法,都必须给出VALUES的正确数目。如果不提供列名,则必须给每个表列提供一个值。如果提供列名,则必须对每个列出的列给出一个值。如果不这样,将产生一条错误消息,相应的行插入不成功。

省略列 如果表的定义允许,则可以在INSERT操作中省略某些列。省略的列必须满足以下某个条件。
❑ 该列定义为允许NULL值(无值或空值)。
❑ 在表定义中给出默认值。这表示如果不给出值,将使用默认值。如果对表中不允许NULL值且没有默认值的列不给出值,则MySQL将产生一条错误消息,并且相应的行插入不成功。

3.插入多个行

方法一:可以使用多条INSERT语句,甚至一次提交它们,每条语句用一个分号结束
方法二:只要每条INSERT语句中的列名(和次序)相同,可以如下组合各语句:

insert into customers(cust_name,
		suet_address,
		cust_city,
		cust_state,
		cust_zip,
		cust_country)
	values('Pep E. LaPew',
		'100 Main Street',
		'Los Angeles',
		'CA',
		'90046',
		'USA'),
		('M.Martrain',
		'42 Galaxy Way',
		'New York',
		'NY',
		'11213',
		'USA');

4.插入检索出的数据

insert into customers(cust_name,
  		cust_address,
  		cust_city,
  		cust_state,
  		cust_zip,
  		cust_country,
  		cust_contact,
  		cust_email)
  select cust_name,
  	cust_address,
 	cust_city,
  	cust_state,
  	cust_zip,
  	cust_country,
  	cust_contact,
  	cust_email
  from custnew;

INSERT SELECT中的列名 为简单起见,这个例子在INSERT和SELECT语句中使用了相同的列名。但是,不一定要求列名匹配。事实上,MySQL甚至不关心SELECT返回的列名。它使用的是列的位置,因此SELECT中的第一列(不管其列名)将用来填充表列中指定的第一个列,第二列将用来填充表列中指定的第二个列,如此等等。这对于从使用不同列名的表中导入数据是非常有用的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值