sql的核心是
A. Select查詢命令的作用是什麼
查詢是sql語言的核心,用於表達SQL查詢的select查詢命令是功能最強也是最為復雜的SQL語句,它的作用就是從資料庫中檢索數據,並將查詢結果返回給用戶。 Select語句激歷由select子句(查詢內容)、from子句(查詢對象)、where子旬(查詢條件)、order by子句(排序方式)、group by子句(分組方式)等組成。x0dx0ax0dx0a結構化查詢語言(Structured Query Language)簡稱SQL(發音:/ˈes kjuː ˈel/ "S-Q-L"),是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名明配搜。x0dx0a結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為數據輸入與管理的介面。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。x0dx0a1986年10月,美國國家標准協會對SQL進行規范後,以此作為關系式資料庫管理系統的標准語言(ANSI X3. 135-1986),1987年得到國際賣斗標准組織的支持下成為國際標准。不過各種通行的資料庫系統在其實踐過程中都對SQL規范作了某些編改和擴充。所以,實際上不同資料庫系統之間的SQL不能完全相互通用。
B. 怎樣從簡單資料庫用sql語句查詢數據
查詢是SQL語言的核心,SQL語言只提供唯一一個用於資料庫查詢的語句,即SELECT語句。用於表達SQL查詢的SELECT語句是功能最強也是最復雜的SQL語句,它提供了很多選項和使用方法。SELECT語句的命令格式如下:
SELECT查詢語句是由七個子句構成,其中SELECT和FROM子句是一個完整SELECT查詢語句必須要有的,其它的子句可以根據具體需要任選。上述的每個子句功能說明如下:
(1)SELECT子句
列出所有要求SELECT語句進行檢索的數據項,這些項可能取自資料庫中關系表的列,也可以是SQL在執行查詢時進行計算的表達式。這里的ALL和DISTINCT選項,表示查詢出的結果中是否容許有內容重復的行出現,預設時是ALL項,表示容許有重復的行出現,而*則表示查詢出所指定關系表中所有的列。
(2)FROM子句
FROM子句列出包含所要查詢的數據關系表。
(3)WHERE子句
WHERE子句告訴SQL只查詢某些關系表中滿足一定要求的行的數據,查詢要求由WHERE子句中的查詢條件確定。
(4)GROUP BY子句
GROUP BY子句指定當前查詢是匯總查詢,即不是對根據每行產生一個查詢結果,而是對相似的行進行分組,然後再對每組產生一個匯總查詢的結果。
(5)HAVING子句
HAVING子句告訴SQL只對由GROUP BY所得到的某些行組的結果進行過濾,選擇出滿足分組條件的分組。
(6)ORDER BY子句
ORDER BY子句確定是否將查詢出的結果按一列或多列中的數據進行排序,預設時是不排序的。
(7)INTO子句
INTO子句確定是否將查詢出的結果存入一張新的關系表中,預設時只將查詢出現的結果顯示在屏幕上。這是非標准SELECT語句中的子句,但目前絕大多數實際應用的SQL資料庫系統的SQL語言提供了這一選項。
下面是一些使用SELECT查詢語句進行數據查詢的示例。
例1:列出銷售額超過6000元的銷售人員的姓名、銷售目標和超過銷售目標的銷售額。
SELECT NAME,QUOTA,(SALES_QUOTA)
FROM SALESREPS
WHERE SALES>6000
例2:查出1999年最後一個季度的訂單情況。
SELECT ORDER_NUM,ORDER_DATE,PRODUCT,AMOUNT
FROM ORDERS
WHERE ORDER_DATE BETWEEN "01-OCT-99" AND "31-DEC-99"
例3:查出名稱是以ABC開頭的產品訂單情況。
SELECT ORDER_NUM,ORDER_DATE,PRODUCT,AMOUNT
FROM ORDERS
WHERE PRODUCT LIKE "ABC%"
例4:列出所有的銷售處,按區域名字母順序排列。
SELECT CITY,REGION
FROM OFFICE
ORDER BY REGION ASC
在這里ASC表示升序,如果表示降序可用DESC。
例5:列出每個銷售人員以及他們工作的城市和區域的情況。
SELECT NAME,CITY,REGION
FROM SALESREPS,OFFICE
WHERE REP_OFFICE=OFFICE
例6:查出有多少銷售員的銷售額超過了其目標額,以及他們的銷售額總和。
SELECT COUNT(NAME),SUM(SALES)
FROM SALESREPS
WHERE SALES>QUOTA
C. SQL語言功能它按其功能分為那幾個部分
SQL語言功能按其功能分為數據定義、數據操縱和數據控制三個部分。
1、SQL數據定義功能:能夠定義資料庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式又叫做視圖(View),全局模式簡稱模式( Schema),內模式由系統根據資料庫模式自動實現,一般無需用戶過問。
2、SQL數據操縱功能:包括對基本表和視圖的數據插入、刪除和修改,特別是具有很強的數據查詢功能。
3、SQL的數據控制功能:主要是對用戶的訪問許可權加以控制,以保證系統的安全性。
(3)sql的核心是擴展閱讀
SQL的核心部分相當於關系代數,但又具有關系代數所沒有的許多特點,如聚集、資料庫更新等。綜合的、通用的、功能極強的關系資料庫語言,其特點是:
1、數據描述、操縱、控制等功能一體化。
2、兩種使用方式,統一的語法結構。SQL有兩種使用方式。一是聯機交互使用,這種方式下的SQL實際上是作為自含型語言使用的。另一種方式是嵌入到某種高級程序設計語言(如C語言等)中去使用。前一種方式適合於非計算機專業人員使用,後一種方式適合於專業計算機人員使用。盡管使用方式不向,但所用語言的語法結構基本上是一致的。
3、高度非過程化。SQL是一種第四代語言(4GL),用戶只需要提出「干什麼」,無須具體指明「怎麼干」,像存取路徑選擇和具體處理操作等均由系統自動完成。
4、語言簡潔,易學易用。盡管SQL的功能很強,但語言十分簡潔,核心功能只用了9個動詞。SQL的語法接近英語口語,所以,用戶很容易學習和使用。
D. SQL語句完成核心功能的九個動詞是什麼
1、SELECT:查詢出數據,也可用於變數賦值
2、CREATE:創建
3、DROP:刪除
4、ALTER:修改
5、INSERT:插入
6、UPDATE:更新
7、DELETE:刪除
8、Grant:授權
9、revoke:回收許可權
(4)sql的核心是擴展閱讀
語法
SQL語言分成了幾種要素,包括:
1、子句,是語句和查詢的組成成分。(在某些情況下,這些都是可選的。)[14]
2、表達式,可以產生任何標量值,或由列和行的資料庫表
3、謂詞,給需要評估的SQL三值邏輯(3VL)(true/false/unknown)或布爾真值指定條件,並限制語句和查詢的效果,或改變程序流程。
4、查詢,基於特定條件檢索數據。這是SQL的一個重要組成部分。
5、語句,可以持久地影響綱要和數據,也可以控制資料庫事務、程序流程、連接、會話或診斷。
6、SQL語句也包括分號(";")語句終結符。盡管並不是每個平台都必需,但它是作為SQL語法的標准部分定義的。
7、無意義的空白在SQL語句和查詢中一般會被忽略,更容易格式化SQL代碼便於閱讀。
標准化
各種資料庫的SQL方言通常不可移植,特別是在日期時間語法、字元串連接、NULL、比較的大小寫敏感方面。只有PostgreSQL與Mimer SQL努力遵從標准。Oracle資料庫的DATE行為如同DATETIME,缺少TIMEtype)。
SQL在1986年被ANSI標准化,1987年被ISO標准化。由ISO/IEC JTC 1, Information technology, Subcommittee SC 32, Data management and interchange維護。標准名稱通常為如下模式:ISO/IEC 9075-n:yyyy Part n: title。
E. ASP基礎入門:資料庫查詢語言(1)
原定計劃從本篇開始就要給大家介紹 ASP 內建的 ActiveX
組件,但是考慮到我們在往後的簡返明學習中將會接觸到大量的資料庫查詢,因此作者臨時決定花一到兩篇的篇幅向大家簡要介紹一些資料庫查詢語言的基本知識,這其實也是學習
ASP
所必須掌握的一門知識。是否能夠靈活地運用資料庫查詢語言,將直接關繫到
ASP 程序的執行效率等一系列問題,所以請各位務必重視。
相信很多朋友都聽說過 SQL
這個名字,如果你是計算機方面的行家,SQL
的大名一定是如雷貫耳。那麼 SQL 究竟是什麼呢?SQL 一詞實際上是
"Structured Query Language"
結構式查詢語言的縮寫,是用於對存放在計算機資料庫中的數據進行組織、管理和檢索的一種工具;是一種特定類型的資料庫
-- 關系資料庫。而控制這種資料庫的計算機程序就是我們常說的
DBMS-- 資料庫管理系統。譬如:SQL Server、Oracle、Sybase、DB2
等等。當用戶想要檢索資料庫中的數據時,就通過 SQL
語言發出請求,接著 DBMS 對該 SQL
請求進行處理並檢索所要求的數據,最後將其返回給用戶,此過程被稱作為資料庫查詢,這也就是資料庫查詢語言這一名稱的由來。
SQL 並不是象 C、COBOL 和 Fortran 語言那樣的完整的計算機語言。SQL
沒有用於條件測試的 IF 語句,也沒有用於程序分支的 Goto
語句以及循環語句 For 或 Do。確切的講,SQL 是一種資料庫子語言,SQL
語句可以被嵌入到另一種語言中,從而使其具有資料庫存取功能。SQL
也非嚴格的結構式語言,它的句法更接近英語語句,因此易於理解,大多數
SQL 語句都是直述其意,讀起來就象自然語言一樣明了。SQL
還是一種互動式查詢語言,允許用戶直接查詢存儲數據,利用這一交互特性,用戶可以在很短的時間內回答相當復雜的問題,而同樣問題若讓程序員編寫相應的報表程序則可能要用幾個星期甚至更長時間。
在大部分 ASP 應用程序中我們都會接觸到資料庫,而我們在編寫
ASP 應用程序時用來進行資料庫操作的標准語法正是 SQL,因此 SQL
語法的重要性是不言而喻的。下面,我們就從最常用的 SQL 語句 SELECT
著手,一步一步地來學習 SQL。
查詢是 SQL 語言的核心,而用於表達 SQL 查詢的 SELECT
語句則是功能最強也是最為復雜的 SQL
語句,它從資料庫中檢索數據,並將查詢結果提供給用戶。在本文中我們將建立一個名為
tianjiao 的簡單資料庫,該庫中存放了一個叫 sales
的銷售記錄表,如下所示 :
姓名
性別
工資
銷售目標
銷售額
地區
書生
男
2500
8000
9000
上海
吳冠軍
男
3000
10000
9999
北京
雷鳴
男
2000
8000
10000
四川
雪兒
女
2500
5000
6000
廣州
顧一
男
2600
9000
9800
大連
阿卓
女
2000
4000
4000
天津
熠天
男
4000
20000
20000
全國
在該表中有六列即六個欄位 :
姓名、性別、工資、銷售目標、銷售額、地區,首先我們用 Select
語句列出姓名、銷售目標和銷售額 :
Select 姓名,銷售目標,銷售額 From sales
結果如下 :
姓名
銷售目標
銷售額
書生
8000
9000
吳冠軍
10000
9999
雷鳴
8000
10000
雪兒
5000
6000
顧一
9000
9800
阿卓
4000
4000
熠天
20000
20000
然後,我們再列出所有男性的姓名、銷售目標和銷售額 :
Select 姓名,銷售目標,銷售額 From sales Where 性別 =" 男
"
結果如下 :
姓名
銷售目標
銷售額
書生
8000
9000
吳冠軍
10000
9999
雷鳴
8000
10000
顧一
9000
9800
熠天
20000
20000
接下攔告來,我們做一個相對復雜的查詢,列出銷售額大於銷售目標的所有男性的姓名、銷售目標和銷售額,並且按銷售目標排序。
Select 姓名,銷售目標,銷售額
Form sales
Where 銷售額
銷售目標
And 性別 =" 男 "
Order By 銷售目標
結果如下 :
姓名
銷售目標
銷售額
書生
8000
9000
雷鳴
8000
10000
顧一
9000
9800
熠天
20000
20000
大家可以看到,對於簡單查詢,SQL Select
語句和英文語法很相象,我們來分析一下 SELECT
語句的完整格式,它包括六個子句,其中 SELECT 和FROM
子句是必須的,其它世昌子句可以任選,每個子句的功能如下 :
1、Select 子句列出所有要求 SELECT 語句檢索的數據項。它放在
SELECT
語句開始處,指定此查詢要檢索的數據項。這些數據項通常用選擇表表示,即一組用「,」隔開的選擇項。按照從左到右的順序,每個選擇項產生的一個列的查詢結果,一個選擇項可能是以下項目:
(1)、列名:標識 FROM
子句指定表中的列。如果列名作為選擇項,則 SQL
直接從資料庫表中每行取出該列的值,再將其放在查詢結果的相應行中。
(2)、常數:指定在查詢結果的每行中都放上該值。
(3)、SQL
表達式:說明必須將要放入查詢結果中的值按表達式的規定進行計算。
2、From 子句列出包含所要查詢數據的表,它由關鍵字 FROM
後跟一組用逗號分開的表名組成。每個表明都代表一個包括該查詢要檢索數據的表。這些表稱為此
SQL 語句的表源,因為查詢結果都源於它們。
3、Where 子句告訴 SQL
只查詢某些行中的數據,這些行用搜索條件描述。
4、Group By
子句指定匯總查詢,即不是對每行產生一個查詢結果,而是將相似的行進行分組,再對每組產生一個匯總結果。
5、Having 子句告訴 SQL 只產生有 Group By
得到的某些組的結果,和 Where
子句一樣,所需要的組也用一個搜索條件指定。
6、Order By
子句將查詢結果按一列或多列中的數據排序。如果省略此子句,則查詢結果將是無序的。
下面作者將提供一個簡單但實用的運用 SQL 語句查詢的 ASP
程序供大家參考。
為了使大家更清楚更直接地了解 SQL 語法在 ASP
中的應用,我們先將查詢的所有核心過程寫成一個名為 query2table 的SUB,然後利用
ASP 的伺服器端包容功能調用該 SUB。請將以下語句剪貼到記事簿,保存為
subdBTable.inc 文件,並置於虛擬目錄 asptest 下:
%
sub query2table(inputquery)
set conntemp=server.createobject("adodb.connection")
conntemp.open "DSN=Student;uid=student;pwd=aspmagic"
set rstemp=conntemp.execute(inputquery)
howmanyfields=rstemp.fields.count -1
' 統計資料庫中的列數
%
table border=1 tr
%
for I=0 to howmanyfields
%
td b %=rstemp(I).name% /B /TD
% next %
/tr
%
do while not rstemp.eof
%
tr
% for I = 0 to howmanyfields
thisvalue=rstemp(I)
If isnull(thisvalue) then
thisvalue="?
' 如果欄位為空,則將變數 thisvalue 的值定義為一個空格
end if%
td valign=top %=thisvalue% /td
% next %
/tr
%rstemp.movenext
loop%
/table
%
rstemp.close
set rstemp=nothing
conntemp.close
set conntemp=nothingend sub%
完成了 SUB 的定義過程,在下面幾個 ASP
程序中我們只要加入想要使用的 SQL
查詢語句,並調用該過程就可以非常方便的得到查詢結果。將以下四段代碼分別保存為
asp11a.asp、asp11b.asp、asp11c.asp、asp11d.asp 四個 .asp 文件。
HEAD TITLEasp11a.asp /TITLE /HEAD
HTML body bgcolor="#FFFFFF"
%
call query2table("select * from publishers where name like 'A%%'")
' 將表 publishers 中所有姓名中有字母 A 的記錄查詢出來
%
!--#include virtual="/asptest/subdBTable.inc"-- /BODY
/HTML
HEAD TITLEasp11b.asp /TITLE /HEAD HTML
body bgcolor="#FFFFFF"
%
call query2table("select * from titles where Year_Published
= 1998")
' 將表 titles 中所有發表年份大於或等於 1998 年的記錄查詢出來
%
!--#include virtual="/asptest/subdBTable.inc"-- /BODY
/HTML
HEAD TITLEasp11c.asp /TITLE /HEAD HTML
body bgcolor="#FFFFFF"
%
call query2table("select * from publishers where amount10000 and
sex='male'")
' 將表 publishers 中所有數量大於 10000 且性別為男的記錄查詢出來
%
!--#include virtual="/asptest/subdBTable.inc"-- /BODY
/HTML
HEAD TITLEasp11d.asp /TITLE /HEAD HTML
body bgcolor="#FFFFFF"
%
call query2table("select * from publishers where state
'NY'")
'將表 publishers 中所有所在城市不為紐約的記錄查詢出來。
%
!--#include virtual="/asptest/subdBTable.inc"-- /BODY
/HTML
利用 subdBTable.inc 文件中的所定義的過程 query2table,你就可以非常迅速地對資料庫進行查詢,你所要做的只是將「conntemp.open
"DSN=Student;uid=student;pwd=aspmagic"」中的資料庫名稱、用戶身份和密碼稍加改動,並在調用
query2table 時輸入想要使用的 SQL 查詢語句即可。是不是很簡單 ?
這就是 ASP 和 SQL 的魅力所在 !!!
今天,我們雖然用了一整篇的篇幅只學習了一個 SQL
指令,但請你相信你所獲得遠不同於一個 DOS 指令,SELECT
指令使得你可以非常容易地對資料庫進行查詢,或許在這之前你對資料庫查詢還一無所知,但是通過本篇的學習,你其實已經會使用
ASP 進行常用的資料庫查詢了,是不是很激動 ?
在下一篇中,作者將繼續給大家介紹 SQL