问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数据库管理系统——SQL(概述与数据定义)

创作时间:
作者:
@小白创作中心

数据库管理系统——SQL(概述与数据定义)

引用
CSDN
1.
https://blog.csdn.net/n04j04h06/article/details/144468001

在上一篇关于关系运算的博客中,我们已经学习了SQL语言的理论基础。本篇博客将深入探讨SQL(结构化查询语言)在关系型数据库中的具体应用,重点介绍SQL的概述及其在数据定义方面的功能。

SQL概述

SQL(结构化查询语言)是关系数据库的标准语言,主要用于数据查询、数据库模式创建、数据库数据的增删改、数据库安全性和完整性定义与控制等。

SQL的特点

  1. 功能综合且风格统一:SQL集数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)功能于一体,能够独立完成数据库从设计、实现、维护到操作的全过程。

  2. 数据操纵高度非过程化:与层次、网状模型的数据操纵语言不同,SQL不需要指定存取路径,用户只需提出“做什么”,存取路径的选择和操作过程由系统自动完成。

  3. 面向集合的操作方式:SQL采用集合操作方式,操作对象、查找结果可以是元组的集合,一次插入、删除、更新操作的对象也可以是元组的集合。

  4. 以统一的语法结构提供多种使用方式:SQL既可以独立用于联机交互,也可以嵌入到高级语言(如C、C++、Java、Python)程序中使用。

  5. 语言简洁且易学易用:SQL功能强大,但核心功能仅用9个动词即可完成。

SQL对关系数据库三级模式的支持

SQL支持关系数据库的三级模式:存储文件-基本表-视图。数据按照外模式描述提供给用户,按内模式存储到磁盘上,概念模式提供了连接这两级模式的相对稳定的中间层级。

  • 存储文件:逻辑结构和物理结构组成了关系数据库的内模式,物理文件结构由数据库管理系统设计确定。
  • 基本表:本身独立存在的表,一个关系数据库管理系统中一个关系对应一个基本表,一个或多个基本表对应一个存储文件,一个表可以带若干索引。
  • 视图:从基本表或其他视图中导出的表,数据库中只存放视图的定义而不存放视图对应的数据,视图是一个虚表,用户可以在视图上再定义视图。

数据定义

SQL的数据定义功能包括数据库模式定义、表定义、视图和索引的定义。关系数据库管理系统提供层次化的数据库对象命名机制,一个关系数据库管理系统的实例中可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象。

数据库模式定义

创建模式语法:CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;

删除模式语法:DROP SCHEMA <模式名> <CASCADE|RESTRICT>;

其中,CASCADE表示级联删除,删除模式的同时把该模式中所有的数据库对象全部删除;RESTRICT表示限制删除,如果该模式中定义了数据库对象,则拒绝该删除语句的执行,仅当该模式中没有任何下属的对象时才能执行。

表定义

创建表时涉及的数据类型包括整型、字符型、日期型等。创建表语法为:

CREATE TABLE <表名> (
<列名1> <数据类型> [完整性约束],
<列名2> <数据类型> [完整性约束],
...
);

修改表语法:

ALTER TABLE <表名>
[ ADD[COLUMN] <新列名> <数据类型> [完整性约束] ]
[ ADD <表级完整性约束>]
[ DROP [ COLUMN ] <列名> [CASCADE| RESTRICT] ]
[ DROP CONSTRAINT<完整性约束名>[ RESTRICT | CASCADE ] ]
[ RENAME COLUMN <列名> TO <新列名> ]
[ ALTER COLUMN <列名> TYPE <数据类型> ];

删除表语法:

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

索引定义

建立索引的目的是加快查询速度。创建索引语法:

CREATE[UNIQUE] [CLUSTER]INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);

删除索引语法:

DROPINDEX <索引名>;

视图定义

创建视图语法:

CREATE VIEW <视图名> AS
SELECT <列名列表>
FROM <表名>
[WHERE <条件>];

删除视图语法:

DROP VIEW <视图名> [CASCADE];

物化视图语法:

CREATE MATERIALIZED VIEW <视图名> AS
SELECT <列名列表>
FROM <表名>
[WHERE <条件>];

物化视图是一种“虚关系”,实际查询时需要根据定义查询底层关系,当存在大量这样的查询时会有较高的成本。某些数据库支持物化视图,像存储表一样将创建的视图关系“物化”存储在数据库中。

在执行CREATE VIEW语句时并不执行其中的子查询语句,只是把视图的定义存入数据字典。在建立完视图后,就可以像对表一样对视图进行查询了。只有在对视图进行查询时,才会按照视图的定义去查询数据。

本篇内容讲述了SQL的概述和在关系型数据库中的数据定义操作,下一节我们将学习SQL的查询语言。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号