靜網PWA視頻評論

oracle資料庫基礎知識

2024年01月05日

- txt下載

oracle資料庫基礎知識
20世紀約70年代 一間名為Ampex的軟體公司,正為中央情報局設計一套名叫Oracle的資料庫,埃里森是程式設計師之一。下面是小編整理的關於oracle資料庫基礎知識,歡迎大家參考!
【1】oracle資料庫基礎知識
第一篇 基本操作
--解鎖用戶 alter user 用戶 account unlock;
--鎖定用戶 alter user 用戶 account lock;
alter user scott account unlock;
--創建一個用戶yc 密碼為a create user 用戶名 identified by 密碼;
create user yc identified by a;
--登錄不成功,會缺少create session 權限,賦予權限的語法 grant 權限名 to 用戶;
grant create session to yc;
--修改密碼 alter user 用戶名 identified by 新密碼;
alter user yc identified by b;
--刪除用戶
drop user yc ;
--查詢表空間
select *from dba_tablespaces;
--查詢用戶信息
select *from dba_users;
--創建表空間
create tablespace ycspace
datafile 'E:\oracle\app\product\11.2.0\dbhome_1\oradata\ycspace.dbf'
size 2m
autoextend on next 2m maxsize 5m
offline ;
--創建臨時表空間
create temporary yctempspace
tempfile 'E:\oracle\app\product\11.2.0\dbhome_1\oradata\ycspace.dbf'
size 2m
autoextend on next 2m maxsize 5m
offline ;
--查詢數據文件
select *from dba_data_files;
--修改表空間
--1、修改表空間的狀態
--默認情況下是online,只有在非離線情況下才可以進行修改
alter tablespace ycspace offline ; --離線狀態,不允許任何對象對該表空間的使用,使用情況:應用需要更新或維護的時候;資料庫備份的時候
alter tablespace ycspace read write;--讀寫狀態
alter tablespace ycspace online;
alter tablespace ycspace read only; --只讀,可以查詢信息,可以刪除表空間的對象,但是不能創建對象和修改對象 。使用情況:數據存檔的時候
--2、修改表空間的大小
--增加文件的大小
alter database datafile 'E:\oracle\app\product\11.2.0\dbhome_1\oradata\ycspace.dbf' resize 10m;
--增加數據文件
alter tablespace ycspace add datafile 'E:\oracle\app\product\11.2.0\dbhome_1\oradata\add.dbf' size 2m;
--刪除表空間的數據文件
alter tablespace 表空間的名字 drop datafile 數據文件名;
--刪除表空間
drop tablespace ycspace;
--刪除表空間且表空間中的內容和數據文件
drop tablespace ycspace including contents and datafiles;
--指定表空間 的 創建用戶的語法
create user yc1 identified by a default tablespace ycspace temporary tablespace temp;
--刪除用戶
drop user yc1;
--權限
--賦予創建會話的權限
grant create session to yc1;
--創建一個表
create table studentInfo(
sid int,
sname varchar2(10)
);
--賦予yc1用戶創建表的權限
grant create table to yc1;
--賦予yc1使用表空間的權限
grant unlimited tablespace to yc1;
--系統權限
--對象權限
--插入
insert into studentInfo values (2,'abcd');
--查詢
select *from studentInfo;
--修改
update studentInfo set sid=1;
--刪除
delete studentInfo ;
drop table studentInfo; --系統權限刪除表
--賦權的語法
--系統權限
grant 權限名(系統權限或對象權限,角色,all) to 用戶(角色,public) with admin option;
--對象權限
grant 權限名(系統權限或對象權限,角色,all) on 用戶(角色,public) with grant option;
--收權語法
--系統權限
revoke 權限名(系統權限或對象權限,角色,all) from 用戶(角色,public) with admin option;
--對象權限
revoke 權限名(系統權限或對象權限,角色,all) from 用戶(角色,public) with grant option;
--賦予創建用戶的權限並且把這個權限傳遞下去,即yc1可以給別人賦權
grant create user to yc1 with admin option;
--收回權限,只能收回scottd ,不能收回由scott賦權的yc1的權限
revoke create user from scott;
--查看用戶所具有的權限
select *from user_sys_privs;
--對象權限詳解
select * from emp;
--使用yc1來查詢scott裡面的emp表
select * from scott.emp;
--賦予yc1查詢emp表和插入的權限
grant select on emp to yc1;
grant insert on emp to yc1;
grant update(empno,ename) on emp to yc1;
grant delete on emp to yc1;
--對scott的emp表添加數據
insert into scott.emp(empno,ename) value(111,'acv');
update scott.emp set ename='yc'where empno=111;
--賦予查詢、賦予刪除、添加、修改
grant select on 表名 to 用戶
--grant select,delete,update,insert on 表名 to 用戶
grant select,delete,update,insert on emp to yc1;
grant all on dept to yc1; --all代表所有的對象權限
select *from scott.emp;
select *from scott.dept;
insert into scott.dept values(50,'企事業文化部','bumen');
--查看角色
--dba:資料庫管理員,系統最高權限,可以創建數據結構(表空間等)
--resource:可以創建實體(表、視圖),不可以創建資料庫的結構
--connect:連接的權限,可以登錄資料庫,但是不可以創建實體和不可以創建資料庫結構
select *from role_sys_privs;
grant connect to yc1;
--將可以連接的角色賦予給yc1,則yc1就是應該可以連接資料庫的.人,類似於 create session 。
create table StuInfos(sid int);
select *from StuInfos;
create table stuInfo(
sid int primary key , --主鍵 primary key 非空且唯一 (主鍵約束)
sname varchar2(10) not null, --姓名不能為空,(非空約束)
sex char(2) check(sex in('男','女')), --(檢查約束),check,
age number(3,1) constraint ck_stuInfo_age check(age>10 and age<100) , --也可以用varchar ;age between 10 and 100 ,在10和100之間,是一個閉區間
tel number(15) unique not null, --唯一約束,
address varchar2(200) default '什麼鬼'
)
insert into stuInfo values(3,'大大','男',18,4321543,default);
insert into stuInfo values(1,'張三','男',10);
select *from stuInfo;
drop table stuInfo;
create table classInfo(
cid int primary key, --班級id
cname varchar2(20) not null unique --班級名
)
create table stuInfo(
sid int primary key,
sname varchar2(20),
cid int constraint fofk_stuInfo_cid references classInfo(cid) on delete cascade
)
insert into classInfo values(1,'1班');
insert into classInfo values(2,'2班');
insert into classInfo values(3,'3班');
insert into classInfo values(4,'4班');
select *from classInfo;
select *from stuInfo;
insert into stuInfo values(1001,'張三',2);
insert into stuInfo values(1002,'張四',4);
update classInfo set cid=1 where cid=8;
drop table stuInfo;--要先刪除這個
drop table classInfo; --再刪除這個
delete classInfo where cid=4 ;--同時刪除這兩個表中的4
--刪除用戶的時候
drop user yc1 [cascade] --刪除用戶的同時把它創建的對象都一起刪除
--修改表
--1、添加表中欄位
--alter table 表名 add 欄位名 類型
alter table classInfo add status varchar2(10) default '未畢業'
--2、修改已有欄位的數據類型
--alter table 表名 modify 欄位名 類型
alter table classInfo modify status number(1)
--3、修改欄位名
--alter table 表名 rename column 舊欄位名 to 新的欄位名
alter table classInfo rename column cname to 班級名;
--4、刪除欄位
--alter table 表名 drop column 欄位名
alter table classInfo drop column status ;
--5、修改表名
--rename 舊錶名 to 新表名
rename classInfo to 班級信息;
--刪除表
--1、截斷表效率高,每刪除一次會產生一次日誌 2、截斷會釋放空間,而delete不會釋放空間
--刪除表結構和數據
drop table 表名;
--刪除表中所有數據
truncate table classInfo;
delete classInfo;
create table classInfo(
cid int primary key, --班級id
cname varchar2(20) not null unique , --班級名
stasuts varchar2(100)
);
select *from classInfo;
--數據的操作
--增加數據語法
--insert into 表名[(列名,....)] values (對應的數據的值);
insert into classInfo values(1,'一班','未畢業');--需要按照表結構的順序插入
insert into classInfo values(4,'六班','未畢業');
insert into classInfo(cname,cid) values('二班',2); --需要按照括號中的順序插入,但是 not null primary key 必須插入的。
insert into classInfo(cname,cid) values('三班',3);
--刪除的語法
--delete 表名 [where 條件]
delete classInfo where cid>=2;
--修改記錄的語法
--update 表名 set [欄位='值' ] [where 條件]
update classInfo set cname='三班'; --會修改所有該欄位
update classInfo set cname='四班' where cid=1;
update classInfo set cname='五班', stasuts ='未畢業' where cid=3;
--alter table classInfo drop constraint SYS_C0011213;
--添加多個時可以使用序列
--用序列來做自動增長
create sequence seq_classInfo_cid start with 1001 increment by 1;
insert into classInfo values(seq_classInfo_cid.Nextval,'七班','未畢業');
insert into classInfo values(seq_classInfo_cid.Nextval,'八班','未畢業');
insert into classInfo values(seq_classInfo_cid.Nextval,'九班','未畢業');
insert into classInfo values(seq_classInfo_cid.Nextval,'十班','未畢業');
create table classInfo2(
cid int primary key, --班級id
cname varchar2(20) not null unique , --班級名
stasuts varchar2(100)
);
select *from classInfo2;
drop table classInfo2;
insert into classInfo2 select *from classInfo;
insert into classInfo(cname,cid) select cname,cid from classInfo;
alter table classInfo2 drop constraint SYS_C0011213;
select seq_classInfo_cid.nextval from dual;
select seq_classInfo_cid.Currval from dual;
--直接創建一個新表,並拿到另一個表其中的數據
create table newTable as select cname,cid from classInfo;
create table newTable1 as select *from classInfo;
select *from newTable;
select *from newTable1;
insert into newTable1 values(1008,'dg','');
第二篇:高級操作
直接在使用scott登陸,進行查詢操作
----------------------------------------------------------------------------------
--簡單查詢
select *from emp;
select empno as id,ename as name from emp;
select empno 編號,ename 姓名 from emp;
--去除重複
select job from emp;
select distinct job from emp;
select job,deptno from emp;
select distinct job,deptno from emp;
--字符串的連接
select '員工編號是' ||empno || '姓名是' ||ename ||'工作是'||job from emp;
  • 共3頁:
  • 上一頁
  • 1
  • 2
  • 3
  • 下一頁

    收藏

  • 字典網 - 試題庫 - 元問答 - 简体 - 頂部

    Copyright © cnj8 All Rights Reserved.