獲取數據SELECT語句()
其次更為重要的是可以在WHERE子句中使用列名來引用列WHERE子句的功能是作為一個篩選器允許用戶選擇與特定條件相匹配的記錄例如Alex Kriegel編寫的所有圖書或者那些由Wiley出版社出版的圖書WHERE子句的語法非常直觀看起來就像是英語語句一樣
SELECT * FROM myLibrary WHERE publisher = Wiley;
該查詢的結果僅僅列出了PUBLISHER列中存儲的值等於Wiley的那些記錄注意WHERE子句中的Wiley值應該用單引號括起來以指示數據庫要進行比較的是字符數據類型
數據庫中可能包含了數百萬條記錄WHERE子句可以縮小搜索的范圍篩選出一條特定的記錄或者一個與指定篩選標准相匹配的記錄的集合這正是SQL語言作為一種基於集合的聲明性語言的強大之處使用一個類似於英語的簡單語句就可以搜索記錄並返回一個滿足匹配條件的記錄的子集而無須關心數據是如何存儲的甚至無須知道數據存儲在什麼地方當在Microsoft AccessOraclePostgreSQLMySQLSQL 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 isbn)VALUES (SQL BibleAlex KriegelEnglish
WileyBoris M TrukhnovApril )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (Microsoft SQL Server Weekend Crash CourseAlex Kriegel
EnglishWiley October )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (MindswapRobert Sheckley EnglishOrb BooksMay
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (Jonathan Livingston SeagullRichard Bach EnglishMacMillan
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (A Short History of Nearly EverythingBill Bryson
EnglishBroadway 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
數據倉庫與數據挖掘培訓視頻教程
From:http://tw.wingwit.com/Article/program/SQL/201311/16482.html