zoukankan      html  css  js  c++  java
  • 数据的定义、查询、更新以及视图操作

      1 --外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出
      2 --select * from pd left/right/full join pds on pd.id = pds.dish_id
      3 插入操作
      4 
      5 1、插入元组
      6   7 2、插入子查询结果
      8 --[例4]  对每一个系,求学生的平均年龄,并把结果存入数据库。
      9 --建表
     10 create table dept_age
     11 (
     12     sdept char(15),
     13     avg_age smallint,
     14     primary key(sdept)
     15 )
     16 --插入数据
     17 insert into dept_age
     18 select sdept, avg(sage)
     19 from student
     20 where sdept is not null
     21 --RDBMS在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则
     22 group by sdept
     23 修改操作
     24 1、修改某一个元组的值
     25 update student
     26 set sage = 22
     27 where sno = '200215121'
     28 2、修改多个元组的值
     29 update student
     30 set sage = sage + 1
     31 --[例7]  将计算机科学系全体学生的成绩置零。
     32 update sc
     33 set grade = 0
     34 where 'cs' = 
     35 (
     36     select sdept
     37     from student s
     38     where s.sno = sc.sno
     39 )
     40 [例10]  删除计算机科学系所有学生的选课记录。
     41 delete 
     42 from sc
     43 where 'cs' = 
     44 (
     45     select sdept
     46     from student s
     47     where s.sno = sc.sno
     48 )
     49 ---------------------------------
     50 视图
     51 
     52 视图的特点:
     53 1、虚表,是从一个或几个基本表(或视图)导出的表
     54 2、只存放视图的定义,不存放视图对应的数据
     55 3、基表中的数据发生变化,从视图中查询出的数据也随之改变
     56 
     57 视图的定义:
     58 -- [例1]  建立信息系学生的视图。
     59 alter view is_student
     60 as
     61 select sno, sname, sage, sdept
     62 from student
     63 where sdept = 'is'
     64 with check option
     65 [例3]  建立信息系选修了1号课程的学生视图。
     66 create view is_s1(sno, sname, grade)
     67 as
     68 select s.sno, sname, grade
     69 from student s, sc
     70 where sdept = 'is' and s.sno = sc.sno and sc.cno = '1'
     71 --[例4]  建立信息系选修了1号课程且成绩在90分以上的学生的视图。
     72 alter view is_s2
     73 as
     74 select sno, sname, grade
     75 from is_s1
     76 where grade >= 50
     77 --[例5]  定义一个反映学生出生年份的视图。
     78 create view bt_s(sno, sname, sbirth)
     79 as
     80 select sno, sname, 2019 - sage
     81 from student
     82 --[例6]  将学生的学号及他的平均成绩定义为一个视图
     83 create view s_g(sno, avgscore)
     84 as
     85 select sno, avg(grade)
     86 from sc
     87 group by sno
     88 --[例7]将Student表中所有女生记录定义为一个视图
     89 create view f_student(sno, sname, ssex, sage, sdept, total)
     90 as
     91 select *
     92 from student
     93 where ssex = ''
     94 --缺点:修改基表Student的结构后,Student表与F_Student视图的映象关系被破坏,导致该视图不能正确工作。
     95 alter table student
     96 drop column asd
     97 
     98 删除视图
     99 drop view xxx
    100 更新视图
    101 --[例12]  将信息系学生视图IS_Student中学号200215122的学生姓名改为“刘辰”。
    102 update is_student
    103 set sname = '刘辰'
    104 where sno = '200515004'
    105 --[例13]  向信息系学生视图IS_S中插入一个新的学生记录:200215129,赵新,20岁
    106 insert into is_student
    107 values('200215129', '赵欣', 20, 'is')
    108 --[例14]删除信息系学生视图IS_Student中学号为200215129的记录 
    109 delete from is_student
    110 where sno = '200515004'--基本表同时也删除
    111 --更新视图的限制:一些视图是不可更新的,因为对这些视图的更新不能唯一地有意义地转换成对相应基本表的更新
    112 --例如:
    113 UPDATE  S_G
    114 SET Gavg=90
    115 WHERE  Sno= '200215121'
    116 
    117 视图的作用:
    118 1. 视图能够简化用户的操作
    119 2. 视图使用户能以多种角度看待同一数据 
    120 3. 视图对重构数据库提供了一定程度的逻辑独立性 
    121 4. 视图能够对机密数据提供安全保护
    122 5. 适当的利用视图可以更清晰的表达查询
  • 相关阅读:
    Java多线程学习
    JAVA类的加载机制
    这四款也许是电脑录屏软件中免费、无广告且最实用的,程序员必备
    手机端没有好的录屏软件?地表最强移动端录屏软件了解一下?
    手把手教你 在Pytorch框架上部署和测试 关键点人脸检测项目DBFace,成功实现人脸检测效果
    520是秀恩爱吃狗粮,521才是真正的告白日,- Python告白神器用起来 !
    截图还在使用QQ的Ctrl + Alt + A 截图?还不会网页长截图?
    卷积神经网络之卷积操作,使用卷积运算实现图片边缘特征检测
    小白也能弄懂的卷积神经网络(Convolutional Neural Networks )
    官网安装Python包太慢?教你三种下载安装方式-PiP、conda、轮子,教你三种Pytorch的下载安装方式,保证你再也不用出现Error
  • 原文地址:https://www.cnblogs.com/liuwenhan/p/11906696.html
Copyright © 2011-2022 走看看