Select語句是什么
看看這個對你理解select 查詢語句有幫助SQL全稱是“結構化查詢語言(Structured Query Language)”,最早的是IBM的圣約瑟研究實驗室為其關系數據庫管理系統SYSTEM R開發的一種查詢語言,它的前身是SQUARE語言。
SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應用。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的數據庫管理系統,還是像Visual Foxporo,PowerBuilder這些微機上常用的數據庫開發系統,都支持SQL語言作為查詢語言。
Structured Query Language包含4個部分: 數據查詢語言DQL-Data Query Language SELECT 數據操縱語言DQL-Data Manipulation Language INSERT, UPDATE, DELETE 數據定義語言DQL-Data Definition Language CREATE, ALTER, DROP 數據控制語言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK SQL的歷史 在70年代初,*首先提出了關系模型。70年代中期,IBM公司在研制 SYSTEM R關系數據庫管理系統中研制了SQL語言,最早的SQL語言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。
1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS數據庫系統中也實現了SQL。 1986年10月,美國ANSI采用SQL作為關系數據庫管理系統的標準語言(ANSI X3. 135-1986),后為國際標準化組織(ISO)采納為國際標準。
1989年,美國ANSI采納在ANSI X3.135-1989報告中定義的關系數據庫管理系統的SQL標準語言,稱為ANSI SQL 89, 該標準替代ANSI X3.135-1986版本。該標準為下列組織所采納: ● 國際標準化組織(ISO),為ISO 9075-1989報告“Database Language SQL With Integrity Enhancement” ● 美國聯邦政府,發布在The Federal Information Processing Standard Publication(FIPS PUB)127 目前,所有主要的關系數據庫管理系統支持某些形式的SQL語言, 大部分數據庫打算遵守ANSI SQL89標準。
SQL的優點 SQL廣泛地被采用正說明了它的優點。它使全部用戶,包括應用程序員、DBA管理員和終端用戶受益非淺。
(1) 非過程化語言 SQL是一個非過程化的語言,因為它一次處理一個記錄,對數據提供自動導航。SQL允許用戶在高層的數據結構上工作,而不對單個記錄進行操作,可操作記錄集。
所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。
SQL不要求用戶指定對數據的存放方法。 這種特性使用戶更易集中精力于要得到的結果。
所有SQL語句使用查詢優化器,它是RDBMS的一部分,由它決定對指定數據存取的最快速度的手段。查詢優化器知道存在什么索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什么類型的索引。
(2) 統一的語言 SQL可用于所有用戶的DB活動模型,包括系統管理員、數據庫管理員、 應用程序員、決策支持系統人員及許多其它類型的終端用戶。基本的SQL 命令只需很少時間就能學會,最高級的命令在幾天內便可掌握。
SQL為許多任務提供了命令,包括: ● 查詢數據 ● 在表中插入、修改和刪除記錄 ● 建立、修改和刪除數據對象 ● 控制對數據和數據對象的存取 ● 保證數據庫一致性和完整性 以前的數據庫管理系統為上述各類操作提供單獨的語言,而SQL 將全部任務統一在一種語言中。 (3) 是所有關系數據庫的公共語言 由于所有主要的關系數據庫管理系統都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉到另一個。
所有用SQL編寫的程序都是可以移植的。
什么是Select語句
1、最基本的Select語句: Select [Top n [With Ties]] From Order by [, 。
。
n] 1)*(星號)表示所有列,在選擇特定列時可以在結果集中更改顯示的列名 Select * from Products Select ProductID,ProductName,CategoryID,UnitPrice From Products Select ProductID As ID,ProductName As Name,CategoryID,UnitPrice As Price From Products 2)在結果集中可以使用表達式計算列 Select ProductID,ProductName,CategoryID,UnitPrice, OutPrice=UnitPrice*1。 2 From Products 3)Order by對結果集中的列進行排序,如果倒序,加DESC,如果是多列,選按第一列排序,如果第一列相同,按第二列排序,依此類推 Select ProductID,ProductName,CategoryID,UnitPrice From Products Order by CategoryID,Unitprice Desc 4)Top n:顯示結果集中的前n行,使用Top n時可以不存在Order by;Top n With Ties:如果第n行后存在與第n行相等的值,則也顯示這些行,使用Top n With Ties時,一定要有Order by。
Select Top 12 ProductID,ProductName,CategoryID,UnitPrice From Products Select Top 12 With Ties ProductID,ProductName,CategoryID,UnitPrice From Products Order By UnitPrice 2、where條件子句: 使用where時后接條件表達式,條件表達式可以是: 1)使用比較操作符連接的條件 2)使用邏輯操作符連接的條件 3)使用Between。 。
。and連接的條件: where c betweeb v1 and v2相當于where c>=v1 and c進行分類匯總 Select sum(UnitPrice) as [SUM] From Products Select CategoryID, sum(UnitPrice) as [SUM] From Products group by CategoryID 2)查詢的列必須是在Group By中出現的類 3)必須按條件語句(where)、分類匯總語句(group by)、排序語句(order by)的順序查詢。
系統也將按照條件語句(where)、分類匯總語句(group by)、排序語句(order by)的順序執行。 Select CategoryID,sum(UnitPrice) as [SUM] From Products Where ProductID@sum Select * from Where UnitPrice>(Select sum(UnitPrice) from Products) 2)做為多值使用:要求查詢的結果為單列,與In操作符搭配使用。
Select p。* from Products p join Categories c on p。
CategoryID=c。CategoryID where CategoryName like 'c%' Select * from Products where CategoryID in (Select CategoryID from Categories where CategoryName like 'c%') 3)做為結果集(也可以簡單地理解為一個“表”)使用。
Select ProductID,ProductName,UnitPrice from ( Select ProductID,ProductName,UnitPrice Row_Number() over(order by UnitPrice) as RowNumber From Prodcuts ) as t where RowNumber between 41 and 50。