SQL (一) select語句(最常用的SQL語句)

檢索一列(不過濾不排序)

SELECT prod_name FROM Products;

select後面是列名,from後面是表名
在這裏插入圖片描述
返回了所有行,因爲沒指定順序,所以沒有順序,行數對就行
在這裏插入圖片描述
所以關鍵字可以小寫

select prod_price from Products;

甚至這麼寫都可以::::

seleCt prod_price from Products;

我發現mysql對於表,列名也是不區分大小寫的:(其他DBMS不一定)

seleCt prod_desC from pRoducts;

還是正確拿到了結果
在這裏插入圖片描述

注意SQL語言忽略所有空格,所以可以這麼寫:

select 
prod_name
from 
products;

或者這樣

select 
prod_name from 
products;

都正確

而且很多SQL開發人員都覺得寫成多行多便於閱讀和調試,他們不贊成寫成長長的一行

檢索多列 (逗號)

在這裏插入圖片描述

select prod_id, prod_name, prod_price 
from products;

在這裏插入圖片描述

檢索所有列(*通配符)

select * from products;

在這裏插入圖片描述在這裏插入圖片描述
通配符有好有壞,如果明確知道自己要檢索的是哪些列就不用*,如果想知道有哪些你還不知道名字的列就可以用。雙刃劍。

注意SQL檢索語句返回的數據一般是沒有格式的,我們看到的格式是workbench做的工作和貢獻。平時訪問數據庫也是,返回的數據需要應用程序自己來調整顯示格式。

檢索時顯示唯一值(distinct關鍵字)

select vend_id 
from products;

因爲有9種產品,所以顯示了9行,但是有一些產品的供應商是一樣的,所以我想只顯示唯一值,只返回一列中不同的值
在這裏插入圖片描述

select distinct vend_id 
from products;

在這裏插入圖片描述

但是distinct關鍵字作用於後面的所有列,只要有兩列不一樣,就會顯示所有行

select vend_id, prod_id
from products;

在這裏插入圖片描述

限制只輸出某幾行(limit,offset,不同DBMS實現不同)

只輸出前5行,使用limit關鍵字

select prod_name 
from products
limit 5;

在這裏插入圖片描述

返回從第5行開始(包括第5行)的5行數據(行號從0開始)

select prod_name 
from products
limit 5 offset 5;

由於一共只有9行,所以只返回4行
在這裏插入圖片描述

總結:

  • limit指定返回的行數
    limit後面是0 ,則返回0行;後面是1則返回1行
select prod_name 
from products
limit 0 offset 1;

在這裏插入圖片描述

select prod_name 
from products
limit 1 offset 1;

在這裏插入圖片描述

  • offset指定返回的行是從哪一行開始的,包含offset後面的數字那一行,注意行數從0開始

比如lIimit 5 offset 5,返回5行,從第5行開始,所以返回的是5,6,7,8行。因爲一共只有9行,最大行號爲8,所以只返回了4行

返回第0行

select prod_name 
from products
limit 1 offset 0;

在這裏插入圖片描述

但是!在這裏可以引入一個很重要的點!!!那就是:不同的DBMS軟件的SQL實現會有很多小的差異!比如這節說的這個功能,選中間某幾行,在mysql使用limit和offset關鍵字實現的,但是其實在其他DBMS中都不一樣!
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

註釋

  • 行內註釋:兩個連字符–
    也有人像Python那樣用#表示行內註釋,但是很多DBMS都不支持
select prod_name 
from products
limit 1 offset 0;
-- select prod_id from products;

第二條註釋,就執行第一行。其實本來只會執行第二行的。
在這裏插入圖片描述
注意–後面一定要加空格,否則報錯

  • 多行註釋:/**/,和C一樣
select prod_name 
from products
limit 1 offset 0;
/*select prod_id from products;
select prod_price from products;*/

在這裏插入圖片描述

總結

涉及關鍵字:

  • select
  • from:其實from是select語句的子句(clause)
  • limit
  • offset
  • distinct

用到了逗號分隔符,*通配符

明白了不同DBMS對SQL的實現的差異

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章