數據庫學習 day2 檢索數據
上一節我們介紹了什麽是數據庫,以及一些基本的數據庫術語
這一課介紹使用SELECT語句從表中檢索一個或多個數據列。
關鍵字(Keyword)
作為SQL組成部分的保留字。關鍵字不能用作表和列的名字(類比C語言中的int、print等)。
1 SELECT語句
它是在SQL語句中最常使用的語句,作用是從一個或多個表中檢索信息。
使用SELECT檢索表數據,需要知道兩個信息,我們要從哪裏進行搜索,搜索哪些內容。
1.2 檢索單列
SELECT column_name -- 列名 FROM table_name; -- 表名
解釋:上述語句用 SELECT 語句從 table_name 表中檢索一個名為 column_name 的列。
列名跟在SELECT後 表名跟在FORM後,這與我們的自然語言相同
註意:
- 沒有明確排序查詢的結果,則返回的數據沒有特定的順序,這個規定我們將在下一節進行介紹。
- 多條SQL語句必須加分號。
- SQL不區分大小寫。
- 使用空格和回車的作用相同,所以SQL語句和寫在一行或多行,但為了代碼清晰易查建議分為多行。
1.3 檢索多列
想從一個表中檢索多個列,仍然需要使用 SELECT 語句。唯一的不同就是SELECT後面檢索的內容需用逗號隔開。
SELECT column_name,column_name1,column_name2 -- 列名 FROM table_name; -- 表名
在本例中我們指定了3個列名,彼此用逗號相隔。
註意:
從SQL中檢索出的數據都是原始的數據,無格式數據。規定其格式一般在具體應用該數據的應用程序中進行。
1.4 檢索所有列
SELECT語句還可以檢索出所有列而不必逐個列出它們的名字。在實際列名的位置使用星號(*)通配符可以做到這一點。
SELECT * -- 使用通配符 FROM table_name; -- 表名
給定通配符(*),則返回所有的列。使用通配符的可以檢索出名字未知的列。
1.5 檢索出不同的值
當檢索結果中出現多個重復值時,我們希望每個只出現一次怎麽辦?比如搜索一個年級學生的班級信息就會出現大量的重復,我們只需要不同的班級值
辦法就是使用DISTINCT關鍵字,顧名思義,它指示數據庫返回不同的值。
SELECT DISTINCT column_name -- 檢索不同的值 FROM table_name -- 表名
如果使用DISTINCT關鍵字,它必須放在列名前。
若DISTINCT關鍵字後有多列,不僅僅是作用於一列,而是所有列。
1.6 限制結果
SELECT返回指定列中的所有匹配列,而你想返回1列或指定數量的列怎麽辦呢?這在數據庫操作中是可行的,但各個SQL軟件實現方法不同。
這裏只說明MySQL的實現方法,其他軟件的可以根據需要自行查訊。
MySQL中需要使用LIMIT子句,像這樣
SELECT column_name -- 列名 FROM table_name -- 表名 LIMIT 5;
LIMIT 5指示 MySQL 等 DBMS 返回不超過5行的數據。
為了得到後5行的數據,我們還需指定從哪裏開始檢索
SELECT column_name -- 列名 FROM table_name -- 表名 LIMIT 5 OFFSET 5;
註意:
第一個被檢索的行是第0行,而不是第一行。所以,LIMIT 5 OFFSET 5 會檢索第6行而不是第5行。
2.7 使用註釋
我上面的語句均使用了註釋,使用“--”後面空一格跟需要註釋的內容
當然還有多行註釋
/*this is a note SELECT FROM */ SELECT column_name -- 列名 FROM table_name -- 表名 LIMIT 5 OFFSET 5;
這在我們調試代碼時很有用,可以讓你無需將錯誤的代碼刪除,只需註釋掉它們就行了
數據庫學習 day2 檢索數據