Sql語句 | 含義 | 備注 |
DESC EMP; | 查詢表結構 | EMP為表名 |
SELECT table_name FROM user_tables; | 檢視目前使用者下的所有表的名字 | |
select*from emp; | 查詢emp表中的所有記錄 | |
DELETE FROM 表名稱 WHERE 列名稱 = 值 | DELETE 語句用于删除表中的行。 | DELETE FROM Person WHERE LastName = 'Wilson' |
DELETE FROM table_name where id=1 | 删除id為1 的記錄 | |
DELETE FROM table_name | 所有表記錄删除 | |
drop table subject; | 删除表subject | |
select Ename,job from emp; | 查詢ename和job這兩個字段的值(列) | |
SELECT DISTINCT 列名稱 FROM 表名稱 | 去除查詢出來的重複值 | DISTINCT隻能在select後邊,去重的時候,要在一整行記錄都重複的情況下才會去重,否則打破資料對應關系 |
select id*2 as id2 from emp | 查詢id*2的值顯示為id2 | as也可以用空格代替,給表取别名的時候隻能用空格 eg:--查詢編号 姓名 年薪 月薪 日薪 select EMPNO AS 編号, ENAME AS 姓名,SAL*12 AS 年薪,SAL as 月薪,SAL/30 AS 日薪 from EMP; |
|| | 拼接字元串 | select '編号:'|| empno ||'姓名:'|| ename ||'月薪'||sal 描述 from emp ; |
ORDER BY | 用于對結果集進行排序。 | select * from emp order by id DESC 按照ID降序排序 ASC是升序(預設) DESC是降序 |
is noll、is not null | 判斷null | |
= null | 判斷值是否為null | |
a>200 and c <300 或者 between 200 and 300 | 範圍查詢【閉區間】 | |
IN(10,20,30) | 取10,20或者30 | |
NOT IN(10,20) | 不取10或20 | |
like | 模糊查詢% 表示任意個任意字元 _ (下劃線)表示一個任意字元 | select * from emp where job like '%S%'; 包含S的 select * from emp where job like '_S%'; 第二個字元為S的 select * from emp where job like 'S%'; 以S開頭的 select * from emp where job like '%S'; 以S結尾的 |
SELECT table_name FROM user_tables; | 檢視目前使用者下的所有表的名字 | |
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值 | Update 語句用于修改表中的資料。 | update emp SET sal=400 where empno=7369; |
NVL(列,數值) NVL(列,'文本') | 如果這個之值為空,則替換為數值 如果這個之值為空,則替換為文本 | select sal+nvl(comm,0) as 工資 from emp; |
select distinct student.name,grade.score from subject,grade,student where grade.score=90 and STUDENT.id=1; 多表關聯查詢 | ||
單行函數 | ||
字元函數 | upper(str) | 把str變為大寫 |
lower(str) | 把str變為小寫 | |
initcap(str) | 把str首字母變大寫 | |
replace(str,f,s) | 把f換為s | |
length(str) | 長度 | |
substr(str,index1,index2) | 截取 左閉右開區間 | |
substr(str,3) | 截取3到結尾 | |
substr(str,-3) | 截取後三位 | |
ASCII('a') | 擷取字元ASCII碼 | |
CHAR(100) | 把ASCII碼轉化為字元 | |
Ltrim(str) | 去除str左邊空白 | |
trim(str) | 去除str兩邊空白字元 | |
Rtrim(str) | 去除str右邊空白 | |
LPAD | 填充 select LPAD('cc',10,'*') 用*代替cc左邊不足10位的字元 | |
RPAD | 填充 select RPAD('cc',10,'*') 用*代替cc右邊邊不足10位的字元 | |
instr(‘hello’,‘ll’) | 傳回ll在hello中的索引 | |
concat 和 || | 拼接 | |
數值型函數 | round(1.234) | 四舍五入保留整數 |
round(1.234,2) | 四舍五入保留2位小數 | |
trunc(1.23) | 直接舍棄小數 | |
trunc(1.23,2) | 保留兩位小數截取 | |
MOD(10,3) | 10/3的餘數(取模運算) | |
Ceil(45.67) | 向上取整 | |
Floor(45.56) | 向下取整 | |
日期函數 | systimestamp | 擷取目前時間 |
add_months(sysdate,3) | 在sysdate日期之後3個月的日期 | |
add_months(sysdate,-3) | 在sysdate日期之前3個月的日期 | |
next_day(sysdate,'Sunday') | 下一個星期天的日期 | |
last_day(sysdate) | 傳回本月最後一天 | |
Months_between(sysdate,hiredate) | 傳回兩個日期的月差 | |
extract(year from sysdate) | 從sysdate中擷取年份 | |
extract(month from sysdate) | 從sysdate中擷取月份 | |
extract(day from sysdate) | 從sysdate中擷取天 | |
extract(hour from systimestamp) | 從sysdate中擷取時 | |
extract(minute from systimestamp) | 從sysdate中擷取分 | |
extract(second from systimestamp) | 從sysdate中擷取秒 | |
to_timestamp(‘2018-12-12 12:3:4’,‘yyyy-mm-dd hh24:mi:ss’) | 格式化時間格式(字元串轉日期) | |
轉換函數 | to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) | 将日期格式轉化為字元串 |
to_char(1234567,'999,999,999,999') | ||