一、檢索資料
如何使用SELECT語句檢索一個或多個資料列。
1.1 檢索單個列
<code>SELECT prod_name </code>
<code>FROM Productions;</code>
注意:檢索出來的資料是沒有排序的
1.2 檢索多個列
<code>SELECT prod_id,prod_name,prod_price</code>
注意:SQL語句一般傳回原始的、無格式的資料。
1.3 檢索所有列
<code>SELECT * FROM Productions;</code>
<code>通配符*表示比對任意字元任意次數。</code>
1.4 檢索不同的值(相同的值不顯示)
<code>SELECT DISTINCT vend_id</code>
分析:傳回唯一的vend_id行
警告:如果檢索多個列,則使用DISTINCT關鍵字則會把但凡隻要有一列的值不同就會檢索出來
1.5 限制傳回結果
說明:指定傳回前5行
<code>--DB2的SQL語句</code>
<code>SELECT prod_name</code>
<code>FROM Products</code>
<code>FETCH FIRST 5 ROW ONLY;</code>
<code>#Oracle(基于ROWNUM來計算行)</code>
<code>WHERE ROWNUM<=5;</code>
<code>#MySQL,PostgreSQL,SQLite</code>
<code>LIMIT 5;</code>
說明;指定從第5行開始傳回5行
<code>LIMIT 5 OFFSET 5;</code>
<code>#Mysql,MariaDB中的快捷方式</code>
<code>LIMIT 5,5;</code>
警告:第一個被檢索出來的行是第0行,以此類推
1.6 使用注釋
說明:用于注釋說明或者用于測試調試
<code>--</code>
<code>#</code>
<code>/* */</code>
二、排序檢索資料
2.1 排序檢索資料
說明:使用SELECT和ORDER BY子句,根據需要檢索資料。
理論:關系資料庫設計理論認為,如果不明确規定排序的順序,則不應該假定檢索出來的資料的順序有任何意義。
概念:子句(Clause)
一個子句通常由一個關鍵字和資料組成。
<code>ORDER BY prod_name;</code>
注意:
<code> </code><code>1.DBMS軟體将會對prod_name列以字母順序排序資料。</code>
<code> </code><code>2.ORDER BY 必須是最後一條子句,不然會報錯</code>
<code> </code><code>3.使用非檢索出的列進行排序也是可以的</code>
2.2 按多個列排序
說明;代碼将會檢索3個列,并按其中的兩個列對結果進行排序-先按價格,再按名稱排序
<code>SELECT prod_id,prod_price,prod_name</code>
<code>ORDER BY prod_price,prod_name;</code>
了解:有相同的prod_price,才會按prod_name排序
2.3 按列位置排序
說明:不僅僅可以按列名排序,也可以按照列位置排序
例子中先按第二個列排序再按第三個列排序
<code>ORDER BY 2,3;</code>
2.4 指定排序的方向
說明:預設升序排序,也可以降序排序,需使用DESC關鍵字。
<code>--降序排序</code>
<code>ORDER BY prod_price DESC;</code>
說明:多個列排序
<code>ORDER BY prod_price DESC,prod_name;</code>
注意:
1.DESC隻應用于其前面的列名進行降序排序而後面的列名将不應用
2.預設情況下Z與z是等同的,除非管理者自行改變設定
三、過濾資料
3.1 使用WHERE子句
說明:使用SELCT語句的WHERE子句指定搜尋條件,用來檢索出管理者需要的資料。
<code>SELECT prod_name,prod_price</code>
<code>WHERE prod_price=5;</code>
注意:會輸出所有等于5的資料類型
提示:
兩種過濾方式:SQL過濾與應用過濾
資料不僅僅可以在資料層過濾也可以在應用層過濾。但是,這種做法通過不妥。讓用戶端處理資料會影響應用的性能以及占用網絡帶寬。
警告:在同時使用WHERE子句和ORDER BY子句時,需要将ORDER BY位于WHERE子句的後面。
3.2 WHERE子句操作符
<code>= < <= </code>
<code>! 不小于</code>
<code>> >= !> </code>
<code><> 不等于</code>
<code>!= 不等于</code>
<code>BETWEEN 在指定的兩個值之間</code>
<code>IS NULL 為NULL值</code>
3.2.1 檢查單個值
<code>WHERE prod_price <=100;</code>
3.2.2 不比對檢查
<code>SELECT vend_id,prod_name</code>
<code>WEHRE vend_id <></code><code>'china007'</code>
3.2.3 範圍内查找
<code>WHERE prod_price BETWEEN 10 AND 15;</code>
3.2.4 空值檢查
無值(NULL)--> no value
注意:它與字段為0,空字元或包含空格不同
說明:确定一個值為空,不能簡單地檢查= null,SELECT中可以使用 IS NULL來确定具有null值的列。
<code>SELECT cust_name </code>
<code>FROM CUSTOMERS</code>
<code>WHERE cust_email IS NULL;</code>
本文轉自 PowerMichael 51CTO部落格,原文連結:http://blog.51cto.com/huwho/1974431,如需轉載請自行聯系原作者