Oracle数据库的数据更新语句与视图操作(包含大部分常用语句)

  • 目标
    • 本文用到的关系模式
    • 语句示例
      • 1.在创建的student, course, teacher, sc, tc表中用SQL语句完成以下操作
        • (1)学生“刘家顺”要退学,请删除该学生的所有记录(包括选课记录和学生记录)
        • (2)田小亮同学要转专业,他的学号为103465,将该同学的专业由原来的“软件工程”改为“计算机科学与技术”,班级由原来的“软工3班”修改为“计算机1班”
        • (3)删除选修了“嵌入式系统与应用”但没有及格的选课记录
        • (4)将元组(1203076,吕振华,男,1985/11/8,讲师,体育部)插入教师关系
        • (5)在course表中插入以下两门课程信息
        • (6)创建名为xg_view的视图,在视图中显示所有信息工程学院教师的授课信息,包括教师姓名,职称,所授课程名称,授课班级,授课学期
        • (7)创建每个学生已修课程总学分的视图,视图名为xf_view,要求在视图中显示学生学号、姓名和总学分
        • (8)在创建的视图中查询大数据2班每位学生已修的总学分
      • 2.在创建的s,p,j和spj表中用SQL语句完成以下操作
        • (1)现有一供应商,代码为s9、姓名为英特尔、所在城市西安,供应情况如下:供应零件p5给工程j7数量为600,供应零件p4给工程j4数量为500,请将此供应商的信息和供应信息插入数据库
        • (2)请将北京供应商的供应数量加150
        • (3)把全部红色零件的颜色改为黑色
        • (4)由s5供给j4的零件p6改为由s1供应
        • (5)请将(s2,j7,p4,510)插入供应情况关系
        • (6)零件p1已经停产,请将p1的相关信息从数据库中删除
        • (7)创建零件名为螺丝刀的供应情况的视图sd_view,视图中显示供应商名(Sname),零件名(Pname),零件重量(Weight),工程项目代码(Jno),供应数量(QTY)
        • (8)在视图sd_view中查询供应数量在400到600之间的供应商姓名
        • (9)请为三建工程项目建立一个供应情况的视图SJ_View,包括供应商编号,零件编号,供应数量
      • 后记

目标

  • 掌握数据插入、修改和删除语句的语法格式和使用方法。
  • 通过对视图的操作掌握视图虚表的本质,学会视图的定义方法。
  • 理解基于视图的查询和更新的操作过程,知道视图更新的限制,在Oracle中学会使用user_updatable_columns系统表查询视图可否更新。

本文用到的关系模式

学生表Student(Sno,Sname,Ssex,Snation,Spolitical,Sbirth,Scollege,Smajor,Sclass)
课程表Course (Cno,Cname,Credit,Cproperty,Chour,Cterm)
选课表SC(Sno,Cno,Grade)
教师表Teacher(Tno,Tname,Tsex,Tbirth,Ttitle,Tcollege)
授课表TC(Id,Tno,Cno,Sclass,Semester,TimePlace)

  • “学生”关系Student,由学号(Sno)、姓名(Sname)、性别(Ssex)、民族(Snation)、政治面貌(Spolitical)、出生日期(Sbirth)、学院(Scollege)、专业(Smajor)和班级(Sclass)组成。
  • “课程”关系Course,由课程号(Cno)、课程名(Cname)、学分(Credit)、课程性质(Cproperty)、学时(Chour)和开设学期(Cterm)组成。
  • “选课”关系SC由学号(Sno)、课程号(Cno)、成绩(Grade)组成。
  • “教师”关系teacher,由职工号(Tno)、姓名(Tname),性别(Tsex),出生日期(Tbirth),职称(Ttitle)和所在学院(Tcollege)组成。
  • “授课”关系TC,由课序号(Id),职工号(Tno),课程号(Cno),授课班级(Sclass),授课学期(Semester)和上课时间地点(TimePlace)组成。

供应商表s(sno, sname, city)
零件表p(pno, pname, color, weight)
工程项目表j(jno, jname, city)
供应情况表 spj(sno, pno, jno, qty)

  • 供应商表 s 由供应商代码(sno)、供应商姓名(sname)、供应商所在城市(city)组成;
  • 零件表 p 由零件代码(pno)、零件名(pname)、颜色(color)、重量(weight)组成;
  • 工程项目表 j 由工程项目代码(jno)、工程项目名(jname)、工程项目所在城市(city)组成;
  • 供应情况表 spj 由供应商代码(sno)、零件代码(pno)、工程项目代码(jno)、供应数量组成(qty),表示某供应商供应某种零件给某工程项目的数量为qty。

