oracle學習(使用了PL SQL) 1

2021-08-09 22:48:56 字數 3642 閱讀 2343

2.1字元型別

1. char 固定長度,最大長度為200位元組.

2. varcahr2 動態長度 最大長度為4000位元組

2.2數字型別

1.number 表示整形,使用整形整形最好宣告長度,例如number(3)

2.number 浮點型,類似於sql server中的decimal(8,3),這裡一樣 number(8,3),總長度為8位,小數點後為三位。

2.3日期型別

1.date 長度為7個位元組,分別表示世紀、年、月、天、時、分、秒

2.timestamp 如上,不過秒可以精確到小數點後6位

2.4大物件型別

1.dml:資料庫操作語言:用於檢索或者修改資料

①select ②inser ③update ④delete

2.ddl 資料庫定義語言:用於定於資料的結構,比如說建立

①create table ② alter table ③drop table ④ create index ⑤drop index ⑥create。。。等建立語句

3.dcl: 資料控制語言: 用於定義資料庫的許可權

①alter password… ②grant(給某使用者設定某許可權)③revoke(移除某使用者的某許可權)④create synonym(建立同義詞)

4.關於許可權的查詢語句

– 確定角色的許可權

1.select * from role_tab_privs ; 包含了授予角色的物件許可權

2.select * from role_role_privs ; 包含了授予另一角色的角色

3.select * from role_sys_privs ; 包含了授予角色的系統許可權

– 確定使用者帳戶所授予的許可權

1.select * from dba_tab_privs ; 直接授予使用者帳戶的物件許可權

2.select * from dba_role_privs ; 授予使用者帳戶的角色

3.select * from dba_sys_privs ; 授予使用者帳戶的系統許可權

–其他查詢

1.~user_all_tables; 查詢使用者變空間

2.~user_source; 查詢所有資源(觸發器,函式,過程等)

3.~all_users;查詢所有使用者

4.~v$session; 查詢當前連線使用者

5.~session_privs; 查詢當前使用者許可權

6.~user_procedures;查詢當前使用者下所有儲存過程

7.~user_triggers;查詢當前使用者下所有觸發器

5.建立語句

1.建立表空間

create tablespace my_tablespace

datafile 'd:/myoracle/myfirstspace.dbf' --指定表空間儲存位置

size

10m --初始表空間大小

autoextend on

next

10m maxsize unlimited;

--當超過表空間初始大小時表空間自動增長10m,無上限

2.刪除表空間

drop tablespace my_tablespace including contents and datafiles
3.給使用者分配表空間

alter

user 使用者名稱 quota unlimited on 表空間;

或 alter

user 使用者名稱 quota *m(這裡為大小) on 表空間;

4.解鎖使用者及更新使用者密碼(用system使用者或sys使用者)

alter suer scott account unlock;--解鎖使用者

alter

user scott identified by

123456;--更改使用者密碼

5.建立表

create

table table_name(

.......(oracle中sql server中的自增序列)

);

6.建立序列(是乙個命名的順序編號生成器,它能以序列的方式生成一系列順序整數。插入序列時需要)

create sequence tb_user_emp

increment by

1--設定增量

start

with

1 --開始值

[minvalue 1] --設定最小指

[maxvalue | nomaxvalue] --設定最大值 | 沒有最大值

[cache 10 | nocache][cycle|no chycle] ; [設定快取數量(最好設定一下) | 無快取] [到達最大值迴圈|不迴圈]

[order|noorder] --一般用不到

--注:保證序列號按請求順序產生。如果想以序列號作為timestamp(時間戳)型別的話,可以採用該選項。

例如雙cpu對同乙個表dept中的deptno申請序號時, 這時就有兩個請求a和b,假設a請求在前b在後, 現在dept序列中deptno的值為3。 如果新增了order選項,那麼一定是a請求到3, b請求到4。但如果沒有新增此選項,則有可能b請求到4, a請求到3。

select tb_user_emp.nextval from dual;檢視自增序列的下乙個值

select tb_user_emp.currval from dual;檢視自增序列的當前值

insert

into dept values(tb_user_emp.nextval,'aaa','bbb');

7.建立觸發器(當對某個表進行操作時,滿足了觸發器的條件時自動觸發begin中的語句)

create

orreplace

trigger tri_emp

before|after --觸發時間

insert

orupdate

ordelete --觸發事件

on emp --制定操作表

begin

if to_char(sysdate,'day') in ('星期一','星期四') then

endif;end

if;

8.利用觸發器和自增序列實現插入資料時某列自增

create

orreplace

trigger trg_user

before

insert

on dept for

each

rowbegin

select tb_user_emp.nextval into:new.deptno from dual;

end;

insert

into dept(dname,loc) values('aaaa','bbbb');

oracle學習(使用了PL SQL) 3

今天主要是寫一些常用的函式,就當複習一遍,偶爾還能看一下 1.字元函式 函式名函式功能 例項ascii 返回指定的字元 第乙個字元 對應的十進位制數 select ascii hello from dual chr引數為整數,表示某個字元的unicode碼,返回對應的字元 chr 50403 ini...

Oracle11g安裝後如何使用PL SQL

使用pl sql的方法 1,檢視電腦服務,確保以下倆服務開啟。xlistener 已啟動 oracleserviceorcl 已啟動 2,登入 使用者名稱 scott 密碼 tiger 原因 預設oracle11g的scott不能登陸。3,使用者解鎖 1 以管理員的身份登入資料庫 system sy...

不安裝Oracle客戶端也能使用PL SQL

不安裝oracle,怎麼才能使用pl sql呢?oracle動輒幾百m,在現在的機器配置下,當然空間不是問題,但是有時候,啟動的一些服務帶來不小的效能影響。使用instantclient吧,免安裝,免費,配置簡單,不啟動服務。在資料夾內建立目錄,network admin。如 d instantcl...