sql語句分類:
資料查詢語言 date query language,dql.負責資料查詢而不會對資料本身進行修改的語句,核心指令是select,輔助指令from,where,group by和order by.
資料定義語言 date definition language,ddl.負責資料結構定義與資料庫定義的語言,由create,alter,drop三個語法組成.
資料操縱語言 date manipulation language,dml .負責對資料庫物件執行資料訪問工作的指令集,以insert,update,delete三種指令為核心.
資料控制語言 data control language,dcl.可對資料訪問權進行控制的指令,可以控制特定使用者賬戶對資料表,檢視表,預存程式,使用者自定義函式等資料庫物件的控制權,由grant,revoke兩個指令主城.
select 列名 from 表名;
查詢表中的列的資料
更改所查詢出來資料列的顯示寬度
col 列名 for a20
使用as為列起別名,as可省略
select last_name,title,salary*12 as total
from s_emp;
||拼接字元,單引號修飾字串
select first_name||' '||last_name name
from s_emp;
nvl設定列預設值 字串用單引號修飾
select last_name,salary*(1+nvl(commission_pct,0)/100) total
from s_emp;
distinct 去除重複預設對列的組合去重
select distinct name
from s_dept;
order by 表示按列排序,預設為公升序
asc 公升序 desc 降序
select last_name,dept_id,salary
from s_emp
order by last_name desc;
先按salary公升序,相同時按dept_id降序
select last_name,dept_id,salary
from s_emp
order by salary,dept_id desc;
表示式和別名和列名都可以用來排序
select last_name name,salary*12
from s_emp
order by name desc;
可以由select的子項的標號直接排序,由1開始
select last_name name,salary*12
from s_emp
order by 2 desc;
排序時null值當最大值使用
where設定資料條件
select last_name,dept_id,salary
from s_emp
where dept_id=42;
between and 是閉區間的
select last_name,salary
from s_emp
where salary between 1500 and 2000;
escape 臨時指定轉義字元
select last_name,title
from s_emp
where last_name like 『/_m%』 escape 『/』;
null不能使用=來判斷 需要使用is null
select last_name,title
from s_emp
where commission_pct is null;
and的優先順序比or高 比較運算子優先順序最高,如between,in
select last_name,salary,dept_id
from s_emp
where salary between 1000 and 2000
and (dept_id=41 or dept_id=43);
concat 連線符 lower 小寫 upper 大寫
select lower(last_name) ll,upper(title) ut,concat(first_name,last_name) name
from s_emp;
initcap 首字元大寫
dual是乙個虛擬表,是「空表」的意思
select initcap(『hello world』)
from dual;
substr 擷取字串
length 下標從1開始,長度
select substr(last_name,length(last_name)-1,2)
from s_emp;
多表查詢
內連線,當有null時不查詢
查詢員工資訊和部門名稱
select e.last_name,e.title,d.name dept_name
from s_emp e,s_dept d
where e.dept_id=d.id;
左外連線,把左表中的沒有關聯關係的行業查詢出來
select e.last_name,d.name
from s_emp e
left outer join s_dept d
on e.dept_id =d.id;
右外鏈結,把右表中沒有關聯關係的行也查詢出來
select e.last_name,d.name
from s_emp e
right outer join s_dept d
on e.dept_id =d.id;
全外鏈結
select e.last_name,d.name
from s_emp e
full outer join s_dept d
on e.dept_id =d.id;
自連線
查詢每個員工資訊,及該員工的經理資訊
select e.id,e.last_name,m.last_name manager_name
from s_emp e
left outer join s_emp m
on e.manager_id=m.id;
替換變數
select id,last_name,salary
from s_emp
where dept_id = &var2;
select id,last_name,salary
from s_emp
where last_name=』&var1』
define var2=33
SQL基礎篇 select語句與排序問題
一 檢索 輸出所有的列 select from my friends where first name cake 知識點1 代表選擇出所有的行 什麼行呢?就是first name cake 的行。整個語句的意思就是從my friends的表中,檢索出first name cake 的行,並全部顯示!...
SQL查詢語句SELECT精華
一 簡單查詢 簡單的transact sql查詢只包括選擇列表 from子句和where子句。它們分別說明所查詢列 查詢的 表或檢視 以及搜尋條件等。例如,下面的語句查詢testtable表中姓名為 張三 的nickname欄位和email欄位。select nickname,email from ...
SQL語句 查詢(select),筆記
sql語句 查詢 select 筆記。最基本的 select 語句結構 1 select from 表名字 把相關於 這個表的語句全部查詢出來。2 select 欄位名1 欄位名2 from 表名 把這個表中關於欄位1和字段2的相關資料全部查詢出來。3 select from 表名 where 字段...