增删改语句的介绍:

一、单个数据插入语句

INSERT
INTO 表名 [(属性列 1,属性列 2 … )]
VALUES (常量 1 ,常量 2 … )

说明:
插入一个新元组,新元组属性列 1 的值为常量 1,属性列 2 的值为常量 2…
INTO 子句中没有出现的属性列, 新元组在这些属性列上将置空值。但必须注意的是,在表定义时说明了 NOT NULL 的属性列不能置空值,否则会出错。
出错原因: 主码具有唯一性和不可重复性,当主码为空时,唯一性约束被破坏所以主码列不能重复和为空值。如果该列不是主码,则说明设置了unique属性。

unique约束:
1.UNIQUE 约束唯一标识数据库表中的每条记录。(可以理解为增加UNIQUE约束的列为只有该表中才有的属性)
2.UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
3.PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
参考网址:https://www.runoob.com/sql/sql-unique.html
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

如果 INTO 子句中没有指明任何属性列名,则新插入的记录必须在每个属性列上均有值,而且常量的顺序与属性列的顺序相对应;
如果基本表后面有属性列,属性列的排列顺序不一定要和表定义时顺序一致, 但VALUES 后的常量值对应于属性列名中的分量的值,个数相等。

二、成批数据插入语句

INSERT
INTO 表名 [(属性列 1,属性列 2 … )]
子查询

上述命令的功能是一次将子查询的结果全部插入指定表中。

三、删除数据语句

DELETE
FROM 表名
WHERE 删除限定条件

功能:从指定表中删除满足 WHERE 子句条件的所有记录。该语句中没有 WHERE 子句时,表示删除此表中的全部记录,但此表的结构不会被删除,此表的定义仍在数据字典中。
需要说明的是:
数据删除只能对整个元组或一条记录操作,不能只删除某些属性上的值;
数据删除只能对一个表起作用,若要从多个表中删除元组,则必须对每个表分别执行删除命令。

四、更新数据语句

UPDATE 表名
SET 属性列 1=常量 1,属性列 2=常量 2...
WHERE 更新限定条件

功能:修改基本表中满足条件表达式的那些元组的属性值,用 SET 子句中的值表达式修改原来的属性值。。如果省略 WHERE 子句,则表示要修改表中的所有元组。

代码实现:

1.在 SQL Server Management Studio 中向数据库 XSGL 的 student 表加入如表所示的数据(这里为了方便我重新建立了数据库XSGL2 )

student 表记录

2.建立一个新表‘成教表’ chengjiao, 结构与 student 表相同。

T-SQL语句:
CREATE TABLE chengjiao (
SNO char (8) not null unique, SNAME char(10),
SEX char(2), DNO char(8),
AGE smallint, BIRTHDAY datetime )

3.将一个新学生(学号:‘ 20067027’,姓名:‘ 张三’,年龄:20,所在系编号:‘ 0002’ )插入到学生表中。

T-SQL语句:
INSERT INTO student(SNO,SNAME,AGE,DNO)
VALUES (‘20067027’,‘张三’,20,‘0002’)

结果如图:

4.按如下语句插入另外两个同学的信息到成教表中

T-SQL语句:
INSERT INTO chengjiao(SNO,SNAME,AGE,DNO)
VALUES (‘20067011’,‘王二’,23,‘0003’)
INSERT INTO chengjiao(SNO,SNAME,AGE,DNO)
VALUES (‘20067021’,‘张三’,19,‘0003’)

说明:插入的数据必须符合数据库的完整性约束
结果如图:

5.将成教表 chengjiao 中的所有学生一次性添加到学生表 student 中。

T-SQL语句:
INSERT INTO student (SNO,SNAME,SEX,DNO)
(SELECT SNO,SNAME,SEX,DNO FROM chengjiao)

结果如图:

6.依据学生的生日, 计算出该学生的年龄

T-SQL语句:
UPDATE student
SET AGE=(YEAR(GETDATE())-YEAR(BIRTHDAY))

未计算之前从上图可以看出李一和李二的生日并未显示

运行后结果如图:

7.将所有安排在 B101 的课程调整到 A302(这里以及下面的T-SQL语句的实现,我用到了老师提供的数据库包括课程表,选课表等等)

T-SQL语句:
UPDATE course
SET ROOM=‘A302’
WHERE ROOM='B101’

前后对比如下图:

8.将选课表中的‘概率论与数理统计’课程的成绩减去 4 分

T-SQL语句:
UPDATE sc SET GRADE=GRADE-4
WHERE CNO IN
(SELECT CNO FROM course
WHERE CNAME=‘概率论于数理统计’)

组课程表这里我们可以看到:概率论与数理统计的课程号CNO为000401

然后在sc表即选课表中发现其中一个学生的概率论与数理统计的成绩如下图:


运行上述T-SQL语句后,结果如下图:

9.从排课表中删除‘ 张聪’ 老师的所有排课纪录

