原創 SQL總結(二)

2022-04-08 17:27:53 字數 1812 閱讀 3966

有時候在搜尋時需要指定搜尋範圍,過濾掉一些不需要輸出的資料

select prod_name,prod_id,prod_price from products where prod_price=3.49;表示輸出**為3.49的所有行的name,id,price項。

注意,如果要使用排序,那麼order by一定要位於where子句之後。

這一部分看書即可,包括等於=,不等於<>,小於<,等操作符

另外還有between表示在指定的兩個值之間,is null表示為null值

select prod_name,prod_price from products where prod_price between 5 and 10 order by prod_name;

如果操作符後面是字串,那麼需要將字串用單引號,如果是數值,則不需要。

select prod_name,prod_price from products where prod_price is null;

and or

select prod_name,prod_id,prod_price from products where prod_price<=4 and vend_id ='dll01';

如果,在where子句中and和or太多,容易造成輸出錯誤問題,因為在處理or之前,會先處理and,這可能與我們的初衷不同。因此,我們需要時刻新增括號來保證求值順序。

select prod_name,prod_id,prod_price from products where (vend_id ='dll01' or vend_id ='brs01') and prod_price>=10;

select prod_name,prod_id,prod_price from products where vend_id in ('dll01','brs01') and prod_price>=10;

in與or完成了相同的功能。

用來否定其後所跟的任何條件。

select prod_name,prod_id,prod_price from products where not vend_id 'dll01' order by prod_price;

問題引出,怎麼搜尋產品名稱中包含文字 bean bag 的所有產品?

萬用字元:用來匹配值的一部分的特殊字元。

搜尋模式:有字面值、萬用字元或兩者組合構成的搜尋條件。

注意 萬用字元搜尋只能作用於文字字段(字串),非文字資料型別字段不能使用萬用字元搜尋。

最常使用的萬用字元是%

select prod_id,prod_name from products where prod_name like 'fish%';找出所有以詞fish起頭的產品。

注意,有的資料庫區分大小寫,但是mysql不區分。

select prod_id,prod_name from products where prod_name like '%bean bag%';

比較有用的地方是根據郵件位址的一部分來查詢電子郵件。如 where email like '%@sina.com';

注 %不能匹配null。

下劃線(_)萬用字元。

與%的區別,乙個_只匹配單個字元,兩個_就匹配兩個字元,而乙個%就能匹配多個字元。

select prod_id,prod_name from products where prod_name like '__ inch teddy bear';可以匹配inch前的兩個字元。

方括號萬用字元。

用來指定乙個字符集,它必須匹配指定位置(萬用字元的位置)的乙個字元。

只有access和sql server支援集合。

SQL學習總結(二)

select 語句加where子句 條件限制 1.limiting rows using a selection select from emp where deptno 30 select from emp where ename king 2.comparison conditions sele...

SQL注入總結(二)

手工注入的大致思路 判斷是否存在注入,注入是字元型還是數字型 猜解sql查詢語句中的字段數 order by 2 確定顯示的字段順序 union select 1,2 獲取當前資料庫 union select 1,database 獲取資料庫中的表 xx union select 1,table n...

SQL之總結(二)

4.關於取兩個日期之間的年份 ceil months between sysdate,c.sendtime 12 worktime ceil n 取大於等於n的最小整數 floor n 取小於等於n的最大整數 5.如果某個欄位為空值則以 nbsp 代替 nvl c.phone,18677777777...