1. 程式人生 > >04 檢索數據 - select

04 檢索數據 - select

select 區別 通配符 檢測 返回 建議 mysq 替代 大小

檢索一列或多列

<1>select 列名1 [,列名2] [,列名3]... from 表名
<2>select prod_name from products;
<3>select prod_id, prod_name, prod_price from products;
<4>多條SQL語句必須使用分號(;)分隔
<5>MySQL不要求在單條SQL語句後加分號,但加上總沒有壞處;此外,如果在mysql命令行中,必須加上分號來結束SQL語句
<6>SQL語句不區分大小寫,因襲SELECT與select是相同的
<7>建議對SQL關鍵字使用大寫,表名和列名使用小寫

檢索所有列

select * from products;
不建議使用,除非實在需要所有的列,否則避免使用通配符
使用通配符會降低檢索和應用程序的性能
使用*的一個好處是能檢測出名字未知的列

消除重復行

select distinct vend_id from products;
distinct要放在所有列名前面,用於消除值重復的行
select distinct vend_id,prod_price from products; //觀察與前一句的區別
註意distinct作用於所有列而不僅是它前置的列
select count(distinct vend_id) from products; //統計指定列不重復的行數

限制結果

limit關鍵字課限制結果,可用於mysql的分頁查詢
select prod_name from products limit 5; //限制返回的行數不超過5行
select prod_name from products limit 5,4; //限制返回從行5開始的4行數據
註意檢索出來的結果第一行為行0而不是行1, limit 1,1將返回第二行
因此,select prod_name from products limit 0,5;等價於select prod_name from products limit 5;
行數不夠時,limit將只能返回它能夠返回的那麽多行
MySQL5支持limit的一種替代語法:limit 4 offset 3;表示從行3開始取4行,就像limit 3,4一樣
select prod_name from products limit 4 offset 5; 等價於 select prod_name from products limit 5,4;

查詢時可以使用全限定的表名和列名

select products.prod_name from products;
select products.prod_name from crashcourse.products;

04 檢索數據 - select