SQL語言特點有哪些呢
首先,盡管查詢是設計SQL的最初目的,檢索數據也仍然是其最重要的功能之一,但SQL決不僅僅是一個查詢工具。
SQL用于控制DBMS提供給用戶的所有功能,包括:數據定義(Data definition):SQL可用于定義被存放數據的結構和組織,以及數據項之間的關系。 數據檢索(Data retrieval):SQL能使用戶或應用程序從數據庫中檢索數據并使用這些數據。
數據操縱(Data manipulation):用戶或應用程序通過SQL更改數據庫,如增加新數據,刪除舊數據,修改已存入的數據等。 存取控制(Access control):SQL可用來限制用戶檢索,增加和修改數據的權限,一保護所存儲的數據不被非法存取。
數據共享(Data sharing):SQL可用于調整數據讓并發用戶共享,以保證用戶之間彼此不受影響。 數據完整性(Data integrity):SQL能對數據庫的完整性條件作出規定,以使其不會因為修改紊亂或系統出錯而被破壞。
第二,SQL并不是一種像COBOL,FORTRAN和C語言等那樣完整的計算機語言。 SQL沒有用于條件測試的IF語句,沒有用于程序分支的GOTO語句,也沒有用于循環的DO或FOR語句。
確切地說,SQL是一種數據庫子語言(sublanguage)。也稱為第四代語言(4GL),一種非過程語言。
SQL語言簡潔,為完成其核心功能只用了6個動詞:SELECT、CREATE、INSERT、UPDATE、DELETE、GRANT(REVOKE)。 ANSI SQL的類型 目前的ANSI SQL標準認可四種SQL語句的方法。
采用何種方法依賴于應用程序編程環境:交互式SQL(Interactive SQL):類似于Forpro,以命令行形式執行SQL語句。 嵌入式SQL(Embedded SQL):通過在SQL語句前假如一個關鍵字來執行SQL語句。
例如C中的EXEC SQL。 模塊SQL(Module SQL):允許創建獨立于3GL源代碼的編譯SQL語句,然后把編譯好的目標模塊連入可執行程序。
SQL模塊類似于Visual Basic代碼模塊,模塊中包含變量說明和用來容納查詢結果集合的臨時表,可以把變元值從3GL傳遞給SQL模塊說明的過程參數。 在數據庫服務器上執行預編譯查詢的存儲過程有許多與模塊SQL共同的性質。
動態SQL(Dynamic SQL):可以創建在編寫語句時無法預測其內容的SQL語句(前面的多種SQL類型屬于靜態SQL類)。例如:讀者想設計一個可以針對多種數據庫處理查詢的Visual Basic應用程序。
動態SQL可以以字符串形式向數據庫傳送查詢。例如,可以向數據庫傳送一個查詢并獲得詳細的信息,這些信息來自描述數據庫表及表中字段的數據庫字典。
在知道了數據庫結構之后,應用程序用戶可以創建向查詢添加正確字段名的定制查詢。 SQL的作用 SQL本身不是一個數據庫管理系統,也不是獨立的產品。
事實上,SQL是數據庫管理系統的一個組成部分,是用戶和DBMS通信的語言和工具。圖4。
2 典型DBMS的組成SQL有下列作用:SQL是一種交互式查詢語言 SQL是一種數據庫編程語言 SQL是一種數據庫管理語言 SQL是一種客戶機/服務器語言 SQL是一種分布式數據庫語言 SQL是一種數據庫網關語言。
SQL具有哪些特點
SQL語言集數據查詢(data query)、數據操縱(data manipulation)、數據定義(data definition)和數據控制(data control)功能于一體,充分體現了關系數據語言的特點和優點。其主要特點包括:
1.綜合統一
SQL語言集數據定義語言DDL、數據操縱語言DML、數據控制語言DCL的功能于一體,語言風格統一,可以獨立完成數據庫生命周期中的全部活動,包括定義關系模式、錄入數據以建立數據庫、查詢、更新、維護、數據庫重構、數據庫安全性控制等一系列操作要求,這就為數據庫應用系統開發提供了良好的環境,例如用戶在數據庫投入運行后,還可根據需要隨時地逐步地修改模式,并不影響數據庫的運行,從而使系統具有良好的可擴充性。
2.高度非過程化
非關系數據模型的數據操縱語言是面向過程的語言,用其完成某項請求,必須指定存取路徑。而用SQL語言進行數據操作,用戶只需提出“做什么”,而不必指明“怎么做”,因此用戶無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統自動完成。這不但大大減輕了用戶負擔,而且有利于提高數據獨立性。
3.面向集合的操作方式
SQL語言采用集合操作方式,不僅查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。
非關系數據模型采用的是面向記錄的操作方式,任何一個操作其對象都是一條記錄。例如查詢所有平均成績在80分以上的學生姓名,用戶必須說明完成該請求的具體處理過程,即如何用循環結構按照某條路徑一條一條地把滿足條件的學生記錄讀出來。
4.以同一種語法結構提供兩種使用方式
SQL語言既是自含式語言,又是嵌入式語言。
作為自含式語言,它能夠獨立地用于聯機交互的使用方式,用戶可以在終端鍵盤上直接鍵入SQL命令對數據庫進行操作。作為嵌入式語言,SQL語句能夠嵌入到高級語言(例如C、PB)程序中,供程序員設計程序時使用。而在兩種不同的使用方式下,SQL語言的語法結構基本上是一致的。這種以統一的語法結構提供兩種不同的使用方式的作法,為用戶提供了極大的靈活性與方便性。
SQL語言的特點是什么
用戶想要檢索數據庫中的數據時,就通過 SQL 語言發出請求,接著 DBMS (數據庫管理系統。譬如:SQL Server、Oracle)對該 SQL 請求進行處理并檢索所要求的數據,最后將其返回給用戶,此過程被稱作為數據庫查詢,這也就是數據庫查詢語言這一名稱的由來。
SQL 并不是象 C、COBOL 和 Fortran 語言那樣的完整的計算機語言。SQL 沒有用于條件測試的 IF 語句,也沒有用于程序分支的 Goto 語句以及循環語句 For 或 Do。確切的講,SQL 是一種數據庫子語言,SQL 語句可以被嵌入到另一種語言中,從而使其具有數據庫存取功能。SQL 也非嚴格的結構式語言,它的句法更接近英語語句,因此易于理解,大多數 SQL 語句都是直述其意,讀起來就象自然語言一樣明了。 SQL 還是一種交互式查詢語言,允許用戶直接查詢存儲數據,利用這一交互特性,用戶可以在很短的時間內回答相當復雜的問題,而同樣問題若讓程序員編寫相應的報表程序則可能要用幾個星期甚至更長時間。
數據庫是指長期儲存在計算機內的、有組織的、可共享的數據集合。
數據庫包含關系數據庫、面向對象數據庫及新興的XML數據庫等多種,目前應用最廣泛的是關系數據庫,若在關系數據庫基礎上提供部分面向對象數據庫功能的對象關系數據庫。在數據庫技術的早期還曾經流行過層次數據庫與網狀數據庫,但這兩類數據庫目前已經極少使用。