【数据库复习】第三章关系数据库标准语言SQL 集合查询 2

用EXISTS/NOT EXISTS实现全称量词

SQL语言中没有全称量词" (For all)

可以把带有全称量词的谓词转换为等价的带有存在量词的谓词:

       

 

查询学生S没有选修的课程

 

查询选修了全部课程的学生姓名。

等价于:查询这样的学生,没有一门课程是他没选修的。

 

branch (branch-name, branch-city, assets)

account (account-number, branch-name, balance)

depositor (customer-name, account-number)

找出在Brooklyn的所有分行中有存款账户的客户

 

 

数据定义

 

定义一个学生-课程模式S-T

            CREATE SCHEMA S-T AUTHORIZATION WANG;

             为用户WANG定义了一个模式S-T

删除模式

DROP SCHEMA <模式名> <CASCADE | RESTRICT>

CASCADE(级联)

    删除模式的同时把该模式中所有的数据库对象全部删除

RESTRICT(限制)

   如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。

   当该模式中没有任何下属的对象时才能执行。

例DROP SCHEMA ZHANG CASCADE;

         删除模式ZHANG

         同时该模式中定义的表TAB1也被删除

基本表的定义、删除与修改

一、定义基本表

CREATE TABLE <表名> (<列名> <数据类型>[ <列级完整性约束条件> ]    [,<列名> <数据类型>[ <列级完整性约束条件>] ]   [,<表级完整性约束条件> ] );

 

二、数据类型

 

  • 模式与表

每一个基本表都属于某一个模式

一个模式包含多个基本表

定义基本表所属模式

方法一:在表名中明显地给出模式名

Create table “S-T”.Student(......);   /*模式名为 S-T*/

Create table “S-T”.Cource(......);

Create table “S-T”.SC(......);

方法二:在创建模式语句中同时创建表

方法三:设置所属的模式,在创建表时表名中不必给出模式名。

四、修改基本表

ALTER TABLE <表名>

[ ADD <新列名> <数据类型> [ 完整性约束 ] ]

[ DROP <完整性约束名> ]

[ ALTER COLUMN<列名> <数据类型> ];

五、删除基本表

DROP TABLE <表名>[RESTRICT| CASCADE];

RESTRICT:删除表是有限制的。

欲删除的基本表不能被其他表的约束所引用

如果存在依赖该表的对象,则此表不能被删除

CASCADE:删除该表没有限制。

在删除基本表的同时,相关的依赖对象一起删除

数 据 更 新

一、插入元组

语句格式

INSERT

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

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

功能

将新元组插入指定表中

 

  • 插入子查询结果

语句格式

    INSERT

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

    子查询;

功能

    将子查询结果插入指定表中

 

修改数据

语句格式

   UPDATE  <表名>

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

    [WHERE <条件>];

功能

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

 

删除数据

语句格式

       DELETE

       FROM     <表名>

       [WHERE <条件>];

功能

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

WHERE子句

指定要删除的元组

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

 

视  图

视图的特点

虚表,是从一个或几个基本表(或视图)导出的表

只存放视图的定义,不存放视图对应的数据

基表中的数据发生变化,从视图中查询出的数据也随之改变

基于视图的操作

 查询

 删除

 受限更新

 定义基于该视图的新视图

一、建立视图

语句格式

       CREATE  VIEW

             <视图名>  [(<列名>  [,<列名>]…)]

       AS  <子查询>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆水獭_(:_」∠)_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值