语句示例

1.在创建的student, course, teacher, sc, tc表中用SQL语句完成以下操作

(1)学生“刘家顺”要退学,请删除该学生的所有记录(包括选课记录和学生记录)

delete
from sc
where sno in(select snofrom studentwhere sname = '刘家顺');delete
from student
where sname = '刘家顺';
commit;

(2)田小亮同学要转专业,他的学号为103465,将该同学的专业由原来的“软件工程”改为“计算机科学与技术”,班级由原来的“软工3班”修改为“计算机1班”

update student
set smajor = '计算机科学与技术', sclass = '计算机1班'
where sno = '103465';
commit;

(3)删除选修了“嵌入式系统与应用”但没有及格的选课记录

delete
from sc
where sno in(select snofrom scwhere grade < 60 and cno in(select cnofrom coursewhere cname = '嵌入式系统与应用'));
commit;

(4)将元组(1203076,吕振华,男,1985/11/8,讲师,体育部)插入教师关系

insert
into teacher
values('1203076','吕振华','男',to_date('1985/11/8','yyyy/mm/dd'),'讲师','体育部');
commit;

(5)在course表中插入以下两门课程信息

  • 课程号:3094217,课程名:图与网络,课程学分:2,课程性质:选修,课程学时:32,开课学期:6

  • 课程号:3094215,课程名:智能搜索与推荐技术,课程学分:2,课程性质:选修,课程学时:32,开课学期:7

insert all
into course values('3094217','图与网络',2,'选修',32,6)
into course values('3094215','智能搜索与推荐技术',2,'选修',32,7)
select 1 from dual;
commit;

(6)创建名为xg_view的视图,在视图中显示所有信息工程学院教师的授课信息,包括教师姓名,职称,所授课程名称,授课班级,授课学期

create or replace view xg_view
as
select tname, ttitle, cname, sclass, semester
from teacher, tc, course
where teacher.tno = tc.tno and course.cno = tc.cno;

(7)创建每个学生已修课程总学分的视图,视图名为xf_view,要求在视图中显示学生学号、姓名和总学分

create or replace view xf_view
as
select student.sno, sname, sum(credit) as SumCredit
from student
left join sc on sc.sno = student.sno
left join course on course.cno = sc.cno
group by student.sno, sname;

(8)在创建的视图中查询大数据2班每位学生已修的总学分

select *
from xf_view
where sno in(select sno from studentwhere sclass = '大数据2班');

2.在创建的s,p,j和spj表中用SQL语句完成以下操作

(1)现有一供应商,代码为s9、姓名为英特尔、所在城市西安,供应情况如下:供应零件p5给工程j7数量为600,供应零件p4给工程j4数量为500,请将此供应商的信息和供应信息插入数据库

insert
into s
values('s9','英特尔','西安');insert all
into spj values('s9','p5','j7',600)
into spj values('s9','p4','j4',500)
select 1 from dual;
commit;

(2)请将北京供应商的供应数量加150

update spj
set qty = qty + 150
where sno in(select spj.snofrom spj, swhere spj.sno = s.sno and city = '北京' );

(3)把全部红色零件的颜色改为黑色

update p
set color = '黑'
where pno in(select pnofrom pwhere color = '红');

(4)由s5供给j4的零件p6改为由s1供应

update spj
set sno = 's1'
where sno in (select snofrom spjwhere jno = 'j4' and pno = 'p6' and sno = 's5');
commit;

(5)请将(s2,j7,p4,510)插入供应情况关系

insert
into spj
values('s2', 'p4', 'j7', 510);
commit;

(6)零件p1已经停产,请将p1的相关信息从数据库中删除

delete
from spj
where pno = 'p1';delete
from p
where pno = 'p1';
commit;

(7)创建零件名为螺丝刀的供应情况的视图sd_view,视图中显示供应商名(Sname),零件名(Pname),零件重量(Weight),工程项目代码(Jno),供应数量(QTY)

create or replace view sd_view
as
select sname, pname, weight, jno, qty
from s, p, spj
where s.sno = spj.sno and p.pno = spj.pno;

(8)在视图sd_view中查询供应数量在400到600之间的供应商姓名

