SQL必知必會(2) 2 6課

2021-08-07 07:17:14 字數 2512 閱讀 3713

參考

單列,多列,所有列

select id/select id,age/select *

from user;

多條sql語句必須以「 ;」分隔。

sql語句不區分大小寫,select和select是相通的,一般關鍵字大寫,表名、列名小寫,不過表名,列名和值可能有所不同(依賴於具體點dbms及其如何配置)。

處理sql語句時,其中所有 空格都被忽略(將sql語句分成多行有利於閱讀和除錯)。

檢索多個列,列名之間必須以「 ,」分隔,但是最後乙個列不用加,第乙個檢索的行是0行,limit 5 offset 3---簡化版:limit 3,5,實際是從第四行開始,檢索5行

檢索所有列使用(*)萬用字元,用於檢索名字未知的列或者需要知道表中的每一列,效能低,不同的資料庫sql語言有差異!!

檢索不同的值使用distinct關鍵字 ,作用於所有列,放在列名前面,其不僅作用於緊跟其後的那一列。 

例:select distinct vend_id,prod_price from products; 除非兩行相同,否則所有的列都會被檢索出來。

使用注釋   

--行內注釋        #一行的開始使用(不常用)    /*  */多行的注釋

select id ,age

from user 

order byid desc,age ;

先按id降序排序,再按年齡

子句:sql語句由子句構成,有些子句是必須的,有些則是可選的。乙個子句通常是由乙個關鍵字加上所提供的資料組成。

order by 可以取乙個或多個列的名字,據此對輸出進行排序。如果他不是最後的子句,將會出現錯誤資訊,並且可以使用非檢索的列排序。

按多個列進行排序:..order by xx,yy;  先按xx,在xx都相同時再按yy,若xx中都是唯一的則不會按yy排列

..order by 2,3;    指定的是選擇列的相對位置而不是列名

指定排序方向:預設公升序,desc(降序)關鍵字只應用到直接位於其前面的列名,在多個列上進行降序排序,必須對每一列指定desc關鍵字。order by id,age desc;a與a預設相同,無法簡單使用order by改變,注意資料庫命名方式。

使用where子句:資料根據where子句中指定的搜尋條件進行過濾,接在from子句之後給出。

資料最好不要再應用層過率,客戶端應用處理資料,會使伺服器發動多餘資料,造成頻寬的浪費。

where子句操作符  

操作符說明

操作符說明=等於

>

大於<>

不等於》=

大於等於

!=不等於

!>

不大於between

在指定的兩個值之間

is null

為null值

!<

不小於<

小於關於引號:字串用單引號限制,用來與數值列比較不需要用引號,order by 位於where之後

範圍值檢查 between例:

select prod_name,prod_price  

form products

where prod_price between 5 and 10;null:無值。它與字段包含0,空字串,或僅包含空格不同;

確定值是否為null,不能簡單的檢查是否=null,應該用特殊的is null, where prod_priceis null

操作符:用來聯結或改變where子句中的子句的關鍵字,也叫邏輯操作符。

and:檢索滿足條件的所有指定的行 where vend_id='dll01' and vend_id=『brs01』

or:  與and相反,許多dbms在第乙個條件得到滿足的情況下就不再計算第二個條件了(第乙個滿足時,不管是否滿足,相應的行都將被檢索出來)

and再求值優先順序大於or,可以使用()改變結合順序避免出錯。

in where子句中用來指定要匹配值的清單的關鍵字,功能與or相當。

例:where vend_id  in  ('dll01','brs01') 等同於where vend_id='dll01' or vend_id=『brs01』

最大的優點是可以包含其他select語句,能夠更動態地建立where子句。

not:where子句中用來否定其後條件關鍵字。

例:where not vend_id='dll01' 等同於 where vend_id<>'dll01'

優勢是與in操作符聯合使用時,not可以非常簡單的找出與條件列表不匹配的行。

like...模糊匹配

select * from student

where name like '汪%'

選出汪姓 的同學,其中 % 代表匹配任意次,_ 代表匹配單個字元,表示匹配中括號裡面的任意乙個字元

SQL必知必會

資料庫 儲存有組織的資料的容器。資料庫管理系統 dbms 資料庫軟體,資料庫是通過dbms建立和操縱的容器。表 某種特定資料型別的結構化清單。資料庫中的每個表都有自己的名字,且唯一。不同的資料庫可以使用相同的表名。表的特性 模式 資料在表中如何儲存,儲存什麼樣的資料,資料如何分解。模式可以用來描述資...

SQL必知必會 第1課 了解SQL

資料庫 儲存有組織的資料的 容器 通常是乙個檔案或一組檔案 注意 資料庫軟體不等於資料庫,前者應稱為資料庫管理系統 dbms 後者是通過dbms建立和操縱的容器。表 某種特定型別資料的結構化清單。資料庫中的每個表都有乙個名字來標識自己。這個名字是唯一的。模式 關於資料庫和表的布局及特徵的資訊。模式定...

《SQL必知必會》筆記四 18 19課

4.1 檢視 mysql 從版本 5 起開始支援檢視 理解檢視 在下例中,檢索其他產品 或多個產品 的相同資料,必須修改最後的where 子句。select cust name,cust contact from customers,orders,orderitems where customers...