功能
- 定义:通过DDL(Data Definition Language)定义数据库的逻辑结构、基本表、视图、索引等
- 查询:通过DQL(Data Query Language)实现数据查询功能,使用不同的子句就可以实现查询、统计、排序、分组等功能
- 操作:通过DML(Data Mnaipulation Language)改变数据库中的数据,实现插入、更新、删除功能
- 控制:通过DCL(Data Control Language)实现,实现数据的存取控制,保证数据库的安全性,还提供了数据完整性约束条件的定义和检查机制来保证数据库的完整性,数据控制对应的语句有(GRANT、REVOKE、COMMIT、ROLLBACK分别代表了授权、回收、提交、回滚等操作)
特点
- 功能强大
- 集合操作
- 非过程化
- 语言简洁
- 支持交互式和嵌入式两种形式:交互式直接输入SQL即可操作,嵌入式则可以链接到高级语言(Java、Python)进行操作,无论使用哪种方式,SQL操作语句基本一致
- 支持三级模式结构:视图——基本表——存储文件
基表是本身独立存在的表,在SQL中一个关系就对应一个基表,视图和部分基表构成了数据库的外模式,
视图是从其他视图或基本表中导出的表,它本身并不独立存储在数据库中,即数据库只存放视图的定义而不存放视图的数据,因此视图可以理解为一个虚表,视图加上某些被用户使用的基表就构成了关系数据库的外模式
在SQL中,一个关系对应一个表,一个或者多个基表对应一个存储文件,一个基表也可以对应多个存储文件,一个表可以带若干索引,索引页存放在数据文件中,每个存储器与存储器的一个物理文件对应,存储文件的逻辑结构组成了关系数据库的内模式
语句规则
- 关键字、对象名、列名都不区分大小写
- 字符值和日期值区分大小写
- SQL很短可以写在一行上,很长则可以写在多行上
数据定义
- 数据定义功能是针对数控的三级模式结构(视图——基本表——存储文件)所定义的数据对象进行定义的
对象 | 创建 | 删除 | 修改 |
---|---|---|---|
表 | create table | drop table | alter table |
视图 | create view | drop view | |
索引 | create index | drop index |
- 在标准SQL定义中,因为视图是基于表的虚表,索引时依附在虚表上的,一次视图和索引均不提供修改操作,若想修改只能通过删除,重新创建的方式,但是在Oracle中可以通过alter view对视图进行修改
CREATE
- 所有的数据对象均有CREATE来完成
- 创建表的时候还可以定义与该表有关的完整性约束条件,条件会被存在数据字典中,操作数据时,DBMS会自动检查该重做是否符合相关约束条件
- 从某种意义上来说,视图就像是一个自定义窗口,可将自己所需要的数据创建定义到视图中
- 聚簇索引:即索引项的顺序与表中记录的物理顺序一致的索引组织
- 因为聚簇索引是将表和索引放在一起存储,所以一个基表只能建立一个聚簇索引,由于更新会导致表中记录的物理顺序的变更,系统代价高,所以对于经常更新的列不适应建立聚簇索引
DROP
- 当某个数据对象不再被需要,就可以使用DROP进行删除
- 在有的系统中,删除表会附带删除其索引,但是在Oracle中删除表不会删除其索引,再次操作该索引时则会报错
- 删除视图后,视图的定义将从数据字典中移除,但是该视图导出的其他视图定义仍在数据字典中不会被删除这导致用户在使用其他视图时会发生错误,所以删除视图一定要谨慎,要注意视图之间的关系,因为在Oracle中不会删除附带视图,所以删除表后,如果该表有视图使用,则需要删除其对应的视图
- 建立索引后,索引将有数据库系统自动维护,用户不需要删除,如果该索引不能够满足业务需要则可以进行手动删除