SQLServer:《SQL必知必會(huì)》一書(shū)的讀書(shū)筆記(二)
2.1 SELECT 語(yǔ)句
用途:從一個(gè)或多個(gè)表中檢索數(shù)據(jù)信息
關(guān)鍵字:作為SQL組成部分的保留字。關(guān)鍵字不能用作表或列的名字。
為了使用SELECT檢索表數(shù)據(jù),必須至少給出兩條信息:
想選擇什么,
從什么地方選擇。
2.2 檢索單個(gè)列
SELECT prod_name FROM Products; -- 分析:利用 SELECT 語(yǔ)句從 Products 表中檢索一個(gè)名為 prod_name 的列。 -- 所需的列名寫(xiě)在 SELECT 關(guān)鍵字之后,F(xiàn)ROM 關(guān)鍵字支出從那個(gè)表中檢索數(shù)據(jù).
【提示】使用“;”和將語(yǔ)句拆分成多行可增強(qiáng)可讀性
【提示】SQL 語(yǔ)句不區(qū)分大小寫(xiě),即“SELECT”和“select”一樣;但是表名、列名和值可能有所不同。
2.3 檢索多個(gè)列
從一個(gè)表中檢索多個(gè)列,仍然使用相同的SELECT語(yǔ)句。唯一的不同是必須在SELECT關(guān)鍵字后給出多個(gè)列名,列名之間用逗號(hào)隔開(kāi)
SELECT prod_id, prod_name, prod_price FROM Products; -- 分析:使用 SELECT 語(yǔ)句從表 Products 中選擇 3 列數(shù)據(jù)
2.4 檢索所有列
除了指定所需的列外,SELECT 語(yǔ)句還可以檢索所有的列而不必逐個(gè)列出它們。在實(shí)際列名的位置使用星號(hào)(*)通配符可以做到
SELECT * FROM Products -- 分析:如果給定一個(gè)通配符(*),則返回表中所有的列。列的順序一般是列在表定義中出現(xiàn)的物理順序。
【注意】除非確實(shí)需要表中的每一列,否則***別使用*通配符。檢索不需要的列通常會(huì)降低檢索和應(yīng)用程序的性能。
2.5 檢索不同的值
SELECT 語(yǔ)句返回所有匹配的行,但是我們并不希望每個(gè)值每次都出現(xiàn),這該怎么辦?
假如,你想檢索 products 表中所有產(chǎn)品供應(yīng)商的 id
SELECT vend_id FROM Products
發(fā)現(xiàn)存在重復(fù)值,怎么解決呢?方法就是使用 DISTINCT 關(guān)鍵字
SELECT DISTINCT vend_id FROM Products -- 分析:SELECT DISTINCT vend_id 告訴 DBMS 只返回(具有唯一性)的 vend_id 行。如果使用 DISTINCT 關(guān)鍵字,必須直接放在列名前面。
【注意】DISTINCT 關(guān)鍵字作用于所有列,除非指定兩列完全相同,否則所有的行都會(huì)被檢索出來(lái)
2.6 限制結(jié)果
SELECT 語(yǔ)句返回指定表中所有匹配的行。如果我們只想返回***行或者一定數(shù)量的行,該怎么辦呢?
-- 使用 TOP 關(guān)鍵字
SELECT TOP 5 prod_name FROM Products -- 分析:使用 SELECT TOP 5 語(yǔ)句,只檢索前 5 行數(shù)據(jù)
2.7 使用注釋
行內(nèi)注釋?zhuān)菏褂?ldquo;--”
SELECT * --行內(nèi)注釋 FROM Products;
多行注釋?zhuān)菏褂?ldquo;/* */”
- /*
- 多行注釋
- SELECT *
- FROM Products;
- */