【你也能从零基础学会网站开发】 SQL Server结构化查询语言数据操作应用--DML篇 insert..into..语句数据添加操作的使用方法

🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注

前言

前面我们学习了数据中的DDL操作, 有了能够建立数据库和表的基本知识之后,就可以来了解一下DML操作了!

SQL Server 2000中,insert(添加)、update(修改)、delete(删除)select(查询)数据操纵语言DML的核心操作,它们分别用于数据的增、改、删、查操作, 而我们开发web其实不管你学到多深的程度,最终也离不开这四大操作!

在我们前面的教程中,也有相应的演示, 那么今天我就先给大家浅谈一下, insert(添加)、update(修改)、delete(删除)的使用方法!

insert…into…语法规则与操作

insert语句用于向数据库的表中添加新的数据记录!

语法规则

INSERT INTO 表名 (字段1, 字段2, ...)  VALUES (1,2, ...);

举个栗子

我们向Employees表中插入3条数据记录

INSERT INTO Employees (EmployeeName, Department) VALUES ('张三', '销售部');
INSERT INTO Employees (EmployeeName, Department) VALUES ('李四', '市场部');
INSERT INTO Employees (EmployeeName, Department) VALUES ('王五', '技术部');

如图


在企业管理器中,我们查看一下结果

如图

注意事项

这里需要注意一下, 我们指定了要插入的字段中,并没有插入EmployeeID字段的值, 这是因为我们EmployeeID字段是自动递增的,所以可以忽略不写, 另外就是LastUpdated字段的数据类型是timestamp是一个二进制的时间戳,会随操作自动生成和修改,所以也可以忽略不写

剩下的就是指定所要插入数据的字段了,另外还需要注意的是在我们指定的字段中,插入的值必须要和字段个数挨个对应,并且数据类型也要匹配,如果插入的时候,数据类型不一样,可能会报错

比如

INSERT INTO Employees (UserName, isLook) VALUES ('张三', '锁定');

注意: isLook字段是一个bit类型

如图

所以当我们插入数据失败的时候,一定要留意一下系统给我们反馈的错误提示 是什么, 方便我们判断问题!

INSERT 插入语句还有一种语法规则如下:

INSERT INTO 表名称 VALUES (1,2,....)   

这种方式就是 当INSERT INTO后面不带字段的时候, 表示向表中所有字段插入对应的数据, 那么这里插入值的个数一定也要对应表中的字段个数,以及数据类型,

比如说我们这里故意给Users表添加一个不存在的字段值

如图


我个人是不推荐这种写法的, 大家可以去尝试一下!
但是为了达到兼容性更好,我的建议是最好把想插入数据的字段都给写上,字段数据类型个数必须与值列表挨个对应!

巧用 insert…into…语句实现数据复制

在我们SQL Server数据库中 insert..into..语句还可以实现数据复制的操作, 不过这里要结合一下select语句才行!

简单的说也就是 insert..into.. + select语句可以实现一非常实用的数据插入方式,让我们可以将一个中的数据复制到另一个!

语法规则

INSERT INTO 目标表名 (字段1, 字段2, ..., 字段N)  
SELECT 字段A, 字段B, ..., 字段M  
FROM 源表名  
WHERE 条件;

我们来简单的解释一下语法:

  1. 目标表名:你想要插入数据的表
  2. (字段1, 字段2, ..., 字段N):目标表中你希望插入数据的字段, 注意,这些字段的顺序和数量要与select 语句中返回的字段相匹配
  3. SELECT 字段A, 字段B, ..., 字段M:从源表中选择的字段, 这些字段的数据将被插入到目标表中!
  4. FROM 源表名:也就是指定了数据来自哪个表!
  5. WHERE 条件(可选):用于过滤源表中的行,只有满足条件的数据行才会被复制到目标表中!

大致清楚了之后,我们就来试试看效果, 看看到底行不行!

举个栗子

比如说我们现在有两个表:students_backup(学生备份表)students(学生表)

其中students_backup 表students 表的一个备份,这个能理解吧!

但现在我们想要将 students 表中所有新入学的学生复制到 students_backup 表

你也可以再加一个条件, 比如新入学的学生的入学年份在2023年

两个表的结构如下:

-- 学生表  
CREATE TABLE students (  
    student_id INT PRIMARY KEY IDENTITY,  
    student_name VARCHAR(50),  
    enrollment_year INT  
);  
  
--学生备份表  
CREATE TABLE students_backup (  
    backup_id INT PRIMARY KEY IDENTITY,  
    name VARCHAR(50),  
    year_joined INT  
);

我们先在查询分析器中执行一下,

如图


然后我们先给students 表插入一些测试数据!

如下

INSERT INTO students(student_name,enrollment_year) VALUES('张三',1990);
INSERT INTO students(student_name,enrollment_year) VALUES('李四',1990);
INSERT INTO students(student_name,enrollment_year) VALUES('王五',2000);
INSERT INTO students(student_name,enrollment_year) VALUES('小陈',2001);
INSERT INTO students(student_name,enrollment_year) VALUES('王柏',2023);
INSERT INTO students(student_name,enrollment_year) VALUES('康田',2023);

如图

此时此刻,现在有这样一个需求,我们需要把这个students表中入学时间在2023年的学生记录 复制到students_backup 表中

那么具体SQL应该这么写呢、 大家可以想一下!

如下

INSERT INTO students_backup (name,year_joined)  
SELECT student_name,enrollment_year FROM students WHERE enrollment_year=2023

我们来执行一下看看效果!~

如图


那么此时我们看看students_backup表中是不是有了我们根据条件筛选出来的数据记录了!~

如图

不懂SELECT语句的朋友也没关系,马上就回讲到啦!赶紧学起来啊!!

"👍点赞" "✍️评论" "收藏❤️"

大家的支持就是我坚持下去的动力!

如果以上内容有任何错误或者不准确的地方,🤗🤗🤗欢迎在下面 👇👇👇 留个言指出、或者你有更好的想法,
欢迎一起交流学习❤️❤️💛💛💚💚

更多好玩 好用 好看的干货教程可以点击下方关注❤️微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值