oracle2

上節回顧:
1、select 基本語法
select * (字段名,字段名...) from 表名;
2、字符串的拼接
|| '           '   ||  name name
3、非空函數NVL()
NVL(可能會有空值的字段名,值)
4、去除重複行
distinct
5、起別名
空格 + 字段



Oracle Day2

Order By  子句
Order By + 字段名,字段名,....
Order By + list列表值,list列表值,....
ASC     升序    默認
DESC     降序   

請用兩種方式:
查詢員工表中所有員工名字及員工工資並按從小到大的順序排列
select first_name , salary from s_emp order by salary;
select first_name , salary from s_emp order by 2;

查詢員工表中所有員工名字及員工工資並按從大到小的順序排列
select first_name , salary from s_emp order by salary desc;
select first_name , salary from s_emp order by 2 desc;

查詢員工表中所有員工名字及員工工資並按名字從大到小的順序排列
select first_name , salary from s_emp order by first_name desc;
select first_name , salary from s_emp order by 1 desc;

查詢員工表中所有員工名字及員工工資並按工資從小到大,名字從大到小的順序排列
select first_name , salary from s_emp order by  salary ,first_name desc;
select  salary , first_name  from s_emp order by  1,2 desc;



where 子句
比較運算符
=   >   >=   <   <= 
不等於    !=   <>   ^=

查詢員工表中編號爲41的員工(標題爲Stock Clerk)
select * from s_emp where id =41;
select * from s_emp where id >41;
select * from s_emp where id <41;
select * from s_emp where id >=41;
select * from s_emp where id <=41;
select * from s_emp where id !=41;
select * from s_emp where id <>41;
select * from s_emp where id ^=41;

select * from s_emp where title = 'Stock Clerk';

SQL 運算符
BETWEEN ... AND...   查詢*到*之間的記錄
查詢員工表中編號在12到24之間的記錄
select * from s_emp  where id  between  12 and 24;
select * from s_emp  where MANAGER_ID  between  3 and 8;

IN(list)   查詢指定個數的記錄
查詢員表中編號爲1,3,8的記錄
select * from s_emp where id in(1,3,8);

模糊查詢
LIKE  
通配符:% _ 

查詢員工表中姓名包含a字母的員工信息
select * from s_emp where first_name like '%a%';


查詢員工表中姓名第二個字母包含a字母的員工信息
select * from s_emp where first_name like '_a%';


IS NULL    是否爲空值
查詢員工表中提成爲空的所有員工信息
select * from s_emp where commission_pct is null;

NOT BETWEEN
查詢員工表中編號不在12到24之間的記錄
select * from s_emp  where id  not between  12 and 24;

NOT IN
查詢員表中編號不爲1,3,8的記錄
select * from s_emp where id  not in(1,3,8);

NOT LIKE
查詢員工表中姓名不包含a字母的員工信息
select * from s_emp where first_name not like '%a%';

IS NOT NULL
查詢員工表中提成不爲空的所有員工信息
select * from s_emp where commission_pct is not null;


邏輯運算符
AND
查詢員工表中id爲11並且工資爲1400的記錄
select * from s_emp where id =11 and salary =1400;
只要有一個條件不符合,查詢不成功

OR
查詢員工表中id爲11或者工資爲1400的記錄
select * from s_emp where id =11 or salary =1400;
只要有一個條件符合,查詢成功

NOT
查詢員工表中id不爲11的記錄
select * from s_emp where not id =11;


邏輯運算符多個混合使用
SELECT    * FROM     s_emp WHERE    salary >= 1000 AND    dept_id = 44  OR    dept_id = 42 ;

SELECT    * FROM     s_emp WHERE    salary >= 1000 AND    (dept_id = 44  OR    dept_id = 42);




函數之間的轉換

經常用到的一些單函數大致可分爲幾下幾類
跟字符串相關
跟數字相關
跟日期相關

內置函數

組函數

dual  啞表   ====> 專門用來做測試

LOWER    轉換爲小寫
select lower('ORACLE') from dual;

UPPER    轉換爲大寫
select upper('oracle') from dual;

INITCAP    轉換爲首字母大寫
select initcap('my oracle') from dual;

CONCAT    字符串連接  ||
查詢員工表中員工的姓名(用兩種方式實現)
select first_name || last_name "姓名" from s_emp;
select  CONCAT(first_name,last_name) from s_emp;

SUBSTR(原字符串,起始值,返回子串的長度)    返回子串
"my oracle"    "oracl"
select SUBSTR('my oracle',4,5) from dual;

LENGTH(字符串)    返回長度
查詢員工表中所有姓名的長度
select first_name ,  length(first_name)   from s_emp;


ROUND    四捨五入
select round(45.923, 2) from dual;

TRUNC    截取
select trunc(45.923, 2) from dual;


日期函數
查看系統日期
select sysdate from dual;

查詢當前時間五天後的日期
select sysdate+5 from dual;

MONTHS_BETWEEN       兩個日期中做計算
select months_between(sysdate,sysdate+30) from dual;

ADD_MONTHS    當前時間增加(按月增加)
select add_months(sysdate,1) from dual;


NEXT_DAY    當前時間的下一個時間
select next_day(sysdate,'星期四') from dual;

LAST_DAY    本月的最後一天
select last_day(sysdate) from dual;

嵌套
select last_day(add_months(sysdate+1,1)) from dual;


TO_CHAR      轉換爲字符串
select to_char(1234) from dual;
轉換爲固定格式
select to_char(123456,'fm$999,999,999') from dual;

TO_NUMBER     轉換爲數字
select to_number(1234) from dual;

TO_DATE     轉換爲日期
04-3月 -90
select to_date(04-3月 -90) from dual;


日期表現形式:

yyyy 2008        四位年
year         英文表示
mm         2位月份 
month         英文表示
dy         縮寫
day        英文表示
dd        06  數字表示
mi        分鐘   30
ss        秒   兩位數字表示
hh        小時  兩位小時
rr            年   (新類型)
yy        年    (世紀年)


計算機病毒2000


作業:
1、今天課堂練習;
2、練習題






























 

發佈了45 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章