① sql语法范例大全的前 言
数据库技术已成为信息时代计算机技术的重要组成部分,而目前广泛使用的关系数据库已经成为数据库系统的主流,SQL(Structured Query Language,结构化查询语言)是关系数据库系统最常用的语言。
本书全面系统地介绍了SQL的基本语法,并以目前流行的数据库SQL Server 2005/2008和Oracle 9i/10g/11g为基础,结合作者多年的数据库系统管理经验,介绍了用SQL管理和开发这两大关系数据库的实际应用操作,包含了大量的应用示例,可供读者在学习和工作中引用。
本书读者
本书内容涵盖了与数据库系统管理和开发有关的常见内容和操作,非常适合需要使用SQL的各层次的读者,包括下列使用对象:
(1)SQL的初学者和计算机爱好者
本书讲述了SQL大量的基础内容,又有大量示例,非常适合初学者使用。
(2)高等学校或职业技术学校计算机专业教师和学生
本书讲解由浅入深,非常适合高等学校和职业技术学校计算机专业教师和学生学习和参考使用。
(3)数据库管理及其应用、软件设计和开发人员
本书介绍了SQL语句在两种主流关系数据库SQL Server和Oracle中的实现,同时,介绍了在进行数据库管理中通常需要的SQL脚本操作,可作为数据库管理及开发人员的参考手册。
(4)系统分析人员
数据库规划和管理技术是系统分析人员应该掌握的重点内容,本书介绍了各类常见关系数据库的基础知识,并分析和比较了它们之间的主要特点和异同点,同时也介绍了SQL在数据库系统分析中的编程知识,因此该书也可以作为系统分析人员重要的参考资料。
本书特点
(1)结构清晰,内容全面
本书按照关系数据库基础、SQL基础、SQL与关系数据库的关系、SQL语法、SQL扩展、SQL编程、SQL在数据库中的应用和资料速查内容为线索进行介绍,采用“方法、语法、示例、运行结果、注意事项”的顺序结构进行阐述,具有很强的条理性和易读性。
(2)方法多样,实例丰富
本书针对特定的知识点介绍了能实现特定功能的各种方法,包括数据库的企业管理器工具法、SQL命令法等,目的是让读者既能掌握SQL语法知识,又能掌握数据库的操作技能,而且还能比较同一种功能采用多种实现方法的异同点,掌握在SQL Server和Oracle这两种数据库环境下SQL的差别。
本书共包括大小实例721个,使读者在学习SQL原理的同时能够掌握其用法,大部分实例还可以用于SQL Server和Oracle数据库的实际管理,这些实例是作者多年从事数据库和类UNIX系统管理的经验积累,具有相当大的使用价值。
(3)既可以作为教材使用,又可以通过手册进行快速查阅
本书以教材的形式全面系统地介绍了SQL以及SQL Server和Oracle数据库系统管理的知识点,同时,又在实现方法、SQL语法、SQL语句、SQL函数、数据库系统参数和应用示例等方面提供了详细的介绍,并且提供快速索引,方便读者查阅。
综上所述,与其他同类书籍相比,本书具有方法全、内容全、实例全、参数全、查阅全的典型特点。
本书内容
本书内容涵盖了SQL、关系数据库基本理论、SQL Server数据库、Oracle数据库、MS VS.NET等数据库软件开发平台和工具的知识点与实际应用操作。
全书包括附录共分为8大部分,共29章。
第1篇 SQL及关系数据库概述(第1章~第3章)
第1章 关系数据库概述。主要介绍了数据库和关系数据库的基本概念、关系模型以及两种关系数据库:桌面关系数据库和网络关系数据库和常用的10种关系型数据库系统
第2章 SQL概述。介绍了SQL的概念、基本功能、SQL标准和版本、SQL基本语法
第3章 SQL扩展、工具及范例数据库介绍。介绍了常用的关系数据库系统SQL Server和Oracle的基本情况及其支持的SQL扩展语言Transact-SQL和PL/SQL的基本概念和主要内容。同时介绍了Transact-SQL和PL/SQL的支持环境和常用工具的用法,包括SQLCMD、SQL Server查询分析、Oracle企业管理器EM、Oracle SQL * Plus、iSQL * Plus、PL/SQL Developer和TOAD专业工具
第2篇 SQL运算符和函数(第4章~第5章)
第4章 SQL运算符。介绍了SQL的各种操作运算符,包括算术、字符串、赋值、比较、逻辑、集合和一元运算操作符
第5章 函数。介绍了算术、字符、日期、类型转换、统计(聚合)函数和两种数据库的常用系统函数
第3篇 数据查询操作(第6章~第9章)
第6章 简单查询。介绍了SQL查询语句(SELECT语句)的基本语法结构和执行步骤、常用的简单查询操作
第7章 连接查询。介绍了表的自连接、自然连接、内连接和外连接。其中内连接介绍了等值连接和不等值连接两种基本形式;外连接介绍了左外连接、右外连接和全外连接
第8章 集合查询。介绍了并集、交集和差集的基本概念和应用操作
第9章 子查询。介绍了子查询的基本概念和操作,包括单行、多行、多列、相关和嵌套子查询等内容
第4篇 数据更新操作(第10章~第15章)
第10章 数据库操作。介绍了数据库的创建、查找、修改和删除的几种实现方法以及SQL语句操作
第11章 方案操作。介绍了方案的创建、查找、修改和删除的几种实现方法以及SQL语句操作
第12章 数据表操作。介绍了数据表、表记录、表结构的创建、查找、修改、复制和删除的几种实现方法以及SQL语句操作
第13章 索引操作。介绍了索引的创建、查找、修改、禁用、启用和删除的几种实现方法以及SQL语句操作
第14章 视图操作。介绍了视图的创建、查找、修改和删除的几种实现方法以及SQL语句操作
第15章 序列操作。介绍了序列的创建、查找、使用和删除的几种实现方法以及SQL语句操作
第5篇 数据安全管理(第16章~第19章)
第16章 完整性约束。介绍了与表有关的约束:NOT NULL约束、UNIQUE约束、PRIMARY KEY约束、FOREIGN KEY约束和CHECK约束、域约束以及断言的创建、查找、修改、使用和删除的几种实现方法以及SQL语句操作
第17章 用户管理。介绍了用户的创建、查找、修改、删除的几种实现方法和SQL语句操作以及权限的查找、授权、收回等操作
第18章 角色管理。介绍了角色的创建、查找、修改、删除的几种实现方法和SQL语句操作以及权限的查找、授权、收回等操作
第19章 权限管理。介绍了权限的分类、查找、授权、收回等操作
第6篇 SQL编程(第20章~第25章)
第20章 事务控制与并发处理。介绍了事务的概念、事务控制的实现以及多用户读写访问数据库的并发控制、事务的开始和终止操作,最后还介绍了在SQL Server和Oracle数据库中并发控制的具体应用、实现和比较
第21章 存储过程。介绍了存储过程的创建、查找、修改、调用、重编译、删除的几种实现方法和SQL语句操作,还详细介绍了存储过程在SQL Server和Oracle数据库中的应用
第22章 存储函数。介绍了存储函数的创建、查找、修改、调用、重编译、删除的几种实现方法和SQL语句操作,还详细介绍了存储函数在SQL Server和Oracle数据库中的应用
第23章 触发器。介绍了SQL中触发器的有关概念、创建、查找、修改、禁用、启用和删除的几种实现方法以及SQL语句操作,还详细介绍了触发器在SQL Server和Oracle数据库中的应用
第24章 游标。介绍了SQL中游标的基本概念、各种游标的定义、查找、打开、数据提取、关闭和删除的几种实现方法以及SQL语句操作、游标循环和嵌套的具体内容,还详细介绍了游标在SQL Server和Oracle数据库中的应用
第25章 错误和异常处理。介绍了错误与异常分类、SQL Server和Oracle数据库中的错误与异常处理
第7篇 SQL在数据库开发和管理中的应用(第26章~第29章)
第26章 嵌入式SQL。介绍了嵌入式SQL的基本概念、原理、与高级语言的通信方法、动态SQL技术,还详细介绍了利用C语言中嵌入SQL语句在VC++、VC#中访问SQL Server和Oracle的连接访问实现过程
第27章 数据库的存取访问技术。介绍了数据库系统的开发环境、应用系统的典型结构、各种数据库软件开发平台和工具、MS VS.NET和J2EE两种流行的开发平台的比较、数据库的连接访问技术,包括OLE-DB、ODBC、JDBC、ADO、ADO.NET。还详细介绍了用ASP、ASP.NET、VB.NET、VC#.NET与TEXT、Excel文件以及Access、SQL Server、Oracle数据库连接的访问方法
第28章 用SQL管理SQL Server数据库。介绍了用SQL结合SQL Server数据库的系统表和系统存储过程管理SQL Server数据库及服务器的属性、数据库对象以及账户、角色和权限等内容
第29章 用SQL管理Oracle数据库。介绍了用SQL管理Oracle数据库及服务器的属性、数据库连接、会话、进程、表空间和数据文件、数据表、索引、存储过程、存储函数、触发器、用户、角色、权限、事务与锁和内存参数等内容
第8篇 附录(附录A~附录E)
为便于读者对常用资料的查阅,特将下列内容作为附录内容进行了收集和整理:
SQL常用语句分类索引
SQL、SQL Server、Oracle常用函数分类对照索引
SQL Server常用系统表和系统存储过程索引
Oracle数据库常用视图索引
Oracle数据库系统环境变量参数
技术支持
希赛是中国领先的互联网技术和IT教育公司,在互联网服务、图书出版、人才培养方面,希赛始终保持IT业界的领先地位。希赛对国家信息化建设和软件产业化发展具有强烈的使命感,利用希赛网(www.csai.cn)强大的平台优势,加强与促进IT人士之间的信息交流和共享,实现IT价值。“希赛,影响IT”是全体希赛人不懈努力和追求的目标!
希赛网以希赛顾问团为技术依托,是中国最大的IT资源平台。希赛IT教育研发中心是希赛公司下属的一个专门从事IT教育、教育产品开发、教育书籍编写的部门,在IT教育方面具有极高的权威性。在国家权威机构发布的《计算机图书出版市场综述》中,称赞希赛丛书为读者所称道,希赛的图书已经形成品牌,在读者心目中具有良好的形象。
有关本书的意见反馈和咨询,读者可在学赛网社区“书评在线”版块中与作者进行交流,读者也可就书中的问题提出意见,由于作者水平有限,错误在所难免,望读者不吝赐教。
本书由黄少华和陈翠娥编着,邓子云主审。同时,希赛公司梁赛编辑提供了许多的帮助。还有刘健等几位好友也提供了支持和很好的参考意见,在此一并表示衷心的感谢。
编者 着
2008年8月
② Oracle把视图查询权限给某用户的SQL是什么
oracle给某用户授权试图查询的SQL语句为:
SQL> grant select on v_$mystat to test1;
Grant succeeded.
这样 test1用户就拥有了 查询v$mystat视图的权限了
收回权限命令:
SQL>revoke select on v_$mystat from test1;
(2)oraclesql语句授权扩展阅读
oracle 的用户管理的常用命令介绍:
1、创建用户:create user 用户名 identified by 密码;
SQL> create user scw identified by 123;
2、修改其他用户密码 需要权限;
SQL> conn system/123;
已连接。
SQL> alter user scw identified by 123;
3、赋予用户连接数据库的权限:
SQL>grant create session to zhansgan;
4、查看当前用户所有表的表名:
SQL> select table_name from user_tables;
③ 给oracle用户授权sql语句
可以查看一下此用户的权限,除了connect权限外,至少要有create table的权限,给用户授权
希望采纳
④ oracle SQL语句中怎么样调用存储过程
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL/SQL程序。
PL/SQL的优点
从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有的数据管理的便利性,那么你很难想象ORACLE缺了PL/SQL的情形。PL/SQL 不是一个独立的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,sql语句执行者处理单个的sql语句,PL/SQL引擎处理PL/SQL程序块。当PL/SQL程序块在PL/SQL引擎处理时,ORACLE服务器中的SQL语句执行器处理pl/sql程序块中的SQL语句。
PL/SQL的优点如下:
. PL/SQL是一种高性能的基于事务处理的语言,能运行在任何ORACLE环境中,支持所有数据处理命令。通过使用PL/SQL程序单元处理SQL的数据定义和数据控制元素。
. PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有ORACLE对象类型
. PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。
. 可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序的安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的能力。
. PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何ORACLE能够运行的操作系统都是非常便利的
. 对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在网络环境下这就意味作每一个独立的调用都必须被oracle服务器处理,这就占用大量的服务器时间,同时导致网络拥挤。而PL/SQL是以整个语句块发给服务器,这就降低了网络拥挤。
PL/SQL块结构
PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个PL/SQL 程序包含了一个或多个逻辑块,每个块都可以划分为三个部分。与其他语言相同,变量在使用之前必须声明,PL/SQL提供了独立的专门用于处理异常的部分,下面描述了PL/SQL块的不同部分:
声明部分(Declaration section)
声明部分包含了变量和常量的数据类型和初始值。这个部分是由关键字DECLARE开始,如果不需要声明变量或常量,那么可以忽略这一部分;需要说明的是游标的声明也在这一部分。
执行部分(Executable section)
执行部分是PL/SQL块中的指令部分,由关键字BEGIN开始,所有的可执行语句都放在这一部分,其他的PL/SQL块也可以放在这一部分。
异常处理部分(Exception section)
这一部分是可选的,在这一部分中处理异常或错误,对异常处理的详细讨论我们在后面进行。
PL/SQL块语法
[DECLARE]
---declaration statements
BEGIN
---executable statements
[EXCEPTION]
---exception statements
END
PL/SQL块中的每一条语句都必须以分号结束,SQL语句可以使多行的,但分号表示该语句的结束。一行中可以有多条SQL语句,他们之间以分号分隔。每一个PL/SQL块由BEGIN或DECLARE开始,以END结束。注释由--标示。
PL/SQL块的命名和匿名
PL/SQL程序块可以是一个命名的程序块也可以是一个匿名程序块。匿名程序块可以用在服务器端也可以用在客户端。
命名程序块可以出现在其他PL/SQL程序块的声明部分,这方面比较明显的是子程序,子程序可以在执行部分引用,也可以在异常处理部分引用。
PL/SQL程序块可背独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这些存储的PL/SQL程序块。ORACLE提供了四种类型的可存储的程序:
. 函数
. 过程
. 包
. 触发器
函数
函数是命名了的、存储在数据库中的PL/SQL程序块。函数接受零个或多个输入参数,有一个返回值,返回值的数据类型在创建函数时定义。定义函数的语法如下:
FUNCTION name [{parameter[,parameter,...])] RETURN datatypes IS
[local declarations]
BEGIN
execute statements
[EXCEPTION
exception handlers]
END [name]
过程
存储过程是一个PL/SQL程序块,接受零个或多个参数作为输入(INPUT)或输出(OUTPUT)、或既作输入又作输出(INOUT),与函数不同,存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用,定义存储过程的语法如下:
PROCEDURE name [(parameter[,parameter,...])] IS
[local declarations]
BEGIN
execute statements
[EXCEPTION
exception handlers ]
END [name]
包(package)
包其实就是被组合在一起的相关对象的集合,当包中任何函数或存储过程被调用,包就被加载入内存中,包中的任何函数或存储过程的子程序访问速度将大大加快。
包由两个部分组成:规范和包主体(body),规范描述变量、常量、游标、和子程序,包体完全定义子程序和游标。
触发器(trigger)
触发器与一个表或数据库事件联系在一起的,当一个触发器事件发生时,定义在表上的触发器被触发。
变量和常量
变量存放在内存中以获得值,能被PL/SQL块引用。你可以把变量想象成一个可储藏东西的容器,容器内的东西是可以改变的。
声明变量
变量一般都在PL/SQL块的声明部分声明,PL/SQL是一种强壮的类型语言,这就是说在引用变量前必须首先声明,要在执行或异常处理部分使用变量,那么变量必须首先在声明部分进行声明。
声明变量的语法如下:
Variable_name [CONSTANT] databyte [NOT NULL][:=|DEFAULT expression]
注意:可以在声明变量的同时给变量强制性的加上NOT NULL约束条件,此时变量在初始化时必须赋值。
给变量赋值
给变量赋值有两种方式:
. 直接给变量赋值
X:=200;
Y=Y+(X*20);
. 通过SQL SELECT INTO 或FETCH INTO给变量赋值
SELECT SUM(SALARY),SUM(SALARY*0.1)
INTO TOTAL_SALARY,TATAL_COMMISSION
FROM EMPLOYEE
WHERE DEPT=10;
常量
常量与变量相似,但常量的值在程序内部不能改变,常量的值在定义时赋予,,他的声明方式与变量相似,但必须包括关键字CONSTANT。常量和变量都可被定义为SQL和用户定义的数据类型。
ZERO_VALUE CONSTANT NUMBER:=0;
这个语句定了一个名叫ZERO_VALUE、数据类型是NUMBER、值为0的常量。
标量(scalar)数据类型
标量(scalar)数据类型没有内部组件,他们大致可分为以下四类:
. number
. character
. date/time
. boolean
⑤ Oracle用户创建的SQL语句
创建用户名为tiger的用户,密码:tiger
在命令窗口里:
create user tiger identified by "tiger"
此时的tiger没有任何权限,甚至不能 登录到 oracle数据库
要用dba权限的用户为 tiger 赋予权限,赋予会话的权限(就是能连接到oracle)
grant session to tiger;
赋予能创建对象的权限
grant resource to tiger;
ok! 就可以用tiger 登录了
conn tiger/tiger;
⑥ oracle中有没有赋予一个用户查询另一个用户所有表的权限
你好:下面语句中有你需要的这个权限:select
any
table(如果针对单个用户的表话,这个没有,只能一个表一个表的授权)
创建用户并授权
上接第一步。
在SQL>后面输入创建用户的语句:
create
user
vpetl
identified
by
vpetl
default
tablespace
TBS_ETL_DATA;
回车,出现“User
created.”表示用户创建成功。
在SQL>后面输入给用户授权的语句:
grant
connect,resource,alter
system,debug
connect
session,select
any
table,delete
any
table,drop
any
table,alter
any
table
to
vpetl;
回车,出现“Grant
succeeded.”表示给用户授权成功。
在SQL>后面输入给用户授权的语句:
grant
execute
on
DBMS_LOCK
to
vpetl;
回车,出现“Grant
succeeded.”表示给用户授权成功。
在SQL>后面输入给用户授权的语句:
grant
select
on
v_$session
to
vpetl;
回车,出现“Grant
succeeded.”表示给用户授权成功。
在SQL>后面输入给用户授权的语句:
grant
select
on
v_$ACCESS
to
vpetl;
回车,出现“Grant
succeeded.”表示给用户授权成功。
在SQL>后面输入给用户授权的语句:
grant
alter
system
to
vpetl;
回车,出现“Grant
succeeded.”表示给用户授权成功。
在SQL>后面输入给用户授权的语句:
grant
insert
any
table,update
any
table
to
vpetl;
回车,出现“Grant
succeeded.”表示给用户授权成功。