【数据库概论】第三章 SQL简述、数据定义和索引

这篇具有很好参考价值的文章主要介绍了【数据库概论】第三章 SQL简述、数据定义和索引。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3.1 SQL概述

3.1.1 产生与发展

最早在IBM的关系数据库管理系统原型SystemR上实现,后来美国国家标准局(ANSI)批准SQL作为关系数据库语言的美国标准,同年公布了SQL标准文本。近些年来SQL标准的内容越来越丰富和复杂。目前没有任何一个数据库系统能够支持SQL标准的所有概念和特性,同时不少软件厂商对SQL基本命令集合进行了不同程度的修改和扩充,又可以支持标准外的一些功能特性。

3.1.2 SQL的特点

SQL的主要特点包括以下几部分:

1.综合统一

数据库系统的主要功能是通过数据库支持的数据语言来实现的。
非关系模型的数据语言一般分为:

  • 模式数据定义语言(模式DDL)
  • 外模式数据定义语言(外模式DDL)
  • 数据存储有关的描述语言(DSDL)
  • 数据操纵语言(DML)

曾经的用户数据库投入运行后,如果需要修改模式,必须停止现有数据库的运行,修改模式并且编译后再重装数据库,十分麻烦。而SQL可以独立完成数据库生命周期中的全部活动。因此用户在数据库系统投入使用后还可以根据需要随时的逐步的修改模式,并不影响数据库运行,从而使得系统具有良好的可扩展性。

2.高度非过程化

非关系数据库模型的数据操纵语言是面向过程的语言。而使用SQL的时候,只需要提出“做什么”而无需知名怎么做,因此无需了解存取路径。这个工作由系统自动完成。

3.面向集合的操作方式

SQL采用几何操作方式,对于CRUD的操作以及操作对象、查找结果等操作都可以对元组集合进行操作。

4.以统一语法结构提供多种使用方式

SQL既是独立的语言,也是嵌入式语言。SQL可以嵌入到高级语言的程序中,而且无论是独立使用还是嵌入使用,其语法结构是基本一致的吗,因此统一了在不同语境下的语法使用。

3.1.3 SQL的基本概念

用户可以使用SQL对基本表和视图进行基本操作,他们都是关系集合。
基本表是本身独立存在的表,在关系数据库管理系统中一个关系对应一个基本表。一个或者多个基本表对应一个存储文件,一个表可以带若干索引,索引也可以存放在存储文件中。视图是一个或者几个基本表导出的表,他不独立存储在数据库中,也就是视图是一个虚表,其中的信息是一个或者几个基本表的映射,通常用于供人查看。存储文件是数据的物理形式,存储文件的逻辑结构组成了关系数据库的内模式,其物理结构对最终用户是隐蔽的。

3.2 数据库实例

围绕如下数据库定义:


3.3 数据定义

关系数据库系统支持三级模式结构,其模式、外模式和内模式中的基本对象有模式、表、视图和索引等。

一个关系数据库管理系统的实例中可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下包含多个表、视图和索引等数据库对象。下文中的语句<>括号中的为输入内容,[]括号内的是可选内容

3.3.1 模式的定义和删除

模式定义语句如下:

CREATE SCHEMA <SCHEMA NAME> AUTHORIZATION <USER NAME> [<TABLE DEFINE>|<VIEW DEFINE>]

创建模式需要拥有数据库管理员权限,或者获得了数据库管理员授予的CREATE SCHEMA权限。在创建模式的时候也可以执行创建基本表、视图等语句。定义模式实际上定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,比如基本表、视图、索引等。从语句可以看出,定义模式的同时需要将该模式的管理权限授权给某用户。

删除模式语句如下:

DROP SCHEMA <SCHEMA NAME\88888>
<CASCADE|RESTRICT>

其中CASCADE和RESTRICT两者必选其一,CASCADE(级联)表示删除该模式的同时将模式中所有数据库对象都删除,RESTRICT(限制)指的是如果模式中定义了下属的数据库对象,则拒绝执行删除语句,除非该模式没有下属的对象。

3.3.1 模式的定义和删除

模式定义语句如下:

CREATE SCHEMA <SCHEMA NAME> AUTHORIZATION <USER NAME> [<TABLE DEFINE>|<VIEW DEFINE>]

创建模式需要拥有数据库管理员权限,或者获得了数据库管理员授予的CREATE SCHEMA权限。在创建模式的时候也可以执行创建基本表、视图等语句。定义模式实际上定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,比如基本表、视图、索引等。从语句可以看出,定义模式的同时需要将该模式的管理权限授权给某用户。

