数据库系统概论(超详解!!!)第三节 关系数据库标准语言SQL(Ⅴ)

1.数据更新

1.插入数据

1.插入元组

语句格式     

INSERT     

INTO <表名> [(<属性列1>[,<属性列2 >…)]     

VALUES (<常量1> [,<常量2>]… );

功能:将新元组插入指定表中

INTO子句 :

指定要插入数据的表名及属性列

属性列的顺序可与表定义中的顺序不一致

没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致

指定部分属性列:插入的元组在其余属性列上取空值

VALUES子句  :

提供的值必须与INTO子句匹配: 值的个数, 值的类型

将一个新学生元组(学号:201215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。INSERTINTO  Student (Sno,Sname,Ssex,Sdept,Sage)VALUES ('201215128','陈冬','男','IS',18);将学生张成民的信息插入到Student表中。INSERTINTO  StudentVALUES ('201215126','张成民','男’,18,'CS');插入一条选课记录( '200215128','1 ')。INSERTINTO SC(Sno,Cno)VALUES ('201215128 ',' 1 ');关系数据库管理系统将在新插入记录的Grade列上自动地赋空值。或者:INSERTINTO SCVALUES (' 201215128 ',' 1 ',NULL);

2.插入子查询结果 (可以一次插入多个元组)

语句格式:     

INSERT    

INTO <表名>  [(<属性列1> [,<属性列2>…  )]      

子查询;

INTO子句

子查询 :SELECT子句目标列必须与INTO子句匹配 (值的个数 ,值的类型)

对每一个系,求学生的平均年龄,并把结果存入数据库
第一步:建表CREATE  TABLE  Dept_age( Sdept     CHAR(15)                     /*系名*/Avg_age SMALLINT); 	/*学生平均年龄*/第二步:插入数据INSERTINTO  Dept_age(Sdept,Avg_age)SELECT  Sdept,AVG(Sage)FROM     StudentGROUP BY Sdept;

关系数据库管理系统在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则

实体完整性

参照完整性

用户定义的完整性: NOT NULL约束, UNIQUE约束 ,值域约束

2.修改数据

语句格式    

UPDATE  <表名>    

SET  <列名>=<表达式>[,<列名>=<表达式>]…    

[WHERE <条件>];

功能 :

修改指定表中满足WHERE子句条件的元组

SET子句给出<表达式>的值用于取代相应的属性列

如果省略WHERE子句,表示要修改表中的所有元组

1.修改某一个元组的值

将学生201215121的年龄改为22岁UPDATE  StudentSET Sage=22WHERE  Sno=' 201215121 '; 

2.修改多个元组的值

将所有学生的年龄增加1岁。UPDATE StudentSET Sage= Sage+1;

3.带子查询的修改语句

将计算机科学系全体学生的成绩置零。UPDATE SCSET     Grade=0WHERE Sno  IN(SELETE SnoFROM     StudentWHERE  Sdept= 'CS' );

关系数据库管理系统在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则

实体完整性

主码不允许修改

用户定义的完整性 : NOT NULL约束,  UNIQUE约束 , 值域约束

3.删除数据 

语句格式        

DELETE        

FROM     <表名>      

 [WHERE <条件>];

功能:

删除指定表中满足WHERE子句条件的元组

WHERE子句:

指定要删除的元组

缺省表示要删除表中的全部元组,表的定义仍在字典中

1.删除某一个元组的值  

删除学号为201215128的学生记录。DELETEFROM StudentWHERE Sno= 201215128 ';

2.删除多个元组的值

删除所有的学生选课记录。DELETEFROM SC;

3.带子查询的删除语句

删除计算机科学系所有学生的选课记录。DELETEFROM  SCWHERE  Sno  IN(SELETE  SnoFROM   StudentWHERE  Sdept= 'CS') ;

2.练习

/*(1)在 Departments中插入一个部门,部门编号为4,部门为销售部。*/
INSERT
INTO  Departments(DepartmentID,DepartmentName)
VALUES ('4','销售部');/*(2)自拟数据,对Employee表插入4个元祖,要求都是销售部的员工。*/
INSERT
INTO Employee
VALUES 
('4001','张三','1956-3-12',0,'河南郑州','475012','3345378','zs@henu.edu.cn','4'),
('4002','王五','1978-11-2',1,'河南新乡','475013','0764311','ww@henu.edu.cn','4'),
('4003','李四','1998-6-22',0,'云南昆尼','475014','0378652','ls@henu.edu.cn','4'),
('4004','刘二','1946-10-3',1,'河北廊坊','475015','7765987','le@henu.edu.cn','4');/*(3)将’1003’号员工的地址变为“陕西”。*/
update Employee
set Address='陕西'
where EmployeeID='1003';/*(4)将研发部所有职员的Income涨500元。*/
update Salary
set Income=Income+500
where EmployeeID in (select EmployeeIDfrom Employeewhere DepartmentID in(select DepartmentIDfrom Departmentswhere DepartmentName='研发部'));/*(5)将‘2002’号员工的地址变为‘北京’,所属部门改为2。*/
update Employee
set Address='北京' ,DepartmentID='2'
where EmployeeID='2002';/*(6)将Salary表中前3个元组的outcome属性值统一修改为1100。*/
update top(3) Salary
set OutCome='1100';update Salary set OutCome=REPLACE(OutCome,1500,1100)
update Salary set OutCome=REPLACE(OutCome,1000,1100)
update Salary set OutCome=REPLACE(OutCome,1200,1100);/*(7)将‘3001’号员工调入财务部。*/
update Employee
set DepartmentID='1'
where EmployeeID='3001';/*(8)在Departments表中新增一名为DepartmentTEL的属性列,并插入正确的数据信息。(DepartmentTEL为8位的部门电话)*/
alter table Departments
add DepartmentTEL char(8)update Departments set DepartmentTEL='34568765' where DepartmentID='1'
update Departments set DepartmentTEL='34359665' where DepartmentID='2'
update Departments set DepartmentTEL='98648765' where DepartmentID='3'
update Departments set DepartmentTEL='47836865' where DepartmentID='4';/*(11)删除Departments表的‘Note’列。*/
alter table Departments 
drop column Note;/*(12)在Salary表中新增一名为Stime的属性列,Stime的值为插入时系统的时间数据*/
alter table Salary
add Stime date not null default getdate()/*(13)删除“王霞”的信息。*/
delete from Salary
where EmployeeID in( select EmployeeIDfrom Employeewhere Name='王霞') ;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 869. 重新排序得到 2 的幂

解题思路 打表法&#xff0c;将N^2放入到r数组中&#xff0c;然后将n进行排序&#xff0c;并且用n对r数组的数据一一配对&#xff0c; 配对成功&#xff0c;则返回true。如果没有配对成功&#xff0c;则返回false。 相关代码 class Solution {public boolean reorderedPower…

律所如何做好内容运营,提升品牌影响力

近年来&#xff0c;随着品牌推广方式的改变&#xff0c;中国律所也开始关注内容营销&#xff0c;期待能够凭借内容营销增强影响力。今天&#xff0c;媒介盒子就从内容传播的逻辑出发&#xff0c;和大家聊聊律所如何做好内容运营&#xff0c;提升品牌影响力。 一、品牌形象管理 …

蜂窝物联:智慧禽畜养殖解决方案

蜂窝物联&#xff1a;智慧禽畜养殖解决方案是基于物联网技术&#xff0c;在线监测动物生长的环境信息&#xff0c;通过氨气传感器、二氧化碳传感器、湿度传感器等设备监测舍内的各项环境参数&#xff0c;自动把畜舍内的实时环境参数上传至监控软件平台&#xff0c;并联动控制风…

C++11特性详解(万字)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 统一的初始化列表 {}初始化 这种初始化方式我们建议用第一种&#xff0c;但是以后看见下面两种也不要感到疑惑&#xff0c;是可以这样初始化的。 内置类型初始化 int main() {int a 1;int b { 1 };int c{ 1 };return 0…

kubectl explain资源文档命令

学习并使用了一段时间的kubernetes&#xff0c;发现对k8s还是了解甚少&#xff0c;于是利用上下班通勤的时间又去B站看一些大佬的视频&#xff0c;又来重学巩固一遍知识&#xff0c;并做些记录。 之前在学习使用过程中未成了解过explain这个命令&#xff0c;因为自己部署的版本…

Java笔试题总结

HashSet子类依靠()方法区分重复元素。 A toString(),equals() B clone(),equals() C hashCode(),equals() D getClass(),clone() 答案:C 解析: 先调用对象的hashcode方法将对象映射为数组下标,再通过equals来判断元素内容是否相同 以下程序执行的结果是&#xff1a; class X{…

Linux:权限篇

文章目录 前言1.用户2.文件的权限管理2.1 修改文件的权限2.2 修改文件的拥有者2.3 修改文件的所属组 3.file指令4.umask指令4.目录的权限管理总结 前言 Linux权限在两个地方有所体现&#xff0c;一种是使用用户&#xff1a;分为root超级用户员与普通用户。另一个是体现在文件的…

【SecretFlow——SPU进阶】

1. 姚氏百万富翁问题 除了三方协议ABY3之外&#xff0c;我们还可以通过配置cluster_def中的protocol更换不同的协议。 import spu import secretflow as sfsf.shutdown() sf.init([alice, bob, carol, dave], addresslocal) # 生成一个环境 cheetah_config sf.utils.testing…

奇富科技推出新一代全自研智能语音模型,打破沟通壁垒

“您好&#xff01;请问是李先生噻&#xff1f;” 李先生刚接起电话&#xff0c;就被这熟悉的乡音逗乐了。这不是他所预料的常规客服&#xff0c;而是奇富科技新一代全自研智能语音模型——QI语精灵。这款模型不仅能用方言与人自然交流&#xff0c;还能在智能营销、贷后提醒、风…

NodeJS 在Windows / Mac 上实现多版本控制

NodeJS 的多版本控制 本文介绍一下在 windows/MacOS 上 如何 切换和使用多个版本的 NodeJS。 Windows 本小节介绍一下在windows上管理不同版本的NodeJS。 nvm-windows 工具 nvm-windows 是在 windows 上管理 NodeJS 版本的一个工具。 它可以很方便的 下载、移除、查看、切…

【数据结构与算法】力扣 24. 两两交换链表中的节点

题目描述 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a; head [1,2,3,4] 输出&#…

二维相位解包裹理论算法和软件【全文翻译- 相位数据、质量地图、掩码和滤波器:引言 (3.1)】

3.1 引言 在本章中,我们将介绍七个示例,说明相位解包的性质和挑战。这些示例将在第 4 章和第 5 章中用于评估一些相位解缠算法。在本章中,我们还将研究可以从相位数据中提取的信息(相位导数和残差除外),以改进相位解包过程。这些信息将用于定义 "质量图",即表…

在 HTML 中禁用 Chrome 浏览器的 Google 翻译功能

方法1 在 html 标签中添加 translate“no” 属性&#xff0c;浏览器将不会翻译整个页面。 <!DOCTYPE html> <!-- 添加以下 html 标签中添加 translate"no" 属性 --> <html translate"no"> <head><meta charset"UTF-8&qu…

IDEA2023创建SpringMVC项目

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 开发环境篇 ✨特色专栏&#xff1a; M…

Android 全局配置Gradle依赖及插件仓库

全局配置gradle依赖及插件仓库之后就不需要每个项目来一次国内仓库替换了。 直接在.gradle文件夹下添加文件init.gradle / init.gradle.kt for kotlin dsl. 如果同时存在init.gradle和init.gradle.kt&#xff0c;则优先按照init.gradle中的配置 除非手动指定初始化脚本 --in…

java.awt.FontFormatException: java.nio.BufferUnderflowException

Font awardFont Font.createFont(Font.TRUETYPE_FONT, awardFontFile).deriveFont(120f).deriveFont(Font.BOLD);使用如上语句创建字体时出现问题。java.awt.FontFormatException: java.nio.BufferUnderflowException异常表明在处理字体数据时出现了缓冲区下溢&#xff08;Buf…

Spring Boot实现Filter解决跨域问题

Filter&#xff08;过滤器&#xff09;是 Java Web 开发中的一种重要组件&#xff0c;用于在 Servlet 容器中对请求进行预处理或后处理&#xff0c;以及对响应进行处理。Filter 通常用于实现一些与请求和响应相关的功能&#xff0c;如身份验证、日志记录、字符编码转换、跨域请…

Linux使用docker集群部署

目录 一&#xff0c;环境准备 1.1.安装docker 1.2.配置镜像就加速器 二&#xff0c;docker部署 2.1.创建网络 ​编辑 2.2.安装redis 2.3.安装MySQL 2.4.安装JDK,TomCat及部署后台项目 2.5.安装Nginx及配置静态资源 一&#xff0c;环境准备 1.1.安装docker 安装yum-u…

windows访问wsl中的docker

1、启动windows路由转发功能&#xff1a; 找到任务管理器 --》服务–》打开服务–》 ROUTing and Remote Access 2、关闭wsl中linux的防火墙 3、查看docker系统和linux系统的ip和网关 以下面为例 # docker系统 eth0: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu…

Spring Boot-01-通过一个项目快速入门

官方参考文档&#xff1a;Spring Boot Reference Documentation 0. 概述 Spring的缺点&#xff1a; 1. 配置繁琐&#xff1a;虽然Spring的组件代码是轻量级&#xff0c;但它的配置却是重量级的。 2. 依赖繁琐&#xff1a;项目的依赖管理也是一件耗时耗力的事情。分析要导入哪…