SQL数据库语言基础之SqlServer表数据的插入、更新与删除

2023-05-16

文章目录

    • 一、数据的插入(INSERT INTO...VALUES)
    • 二、数据的更新(UPDATE)
    • 三、删除数据(DELETE)

一、数据的插入(INSERT INTO…VALUES)

1、数据插入结构

INSERT INTO 表名(字段名1,字段名2,字段名3……)
VALUES(字段值1,字段值2,字段值3……)
注意:字段与字段值需要一一对应,主要是类型

插入练习:

INSERT INTO HOMEWORKS(H_CNO,H_SNO,H_SCORE_1,H_SCORE_2,H_SCORE_3)
VALUES('K455','0422',43.5,64.0,98.5)

1.2
2、将日期时间型数据插入到字段
使用单引号括起来就可以代表正确的时间类型了:
比如:‘2021-11-11’。

3、将数据插入到指定字段
也就是只在制定的字段插入值,而其他的字段不出入值。
这样,插入之后的该行数据其他字段则默认为NULL值。

INSERT INTO HOMEWORKS(H_CNO,H_SNO,H_SCORE_2)
VALUES('K455','0422',78.5)

1.3

4、将查询结果插入到表中(SELECT 代表VALUES,可用于数据复制)
(1)语法结构:

INSERT INTO(字段列表)
SELECT 查询语句

(2)查询到的表:
1.40
(3)练习代码

SELECT * FROM new_cou

INSERT INTO COU(CNO,C_COURSE_NAME,CSCORE,CHOUR,C_TEACHER_NAME)
SELECT * FROM new_cou

SELECT * FROM COU

(4)输出结果:
1.41

5、表的复制

SELECT *
INTO 新表名
FROM 原表名

--例如:
SELECT *
INTO new_stu
FROM STU

二、数据的更新(UPDATE)

1、更新字段的数据
(1)语法结构

UPDATE 表名
SET 字段名=更新值
WHERE 条件

(2)练习测试
将课程号为K455的课程名称修改为“火箭筒制造”:

UPDATE COU
SET C_COURSE_NAME='火箭筒制造'
WHERE CNO='K455'

SELECT * FROM COU

2.1.1

(3)更新多个字段的数据
与更新一个字段的数据如法炮制,只是需要在SET后面使用逗号,将字段赋值分割开:

UPDATE 表名
SET 字段名1=字段值1,字段名2=字段值2,字段名3=字段值3……
WHERE 条件

2、使用表连接更新数据(WHERE进行连接)
WHERE实现:把名字为 甘天 的 作业1 成绩都加5分

--查看原表
SELECT * FROM STU
SELECT * FROM HOMEWORKS

UPDATE H
SET H.H_SCORE_1=H.H_SCORE_1 + 5
FROM STU S,HOMEWORKS H
WHERE S.SNO=H.H_SNO AND S.SNAME='甘天'

2.2.1

3、使用UPDATE删除指定字段的数据(用NULL替换)
将学号为0433的分数信息都清空:

UPDATE HOMEWORKS
SET H_SCORE_1=NULL,H_SCORE_2=NULL,H_SCORE_3=NULL
WHERE H_SNO='0433'

三、删除数据(DELETE)

1、删除指定的数据
(1)语法结构:

DELETE FROM 表名
WHERE 条件

(2)删除名字为“甘天”的所有记录

DELETE FROM STU
WHERE SNAME='甘天'

2、使用多表连接删除指定数据(WHERE连接)
删除名字为“甘天”的数据:

DELETE H
FROM STU S, HOMEWORKS H
WHERE S.SNO=H.H_SNO AND S.SNAME='甘天'

SELECT * FROM HOMEWORKS

注意:这里只能删除整行的数据。

