当前位置: 首页 > news >正文

数据库系统概论(超详解!!!)第三节 关系数据库标准语言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='王霞') ;

相关文章:

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

1.数据更新 1.插入数据 1.插入元组 语句格式 INSERT INTO <表名> [(<属性列1>[,<属性列2 >…)] VALUES (<常量1> [,<常量2>]… ); 功能&#xff1a;将新元组插入指定表中 INTO子句 &#xff1a; 指定要插入数据的表名及…...

SpringBoot | Spring Boot“整合Redis“

目录: 1. Redis 介绍2. Redis 下载安装3. Redis “服务开启”和“连接配置”4. Spring Boot整合Redis的“前期准备” :① 编写实体类② 编写Repository 接口③ 在“全局配置文件”中添加 “Redis数据库” 的 “相关配置信息” 5. Spring Boot整合“Redis” (案例展示) 作者简介…...

SV学习笔记(四)

OCP Open Closed Principle 开闭原则 文章目录 随机约束和分布为什么需要随机&#xff1f;为什么需要约束&#xff1f;我们需要随机什么&#xff1f;声明随机变量的类什么是约束权重分布集合成员和inside条件约束双向约束 约束块控制打开或关闭约束内嵌约束 随机函数pre_random…...

Midjourney艺术家分享|By Moebius

Moebius&#xff0c;本名让吉拉德&#xff08;Jean Giraud&#xff09;&#xff0c;是一位极具影响力的法国漫画家和插画师&#xff0c;以其独特的科幻和幻想风格而闻名于世。他的艺术作品不仅在漫画领域内受到高度评价&#xff0c;也为电影、时尚和广告等多个领域提供了灵感。…...

Vue - 1( 13000 字 Vue 入门级教程)

一&#xff1a;Vue 导语 1.1 什么是 Vue Vue.js&#xff08;通常称为Vue&#xff09;是一款流行的开源JavaScript框架&#xff0c;用于构建用户界面。Vue由尤雨溪在2014年开发&#xff0c;是一个轻量级、灵活的框架&#xff0c;被广泛应用于构建单页面应用&#xff08;SPA&am…...

Vue关键知识点

watch侦听器 Vue.js 中的侦听器&#xff08;Watcher&#xff09;是 Vue提供的一种响应式系统的核心机制之一。 监听数据的变化&#xff0c;并在数据发生变化时执行相应的回调函数。 目的:数据变化能够自动更新到视图中 原理&#xff1a; Vue 的侦听器通过观察对象的属性&#…...

Prometheus+grafana环境搭建redis(docker+二进制两种方式安装)(四)

由于所有组件写一篇幅过长&#xff0c;所以每个组件分一篇方便查看&#xff0c;前三篇 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 Prometheusgrafana环境搭建m…...

宝塔面板安装nginx流媒体服务器(http-flv)

前文介绍了使用nginx搭建流媒体服务器,实现了hls切片方式播放,不过延迟较长。本文采用nginx搭建支持http-flv方式的流媒体服务器,用以测试期性能。 目录 一、服务器操作系统安装 二、在控制台安装宝塔面板...

LNMP环境:揭秘负载均衡与高可用性设计

lb1: 192.168.8.5 lb2: 192.168.8.6 web1:192.168.8.7 web2:192.168.8.8 php-fpm: 192.168.8.9 mysql: 192.168.8.10 nfs:192.168.8.11 分别插入镜像 8.5-8.8 分别安装nginx,并设置启动 8.9 安装php 8.10 安装mysql 先配置一台web服务器然后同步 设置网站根目录 cp -…...

深入理解Java异常处理机制(day20)

异常处理 异常处理是程序运行过程产生的异常情况进行恰当的处理技术 在计算机编程里面&#xff0c;异常的情况比所我们所想的异常情况还要多。 Java里面有两种异常处理方式&#xff1b; 1.利用trycatchfinaly语句处理异常&#xff0c;优点是分开了处理异常代码和程序正常代码…...

Docker实战教程 第1章 Linux快速入门

2-1 Linux介绍 为什么要学Linux 三个不得不学习 课程需要&#xff1a;Docker开发最好在Linux环境下。 开发需要&#xff1a;作为一个后端程序员&#xff0c;是必须要掌握Linux的&#xff0c;这是找工作的基础门槛。 运维需要&#xff1a;在服务器端&#xff0c;主流的大型服…...

java数据结构与算法刷题-----LeetCode172. 阶乘后的零

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 数学&#xff1a;阶乘的10因子个数数学优化:思路转变为求5的倍数…...

掌握数据相关性新利器:基于R、Python的Copula变量相关性分析及AI大模型应用探索

在工程、水文和金融等各学科的研究中&#xff0c;总是会遇到很多变量&#xff0c;研究这些相互纠缠的变量间的相关关系是各学科的研究的重点。虽然皮尔逊相关、秩相关等相关系数提供了变量间相关关系的粗略结果&#xff0c;但这些系数都存在着无法克服的困难。例如&#xff0c;…...

Centos7环境下安装MySQL8详细教程

1、下载mysql安装包 下载哪个版本&#xff0c;首先需要确定一下系统的glibc版本&#xff0c;使用如下命令&#xff1a; rpm -qa | grep glibc ​​​​​​​ 2、检查是否安装过mysql ps:因为以前用yum安装过&#xff0c;所以先用yum卸载。如果不是此方式或者没安装过则跳过…...

趣学前端 | 综合一波CSS选择器的用法

背景 最近睡前习惯翻会书&#xff0c;重温了《HTML5与CSS 3权威指南》。这本书&#xff0c;分上下两册&#xff0c;之前读完了上册&#xff0c;下册基本没翻过。为了对得起花过的每一分钱&#xff0c;决定拾起来近期读一读。 CSS 选择器 在CSS3中&#xff0c;提倡使用选择器…...

数据库 06-04 恢复

01 一.事务故障 二.系统 三.磁盘 02. 重点是稳定存储器 组成...

基于MPPT的风力机发电系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1风能与风力发电机模型 4.2风力机功率特性与最大功率点 4.3 MPPT 5.完整工程文件 1.课题概述 基于MPPT的风力机发电系统simulink建模与仿真。MPPT使用S函数编写实现。基于最大功率点跟踪&#xff08…...

GD32F30x IO 复用问题

1.PE9 复用PWM 引脚 需要使能 gpio_pin_remap_config(GPIO_TIMER0_FULL_REMAP,ENABLE);...

BPMNJS 在原生HTML中的引入与使用

BPMNJS 在HTML中的引入与使用 在网上看到的大多是基于vue使用BPMN的示例或者教程&#xff0c;竟然没有在HTML使用的示例&#xff0c;有也是很简单的介绍核心库的引入和使用&#xff0c;并没有涉及到扩展库。于是简单看了下&#xff0c;真的是一波三折&#xff0c;坎坎坷坷。不…...

HarmonyOS 应用开发之通过数据管理服务实现数据共享静默访问

场景介绍 典型跨应用访问数据的用户场景下&#xff0c;数据提供方会存在多次被拉起的情况。 为了降低数据提供方拉起次数&#xff0c;提高访问速度&#xff0c;OpenHarmony提供了一种不拉起数据提供方直接访问数据库的方式&#xff0c;即静默数据访问。 静默数据访问通过数据…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...