一、SQL概念
SQL全称为Structured Query Language(结构化查询语言),利用一些简单的句子构成基本语法来存取数据库内容,是关系数据库中使用最广泛的语言。
二、SQL语言功能
数据定义语言(Data Definition Language,DDL):主要用于创建、修改或删除数据库对象。如表、视图、索引等。
- 定义、删除、修改关系模式(基本表)
- 定义、删除视图(View)
- 定义、删除索引(Index)
数据操纵语言(Data Manipulcation Language,DML):主要用于查询、添加、修改或删除存储在数据库对象中的数据。
- 数据库、表中数据的查询
- 数据的增、删、改等操作
数据控制语言(Data Control Language,DCL):可以控制访问数据库中特定对象的用户,还可以控制用户对象对数据库的访问类型。主要功能为用户访问权限的授予、收回。
三、SQL语言的执行方式
1、交互式 SQL
直接执行SQL语句,一般DBMS都提供联机交互工具,可以从前端应用程序。如SQL Server中的Query Analyzer(查询分析器)、Oracle中的SQL*Plus Worksheet
2、嵌入式 SQL
将SQL语句嵌入到高级语言(宿主语言)中,是应用程序充分利用SQL访问数据库的能力、宿主语言的过程处理能力。
3、CLI(调用层接口)
CLI可以通过接口调用SQL语句。它定义了一套可以从宿主语言调用的公共函数,即提供一套API,通过函数调用实现对DBMS的操作。常用的CLI包括DBLib、OCI、ODBC、JDBC等,将逐步替代嵌入式SQL。
四、SQL中常用的关键词及其功能
模块 | 关键词 | 功能 |
数据定义 | CREATE TABLE | 创建一个数据库表 |
DROP TABLE | 从数据库中删除表 | |
ALTER TABLE | 修改数据库表结构 | |
CREATE VIEW | 创建一个视图 | |
DROP VIEW | 从数据库中删除视图 | |
CREATE INDEX | 为数据库表创建一个索引 | |
DROP INDEX | 从数据库中删除索引 | |
CREATE PROCEDURE | 创建一个存储过程 | |
DROP PROCEDURE | 从数据库中删除存储过程 | |
CREATE TRIGGER | 创建一个触发器 | |
DROP TRIGGER | 从数据库中删除触发器 | |
数据操作 | SELECT | 从数据库表中检索数据行和列 |
INSERT | 向数据库中添加新数据行 | |
DELETE | 从数据库中删除数据行 | |
UPDATE | 更新数据库表中的数据 | |
数据控制 | Grant | 授予用户访问权限 |
Deny | 拒绝用户访问 | |
Revoke | 解除用户访问权限 | |
事务控制 | Commit | 提交当前事务 |
RollBack | 回滚当前事务 | |
Set Transaction | 定义当前事务数据访问特征 | |
程序化SQL | Declare | 为查询设定游标 |
Explan | 为查询描述数据访问计划 | |
Open | 检索查询结果打开一个游标 | |
Fetch | 检索一行查询结果 | |
Close | 关闭游标 | |
Prepare | 为动态执行准备SQL | |
Execute | 动态执行SQL | |
Describe | 描述准备好的查询 |
五、SQL环境
1、模式对象:位于目录最底层,SQL数据就存储在这一层。
2、模式:数据库模式,是表、视图、域等数据库模式对象的聚集,是整个SQL环境体系结构的基本单位。
创建模式:Create Schema <模式名> <模式元素>
设置为当前模式:set Schema <模式名>
3、目录(Catalog):对某一单个数据库的描述,是模式的聚集,每个目录都有一个或多个模式,都包含Information-Schema(信息模式)特殊模式,该模式包含此目录中所有模式的信息。
创建目录:Create Catalog <目录名>
设置为当前目录:set Catalog <目录名>
六、SQL DBMS的客户/服务器模型
连接:客户程序与服务程序之间建立链接
Connect To <服务器名>
As <连接名>
建立多个连接,但在任何时间只能有一个是活动的。切换连接: Set Connection <连接名>
访问完毕断开连接:Disconnect <连接名>