网站首页 > 知识剖析 正文
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_email
FROM 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_email
FROM custnew
WHERE 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表中的数据复制到了新表中
猜你喜欢
- 2024-12-04 从零开始学SQL数据分析,SQL数据清洗
- 2024-12-04 C#中使用FreeSql分表查询的实现及bug
- 2024-12-04 利用VBA+SQL查询Excel工作表数据(条件查询)
- 2024-12-04 初学者最热门和棘手的10个T-SQL问题
- 2024-12-04 神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程
- 2024-12-04 数据库基础 数据查询语言 初学者一定要掌握这些SQL查询语句
- 2024-12-04 20个数据分析师必知必会的SQL查询语句
- 2024-12-04 SQL查询排序如何将null值排到最后
- 2024-12-04 一文讲懂SQL条件语句 IF函数
- 2024-12-04 SQL注入漏洞之MySQL手工注入
- 05-08如何在 HTML、CSS 和 JS 中制作明暗模式按钮
- 05-08Vue样式穿透原因及用法解析(vue样式穿透原理)
- 05-08MFC转QT - Qt界面开发 - 样式与主题
- 05-08CSS属性值计算过程详解(css的属性值)
- 05-08CSS使用渐变实现Chrome标签栏效果
- 05-08前端学习保姆级教程,轻松入门 Web 开发
- 05-08微信小程序入门教程之二:页面样式
- 05-08css概念以及语法规则(css基本概念)
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)