3、删除所有记录(TRUNCATE)
使用TRUNCATE删除的数据是不能被恢复的,而使用DELETE删除的数据会被写入到日志中,因此可以被恢复。
语法格式:TRUNCATE TABLE 表名

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL数据库语言基础之SqlServer表数据的插入、更新与删除 的相关文章

  • FireDac 添加下划线 1 以区分具有相同名称的 2 个列名

    我有一个连接 2 个表的选择 因此这些表中存在具有相似名称的列 因此现在在检索结果时 FireDac 将下划线 1 添加到第二个列名称以区分这两个表 Select from Table1 inner join Table2 on Table
  • EF6 不从数据库生成外键关联

    PROBLEM 我正在尝试使用数据库优先方法创建 EF6 模型 简单来说 我有2张桌子tblUser and tblMilkMan上有外键关系UserID柱子 但是当我创建一个新的 EDMX 图并添加 2 个表时 我看不到其中的关系 未创建
  • SQL Server 端口 445 和 1433

    SQL Server 端口 445 和 1433 之间有什么区别以及每个端口的用途是什么 445不是SQL端口 是SMB端口 仅当您使用命名管道协议时 它才会参与 SQL Server 因为命名管道通过 SMB 进行传输 而这反过来又使用
  • 什么是动态 SQL 查询?何时需要使用动态 SQL 查询?

    什么是动态 SQL 查询 何时需要使用动态 SQL 查询 我正在使用 SQL Server 2005 这里有几篇文章 动态SQL简介 http www sqlteam com article introduction to dynamic
  • MySQL,连接两列

    MySQL 表中有两列 SUBJECT and YEAR 我想生成一个字母数字唯一编号 其中包含主题和年份的串联数据 我怎样才能做到这一点 是否可以使用像这样的简单运算符 您可以使用CONCAT http dev mysql com doc
  • 使用 SQL 扩展事件捕获链接服务器查询

    我尝试了许多事件类型 但无法实现链接服务器的日志记录 我可以找出所有其他数据库的事件 但对于链接服务器却没有运气 有什么建议 您可以使用OLEDB DATA READ跟踪对链接服务器的查询的事件 如果此事件的结果比您想要的更详细 您可能需要
  • SQL Server 2008 GUID 列全为 0

    我希望这是我做的一个简单的傻事 我的数据库中有一个表 设置如下 column name widget guid data type uniqueidentifier allow nulls false default value newid
  • 如何在postgresql中编写有关最大行数的约束?

    我认为这是一个很常见的问题 我有一张桌子user id INT 和一张桌子photo id BIGINT owner INT 所有者是一个参考user id 我想向表照片添加一个约束 以防止每个用户将超过 10 张照片输入数据库 写这个的最
  • 如何插入包含“&”的字符串

    如何编写包含 字符的插入语句 例如 如果我想将 J J Construction 插入数据库的列中 我不确定这是否有什么不同 但我正在使用 Oracle 9i 我总是忘记这一点 然后又回到它 我认为最好的答案是迄今为止提供的答复的组合 首先
  • 火鸟删除速度很慢

    我正在做这个简单的交易 DELETE FROM ominve01 WHERE CVE OBS IN SELECT CVE OBS FROM minve01 M WHERE M FECHA DOCU lt 31 12 2010 OR FECH
  • 获取从开始日期到结束日期的活跃周数

    我的订阅数据如下所示 数据显示用户何时购买订阅 它有user id subscription id start date and end date 我已经得出wk start and wk end从中 user subscription i
  • 在 SQL 中如何获得整数的最大值?

    我试图从 MySQL 数据库中找出整数 有符号或无符号 的最大值 有没有办法从数据库本身提取这些信息 是否有我可以使用的内置常量或函数 标准 SQL 或 MySQL 特定的 At http dev mysql com doc refman
  • 如何在“order by”中添加条件?

    我有一个带有输入参数的存储过程 现在根据这个参数 我的 order by 语句将发生变化 如果输入参数是 ID int类型列 则按ID排序 如果是 ProductType 则按产品类型排序 如果是 IssueDate 则应按问题日期排序 现
  • SQL Server - SQL 替换整个数据库中所有表中的所有列

    这是一个很遥远的事情 我猜这个问题没有简单的答案 但是 我继承了一个数据库 其中填充了一些可怕的数据 许多包含描述的行都有回车符 这意味着当我们 BCP 输出数据时 它会带有回车符 我的问题 有没有办法在 MS SQL Server 中对整
  • SQLite 使用循环重新编号 ID

    您好 我有一个包含许多插入行的表 我需要按 id 对所有行重新编号并排序 我找到了这段代码 但它对我不起作用 SET i 100 UPDATE main Categories SET ID i i 1 WHERE Name White AL
  • Razor C# - 从数据库获取数据

    我正在使用 WebMatrix 我创建了一个数据库并放置了一个包含几行数据的表 我可以连接到它并获取数据WebGrid 但它只提供了一种使用表格输出数据的方法 这是我的 shows cshtml 代码 var db Database Ope
  • 在 SQL Server 中获取一周的第一天

    我试图按周对记录进行分组 将聚合日期存储为一周的第一天 然而 我用于四舍五入日期的标准技术似乎无法在几周内正常工作 尽管它可以在天 月 年 季度和我应用的任何其他时间范围内正常工作 这是 SQL select start of week d
  • 如何在sql server 2008R2中将单个单元格拆分为多个列?

    我想将每个名称拆分为各个列 create table split test value integer Allnames varchar 40 insert into split test values 1 Vinoth Kumar Raj
  • parent_id 是外键(自引用)并且为 null?

    浏览 Bill Karwin 的书 SQL Antipatterns 第 3 章 Naive Trees 邻接表 父子关系 有一个注释表的示例 CREATE TABLE Comments comment id SERIAL PRIMARY
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