sql某字段不包含某值 SQl基礎查詢

2021-10-12 09:24:48 字數 3735 閱讀 4030

=1.select基本查詢語句

(1)列的查詢

select 《列名1>、《列名2>,... from 《表名》;

如:從學生表中查詢姓名和性別兩列

(2)為列設定別名as

sql語句使用as關鍵字為列設定別名,別名使用中文時需要用雙引號括起來,as可省略

select stu_name as "姓名",*** as "性別" from student;

(3) 刪除重複資料distinct

select distinct 欄位名 from 表名;

select distinct stu_id,stu_name from student;

注:此時只有stu_id和stu_name相同時才會刪除

2.指定查詢條件

select 字段 from 表名 where 篩選條件

執行順序:from--where--select

select * from student where stu_name='猴子';

3.注釋

單行注釋

--查詢出全部列

slect * from student;

多行注釋

/*查詢姓名是猴子的學生的學號

*/select stu_id from student where stu_name='猴子';

4.簡單運算子

.+號的作用

mysql中的加號只充作運算子兩個運算元均為數值型,做加法運算;其中一方為字元型,比如'123'+90,此時會將字元型轉換成數值型,若轉換成功,繼續做加法運算;

若轉換失敗,則將字元型數值轉換為0,與其他進行加法運算。若只要其中一方為null,則結果肯定為null.

5.邏輯運算子

按邏輯表示式篩選,邏輯表示式主要用於連線條件表示式的

and兩個條件均為ture,結果是true;反之則為false;

or只要有乙個條件為true,結果為true,反之為false

not 如果連線的條件本身為false,結果為true,反之為false

case:select stu_id from score where not score >=60;(不大於60)

6.模糊查詢

like 、 between and、in、is null

(1)like

特點:一般與萬用字元搭配使用,萬用字元:%,代表任意多個字元,也包含0個字元;

_下劃線,代表單個字元

案例1:查詢員工名中包含字元a的員工資訊(篩選條件比較模糊,此時命令中的a為字元型,因此要加單引號,此時的百分號表示萬用字元的作用)

select * from employees where last_name like '%a%';

案例2:查詢員工名中第三個字元為c,第五個字元為h的員工名

select last_name,salary from employees where last_name like '__c__h%';

#案例3:查詢員工中第二個字元為_的員工名(此時下劃線充當字元,可以通過轉譯的方式)

select last_name from employees where last_name like '_$_%'escape'$';

(2)between and

注意事項:使用between and 可以提高語句的簡潔度

包含連線值(即區間端點值)

等價於大於等於左邊的值小於等於右邊的值

#案例1:查詢員工編號在100到120之間的所有的員工資訊

select * from employees where employee_id between 100 and 120;

(3)in

注意:含義是指用於判斷某字段的值是否屬於in列表中的某一項

特點:使用in做篩選比使用or提高語句簡潔度

in列表的值型別必須統一或者是相容

in列表中的字段不支援使用萬用字元或者下劃線等類似於like的萬用字元

案例1:查詢員工的公眾編號是it_prog、ad_vp、ad_pres中的乙個的員工名和工種編號

select last_name,job_id from employees where job_id in('it_prog','ad_vp','ad_pres');

(4)is null的使用(要使用is null而非= null)

注意:等號或者不等於號不能用於判斷null值,is null或者is not null 可以判斷null值;

#案例1:查詢沒有獎金的員工名和獎金率

select last_name,commission_pct from employees where commission_pct is null;

select last_name,commission_pct from employees where commission_pct is not null;

(5)安全等於<=> 含義是判斷是否等於

也可以用於判斷null值,還可以用來判斷普通型別的值

案例:查詢工資為12000的員工資訊但是可讀性很差

select * from employees where salary <=> 12000;

select last_name,commission_pct from employees where commission_pct <=> null;

比較is null 和<=>

is null 僅僅用於判斷null值,而<=>既可以判斷null值又可以判斷普通數值

is null可讀性較高,而<=>可讀性較低,建議使用 is null

對於查詢的字段可能出現空值時:

#2.查詢員工號為176的員工的姓名、部門號、年薪(因為獎金率會存在空值)

select last_name,department_id,salary*12*(1+ifnull(commission_pct,0)) as 年薪 from employees where department_id =100;

練習:

Sql查詢按某字段值排序

1.sql查詢資料 select from emapiauthorizeinfo order bycase when d76c63ec d885 40b4 ad58 e950ebba74bf then 1when be1581ea d3d1 4342 a427 2027faee26db then 2...

SQL 去掉某欄位括號中的值

今天在資料庫匹配資料的時候,發現一些資料存在別名,導致我的資料匹配不上。在這裡記錄分享一下 例如 李鍾碩 lee jong suk 這裡我匹配的是 李鍾碩 示例1 select reverse substring reverse name charindex reverse name 1 len n...

sql 不包含 SQL 優化路在何方

上回說到 mysql 索引的使用,是不是有了索引就一定能讓查詢效率變高呢?很顯然不是的。有很多情況會影響 sql 執行效率。先不說資料庫服務的硬體配置,以及執行 sql 時那一瞬間的系統負載情況,今天主要 如何優化 sql 本身。mysql 的慢查詢日誌是 mysql 提供的一種日誌記錄,它用來記錄...