使用 T-SQL 语句对数据库表进行单个数据插入、成批数据插入、修改和删除数据操作的介绍
增删改语句的介绍:
一、单个数据插入语句
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 语句对数据库表进行单个数据插入、成批数据插入、修改和删除数据操作的介绍相关推荐
- 数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询
Mybatis之数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询 外部数据 当前项目表格数据(表名:service_info) 将外部数据转为Table表格,与servi ...
- mysql查询主键sql语句_MySQL数据库-表操作-SQL语句(一)
1. 数据库操作与存储引擎 1.1 数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...
- 用sql语句对数据库表中的数据进行增删改
如何使用sql语句对mysql数据库中表的数据进行增删改 这里新创了一个school数据库,在下面创建一张名为student表,创建student表的sql语句代码如下: #使用school数据库 u ...
- 使用 OPEN SQL 语句读取数据库表数据的一个补充练习
首先按照本系列前一篇文章如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据介绍的步骤,创建两个数据库表: 上图 ZPERSON 表里,包含了5条记录,分别代表5个人的 ID 和 名称. ...
- Oracle数据库初学者:sql语句创建数据库表空间,建表语句
1. 表空间的创建 表空间的创建,格式: create tablespace 表空间名 datefile '路径名/表空间名.dbf' size 60M(初始空间大小为:60M) autoextend ...
- html 数据库 编写学生表,用sql语句创建学生表如何做
在数据库中使用SQL语句创建学生表代码如下:( 学号 char(12) primary key, 姓名 char(6) not null, 性别 char(2) check(性别 IN ('男','女 ...
- 一条SQL语句查询数据库中的所有表、存储过程、触发器
一条SQL语句查询数据库中的所有表.存储过程.触发器 (sysobjects表信息) 该条语句查询返回所有的用户表 select * from sysobjects where xtype='u' ...
- sql server2008中怎样用sql语句创建数据库和数据表
这是简单用代码实现创建数据库和数据表的sql语句,如下: --调用系统数据库-- use master go /***防止你要创建的数据库同名,先把它删除掉****/ if Exists(select ...
- 使用SQL语句创建数据库和数据库表
使用SQL语句创建数据库和数据库表 内容如下: 创建数据库 创建数据库表 1.创建数据库的语句 创建数据库,需要创建数据库的数据文件和日志文件 其中一些语句含义如下: 语句 代表含义 name 逻辑文 ...
最新文章
- webStorm Linux Ubuntu 中文搜狗输入问题
- 解构亚马逊Alexa的1.5万种技能
- 垃圾分类智能化-垃圾分类机器人
- 上机环境是什么意思_380元入手RX580满血显卡,跑分17万,还要什么自行车
- python与golang_Golang与python线程详解及简单实例
- ICCV 2021 | 带你了解微软亚洲研究院CV领域前沿进展
- Kubernetes弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源
- intellij idea 代码错误设置 Error 提示颜色修改
- Java变量声明在循环体内还是循环体外,你用哪一个?
- sigprocmask系统调用
- 汽车CAN通信协议整理
- 一个案例,看懂用户画像如何做出效益
- Laravel Collect集合用pluck取多维数组中某个字段值
- js简单交互动画,运动吧
- 70 Three.js 导入STL格式的模型
- 做每个人的互联网中心
- 区间选点(贪心,区间问题)
- 几招搞定Windows 7累计补丁包的安装
- ThingsBoard架构简介
- Android 3分钟一个库搞定视频替换音频 视频合成 视频裁剪(高仿剪映)
热门文章
- 平凡的世界---读后感1
- 高中计算机辗转相除法,高三数学教案:算法案例――辗转相除法
- linux 硬盘自检 通不过,Linux上关于硬盘自检的一些小技巧
- 银行数据部门常见案例分析--客户营销和风险监测
- 来华清的一个月悲催总结
- 2月25日服务器例行维护公告,2月25日服务器例行维护 “上脘”技能修改
- Redrain个人维护并使用的DuiLib和UiLib库源码下载地址
- U297803 2023“郡园杯”春季编程挑战活动D
- 五行相生相克输出规则
- Photoshop入门与进阶实例:4.3 图像幻觉