第三章 关系数据库标准语言SQL

3.1 SQL概述

结构化查询语言(Structured Query Language,SQL)是关系数据库的标准语言,功能包括:查询、数据库模式创建、数据库数据的插入与修改、数据库安全性完整性定义与控制等一系列功能。

3.1.1 SQL的发展历程:
SQL是在1974年由Boyce和Chamberlin提出的,最初叫Sequel,并在IBM公司研制的关系数据库管理系统原型System R上实现。

3.1.2 SQL的特点:

SQL集数据查询、数据操纵、数据定义和数据控制功能于一体。

1.综合统一

(1)数据库系统的主要功能是通过数据库支持的数据语言来实现的。

(2)可以独立的完成数据库生命周期的全部活动:定义关系模式,插入数据,建立数据库;对数据库中的数据进行查询和更新;数据库重构和维护;数据库安全性、完整性控制等;嵌入式SQL和动态SQL定义。

(3)用户数据库投入运行后,可根据需要随时修改模式,不影响数据的运行,数据操作符统一。

2.高度非过程化

3.面向集合的操作方式

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

5.语言简洁,易学易使用

完成核心功能只用了9个动词:

数据查询:SELECT

数据定义:CREATE、DROP(删除)、ALTER(修改)

数据操作:INSERT、UPDATE、DELETE

数据控制:GRANT(授权)、REVOKE(撤回)

3.1.3 SQL的基本概念
 

支持SQL的关系数据库管理系统同样支持关系数据库三级模式结构,,如图所示:

基本表:独立存在的一个表,SQL中一个关系对应一个基本表,一个表可以带若干个索引,基本表可对应存储文件。

视图:从一个或几个基本表导出的表,数据库中只存放视图的定义而不存放视图对应的数据,视图是一个虚表,用户可以在视图上在定义视图。

存储文件:存储文件的逻辑结构组成了关系数据库的内模式,物理结构是任意的,对用户透明。

3.1.4 SQL语言的分类

SQL是关系型数据库的基本操作语言,是数据管理系统与数据库进行交互的接口。不同的功能又分别对应着各自的SQL语言,具体如下:

1、数据查询语言(DQL)

用户检索数据库中的数据,主要是select语句,它在操作数据库的过程中使用最为频繁,也是最复杂最重要的语句。

2、数据操纵语言(DML)

用于改变数据库中的数据,主要包括insert、update和delete 3条语句。

insert语句用于将数据插入到数据库中,update语句用于更新数据库中已经存在的数据,delete语句用于删除数据库中已经存在的数据。

3、数据定义语言(DDL)

用于建立、修改和删除数据库对象。

例:create table语句可以创建表,alter table语句可以修改表结构,drop table语句可以删除表。

4、数据控制语言(DCL)

用于执行权限授予和权限收回操作,主要包括 grant 和 revoke 两条命令。

grant 命令用于给用户或角色授予权限,而 revoke 命令则用于收回用户或角色所具有的权限。

5、事务控制语言(TCL)

用于维护数据的一致性,包括 commit、rollback 和 savepoint 3条语句。

commit 语句用于提交对数据库的更改,rollback 语句用于取消对数据库的更改,而 savepoint 语句则用于设置保存点。

3.2 数据定义

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

3.2.1 模式的定义与删除

  1. 定义模式 schema

CREATE SCHEMA <模式名>AUTHORIZATION <用户名>

例如:为学生XIAOHE定义一个学生-课程模式 S-T。

CREATE SCHEMA “S-T” AUTHORIZATION XIAOHE;

  1. 删除模式

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

例子:DROP SCHEMA ZHANG CASCADE

若选择RESTRICT(限制),该表的删除是有限制条件的。该模式不能被其他模式的约束所引用(如CHECK,FOREIGN KEY等约束),不能有触发器,不能有视图,不能有函数和存储过程等。如果该模式存在这些依赖的对象,此模式不能删除。

若选择CASCADE (级联),该模式的删除没有限制条件。在删除基本模式的同时,相关的依赖对象将会被一起删除。

默认是RESTRICT。

3.2.2 基本表、删除与修改基本表

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

定义表

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

[,<列名><数据类型>[列级的完整性约束条件]]

[,<列名><数据类型>[列级的完整性约束条件]

[,[表级的完整性约束条件])

  1. 索引的建立、修改与删除

3.2.3 索引的建立、修改与删除

创建索引

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
 [USING index_type]
 ON table_name (index_col_name,...)

在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。

增加索引
ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。
(1.)ALTER TABLE table_name ADD INDEX index_name (column_list)
(2.)ALTER TABLE table_name ADD UNIQUE (column_list)
(3.)ALTER TABLE table_name ADD PRIMARY KEY (column_list)

删除索引
可利用ALTER TABLE或DROP INDEX语句来删除索引。类似于CREATE INDEX语句,DROP INDEX可以在ALTER TABLE内部作为一条语句处理,语法如下。

(1)DROP INDEX index_name ON talbe_name
(2)ALTER TABLE table_name DROP INDEX index_name
(3)ALTER TABLE table_name DROP PRIMARY KEY

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值