資料庫中的重要物件
物件時性質相同的資料元素的集合,如超市裡的商品一般由食品、家用電器、傢俱等物件組成
一、表
1、表示用來儲存資料的最基本單位
2、表的建立sql語句
-- Create table
create table DEPT
(
deptno NUMBER(2) not null,
dname VARCHAR2(14),
loc VARCHAR2(13)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table DEPT
add constraint PK_DEPT primary key (DEPTNO)
using index
tablespace USERS --該DEPT表儲存在USERS表空間中
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
二、檢視
1、檢視是使用者看到的資料,不是真正存在於資料庫表中的資料,這些資料來源於表,是經過資料抽取、轉化變成的
2、檢視使用者下有多少個檢視
select * from user_views;
3、建立求平均工資的檢視
create view avgsal as
select d.dname as "部門",
round(avg(e.sal), 2) as "平均工資",
count(*) as "員工人數"
from emp e, dept d
where e.deptno = d.deptno
group by d.dname;
注:create view為建立檢視關鍵字,後跟檢視名稱,as為“當做”意思,後面跟SQL查詢語句,即avgsal檢視由其下面的查詢SQL語句組成
4、檢視的查詢
select * from avgsal;
三、序列
1、利用它可以生產唯一的整數,一個序列的值是由Oracle資料庫的特殊程式自動生成的,序列可以定義自動遞增或遞減。
2、序列建立
create table book(
bookID number(12) constraint pk_book primary key,
bookName varchar2(32) not null,
price number(5,2),
printTime date);
create sequence bookID --建立序列
Start with 1
Increment by 1
Maxvalue 99999999
nocache
nocycle;
3、插入資料
insert into book(bookid,bookname)
values(bookid.nextval,'三毛流浪記');
4、通過虛表檢視bookid序列的當前值和下一個值
當前值:select bookid.currval from dual;
下一個值:select bookid.nextval from dual;
四、函式
1、函式分為兩種,一種是Oracle資料庫自身的函式,另一種是使用者自己寫的函式
2、建立一個通過員工的ID號獲取其薪水的函式
create or replace function get_empsal(emp_no number)
return number
is emp_sal number(7,2);
begin
select sal
into emp_sal
from emp
where empno=emp_no;
return(emp_sal);
end;
注:
①create or replace function:這是建立新的或者替換已存在的函式,函式名get_empsal,輸入引數emp_no,為number型別
②return number:該函式定義一個返回number型別的值
③is emp_sal number(7,2):定義引數emp_sal,型別為number(7,2)
④begin:為函式的程式段開始
⑤select...return...:函式程式段,select sal把emp表的sal薪水查詢出來,把查詢出來的sal賦予自定義引數emp_sal,輸入的引數與emp表的員工號相等,則返回該員工的薪水
⑥end:結束函式的SQL程式段,與begin相對應
3、通過函式獲取員工薪水
select get_empsal(7566) from dual;
五、儲存過程
1、儲存過程是一組為了完成特定功能而建立的SQL語句集,經編譯後儲存在資料庫中,使用者通過制定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。
2、建立一個根據員工號刪除員工資訊的儲存過程
create or replace procedure Delempno(empid in number) as
begin
delete from emp where emp.empno=empid;
commit;
end Delempno;
注:
①create or replace procedure:建立儲存過程的關鍵字,如果存在同名的儲存過程,則會替換這個儲存過程;
Delempno是儲存過程的名稱
②empid in number:為儲存過程的傳入引數,該引數為number型別
③begin...end...:這是儲存過程開始和結束的關鍵字,在begin...end之間為儲存過程的具體SQL語句
3、儲存過程的執行
在命令視窗中輸入:excute Delempno(7566);
六、索引
1、索引時對資料庫表中一列或多列的值進行排序的一種結構,相當於一本書的目錄,可以加快查詢內容的作用;索引可以加快資料庫的查詢速度。
2、索引建立:根據表test_index的id欄位建立名為id_test_index的索引
create index id_test_index on test_index(id);
七、同義詞
1、同義詞是現有物件的一個別名,分為私有同義詞和公共同義詞
2、確認使用者是否有建立同義詞的許可權及許可權的授予
①查詢是否有許可權
select * from session_privs s where s.privilege like '%SYNONYM%';
②許可權授予
grant create any synonym to scott;
grant create public synonym to scott;
③建立和刪除一個表的同義詞
create synonym sg for salgrade;
drop synonym sg;
八、Oracle資料庫中函式和儲存過程有何區別
①函式必須有返回值,而過程沒有返回值
②函式可以單獨執行,而過程必須通過execute執行
③函式可以嵌入SQL中執行,而過程不能
其實我們可以將比較複雜的查詢寫成函式,然後到儲存過程中呼叫這些函式
一、表
1、表示用來儲存資料的最基本單位
2、表的建立sql語句
-- Create table
create table DEPT
(
deptno NUMBER(2) not null,
dname VARCHAR2(14),
loc VARCHAR2(13)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table DEPT
add constraint PK_DEPT primary key (DEPTNO)
using index
tablespace USERS --該DEPT表儲存在USERS表空間中
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
1、檢視是使用者看到的資料,不是真正存在於資料庫表中的資料,這些資料來源於表,是經過資料抽取、轉化變成的
2、檢視使用者下有多少個檢視
select * from user_views;
3、建立求平均工資的檢視
create view avgsal as
select d.dname as "部門",
round(avg(e.sal), 2) as "平均工資",
count(*) as "員工人數"
from emp e, dept d
where e.deptno = d.deptno
group by d.dname;
4、檢視的查詢
select * from avgsal;
三、序列
1、利用它可以生產唯一的整數,一個序列的值是由Oracle資料庫的特殊程式自動生成的,序列可以定義自動遞增或遞減。
2、序列建立
create table book(
bookID number(12) constraint pk_book primary key,
bookName varchar2(32) not null,
price number(5,2),
printTime date);
create sequence bookID --建立序列
Start with 1
Increment by 1
Maxvalue 99999999
nocache
nocycle;
3、插入資料
insert into book(bookid,bookname)
values(bookid.nextval,'三毛流浪記');
4、通過虛表檢視bookid序列的當前值和下一個值
當前值:select bookid.currval from dual;
下一個值:select bookid.nextval from dual;
四、函式
1、函式分為兩種,一種是Oracle資料庫自身的函式,另一種是使用者自己寫的函式
2、建立一個通過員工的ID號獲取其薪水的函式
create or replace function get_empsal(emp_no number)
return number
is emp_sal number(7,2);
begin
select sal
into emp_sal
from emp
where empno=emp_no;
return(emp_sal);
end;
注:
①create or replace function:這是建立新的或者替換已存在的函式,函式名get_empsal,輸入引數emp_no,為number型別
②return number:該函式定義一個返回number型別的值
③is emp_sal number(7,2):定義引數emp_sal,型別為number(7,2)
④begin:為函式的程式段開始
⑤select...return...:函式程式段,select sal把emp表的sal薪水查詢出來,把查詢出來的sal賦予自定義引數emp_sal,輸入的引數與emp表的員工號相等,則返回該員工的薪水
⑥end:結束函式的SQL程式段,與begin相對應
3、通過函式獲取員工薪水
select get_empsal(7566) from dual;
五、儲存過程
1、儲存過程是一組為了完成特定功能而建立的SQL語句集,經編譯後儲存在資料庫中,使用者通過制定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。
2、建立一個根據員工號刪除員工資訊的儲存過程
create or replace procedure Delempno(empid in number) as
begin
delete from emp where emp.empno=empid;
commit;
end Delempno;
注:
①create or replace procedure:建立儲存過程的關鍵字,如果存在同名的儲存過程,則會替換這個儲存過程;
Delempno是儲存過程的名稱
②empid in number:為儲存過程的傳入引數,該引數為number型別
③begin...end...:這是儲存過程開始和結束的關鍵字,在begin...end之間為儲存過程的具體SQL語句
3、儲存過程的執行
在命令視窗中輸入:excute Delempno(7566);
六、索引
1、索引時對資料庫表中一列或多列的值進行排序的一種結構,相當於一本書的目錄,可以加快查詢內容的作用;索引可以加快資料庫的查詢速度。
2、索引建立:根據表test_index的id欄位建立名為id_test_index的索引
create index id_test_index on test_index(id);
七、同義詞
1、同義詞是現有物件的一個別名,分為私有同義詞和公共同義詞
2、確認使用者是否有建立同義詞的許可權及許可權的授予
①查詢是否有許可權
select * from session_privs s where s.privilege like '%SYNONYM%';
②許可權授予
grant create any synonym to scott;
grant create public synonym to scott;
③建立和刪除一個表的同義詞
create synonym sg for salgrade;
drop synonym sg;
八、Oracle資料庫中函式和儲存過程有何區別
①函式必須有返回值,而過程沒有返回值
②函式可以單獨執行,而過程必須通過execute執行
③函式可以嵌入SQL中執行,而過程不能
其實我們可以將比較複雜的查詢寫成函式,然後到儲存過程中呼叫這些函式
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29489498/viewspace-1102974/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢視資料庫中的物件資料庫物件
- 12、Oracle中的其它資料庫物件Oracle資料庫物件
- 批量編譯資料庫中invalid的物件編譯資料庫物件
- Oracle獲取資料庫中的物件建立語句Oracle資料庫物件
- 資料庫開發(19)基於物件的資料庫資料庫物件
- Oracle資料庫維護的重要性Oracle資料庫
- 資料庫基礎重要知識資料庫
- 檢視主資料庫的物件中是否使用了不支援的資料型別資料庫物件資料型別
- 通過 POI 將資料庫中的資料上傳至 OSS 物件儲存資料庫物件
- Oracle資料庫資料物件分析(上)Oracle資料庫物件
- Oracle資料庫資料物件分析(轉)Oracle資料庫物件
- 請問Structs如何捕捉資料庫中prop類的表物件Struct資料庫物件
- 小資料在機器學習中的重要性機器學習
- MySQL(三) 資料庫表的查詢操作【重要】MySql資料庫
- 11 個重要的資料庫設計規則資料庫
- Sql Server 資料庫學習-常用資料庫 物件SQLServer資料庫物件
- postgresql資料庫重要引數說明SQL資料庫
- 資料庫測試的重要性——永遠不要忘記資料庫測試資料庫
- .Net中操作XmlDocument物件集錦 - XML做資料庫的管理程式XML物件資料庫
- MYSQL中的DDL(用來操縱資料庫物件的語言)1MySql資料庫物件
- 大資料在企業中的重要性大資料
- 資料探勘歷史中的重要里程碑
- 叢集資料庫重要檔案的檢視管理資料庫
- oracle資料庫系統運維的重要性Oracle資料庫運維
- 資料庫設計與操作的重要知識點資料庫
- 如何優化資料庫物件優化資料庫物件
- Sql Server系列:資料庫物件SQLServer資料庫物件
- 物件導向與資料庫物件資料庫
- PHP物件導向中的重要知識點(一)PHP物件
- PHP物件導向中的重要知識點(二)PHP物件
- PHP物件導向中的重要知識點(三)PHP物件
- 生產資料庫、開發資料庫、測試資料庫中的資料的區分資料庫
- 物件代理資料庫:大資料時代下的應需之作物件資料庫大資料
- 【Python入門】Python資料分析最重要的庫!Python
- 幾個重要的指令碼來監控Oracle資料庫指令碼Oracle資料庫
- 資料庫主要物件及事務資料庫物件
- db4o物件資料庫物件資料庫
- Rails中刪除資料物件AI物件