資料庫語言

資料庫語言

SQL是高級的非過程化程式語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統可以使用相同的SQL語言作為數據輸入與管理的接口。

基本介紹

  • 中文名:資料庫語言
  • 外文名:database language
  • 使用:SQL語言
  • 操作對象:記錄集合
  • 國際標準:SQL標準
簡介,國際標準,標準語句,類型,

簡介

1970年,美國IBM研究中心的E.F.Codd連續發表多篇論文,提出關係模型。1972年,IBM公司開始研製實驗型關係資料庫管理系統SYSTEM R,為其配製的查詢語言稱為SQUARE(Specifying Queries As Relational Expression)語言,在該語言中使用了較多的數學符號。1974年,Boyce和Chamberlin把SQUARE修改為SEQUEL(Structured English QUEry Language)語言。這兩個語言在本質上是相同的,但後者去掉了數學符號,採用英語單詞表示和結構式的語法規則,看起來很像英語句子,用戶比較歡迎這種形式的語言。後來SEQUEL簡稱為SQL(Structured Query Language)語言,即“結構化查詢語言”。
在認識到關係模型的諸多優越性後,許多廠商紛紛研製關係資料庫管理系統(例如:Oracle、DB2、Sybase等),這些資料庫管理系統的操縱語言也以SQL參照。1986年10月美國國家標準化協會(ANSI)發布了X3.135-1986《資料庫語言SQL》,1987年6月國際標準化組織(ISO)採納其為國際標準。我們稱其為“SQL-86”標準。1989年10月,ANSI又頒布了增強完整性特徵的“SQL-89”標準。隨後,ISO對該標準進行了大量的修改和擴充,在1992年8月發布了標準化檔案“ISO/IEC 9075:1992《資料庫語言SQL》”,我們稱其為SQL92或SQL2標準。1999年ISO又頒布了“ISO/IEC 9075:1999《資料庫語言SQL》”標準化檔案,我們稱其為SQL99或SQL3標準。
資料庫語言以記錄集合作為操作對象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語句可以嵌套,這使他具有極大的靈活性和強大的功能,在多數情況下,在其他語言中需要一大段程式實現的功能只需要一個SQL語句就可以達到目的,這也意味著用SQL語言可以寫出非常複雜的語句。
結構化查詢語言(Structured Query Language)最早是IBM的聖約瑟研究實驗室為其關係資料庫管理系統SYSTEM R開發的一種查詢語言,它的前身是SQUARE語言。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言得到了廣泛的套用。如今無論是像OracleSybase、Informix、SQL Server這些大型的資料庫管理系統,還是像Visual Foxpro、PowerBuilder這些PC上常用的資料庫開發系統,都支持SQL語言作為查詢語言。

國際標準

美國國家標準局(ANSI)與國際標準化組織(ISO)已經制定了SQL標準。ANSI是一個美國工業和商業集團組織,負責開發美國的商務和通訊標準。ANSI同時也是ISO和International Electrotechnical Commission(IEC)的成員之一。ANSI 發布與國際標準組織相應的美國標準。1992年,ISO和IEC發布了SQL國際標準,稱為SQL-92。ANSI隨之發布的相應標準是ANSI SQL-92。ANSI SQL-92有時被稱為ANSI SQL。儘管不同的關係資料庫使用的SQL版本有一些差異,但大多數都遵循 ANSI SQL 標準。SQL Server使用ANSI SQL-92的擴展集,稱為T-SQL,其遵循ANSI制定的 SQL-92標準。

標準語句

--數據操作
SELECT --從資料庫表中檢索數據行和列
INSERT --向資料庫表添加新數據行
DELETE --從資料庫表中刪除數據行
UPDATE --更新資料庫表中的數據
--數據定義
CREATE TABLE --創建一個資料庫表
DROP TABLE --從資料庫中刪除表
ALTER TABLE --修改資料庫表結構
CREATE VIEW --創建一個視圖
DROP VIEW --從資料庫中刪除視圖
CREATE INDEX --為資料庫表創建一個索引
DROP INDEX --從資料庫中刪除索引
CREATE PROCEDURE --創建一個存儲過程
DROP PROCEDURE --從資料庫中刪除存儲過程
CREATE TRIGGER --創建一個觸發器
DROP TRIGGER --從資料庫中刪除觸發器
CREATE SCHEMA --向資料庫添加一個新模式
DROP SCHEMA --從資料庫中刪除一個模式
CREATE DOMAIN --創建一個數據值域
ALTER DOMAIN --改變域定義
DROP DOMAIN --從資料庫中刪除一個域
--數據控制
GRANT --授予用戶訪問許可權
DENY --拒絕用戶訪問
REVOKE --解除用戶訪問許可權
--事務控制
COMMIT --結束當前事務
ROLLBACK --回滾當前事務
SET TRANSACTION --定義當前事務數據訪問特徵
--程式化SQL
DECLARE --為查詢設定游標
EXPLAN --為查詢描述數據訪問計畫
OPEN --檢索查詢結果打開一個游標
FETCH --檢索一行查詢結果
CLOSE --關閉游標
PREPARE --為動態執行準備SQL 語句
EXECUTE --動態地執行SQL 語句
DESCRIBE --描述準備好的查詢
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
---必須以@@開頭
--IF ELSE
declare @x int @y int @z int select @x = 1 @y = 2 @z=3 if @x > @y
print 'x > y' --列印字元串'x > y' else if @y > @z print 'y > z' else print 'z > y'
--CASE use pangu
update employee set e_wage = case
when job_level = ‟1‟ then e_wage*1.08 when job_level = ‟2‟ then e_wage*1.07 when job_level = ‟3‟ then e_wage*1.06 else e_wage*1.05 end
--WHILE CONTINUE BREAK declare @x int @y int @c int select @x = 1 @y=1while @x < 3 begin
print @x --列印變數x 的值 while @y < 3 begin
select @c = 100*@x + @y print @c --列印變數c 的值 select @y = @y + 1 end
select @x = @x + 1 select @y = 1 end
--WAITFOR
--例 等待1 小時2 分零3 秒後才執行SELECT 語句 waitfor delay ‟01:02:03‟ select * from employee
--例 等到晚上11 點零8 分後才執行SELECT 語句 waitfor time ‟23:08:00‟ select * from employee
***SELECT***
select *(列名) from table_name(表名) where column_name operator value ex:(宿主)
select * from stock_information where stockid = str(nid) stockname = 'str_name'
stockname like '% find this %'
stockname like '[a-zA-Z]%' --------- ([]指定值的範圍) stockname like '[^F-M]%' --------- (^排除指定範圍)
--------- 只能在使用like關鍵字的where子句中使用通配符) or stockpath = 'stock_path' or stocknumber < 1000 and stockindex = 24 not stock*** = 'man'
stocknumber between 20 and 100 stocknumber in(10,20,30)

類型

數據定義語言(DDL),例如:CREATE、DROP、ALTER等語句。
數據操作語言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語句。
※ 數據查詢語言(DQL),例如:SELECT語句。(一般不會單獨歸於一類,因為只有一個語句)。
數據控制語言(DCL),例如:GRANT、REVOKE等語句。
※事務控制語言(TCL),例如:COMMIT、ROLLBACK等語句。
SQL語言包括四類種主要程式設計語言類別的語句:數據定義語言(DDL),數據操作語言(DML)及數據控制語言(DCL)還有事務控制語言(TCL)。

相關詞條

熱門詞條

聯絡我們