獲取數據 SELECT語句( )
其次 更為重要的是 可以在WHERE子句中使用列名來引用列 WHERE子句的功能是作為壹個篩選器 允許用戶選擇與特定條件相匹配的記錄 例如Alex Kriegel編寫的所有圖書或者那些由Wiley出版社出版的圖書 WHERE子句的語法非常直觀 看起來就像是英語語句壹樣
SELECT * FROM myLibrary WHERE publisher = Wiley ;
該查詢的結果僅僅列出了PUBLISHER列中存儲的值等於Wiley的那些記錄 註意 WHERE子句中的Wiley值應該用單引號括起來 以指示數據庫要進行比較的是字符數據類型
數據庫中可能包含了數百萬條記錄 WHERE子句可以縮小搜索的範圍 篩選出壹條特定的記錄或者壹個與指定篩選標準相匹配的記錄的集合 這正是SQL語言作為壹種基於集合的聲明性語言的強大之處 使用壹個類似於英語的簡單語句就可以搜索記錄並返回壹個滿足匹配條件的記錄的子集 而無須關心數據是如何存儲的 甚至無須知道數據存儲在什麽地方 當在Microsoft Access Oracle PostgreSQL MySQL SQL Server或IBM DB 中運行上面的SELECT語句時 都將返回完全相同的結果
在WHERE子句中 另外壹個重要的組成部分就是使用操作符 前面的查詢使用了壹個等於操作符 用於篩選出那些出版社名稱為Wiley的記錄 采用類似的辦法 使用不等於操作符很容易查詢出那些不是Wiley出版社出版的圖書
SELECT * FROM myLibrary WHERE publisher <> Wiley ;
使用AND和OR邏輯操作符可以將多個操作符連接在壹起 定義壹個更為嚴格的篩選標準 例如 要查找Wiley出版社出版的由Alex Kriegel編寫的圖書 可以使用下面的查詢
SELECT * FROM myLibrary
WHERE publisher = Wiley AND author= Alex Kriegel ;
該查詢僅僅返回壹條同時滿足這兩個條件的記錄 如果使用OR邏輯操作符來連接這兩個條件 則可以返回滿足其中任意壹個條件的所有記錄 而不壹定要求兩個條件都同時滿足 但在布爾邏輯中使用邏輯操作符來定義搜索條件時 應當倍加小心 除非完全理解了邏輯操作符的規則 否則查詢結果可能會大大出乎意料
第 章將進壹步介紹操作符 以及其在不同數據庫廠商之間的語法差異和優先級規則
試壹試使用SELECT語句
在下面的練習中 將采用Microsoft SQL Server 數據庫環境練習壹下SELECT語句的使用 請重復本章第壹個 試壹試 練習中步驟( )到步驟( )的操作 以便輸入並執行SQL命令
( ) 輸入下面的SQL語句 將數據插入到MYLIBRARY表中
INSERT INTO myLibrary (title author book_language publisher pages
author publish_date i *** n)VALUES ( SQL Bible Alex Kriegel English
Wiley Boris M Trukhnov April )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i *** n) VALUES ( Microsoft SQL Server Weekend Crash Course Alex Kriegel
English Wiley October )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i *** n) VALUES ( Mindswap Robert Sheckley English Orb Books May
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i *** n) VALUES ( Jonathan Livingston Seagull Richard Bach English MacMillan
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i *** n) VALUES ( A Short History of Nearly Everything Bill Bryson
English Broadway October )
( ) 單擊位於上方工具欄中的Execute按鈕 如之前的圖 所示
( ) 在下方窗格的Messages選項卡中 可以看到 條確認信息 ( row(s) affected)
( ) 下面的查詢語句將從MYLIBRARY表中選取所有的行和列(由於版面空間的限制 這裏省略了這些例子中實際查詢結果的顯示)
SELECT * FROM myLibrary;
( row(s) affected)
( ) 為了縮小搜索的範圍 添加壹個WHERE子句
SELECT * FROM myLibrary
WHERE publisher = Wiley ;
( row(s) affected)
返回目錄 SQL實戰新手入門
編輯推薦
Oracle索引技術
高性能MySQL
lishixinzhi/Article/program/SQL/201311/16482