SQL必知必会 第15课 插入数据

15.1 数据插入

INSERT用来将行插入(或添加)到数据库表。插入有几种方式:

  • 插入完整的行;
  • 插入行的一部分;
  • 插入某些查询的结果。

插入完整的行

# 插入完整的行
insert into customers
values(1000000006,
	   'Toy Land',
       '123 Any Street',
       'New York',
       'NY',
       '11111',
       'USA',
       NULL,
       NULL);

存储在values子句中给出,必须给每一列提供一个值,如果某列没有值,则用NULL值。各列必须以他们在表定义中出现的次序填充。所以高度依赖于表中列的定义次序,是很不安全的,因此采用下面的语句更安全:

insert into customers(cust_id,
					  cust_name,
                      cust_address,
                      cust_city,
                      cust_state,
                      cust_zip,
                      cust_country,
                      cust_contact,
                      cust_email)
values(1000000007,
	   'Toy Land',
       '123 Any Street',
       'New York',
       'NY',
       '11111',
       'USA',
       NULL,
       NULL);

它在表名后的括号中明确给出了列名,values必须以其指定的次序匹配指定的列名,不一定按各列出现在表中的实际次序。

# 以不同的次序填充 
insert into customers(cust_id,
					  cust_contact,
                      cust_email,
                      cust_name,
                      cust_address,
                      cust_city,
                      cust_state,
                      cust_zip
                      )
values(1000000006,
	   NULL,
       NULL,
	   'Toy Land',
       '123 Any Street',
       'New York',
       'NY',
       '11111'
       );

插入部分行

使用insert的推荐方法是明确给出表的列名。使用这种语法,还可以省略列,表示可以只给某些列提供值,给其他列不提供值(该列定义为允许NULL值或者在表定义中给出默认值)

# 插入部分行(省略列,表示只给某些列提供值,给其他列不提供值)
insert into customers(cust_id,
                      cust_name,
                      cust_address,
                      cust_city,
                      cust_state,
                      cust_zip,
                      cust_country
                      )
values(1000000006,
	   'Toy Land',
       '123 Any Street',
       'New York',
       'NY',
       '11111',
       'USA'
       );

插入检索出的数据

# 插入检索出的数据 
insert into customers(cust_id,
					  cust_contact,
                      cust_email,
                      cust_name,
                      cust_address,
                      cust_city,
                      cust_state,
                      cust_zip,
                      cust_country
                      )
select  cust_id,
		cust_contact,
		cust_email,
		cust_name,
		cust_address,
		cust_city,
		cust_state,
		cust_zip,
        cust_country 
from custNew;

从一个表复制到另一个表

这种数据插入不使用INSERT语句。而是使用create select语句,它可以将数据复制到一个新表。

# 从一个表复制到另一个表
create table custCopy as select * from customers;

若是使用SQL Server,还可以这么写:

# 从一个表复制到另一个表
select * into custCopy from customers;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值