T-SQL语句:
DELETE FROM course
WHERE TNAME='张聪’

这里我直接执行该语句发现有错误:
DELETE 语句与 REFERENCE 约束"FK__sc__CNO__24927208"冲突

仔细看sc选课表跟course课程表发现两表都有课程名CNO这一项,即有外键对两表进行约束,不能直接删除相关内容,所以我们要解除外键的约束(参考CSDN文章:SQL主键和外键约束)


在查询中执行下面语句:
alter table sc drop CONSTRAINT FK__sc__CNO__24927208


这时我们再运行删除相关语句,前后结果对比如下:



删掉了

使用 T-SQL 语句对数据库表进行单个数据插入、成批数据插入、修改和删除数据操作的介绍相关推荐

  1. 数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询

    Mybatis之数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询 外部数据 当前项目表格数据(表名:service_info) 将外部数据转为Table表格,与servi ...

  2. mysql查询主键sql语句_MySQL数据库-表操作-SQL语句(一)

    1. 数据库操作与存储引擎 1.1   数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...

  3. 用sql语句对数据库表中的数据进行增删改

    如何使用sql语句对mysql数据库中表的数据进行增删改 这里新创了一个school数据库,在下面创建一张名为student表,创建student表的sql语句代码如下: #使用school数据库 u ...

  4. 使用 OPEN SQL 语句读取数据库表数据的一个补充练习

    首先按照本系列前一篇文章如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据介绍的步骤,创建两个数据库表: 上图 ZPERSON 表里,包含了5条记录,分别代表5个人的 ID 和 名称. ...

  5. Oracle数据库初学者:sql语句创建数据库表空间,建表语句

    1. 表空间的创建 表空间的创建,格式: create tablespace 表空间名 datefile '路径名/表空间名.dbf' size 60M(初始空间大小为:60M) autoextend ...

  6. html 数据库 编写学生表,用sql语句创建学生表如何做

    在数据库中使用SQL语句创建学生表代码如下:( 学号 char(12) primary key, 姓名 char(6) not null, 性别 char(2) check(性别 IN ('男','女 ...

  7. 一条SQL语句查询数据库中的所有表、存储过程、触发器

    一条SQL语句查询数据库中的所有表.存储过程.触发器 (sysobjects表信息)   该条语句查询返回所有的用户表 select * from sysobjects where xtype='u' ...

  8. sql server2008中怎样用sql语句创建数据库和数据表

    这是简单用代码实现创建数据库和数据表的sql语句,如下: --调用系统数据库-- use master go /***防止你要创建的数据库同名,先把它删除掉****/ if Exists(select ...

  9. 使用SQL语句创建数据库和数据库表

    使用SQL语句创建数据库和数据库表 内容如下: 创建数据库 创建数据库表 1.创建数据库的语句 创建数据库,需要创建数据库的数据文件和日志文件 其中一些语句含义如下: 语句 代表含义 name 逻辑文 ...

最新文章

  1. webStorm Linux Ubuntu 中文搜狗输入问题
  2. 解构亚马逊Alexa的1.5万种技能
  3. 垃圾分类智能化-垃圾分类机器人
  4. 上机环境是什么意思_380元入手RX580满血显卡,跑分17万,还要什么自行车
  5. python与golang_Golang与python线程详解及简单实例
  6. ICCV 2021 | 带你了解微软亚洲研究院CV领域前沿进展
  7. Kubernetes弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源
  8. intellij idea 代码错误设置 Error 提示颜色修改
  9. Java变量声明在循环体内还是循环体外,你用哪一个?
  10. sigprocmask系统调用
  11. 汽车CAN通信协议整理
  12. 一个案例,看懂用户画像如何做出效益
  13. Laravel Collect集合用pluck取多维数组中某个字段值
  14. js简单交互动画,运动吧
  15. 70 Three.js 导入STL格式的模型
  16. 做每个人的互联网中心
  17. 区间选点(贪心,区间问题)
  18. 几招搞定Windows 7累计补丁包的安装
  19. ThingsBoard架构简介
  20. Android 3分钟一个库搞定视频替换音频 视频合成 视频裁剪(高仿剪映)

热门文章

  1. 平凡的世界---读后感1
  2. 高中计算机辗转相除法,高三数学教案:算法案例――辗转相除法
  3. linux 硬盘自检 通不过,Linux上关于硬盘自检的一些小技巧
  4. 银行数据部门常见案例分析--客户营销和风险监测
  5. 来华清的一个月悲催总结
  6. 2月25日服务器例行维护公告,2月25日服务器例行维护 “上脘”技能修改
  7. Redrain个人维护并使用的DuiLib和UiLib库源码下载地址
  8. U297803 2023“郡园杯”春季编程挑战活动D
  9. 五行相生相克输出规则
  10. Photoshop入门与进阶实例:4.3 图像幻觉