select sname
from sd_view
where qty between 400 and 600;

(9)请为三建工程项目建立一个供应情况的视图SJ_View,包括供应商编号,零件编号,供应数量

create or replace view sj_view
as
select sno, pno, qty
from spj
where jno in(select jnofrom jwhere jname = '三建');

后记

最近刚学数据库操作,如果有错误或者哪里还有不足,希望大佬可以指出。

Oracle数据库的数据更新语句与视图操作示例(包含大部分常用语句)相关推荐

  1. Oracle数据库数据查询语句示例(包含大部分常用语句)

    Oracle数据库数据查询语句示例(包含大部分常用语句) 目标 本文用到的关系模式 语句示例 1.在创建的s,p,j和spj表中完成以下查询 (1)查询零件重量在10-20之间(包括10和20)的零件 ...

  2. oracle 根据spid查sql,探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句...

    Oracle数据库查看一个进程是如何执行相关的实际sql语句 代码如下: SELECT b.sql_text,sid,serial#,osuser,machine FROM v$session a,v ...

  3. Oracle数据库:创建和删除视图view,简单和复杂视图,内建视图,topN分析,oracle分页查询

    Oracle数据库:创建和删除视图view,简单和复杂视图,内建视图,topN分析,oracle分页查询 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开 ...

  4. java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作

    1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...

  5. qt mysql 注册码_QT连接Oracle数据库并实现登录验证的操作步骤

    目的: 本文实现QT登录界面,输入账号和密码后,系统连接Oracle数据进行判断账号和密码(MD5加密)是否和数据库一致,如果一致则提示登录成功. 开发环境:Windows10+QT5.14.2+Or ...

  6. 在linux操作系统中启动oracle数据库程序,Linux系统下Oracle数据库的安装和启动关闭操作教程...

    这篇文章主要介绍了Linux系统下Oracle数据库的安装和启动关闭操作教程,并针对在sqlplus下所需执行的命令进行讲解,需要的朋友可以参考下 1.准备: df -H 查看空间剩余   一般准备最 ...

  7. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  8. python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  9. 不知道密码导出oracle数据库,Oracle数据库密码重置、导入导出库命令示例应用

    重置办法如下:打开CMD命令提示符,然后输入下面命令进行重置: 输入sqlplus /nolog,回车 SQL> conn /as sysdba 已连接: SQL>alter user s ...

最新文章

  1. android对话框的使用(下)
  2. VC++在对话框中加入属性页
  3. 大道至简第7,8章读后感
  4. Git 之五 通信协议(HTTPS、SSH、Git)、使用远程仓库(GitHub、GitLab、Gitee等)
  5. php中如何让这段东西不显示出来,数据显示处理,该怎么处理
  6. 边工作边刷题:70天一遍leetcode: day 11-3
  7. 冯珊珊_模拟器企业衡泰信签约冯珊珊,推动高尔夫运动下沉
  8. 在c语言程序中 对文件进行操作首先要,《C语言程序设计》试题八及答案
  9. 西南在线平台教育计算机应用基础答案,西南交《计算机应用基础》在线作业一...
  10. POJ NOI MATH-7827 质数的和与积
  11. 智能名片小程序创建名片页功能实现关键代码
  12. Ubuntu18.04grub增加console口输出
  13. Laya Tween循环
  14. 7-14 输出大写英文字母 (15分) 瞎搞
  15. ios获取系统自带的文字蓝色色值
  16. 使用Flash Loader(JTAG模式)下载EPCS器件
  17. 成绩查询源码mysql_基于PHP+MYSQL的成绩查询系统(含源码)
  18. 12个实用的Word、PDF文档搜索引擎
  19. ueditor图片上传 flash插件初始化失败
  20. [论文翻译] Learning Without Forgetting

热门文章

  1. 不要刻意改变,做自己就好
  2. RK3399平台开发系列讲解(内核驱动外设篇)6.21、RK LCD显示驱动分析(fb和screen 部分程序)
  3. CrossOver配置
  4. 数据库复习--数据库恢复技术
  5. 电子科技大学毕业证明书补办流程记录
  6. windows自定义文件夹样式
  7. SureX 全新投资矩阵推出,引领理财新潮流!
  8. JAVA计算机毕业设计食品点评及售卖系统源码+系统+mysql数据库+lw文档
  9. 162基于springboot宠物管理系统
  10. (转载)yolov5理论学习笔记