删除模式语句如下:

DROP SCHEMA <SCHEMA NAME\88888>
<CASCADE|RESTRICT>

其中CASCADE和RESTRICT两者必选其一,CASCADE(级联)表示删除该模式的同时将模式中所有数据库对象都删除,RESTRICT(限制)指的是如果模式中定义了下属的数据库对象,则拒绝执行删除语句,除非该模式没有下属的对象。

3.3.2 基本表的定义、删除和修改

1. 常见数据类型

2.定义基本表

定义基本表的格式如下:

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

其中主要的列完整性约束条件有:

  • PRIMARY KEY 主键
  • FOREIGN KEY (外码名) REFERENCES 被参照表(被参照列) 外键
  • NOT NULL 非空
  • UNIQUE 唯一值

3.修改基本表

ALTER TABLE <TABLE NAME>  
    [ADD [COLUME] <新列名><数据类型>[完整性约束]] -- 新增表项  
    [ADD <表级完整性约束>] -- 增加表约束  
    [DROP [COLUME] <列名> [CASCADE|RESTRICT]] -- 删除表项  
    [DROP CONSTRAINT <完整性约束名> [RESTRICT|CASCADE]] -- 删除表约束  
    [ALTER COLUME <列名><数据类型>] -- 修改列数据类型

其中ADD用于新增内容,DROP用于删除内容。DROP COLUMN用于删除列,如果指定了CASCADE则会在删除列之前先删除引用该列的其他对象,比如视图;如果指定了RESTRICT,则如果对象被引用,则RDBMS会拒绝删除该列。DROP CONSTRAINT 用于删除指定的完整性约束条件。ALTER COLUMN子句用于修改原有列的定义。

4.删除基本表

DROP TABLE <表名> [RESTRICT|CASCADE]

如果是RESTRICT,则删除是有约束条件的,基本表不能被其他表的约束所引用(比如外键),不能有视图,也不能有触发器,不能有存储过程或者函数。如果有则删除失败。如果选择CASCADE,则该表删除没有限制条件,删除基本表的同时相关的依赖一并删除。

5.模式和表

一个模式包含了多个基本表,每一个基本表都属于一个模式,当定义一个基本表的时候有三种方法定义它所属的模式:
方法一:在表名中明显给出模式名

CREATE TABLE “S-T”.Student(…) -- Student的模式是S-T

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

方法三,设置所属模式,在创建表时不需要给出模式名

使用语句

SHOW search_path

可以显示当前的搜索路径

6.索引的建立和删除

当表的数据量比较大的时候,查询操作会比较耗时,因此建立索引可以加快查询速度。数据库索引类似于图书的目录,能够快速定位到需要查询的内容。数据库索引会有多种类型,包括顺序文件上的索引、B+树索引、散列索引等等。索引虽然会加速查询速度,但是需要占用一定内存空间,当基本表更新的时候,索引也要做出变更,因此需要一些维护开销。一般来说,建立和删除索引由索数据库管理员或者表的属主(owner)负责完成。关系数据库管理系统在执行查询时会自动选择合适的索引,用户不能显式选择索引。索引是关系数据库内部实现技术,属于内模式范畴。

常见索引形式

  • 顺序文件索引是针对按照指定属性值升序或者降序的存储关系。
  • B+树索引是将索引属性组织成B+树的形式,B+树的叶节点为属性值和相应的元组指针。B+树具有动态平衡的优点
  • 散列索引是建立若干个同,将索引属性按照其散列函数映射到相应的桶中
  • 位图索引是用位向量记录索引属性中可能出现的值,每一个位向量对应一个可能值。

建立索引

在SQL语句中,建立索引语句如下:

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

表名是基本表名字,

索引可与建立在该表的一列或者多列上,各列之间用逗号分隔,次序字段可选ASC(升序)和DESC(降序)
UNIQUE指该索引每一个索引值对应唯一的数据记录;CLUSTER指建立聚簇索引,聚簇索引会在后面介绍到

修改和删除文章来源地址https://www.toymoban.com/news/detail-749040.html

ALTER INDEX <旧索引名> RENAME TO <新索引名>  
DROP INDEX <索引名>

