龙空技术网

SQL 基础学习插入数据(十三)

清风来入梦 428

前言:

如今姐妹们对“数据库添加一列数据”大体比较看重,咱们都需要了解一些“数据库添加一列数据”的相关知识。那么小编同时在网摘上搜集了一些关于“数据库添加一列数据””的相关文章,希望我们能喜欢,各位老铁们快快来了解一下吧!

INSERT是常用的语句,插入的方式有几种

1、插入完成的行

2、插入一行的部分数据

3、插入一些查询结果的数据

这个一般需要权限的,正常开发是都有权限的,生产一般是没有权限直接进行数据库的INSERT操作的。

插入完整行(要求指定表名,插入新行中的值)

INSERT INTO customers VALUES(	1000000007,	'INSERT_NAME',	'CUOS Maple Lane',	'BEIJING',	'BJ',	10000,	'CHN',	'John Smith',	'110@QQ.COM') 

存储在每一列中的数据在VALUES中给出,如果没有值给出该列的默认字段,空字符串或者NULL,每列的值必须按顺序放在VALUES中,一般我们在业务开发中是不这么写的,因为一旦在其它地方对当前表添加了新的列,如果你记得你会回来调整费事,如果你不记得了/或者离职换工作了,就是一个巨坑了。简单不推荐的写法。

INSERT INTO customers( cust_id, cust_name , cust_address, cust_city, cust_state , cust_zip, cust_country, cust_contact , cust_email)VALUES(	1000000008,	'INSERT_NAME',	'CUOS Maple Lane',	'BEIJING',	'BJ',	10000,	'CHN',	'John Smith',	'110@QQ.COM')  

在表customers指定字段可以解决表结构发生变化时照成的问题,同时只需要表后的字段和VALUES后的字段对应就可以了。同时一旦表后给出列明,VALUES后就必须给出相应的值如果没有也需要给出默认的空值BULL或者空字符串,不然这条数据是插入不成功的。

错误(少了最后的cust_email值)

INSERT INTO customers( cust_id, cust_name , cust_address, cust_city, cust_state , cust_zip, cust_country, cust_contact , cust_email)VALUES(	1000000008,	'INSERT_NAME',	'CUOS Maple Lane',	'BEIJING',	'BJ',	10000,	'CHN',	'John Smith',) 

插入部分列

INSERT INTO customers( cust_id, cust_name , cust_address,  cust_email)VALUES(	1000000009,	'INSERT_NAME',	'CUOS Maple Lane', 	'110@QQ.COM')

查询

使用指定列的方式,完成部分列的数据插入

注意项:

1、当前忽略的列,必须允许为NULL(无值)

2、在表定义该列的时候给出默认值

插入检索出的数据

它是由INSERT语句和SELECT语句组成,也是我们常说的INSERT SELECT。

INSERT INTO customers( cust_id, cust_name , cust_address, cust_city, cust_state , cust_zip, cust_country, cust_contact , cust_email)SELECT cust_id, cust_name , cust_address, cust_city, cust_state , cust_zip, cust_country, cust_contact , cust_emailFROM custnew

这里插入的时候CustNew检索出的数据中的唯一键值不应该和customers中的唯一键值相同

SELECT语句从custnew中检错出要插入的值,而不是列出它们,SELECT后的每一列对应INSERT INTO customers后的每一列。这里SELECT的列名是为了保持和customers一致取的它们不是必须。

其中INSER 是插入单行数据的,多条数据是我们必须执行多次INSERT,但是INSERT SELECT语句我们是可以批量插入的,我们SELECT语句检索出多少条就会被INSERT插入多少条,当前键值唯一的并且重复的会报错的

SELECT后可以跟随WHERE语句过滤数据,检索出我们需要的数据

INSERT INTO customers( cust_id, cust_name , cust_address, cust_city, cust_state , cust_zip, cust_country, cust_contact , cust_email)SELECT cust_id, cust_name , cust_address, cust_city, cust_state , cust_zip, cust_country, cust_contact , cust_emailFROM custnewWHERE cust_id NOT IN(SELECT cust_id FROM customers)

将一个表单数据复制到另一张表中

CREATE SELECT语句

CREATE TABLE CopyCust AS SELECT * FROM custnew;

SQL server 写法

SELECT * INTO CopyCust FROM custnew

这里创建了一张新表CopyCust 将custnew表中的数据复制到了新表中

标签: #数据库添加一列数据