Oracle基本概念和介紹

Oracle基本概念

 

Oracle Database的基本概念面試

一個Oracle服務器

是一個數據管理系統,它提供開放的,全面的,近乎完整的信息管理sql

Oracle服務器有兩大部分組成

一個Oracle實例數據庫

一個Oracle數據庫組成express

Oracle數據庫

位於硬盤上實際存放數據的文件,這些文件組織在一塊兒,成爲一個邏輯總體,即爲Oracle數據庫。所以在Oracle看來,數據庫是指硬盤上文件的邏輯集合,必需要與內存裏實例合做,才能對外提供數據管理服務服務器

Oracle實例數據結構

位於物理內存裏的數據結構,它由一個共享的內存池和多個後臺進程所組成,共享的內存池能夠被全部進程訪問,用戶若是要存取數據庫(也就是硬盤上的文件)裏的數據,必須經過實例才能訪問,不能直接讀取硬盤上的文件。學習

注意!!!

實例能夠操做數據庫,在任什麼時候刻一個實例只能與一個數據庫關聯,大多數狀況下,一個數據庫只有一個實例對其進行操做。spa

clip_image002

表空間和數據文件

表空間由多個數據文件組成,邏輯概念.net

數據文件只能屬於一個表空間,物理概念排序

clip_image004

段,區,塊概念

段存在於表空間中

段是區的集合

區是數據塊的集合

數據塊會被映射到磁盤塊

clip_image006

數據庫的邏輯和物理結構

clip_image008

Oracle基本sql select語句

學完基本select語句應掌握

1. 書寫select語句

2. 返回表中的所有數據

3. 返回表中指定列的數據

4. 使用別名

5. 使用sql*plus環境,書寫,保存和執行sql語句和sql*plus命令

語句格式:(讀完本節後就能看懂啦,親)

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM table;

SQL語句注意事項

SQL語句大小寫不敏感

SQL能夠寫在一行或多行

關鍵字不能被縮寫也不能被分行

各子句通常要分行寫

使用縮進提供語句的可讀性

基本select語句

select 標識選擇那些列

選擇所有列*

clip_image020

選擇特定列,指定列名

clip_image022

選擇表達式

+ - * /

clip_image024

from 標識從那個表中選擇

下圖爲基於那張表

clip_image026

列的別名

J 重命名一個列

J 便於計算

J 緊跟列名,也能夠在列名和別名之間加入關鍵字as,別名使用雙引號,以便在別名中包含空格和特殊字符並區分大小寫(面試有的時候會問到,使用雙引號和不使用的)

J as能夠省略

使用別名

clip_image028

鏈接符

J 把列於列,列與字符鏈接在一塊兒

J 用「||」表示

J 能夠用來合成列

clip_image030

記得終止只組合成了一列

clip_image032

字符串

J 字符串能夠是select列表中的一個字符,數字,日期

J 日期和字符只能在單引號中出現

J 每當返回一行,字符串被輸出一次

重複行

默認狀況下,查詢返回所有行,包括重複行

刪除重複行,在select子句中使用關鍵字「distinct」刪除重複行

clip_image034

顯示錶結構

desc簡寫

describe 表名

SQL語句與SQL*Plus命令

SQL語句對比SQL*Plus

一種語言

一種環境

ANSI標準

Oracle的特性之一

關鍵字不能縮寫

關鍵字能夠縮寫

使用語句控制數據庫中的表的定義信息和表中的數據

命令不能改變數據庫中的數據值

集中運行

SQL*Plus功能

功能

描述表結構

編輯SQL語句

執行SQL語句

將SQl保存在文件中並將SQL語句執行結果保存在文件中

在保存的文件中執行語句

將文本文件裝入SQL*Plus編輯窗口

本機上Http://localhost:5560/isqlplus/

Oracle過濾和排序數據

經過學習完本節,要掌握以下功能

使用where子句過濾數據

使用比較運算符

操做符

含義

=

等於(不是==,賦值使用:=符號)

>

大於

>=

大於,等於

<

小於

<=

小於,等於

<>

不等於(也能夠是!=)

使用between and,in,like和null運算

操做符

含義

between…and…

兩個值之間(包含邊界)

in(set)

等於值列表中的一個

like

模糊查詢

is null

空值

使用邏輯運算符and,or和not

操做符

含義

and

邏輯並

or

邏輯或

not

邏輯否

優先級

 

1

算術運算符

2

鏈接符

3

比較符

4

is null,like,not in,in

5

between

6

not

7

and

8

or

使用order by子句進行排序

asc(ascend)

升序

desc(descend)

降序

order by子句在select語句的末尾

排序的規則

 

1

能夠按照select語句中的列名排序

2

能夠按照別名列名排序

3

能夠按照select語句中的列名的順序值排序

4

若是按照多列進行排序,則規則是先按照第一列排序,若是相同,按照第二列排序依次類推

5

desc

使用轉義符將%轉爲\%,-轉爲\-,而後再加上escape \

語法格式:

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM table

[WHERE condition(s)]

[ORDER BY {column, expr, alias} [ASC|DESC]];

具體操做示例

查詢10號部門的員工

clip_image036

查詢KING的員工,字符大小寫敏感

clip_image038

若是改成king則失敗(字符和日期必須徹底匹配)

clip_image039

查詢入職日期爲17-11月-81的員工

clip_image041

若是查詢1981-11-17則出現文字與格式字符串不匹配

clip_image043

查看日期格式

clip_image044

其中

PARAMETER

----------------------------------------------------------------

VALUE

----------------------------------------------------------------

NLS_DATE_FORMAT

DD-MON-RR

NLS_DATE_LANGUAGE

SIMPLIFIED CHINESE

NLS_CHARACTERSET

ZHS16GBK

格式化:

clip_image046

修改日期格式

clip_image048

between and工資在多少之間,包含邊界,小值在前面,大值在後面

clip_image050

in 在集合中,存在於部門10或20的員工

clip_image052

不存在與部分10或20的員工

clip_image054

須要注意,若是集合中含有null,不能使用not in,但可使用in
not in 不可使用null

clip_image056

in可使用null

clip_image058

模糊查詢%,_,多個和一個

clip_image060

模糊查詢_,查詢4個字母的名稱

clip_image062

查詢存在下劃線的名稱
插入帶下劃線的名稱

clip_image063

查詢結果有誤

clip_image064

正確的查詢方式:

clip_image066

SQL> --轉意字符

SQL> rollback;

回退已完成。

and or 左邊和右邊,從右到左順序執行

排序order by默認升序排序

clip_image068

order by降序排序

clip_image070

order by 後面能夠跟隨 列名 表達式 別名 序號

clip_image072

order by 排序別名

clip_image074

order by 後面加序號

clip_image076

order by 後面存在多列,這裏須要注意先排序deptno,再根據deptno排序sal

clip_image078

一個默認排序,一個降序排序

clip_image080

desc只做用於臨近,須要寫兩次

clip_image082

查詢員工獎金,按獎金排序

clip_image084

查詢員工獎金,降序排序排列

clip_image086

查詢員工獎金排序,把null都放置在最後

clip_image088

相關文章
相關標籤/搜索