Oracle相關知識(1)

2021-10-03 20:39:39 字數 4159 閱讀 1354

系統使用者登入:

系統自帶的使用者(sys,system,scott)

格式: sqlplus username/password@servicename

as sysdba

示例: sqlplus system/a123456@orcl

as sysdba -- as sysdba 表示用管理員賬戶登入

注意: 如果不加as sysdba即使普通使用者登入

1.內建有四個資料表:

員工表、部門表、工資等級、獎金表,都在scott使用者下

注意:剛安裝好的oracle資料庫 scott使用者是鎖定的,需要進行解鎖才能登入

2.解鎖scott使用者:

1.使用system使用者進行登入 (本機的資料庫)

sqlplus system/a123456@orcl

as sysdba -- 在控制外面不要在語句結尾加分號

2.使用alter解鎖:

alter

user scott account unlock

;-- 解鎖

alter

user scott account lock

;-- 加鎖

3.驗證:

conn scott/tiger@orcl

tiger

tiger

口令已更改

已登入4.檢視當前使用者下的所有表

show

user

;-- 檢視當前使用者

select table_name from user_tables;

-- 檢視當前使用者下所有的表

emp -- 雇員表

dept -- 部門表

salgrade -- 工資等級表

bonus -- 獎金表

select

*from emp;

-- 檢視emp表下的所有資料

命令

含義show user;

顯示當前使用者名稱

connect scott/tiger;

登入scott資料庫

conn system/a123456;

登入system資料庫

disconnect;

斷開連線

desc emp;

顯示表結構

select * from tab;

檢視當前使用者下的表名

select table_name from user_tables;

查詢當前使用者下的表名

@path;

path代表sql檔案所在的位置

set linesize 100;

設定行寬

set pagesize 8;

設定每頁顯示的記錄數

col 欄位名 for 9999/a;

設定欄位的顯示寬度,9999表示數字,a表示字元

1.之所以會設定行寬、列寬和頁面記錄,是因為在sqlplus模式下:select查詢的時候經常會遇到返回的記錄折行,為了便於我們檢視,所以會對其進行設定。

2.sqlplus命令是會話級的,exit之後就消失了

3.在使用 set pagesize時,需要注意:該記錄數包含標題、虛線、空行。

1.rownum

作用:是oracle系統順序分配為從查詢返回的編號,返回的第一行分配的是1.第二行是2,一次類推,這個偽 字段可以用於限制查詢返回的總行數;

例如:select rownum,empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;

-- 14條記錄

select rownum,deptno,dname,loc from dept;

-- 4條記錄

需求:取雇員表中前三條記錄:

select

rownum,empno,ename,job,mgr,hiredate,sal,comm,deptno

from emp

where rownum <=3;

需求:取雇員表第三條及以後的記錄:

select

*from

(select rownum rn,empno,ename,job,mgr,hiredate,sal,comm,deptno from emp

)where rn >=3;

注釋: rownum表示行號,是乙個偽列,可以在每一張表**現

例如1:查詢表記錄中的前五行:

select

*from emp where rownum <=5;

例如2:取員工表,第六到第十條資料

select

*from

(select rownum rn,empno,ename,job,mgr,hiredate,sal,comm,deptno from emp

)where rn between

6and10;

2.建立序列

語法: creater sequence 序列名稱 [maxvalue num | nomaxvalue]

[minvalue num | nominvalue]

[increment by num start

with10]

[cache num | nocache]

[cycle

| nocycle]

squence引數說明:

maxvalue 100 序列的最大值

nomaxvalue 不設定最大值

minvalue 10 序列的最小值

nominvalue 不設定最小值

increment by

1 每次增加1個 類似mysql的自增長

start

with

1 從1開始計數

cache 10 設定快取10個序列

nocache 不設定快取

cycle 到頭迴圈

nocycle 一直累加,不迴圈

建立:create sequence myseq minvalue 1 maxvalue 100

start

with

1 incerment by

1 cache 20 nocycle

解釋: 建立乙個名為 myseq 的序列,該序列的範圍是1

-100,從1開始,每次加1,快取20個,不迴圈

使用: nextval -

> 取得序列的下乙個內容

序列名.nextval

1.如果要使用scott使用者建立檢視,需要對該使用者進行授權:

grant

create

view

to scott;

-- 將建立檢視的許可權給scott使用者;

2.在使用插入語句時需要注意,oracle不支援一次插入多條記錄

3.在獲取日誌值時,不能直接使用year、month、day獲取:

select empno,ename,

hiredate,

to_char(hiredate,

'yyyy'

)year

,-- year(hiredate)

to_char(hiredate,

'mm'

)month

,-- month(hiredate)

to_char(hiredate,

'dd'

)day

,-- day(hiredate) %c

to_char(hiredate,

'yyyy/mm/dd'

)ymd,

to_char(hiredate,

'fmyyyy/mm/dd'

)ymd -- 用fm去掉前導0

只要方向對了,不怕路太遠。

oracle相關知識

1.oracle的儲存過程 幾個去 ibm 面試的兄弟回來抱bai怨 去了好幾個du不同的zhi ibm 專案組,幾乎每個面試官問到數dao據庫的時候都要問用沒用過儲存過程,煩人不?大家去面的程式設計師,又不是 筆者認為,儲存過程說白了就是一堆 sql 的合併。中間加了點邏輯控制。但是儲存過程處理比...

oracle相關知識2

64位oracle連線plsql不成功的問題 1.plsql只有32位的版本,按網上的即可。刪除使用者 刪除使用者遇到問題,顯示該使用者在連線中 a.查詢當前連線使用者的詳細資訊 select sid,serial status from v session where username xx b....

oracle的相關知識

開啟enterprise manager console 的時候一直閃退,這個問題想了好幾天,在網上也搜了各種答案,在這裡彙總一下。首先是服務 先介紹oracle所有的相關服務 1 oracle orcl vss writer service oracle卷對映拷貝寫入服務,vss volume s...