Oracle期末複習

Oracle期末複習

1.引言

本部分介紹大型數據庫和雲計算相關概念,瞭解雲數據庫關係型數據庫的基本常識

2.Oracle 12c 數據庫的管理

  • 1.創建/刪除數據庫表空間
create tablespace test1 datafile '/u01/app/oracle/test1.dbf' size 200M;

drop tablespace test1 including contents and datafiles;
  • 2.數據庫實例的含義
一個完整的Oracle數據庫包括兩個部分:數據庫和數據庫實例

💎數據庫是存儲數據的多個物理文件的集合,如控制文件,數據文件,參數文件,日誌文件,臨時文件等 ,它是靜態的、永久的,只要文件存在它就存在。數據庫名(db_name)就是對數據庫的標識。

💎Oracle實例是一個進程。就是由內存空間和工作進程兩部分組成。我們只能通過實例操作數據庫,同一時間,一個實例只能打開一個數據庫,也就是一個實例只能操作或管理一個數據庫,但一個數據庫可以被多個是實例打開。
  • 3.容器數據庫及可插拔數據庫的區別以及基本使用
💎容器數據庫是Oracle 12c引入的新特性,允許容器數據庫(Container Database)中創建並維護多個數據庫,這樣的數據庫被稱爲PDB(Pluggable Database)
💎基本使用
# 以DBA連接
sqlplus sys/oracle@//localhost:1521/orcl as sysdba
# 查看當前數據庫
show con_name
# 查看數據文件,日誌文件,控制文件
select * from v$logfile;
select * from v$tablespace;
select * from v$controlfile;
# 切換數據庫
alter session set container=pdb;
# 創建pdb
create pluggable database pdb1;
# 打開關閉指定的pdb
alter pluggable database pdb1 open;
# 切換pdb
select status from v$instance;
  • 4.oracle監聽程序的管理
lsnrctl status 查看運行狀態
lsnrctl stop 停止監聽
lsnrctl start 啓動監聽
  • 5.數據庫網絡配置
打開圖形化工具,進行點着修改
  • 6.數據庫管理工具的基本使用(Sqlplus,sql developer)
  • 7.數據對象,數據字典,數據庫存儲結構的理解
數據對象:而單獨的一張表就稱爲數據對象
數據字典:數據字典是指對數據的數據項、數據結構、數據流、數據存儲、處理邏輯等進行定義和描述
數據庫存儲結構:
	邏輯結構:
		1、數據庫集羣-Database cluster
    2、數據庫-Database
    3、表空間-tablespace
  物理結構:
  	一個tablespace對應一個目錄,存儲在文件內,並建立索引
  • 8.用戶的增加刪除,權限的賦予
#創建用戶
create user steveyu identified by "Root123.." default tablespace test;
#給用戶授予權限
grant create session to steveyu;
grant connect,resource to steveyu;
grant dba to steveyu;
grant resource to steveyu;
#刪除用戶
drop user steveyu cascade;

3.SQL基礎

  • 1.表操作
1.創建表
create table A(
  id int,
  name varchar2(10),
  money number(7, 2),
  birth date,
  birthtime timestamp
)
2.刪除表
drop table A;
3.查看錶結構
desc A;
4.增加數據
insert into A values(1, 'hi')
5.修改數據
update A set id=2 where name='hi';
6.查詢數據
select * from A;
7.刪除數據
delete from A where id=2;
8.約束
create table money(
	amount int primary key
);
create table people(
	id int not null,
	name varchar2(10),
	identity varchar2(20) unique,
	constraint pri_id primary key(id)
)
9.函數

字符函數
 --cancat  連接字符串
 select concat('hello','oracele') from dual;
 或者
 select 'hello'||'oracele' from dual;
 --lpad() 左填充
 select lpad('abc',5,'*') from dual;
 --rpad() 右填充
 select rpad('abc',5,'*') from dual;
 --lower() 小寫字母
 select lower(ename) from emp;
 --upper() 大寫字母
 select upper(ename) from emp;
 --initcap() 首字母大寫,其餘小寫
 select initcap(ename) from emp;
 --length() 字符串的長度
 select length(ename) from emp;
 --substr(字符串,開始位置,長度) 截取字符串
 select sunstr(ename,0,2) from emp;
 --instr(字符串,字符) 查看字符是否在字符串中存在,不存在返回0;存在則返回字符所在的的位置
 select instr('abc','a') from dual;
 --TRIM(字符 FROM 字符串)  去掉字符串首尾的字符
 select ename,trim('S' from ename) from emp;
 --to_char() 將其他類型轉成字符類型
 select  to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;
 --查看是否有人今天過生日
 select * from emp where to_char(hiredate,'mmdd')=to_char(sysdate,'mmdd');
 --to_date() 把其他類型轉換爲日期類型
 update emp set hiredate=to_date('2009-10-1','yyyy-mm-dd') where empno=9000;
 --replace(字符串,字符串1,字符串2)  將字符串中的字符1替換成字符2;
 select replace(ename,'S','*') from emp;
 --translate(字符串,字符串1,字符串2)  按位逐個替換
 select translate(ename,'abc','123') ename from emp;
 --ASCII(char) 求字符的ascii碼 
 select ascii('A') from dual;

日期函數

--ADD_MONTHS(日期,數字) 在已有的日期上加一定的月份;
select add_months(sysdate,1),sysdate from dual;  
--把天數加一
select sysdate,sysdate+1 from dual;
--用系統時間減去一個日期
select sysdate-to_date('2018-7-8','yyyy-mm-dd') from dual;
--LAST_DAY(日期) 求出該日期的最後一天.
select last_day(sysdate) from dual;
--MONTHS_BETWEEN(日期1,日期2) 求出兩個月之間的天數(注意返回的天數爲小數)
select months_between(sysdate,'8-7月-2020') from dual;
--NEXT_DAY(d,char) 返回d指定的日期之後並滿足char指定條件的第一個日期 
select next_day(sysdate,'星期一') from dual;
--NVL(字符串,替換字符) 如果字符串爲空則替換,否則不替換 
select ename,nvl(comm,0) from emp;
--如果不爲空,就顯示第一個數據,爲空時顯示第二個數據
select ename,nvl2(comm,0,100) from emp;

4.pl/sql編程

  • 1.plsql基礎語法(變量定義聲明,運算符,選擇循環,異常處理,記錄類型(索引、嵌套表、可變數組),遊標
  • 2.子程序的定義和使用(存儲過程、存儲函數)
  • 3.包的定義使用(如何建立包,運用包管理程序,常見的系統包和運用)

1.插入一條記錄並顯示

DECLARE

   Row_id UROWID;

   info    VARCHAR2(40);

BEGIN

       INSERT INTO dept VALUES (90, ‘SERVICE’, ‘BEIJING’)

         RETURNING rowid, dname||’:’||to_char(deptno)||’:’||loc

                     INTO row_id, info;

       DBMS_OUTPUT.PUT_LINE(‘ROWID:’||row_id);

       DBMS_OUTPUT.PUT_LINE(info);

END;

5.熟練對scott用戶表結構進行處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章