oracle--第一天PLSQL--bai
生活随笔
收集整理的這篇文章主要介紹了
oracle--第一天PLSQL--bai
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一天:
-- 創建book表
create table book
(
bid number primary key,
bname varchar2(20) not null,
price number(10,2) not null
)
-- 插入數據
insert into book(bid,bname,price)values('20','西游記','170.5');
insert into book(bid,bname,price)values('12','紅樓夢','190.5');
insert into book(bid,bname,price)values('22','三國演義','150.5');
insert into book(bid,bname,price)values('32','梅','140.5');
--查詢
select * from book;
--清空表
delete from book;--刪除數據
truncate table book;---刪除數據,含日志
--查詢所有的邏輯對象。所有。 前綴dba_ system用
select count(1) from dba_objects;--查詢所有的邏輯對象。所有。
select * from dba_users;--查看所有的用戶
select * from dba_tables;--查詢所有的表· 前綴all_
--查詢所有的邏輯對象.本用戶權限范圍下的能看的所有。
select count(1) from all_objects;--查詢所有的邏輯對象。所有。
select * from all_users; --查看權限下能看到的所有用戶
select * from all_tables; --查詢所有的表·
--查詢本用戶私有的邏輯對象
select * from user_objects;
select * from user_users; --查看本用戶。
select * from user_tables;--查看本用戶的所有私有表select * from v$instance;--oracle實例的情況
select * from v$session; --oracle所有連接的情況-- 使用system的normal對soctt用戶進行解鎖alter user scott account unlock;-- 使用system的normal對soctt用戶進行密碼解鎖alter user scott identified by orcl;-- 創建1個用戶
create user bai identified by orcl; --創建用戶bai,指定密碼為orcl。
--默認的表空間是users,默認的臨時表空間是temp;grant connect,resource to bai;-- 將連接及創建對象權限交給baidrop user bai cascade; -- 刪除用戶bai第二天:
---創建用戶java2
create user java2 identified by orcl;
grant connect,resource to java2;
--java2登錄后,建表并插入數據
create table student1(sid number primary key , sname varchar2(20) not null,sex varchar2(20) not null,age number not null check(age>=0 and age<=120))insert into student1 values('11','白','男','18');insert into student1 values('21','白2','男','18');insert into student1 values('31','白3','男','18');
---創建用戶java3
create user java3 identified by orcl;
grant connect,resource to java3;--將student1表的查詢及修改及刪除權限授予java3
grant select,update,delete on student1 to java3;
--授權后,java3就能執行成功 --無法插入(無此權限)
select * from java2.student1;
delete from java2.student1 where sid='31';
insert into java2.student1 values('34','黑','女','90');--無法插入(無此權限){用戶角色權限}:
-- 查看當前用戶的所有角色
select * from user_role_privs;
--查看用戶的表對象權限
select * from user_tab_privs;
--查看用戶的系統權限
select * from user_sys_privs;
--查看指定角色的權限
select * from role_sys_privs;
--使用system登錄,將創建視圖的權限授予java2
grant create view to java2;
--使用java2登錄后,可以創建視圖
create view j2_view2 as
select * from java2.student1;
--讓1個角色擁有其他多個角色的功能總和
create role myrole;
--讓myrole繼承于connect角色的權限
grant connect to myrole;
grant resource to myrole-- 10g里面,resource是無法繼承的。
--查看角色所繼承的角色
select * from role_role_privs where role='MYROLE';
--使用system登錄,從java2回收創建視圖的權限revoke create view from java2;{常用邏輯對象}:{表空間}:
--創建表空間
create tablespace bai_ts2 datafile 'E:\1.dbf' size 6M;
--創建用戶,綁定表空間
create user java_bai2 identified by orcl
default tablespace bai_ts2;
--修改指定用戶的默認表空間
alter user java_bai2
default tablespace bai_ts2;grant connect,resource to java_bai2;
select * from dba_users where username='JAVA_BAI2';--擴容
alter tablespace bai_ts2
add datafile 'E:\2.dbf' size 50M;--刪除表空間
drop tablespace bai_ts2 including contents;{視圖}:
--視圖的創建查詢員工編號、員工名及所在部門的名稱create or replace view emp_basic_info_view asselect scott.emp.empno as 員工編號,scott.emp.ename as 員工名,scott.dept.dname as 部門名 from scott.emp ,scott.dept where scott.emp.deptno = scott.dept.deptno--查詢視圖select * from emp_basic_info_viewdelete from system.emp_basic_info_view where 員工編號='7369';--創建一個學生信息(INFOS)表和約束
CREATE TABLE INFOS
(
STUID VARCHAR2(7) NOT NULL, --學號 學號=‘S’+班號+2位序號
STUNAME VARCHAR2(10) NOT NULL, --姓名
GENDER VARCHAR2(2) NOT NULL, --性別
AGE NUMBER(2) NOT NULL, --年齡
SEAT NUMBER(2) NOT NULL, --座號
ENROLLDATE DATE, --入學時間
STUADDRESS VARCHAR2(50) DEFAULT '地址不詳', --住址
CLASSNO VARCHAR2(4) NOT NULL --班號 班號=學期序號+班級序號
)
ALTER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STUID);--創建一個主鍵約束
ALTER TABLE INFOS ADD CONSTRAINTS UN_STUNAME UNIQUE(STUNAME);--創建唯一約束
--創建各種check約束
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_GENDER CHECK(GENDER = '男' OR GENDER = '女');
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_SEAT CHECK(SEAT >=0 AND SEAT <=50);
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_AGE CHECK(AGE >=0 AND AGE<=100);
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_CLASSNO CHECK((CLASSNO >='1001' AND CLASSNO<='1999') OR (CLASSNO >='2001' AND CLASSNO<='2999'));--創建一個成績表(SCORES)表和約束
CREATE TABLE SCORES
(
ID NUMBER , --ID SQL Server中可以使用identify創建自動增長列,但是Oracle中的自動增長需要借助 序列(Sequence)完成
TERM VARCHAR2(2), --學期 S1或S2
STUID VARCHAR2(7) NOT NULL, --學號
EXAMNO VARCHAR2(7) NOT NULL, --考號 E+班號+序號
WRITTENSCORE NUMBER(4,1) NOT NULL, --筆試成績
LABSCORE NUMBER(4,1) NOT NULL --機試成績
)
ALTER TABLE SCORES ADD CONSTRAINT CK_SCORES_TERM CHECK(TERM = 'S1' OR TERM ='S2');
ALTER TABLE SCORES ADD CONSTRAINT FK_SCORES_INFOS_STUID FOREIGN KEY(STUID) REFERENCES INFOS(STUID);--Oracle中的外鍵約束定義
轉載于:https://www.cnblogs.com/ipetergo/p/6257567.html
總結
以上是生活随笔為你收集整理的oracle--第一天PLSQL--bai的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AC自动机——Uva 11468 子串
- 下一篇: ARMV8 datasheet学习笔记5