Oracle 學習筆記(1)

運算符
||  字串連結
!=, <>  不等於.-=, ^= 
**  取冪
IN  集合成員 
:=  指定
..  範圍運算
=>  關連
BETWEEN   值範圍

------------------------------------------------------------------------------------------------------------------------------------------------------------------

--  LIKE 模式匹配
-- 下划線 _  代表一個字符,百分號 %  代表任意個字符

------------------------------------------------------------------------------------------------------------------------------------------------------------------

--  組合邏輯 and , or
--  and 的優先級別比or高

------------------------------------------------------------------------------------------------------------------------------------------------------------------

改變對象的名稱:rename 命令。

例如當你創建了一個 table,function,trigger,procedure 等﹐由于當時你考慮不周現在想改變對象名稱則可使用 rename 命令。

使用方法:rename old_name to new_name

------------------------------------------------------------------------------------------------------------------------------------------------------------------

怎樣修改oracel資料庫的默認日期?
alter session set nls_date_format='yyyymmddhh24miss'

------------------------------------------------------------------------------------------------------------------------------------------------------------------

創建一個表的語法:有主,外鍵,約束

create table tab_name (col1 datatype(n),col2 datatype(n),constraint pk_cons_name primary key(col1,col2),constraint fk_cons_name foreign key(col1) references tab_name(col1),constraint un_name unique(col2))

------------------------------------------------------------------------------------------------------------------------------------------------------------------

創建臨時表
-- 創建臨時表時,可以指定它是否在整個會話其間都存在(利用 on commit preserver rows 子句),
-- 或者在事務處理完成時是否刪除它的行(利用 on commit delete rows 子句)
-- 與永久表不同的是,在創建臨時表時不會自動分配空間,表的空間時在插入數據時動態分配

例子:

CREATE GLOBAL TEMPORARY TABLE year_rollup
( YEAR NUMBER(4),
MONTH VARCHAR2(9),
counter NUMBER)
ON COMMIT PRESERVE ROWS;

------------------------------------------------------------------------------------------------------------------------------------------------------------------

insert into tab1

select * from user_name.tab2@dbname;

------------------------------------------------------------------------------------------------------------------------------------------------------------------

關於視圖:

創建視圖(view)
語法:
CREATE [ OR REPLACE ] [ FORCE | NOFORCE ] VIEW view_name [ (別名,...)]
AS select_statement
[ WITH CHECK OPTION [ CONSTRAINT  constraint_name]]
[ WITH READ ONLY ]
-- FORCE 不管引用的表是否存在,視圖都會創建
-- NOFORCE 只有引用的表存在時,才創建視圖,orace的默認值
-- WITH CHECK OPTION 所插入或修改的數據必須滿足視圖所定義的蠽條件?
-- WITH READ ONLY 保証 在該視圖上不能進行任何DML操作

CREATE VIEW emp_md -------------創建視圖
as select
emp_m.emp_no,
emp_d.emp_job_no,
emp_m.emp_name,
emp_d.emp_salary
from emp_m,emp_d
where emp_m.emp_no=emp_d.emp_no
WITH CHECK OPTION ck_sex CHECK(sex = '0' OR sex = '1');

 

View 是否能更新的條件
----------視圖必須是可以唯一的定義每一筆記錄 , 且 select 中, 擁有所有識別唯一鍵值的欄位(為保留鍵的表格)
----------不能包含以下內容﹕
----------1﹑ROWNUM
----------2﹑表格階層:START WITH, CONNECT BY
----------3﹑集合運算:UNION, MINUS
----------4﹑群組函數: DISTINCT, GROUP BY, HAVING
----------5﹑數學函數:COUNT, MAX, MIN
----------6﹑每一段敘述只能對單一表格進行
----------insert , update 只能對持有鍵表格有作用
----------delete 只能在 view 中,僅有一個持有鍵表格時進行
-----------------------------------VIEW 與記錄層次安全性
---------利用view 可限制使用者資料的存取
---------可使用 where 條件, 限制使用者帳號名稱或權限下的資料顯示
例如﹕
CREATE OR REPLACE VIEW view_1
AS SELECT *  FROM person
WHERE per_name = USER;
-----------------------------------內嵌式視圖(Inline Views)
-----------把查詢語句放在FROM 子句中,并為該子句定義一個別名來定義內嵌式視圖
-----------注意:內嵌式視圖不屬于任何用戶,也不是對象
例如:
select emp_name,emp_age
from emp_m m,(select emp_no from emp_d ) d
where m.emp_no = d.emp_no

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值