到了这里,关于【数据库概论】第三章 SQL简述、数据定义和索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【软考数据库】第三章 数据结构与算法

    目录 3.1 数据结构 3.1.1 线性结构 3.1.2 数组 3.1.3 矩阵 3.1.4 树与二叉树 3.1.5 图 3.2 查找 3.2.1 顺序查找 3.2.2 折半查找 3.2.3 哈希表 3.3 排序 3.3.1 直接插入排序 3.3.2 希尔排序 3.3.3 简单选择排序 3.3.4 堆排序 3.3.5 冒泡排序 3.3.6 快速排序 3.3.7 归并排序 3.3.8 基数排序 3.3.9 内部排序算法

    2023年04月26日
    浏览(29)
  • 数据库系统工程师——第三章 数据结构与算法

    数据结构是指 数据元素的集合 及 元素间的相互关系和构造方法 ,结构就是元素之间的关系。在数据结构中,元素之间的相互关系是数据的逻辑结构。按照逻辑关系的不同将数据结构分为线性结构和非线性结构,其中,线性结构包括线性表、栈、队列、串,非线性结构主要包

    2024年02月04日
    浏览(52)
  • 开源数据库MYSQL DBA运维实战 第三章 备份

    丢/删 1.数据的一致性 2.服务的可用性 3.1物理备份/冷备份 直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不同的mysql tar,cp,scp 拷贝数据,有点快,缺点服务停止 3.2逻辑备份/热备份 备份的是建表,建库,插入等操作所执行SQL语句(DDL,DML,D

    2024年02月21日
    浏览(84)
  • SQL Server基础 第三章 数据表基本操作(增删改查,不允许保存更改异常!)

    往表里插数据我们现在有两种方式 第一种是编辑直接修改,第二种是通过查询来修改数据 两种方法的区别 第一种更直接,如果数据量小那么直接改就好了,那如果数据量稍微庞大我们就需要用新建查询来进行表内容的修改了!!!!!!! 只需要新建查询,然后新的查询文

    2023年04月26日
    浏览(37)
  • SQL高级教程第三章

    CREATE DATABASE 用于创建数据库。 SQL CREATE DATABASE 语法 现在我们希望创建一个名为 \\\"my_db\\\" 的数据库。 我们使用下面的 CREATE DATABASE 语句: 可以通过 CREATE TABLE 来添加数据库表。 SQL Create DB SQL Constraints CREATE TABLE 语句用于创建数据库中的表。 SQL CREATE TABLE 语法 数据类型(data_type)

    2024年02月12日
    浏览(25)
  • 第三章 使用 SQL Search - 填充表

    与任何 SQL 索引一样,定义的 SQL 搜索索引(默认情况下)是在填充新表时构建的,并在随后插入、更新或删除数据时维护的。使用 %NOINDEX 填充表时,可以推迟索引的构建,然后使用 %Build() 方法构建索引。可以向已填充数据的表添加索引,然后构建该索引。 以下示例从 Avia

    2024年01月21日
    浏览(27)
  • 数据库系统概论—标准语言SQL

    1.1基本表的定义、删除与修改 定义基本表 修改基本表 删除基本表 CASCADE:与其相关的全部删除,比如视图,索引等 RESTRICT:如果有依赖关系或是建立索引等,就不删除 但是不同的数据管理系统的执行不同 1.2索引的建立与删除 建立索引 删除索引 基本结构 2.1单表查询 利用上

    2023年04月24日
    浏览(55)
  • 《数据库系统概论》SQL Server 数据库导出、导入教程

    在SQL Server的使用过程中,大家难免遇到数据库表的导出、导入,从而实现用其它电脑打开数据库。 如果是使用学校实验室(机房)电脑做实验的同学,一定要掌握本技能!!! 1、右键点击数据库,“任务”,“生成脚本”,如下图 2、选择对象操作如图,“选择具体的数据

    2024年02月10日
    浏览(52)
  • 大数据之路——数据同步(第三章)

       如第一章所述,我们将数据采集分为日志采集和数据库数据同步两部分。数据同步技术更通用的含义是不同系统间的数据流转,有多种不同的应用场景。主数据库与备份数据库之间的数据备份,以及主系统与子系统之间的数据更新,属于同类型不同集群数据库之间的数据

    2024年01月25日
    浏览(27)
  • 408数据结构第三章

    特性后进先出 只允许在 一端 进行插入或删除操作的线性表 每接触一种新的数据结构类型,都应该分别从逻辑结构、存储结构和对数据的运算三方面入手 操作 initstack(s)初始化一个空栈s stackempty(s)判断一个栈是否为空 push(s,x)进栈,未满成为新栈顶 pop(s,x)出栈,非空弹出栈顶元

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包