简单的数据检索
“取出一張表中所有的數(shù)據(jù)”是最簡單的數(shù)據(jù)檢索任務(wù),完成這個最簡單任務(wù)的SQL語句也是最簡單的,我們只要執(zhí)行“SELECT * FROM 表名”即可。比如我們執(zhí)行下面的SQL語句:
SELECT * FROM T_Employee執(zhí)行完畢我們就能在輸出結(jié)果中看到下面的執(zhí)行結(jié)果:
執(zhí)行結(jié)果中列出了表中的所有行,而且包含了表中每一列的數(shù)據(jù)。
上面的SQL 語句執(zhí)行的結(jié)果中包含了表中每一列的數(shù)據(jù),有的時候并不需要所有列的數(shù)據(jù)。比如我們只需要檢索所有員工的工號,如果我們采用“SELECT* FROM T_Employee”進(jìn)行檢索的話,數(shù)據(jù)庫系統(tǒng)會將所有列的數(shù)據(jù)從數(shù)據(jù)庫中取出來,然后通過網(wǎng)絡(luò)發(fā)送給我們,這不僅會占用不必要的CPU 資源和內(nèi)存資源,而且會占用一定的網(wǎng)絡(luò)帶寬,這在我們這種測試模式下不會有影響,但是如果是在真實的生產(chǎn)環(huán)境中的話就會大大降低系統(tǒng)的吞吐量,因此最好在檢索的之后只檢索需要的列。那么如何只檢索出需要的列呢?
檢索出所有的列的SQL 語句為“SELECT?FROM T_Employee”,其中的星號“”就意味著“所有列”,那么我們只要將星號“*”替換成我們要檢索的列名就可以了。比如我
們執(zhí)行下面的SQL語句:
SELECT FNumber FROM T_Employee這就表示我們要檢索出表T_Employee 中的所有數(shù)據(jù),并且只取出FNumber 列。執(zhí)行完畢我們就能在輸出結(jié)果中看到下面的執(zhí)行結(jié)果:
FNumberDEV001DEV002HR001HR002IT001SALES001SALES002SALES003可以看到只有FNumber 列中的數(shù)據(jù)被檢索出來了。
上面的SQL 語句列出了FNumber 列中的數(shù)據(jù),那么如果想列出不止一個列中的數(shù)據(jù)呢?非常簡單,只要在SELECT 語句后列出各個列的列名就可以了,需要注意的就是各個列之間要用半角的逗號“,”分隔開。比如我們執(zhí)行下面的SQL語句:
SELECT FName,FAge FROM T_Employee這就表示我們要檢索出表T_Employee 中的所有數(shù)據(jù),并且只取出FName和FAge兩列的內(nèi)容。執(zhí)行完畢我們就能在輸出結(jié)果中看到下面的執(zhí)行結(jié)果。
可以看到,執(zhí)行結(jié)果中列出了所有員工的姓名和他們的年齡。
如果要用這種顯式指定數(shù)據(jù)列的方式取出所有列,我們就可以編寫下面的SQL:
SELECT FNumber,FName,FAge,FSalary FROM T_Employee
執(zhí)行完畢我們就能在輸出結(jié)果中看到下面的執(zhí)行結(jié)果。
這和“SELECT?FROM T_Employee”的執(zhí)行結(jié)果是一致的,也就是說“SELECT FNumber,FName,FAge,FSalary FROM T_Employee”和“SELECT?FROM T_Employee”是等價的。
- 列別名
由于編碼命名規(guī)范、編程框架要求等的限制,數(shù)據(jù)表的列名有的時候意思并不是非常易讀,比如T_Employee中的姓名字段名稱為FName,而如果我們能用Name甚至“姓名”來代表這個字段就更清晰易懂了,可是字段名已經(jīng)不能更改了,那么難道就不能用別的名字來使用已有字段了嗎?
當(dāng)然不是!就像可以為每個人取一個外號一樣,我們可以為字段取一個別名,這樣就可以使用這個別名來引用這個列了。別名的定義格式為“列名AS 別名”,比如我們要為FNumber字段取別名為Number16,FName字段取別名為Name、FAge 字段取別名為Age、為FSalary
字段取別名為Salary,那么編寫下面的SQL即可:
SELECT FNumber AS Number1,FName AS Name,FAge AS Age,FSalary AS Salary FROM T_Employee執(zhí)行完畢我們就能在輸出結(jié)果中看到下面的執(zhí)行結(jié)果:
這里的執(zhí)行結(jié)果和“SELECT FNumber,FName,FAge,FSalary FROM T_Employee”
執(zhí)行結(jié)果一樣,唯一不同的地方就是表頭中的列名,這里的表頭的列名就是我們?yōu)楦髁性O(shè)定的別名。
定義別名的時候“AS”不是必須的,是可以省略的,比如下面的SQL也是正確的:
SELECT FNumber Number1,FName Name,FAge Age,FSalary Salary FROM T_Employee如果數(shù)據(jù)庫系統(tǒng)支持中文列名,那么還可以用中文來為列設(shè)定別名,這樣可讀性就更好了,比如在MSSQLServer中文版上執(zhí)行下面的SQL:
SELECT FNumber 工號,FName 姓名,FAge 年齡,FSalary 工資FROM T_Employee執(zhí)行完畢我們就能在輸出結(jié)果中看到下面的執(zhí)行結(jié)果:
轉(zhuǎn)載于:https://www.cnblogs.com/yuyu666/p/9820004.html
總結(jié)
- 上一篇: 全排列(PHP)
- 下一篇: angularjs的双向绑定原理实现