数据库复习——SQL

SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体的,主要特点包括:

(1)综合统一,语言风格统一。

(2)高度非过程化,只要提“做会么”,而无须指明“怎么做”

(3)面向集合的操作方式

(4)以同一种语法结构提供两种使用方式(自含式语言、嵌入式语言)

(5)易学易用

 

SQL的数据定义功能包含定义表、定义视图和定义索引。

 

Oracle的完整性:

(1)实体完整性(主码)

(2)参照完整性(外码)

(3)用户自定义完整性,NOT NULL(列值非空)、UNIQUE(列值唯一)、CHECK语句(检查列值是否满足一个bool表达式)

 

索引

建立或删除索引由DBA或建立表的人负责完成。系统在存取数据时会自动选择合适的索引作存储路径,用户不必也不能选择索引。SQL中建立索引的一般格式:

create [unique] [cluster] index <索引名>

on <表名> (<列名> [<次序>][,<列名> [<次序>]]...)

unique:表明此索引的每一个索引值只对应唯一的数据记录

cluster:指索引项的顺序与表中记录的物理顺序一致,因此一个表只能有一个聚簇索引,SQL通过聚簇索引排序。

次序:可选asc(升序)或desc,缺省asc

主码unique索引由DBMS完成,索引一经建立,就由系统使用和维护它。在SQL中,索引没有个性,只有删除重新定义。删除索引时,系统会同时在数据字典中删除有关该索引的描述,数据字典的作用是存放数据定义。

 

集函数只能用于select、having,where子名与having的区别在于作用的对象不同,where子句作用于基本表或视图,而having短语作用于组,选择满足条件的组。

嵌套查询:在一个查询中嵌套另一个查询块的查询。子查询的select语句中不能使用order by子名,order by子名只能对最终查询结果排序。

 

SQL中数据的更新包括插入数据、修改数据和删除数据。

 

insert  into <table> [(属性列[,属性列]...)]

values (常量[,常量]...)

into子名中没有出现的属性列,新记录在这些列上将取空值,

 

update <table>

set 列名=表达式 [,列名=表达式]...

[where子句]

功能是满足where子名条件的元组,用set的值取代相应属性列的值。

 

delete from <table>

[where 子句]

功能是指满足where子名的条件的所有元组删除,但表的定义仍在字典中。

 

数据操作(值):insert、delete、update

结构操作(型):create、alter、drop

 

grant 权限 [,权限]...

[on 对象类型 对象名]

to 用户 [,用户]

[with grant option]

如果指定了with grant option子名,则获得某种权限的用户还可以把这种权限再授予其他用户。

 

revoke 权限 [,权限]...

[on 对象类型 对象名]

to 用户 [,用户]

收回权限的操作会级联下去。
 

最后欢迎大家访问我的个人网站: 1024s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值