單表查詢是相對多表查詢而言的,指從一個數據表中查詢數據。
4.2.1 查詢所有的記錄
在【命令編輯區】執行輸入“select * from scott.emp”,然後單擊【執行】按鈕,出現如圖4.3所示的emp數據表所有記錄。
【參見光盤文件】:\第4章\4.2\421.sql。
select * from 數據表,這裡的“*”代表數據表中所有的字段。
4.2.2 查詢所有記錄的某些字段
在【命令編輯區】輸入“select empno,ename,job from scott.emp”,然後單擊【執行】按鈕,將顯示emp數據表的empno、ename和job字段,如圖4.4所示。
【參見光盤文件】:\第4章\4.2\422.sql。
select 字段名1, 字段名2,…… from 數據表,將顯示某些特定的字段,注意這裡的字段名之間的逗號是英文狀態下的逗號。
4.2.3 查詢某些字段不同記錄
在圖4.4所示的job字段中,可以發現有相同的數據,為了查詢有多少種不同的job,在【命令編輯區】輸入“select distinct job from scott.emp”,然後單擊【執行】按鈕,出現如圖4.5所示的結果。
【參見光盤文件】:\第4章\4.2\423.sql。
select distinct 字段名 from 數據表,這裡的“distinct”保留字指在顯示時去除相同的記錄,與之對應的是“all”將保留相同的記錄,默認為“all”。
4.2.4 單條件的查詢
(1)在【命令編輯區】輸入“select empno,ename,job from scott.emp where job=’MANAGER’”,然後單擊【執行】按鈕,出現如圖4.6所示的字符型字段條件查詢的結果,查詢的是job為MANAGER的記錄。
【參見光盤文件】:\第4章\4.2\424-1.sql。
(2)在【命令編輯區】輸入“select empno,ename,sal from scott.emp where sal<=2500”,然後單擊【執行】按鈕,出現如圖4.7所示的數字型字段條件查詢的結果,查詢的是滿足sal小於等於2500的記錄。
【參見光盤文件】:\第4章\4.2\424-2.sql。
where可以指定查詢條件,如果是指定字符型字段查詢條件,形式為字段名 運算符 '字符串';如果是指定數字型字段查詢條件,形式為字段名 運算符 '字符串'。 單條件查詢使用的比較運算符如表4.1所示。
【參見光盤文件】:\第4章\4.2\table41.sql。
表4.1 比較運算符 名稱實例=(等於)select * from scott.emp where job=’MANAGER’;select * from scott.emp where sal=1100;!= (不等於)select * from scott.emp where job!=’MANAGER’;select * from scott.emp where sal!=1100;^=(不等於)select * from scott.emp where job^=’MANAGER’;select * from scott.emp where sal^=1100;<>(不等於)select * from scott.emp where job<>’MANAGER’;select * from scott.emp where sal<>1100;<(小於)select * from scott.emp where sal<2000;select * from scott.emp where job<’MANAGER’;>(大於)select * from scott.emp where sal>2000;select * from scott.emp where job>’MANAGER’;<=(小於等於)select * from scott.emp where sal<=2000;select * from scott.emp where job<=’MANAGER’;>=(大於等於)select * from scott.emp where sal>=2000;select * from scott.emp where job>=’MANAGER’;in(列表)select * from scott.emp where sal in (2000,1000,3000);select * from scott.emp where job in (’MANAGER’,’CLERK’);not in(不在列表)select * from scott.emp where sal not in (2000,1000,3000);select * from scott.emp where job not in (’MANAGER’,’CLERK’);between(介於之間)select * from scott.emp where sal between 2000 and 3000;select * from scott.emp where job between ’MANAGER’ and ’CLERK’;not between (不介於之間)select * from scott.emp where sal not between 2000 and 3000;select * from scott.emp where job not between ’MANAGER’ and ’CLERK’;like(模式匹配)select * from scott.emp where job like ’M%’;select * from scott.emp where job like ’M__’;not like (模式不匹配)select * from scott.emp where job not like ’M%’;select * from scott.emp where job not like ’M__’;Is null (是否為空)select * from scott.emp where sal is null;select * from scott.emp where job is null;is not null(是否為空)select * from scott.emp where sal is not null;select * from scott.emp where job is not null;
like和not like適合字符型字段的查詢,%代表任意長度的字符串,_下劃線代表一個任意的字符。like ‘m%’ 代表m開頭的任意長度的字符串,like ‘m__’ 代表m開頭的長度為3的字符串。