① 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.」表示給用戶授權成功。