?? oracle(day1).txt
字號:
Oracle SQL(Oracle 10g)
一、DataBase
保存數據,以表的形式表現數據
二、SQL
Structur query language
結構化查詢語言,是操作關系型數據庫中的對象。
DDL(Data definition language 數據定義語言),用于建表或刪表操作,以及對表約束進行修改
create table , alter table , drop table 對表結構的增刪操作。
DML(Data manipulation language 數據操作語言),向表中插入紀錄,修改紀錄
insert , update , delete , merge
transaction ,事務控制語言,由DML語句組成的,commit; ,rollback;
select 查詢語句
dcl 授權語句 grant
三、Oracle
DBMS 數據庫管理系統
有Oracle提供,還提供AS,應用服務器
DBA 數據庫管理員
四、相關操作
1、sqlplus 訪問數據庫命令(本地訪問/遠程訪問),和數據庫建立連接的命令,是數據庫操作的環境
sqlplus 用戶名/密碼
2、show user 顯示當前用戶的用戶名
改變身份可以直接connect 用戶名/密碼 --- 這個是sqlplus命令
在sqlplus中可以使用 ! 可以在shell和sqlplus間切換,!shell命令 可以在sqlplus中使用shell命令。
實際上是sqlplus開了子進程來執行shell命令。
3、Oracle數據庫中的表分兩類:用戶表(用戶使用操作的表),系統表(數據庫系統維護的表,也叫數據字典)
對用戶表的DDL操作出發了對系統表的DML操作!
五、基本語法
1、select查詢語句
select table_name from user_tables;(查詢系統表)
以上的查詢語句就是查詢本用戶下所擁有的所有表的表名。
投影操作,只查看選擇的字段的信息。
選擇操作,查看字段中的特定某些信息。
聯接操作,多表查詢,通過表間連接,查尋出多表中的信息
(1)select table_name from user_tables;(查詢系統表)
以上的查詢語句就是查詢本用戶下所擁有的所有表的表名。
(2)sqlplus的buffer中會緩存最后一條sql語句,可以使用"/"來執行這最后一條sql語句,也可以使用
edit命令來編輯最后一條sql語句。
l命令(list)(sqlplus命令)可以顯示buffer中最后一條命令。
sqlplus命令可以縮寫
(3)desc [表名]
這是一條sqlplus命令,注意他不是sql語句,這條命令用于查看表的結構。descript的縮寫
[字段名] [字段的類型],這是使用完desc命令后顯示的表結構。
(4)select [表的字段名1],[表的字段名2], ... from 表名;
select * from 表名; 查尋表中所有字段的信息
(5)關鍵字不等拆分,sql語句,以及表名,字段名是大小寫不敏感的。
sql語句要以";"結尾,來表示sql語句結束,如果不加";"系統不會執行此條sql語句,并提示。
在Oracle中字符顯示是左對齊,數值右對齊。
(6)在select 語句中可以使用數學表達式。
select [表達式(必須包含本表字段名)],[...],.... from 表名;
運算的優先級的先乘除后加減,同級自左向右運算,括號改變優先級。
(7)別名
select [字段名或表達式] ["別名"],[...] ["..."],.... from 表名;
可以通過在字段名或表達式后加空格"別名",可以給列,或者表達式結果其別名。
表達別名必須加雙引號。
(8)字符串拼接使用||符號
select 目標字段名||" "||目標字段名 from 表名;
注意:在Oracle中的字符串要用'..'包含
別名中需要使用空格,或是大小寫敏感時需要用".."包含。
練習:
自己寫一條SQL語句,執行的結果是select * from ...;
其中...是每張系統表的表名
即在每張系統表的表名前加“select * from” ,后加“;”
select 'select * from '||table_name||';' from user_tables;
2、處理錯誤
(1)!oerr ora [錯誤號] ,系統可以顯示錯誤的原因和如何修改。如果命令錯誤輸入可以使用edit或ed來修改輸入錯誤。
實際上是在編輯緩存文件中的最后一條sql語句。
也可以使用 (change) c /錯誤字段/正確字段,來進行替換操作進行修改。
只有在Linux平臺使用
! 相當于 host ,沒有斷連接,只是切換了一下,執行shell命令
(2)list 顯示上一條sql語句,
n-->定位到指定行顯示
c/舊語句/新語句--->修改指定的sql語句中的單詞
/---->執行上條sql語句
3、sqlplus設置
set pause on 回車響應,分屏顯示,只在本會話中有效
set pause off 關閉分屏顯示。
set pause "..." 設置分屏顯示的提示信息。
set pause on 先輸出提示信息,回車響應,分屏顯示
set head off 提頭輸出關閉
set feed off 結尾輸出關閉
set echo off 回寫關閉
spool 文件名.sql 寫入指定文件
spool off 關閉寫入。
4、sql腳本
也就是在文件中寫有sql語句的文件,可以在sqlplus中運行。
引入sql腳本
sqlplus 用戶名/密碼 @sql腳本 (注意:在用戶名密碼輸入結束后一定要加空格然后再寫@sql腳本)
在腳本中最后一行寫上“exit”,則運行完腳本以后,回到shell上
5、
Oracle中的空值 空值會當無窮大處理,其實空值根本就不會存儲,只是看作是無窮大。
Oracle中控制處理函數 NVL(字段名,值),這個字段中的空值替換為指定值,如果不為空,則會返回其原值。
例:select (salary*12)*(NVL(commission_pct,0)/100+1) salary,first_name from s_emp;
distinct關鍵字,去掉重復行(這個關鍵字會觸發排序操作)
例: select distinct dept_id,title from s_emp;
dept_id與title的聯合不唯一
注意:distinct,關鍵字之后會對from之前的字段進行排重操作。
6、column命令 --- sqlplus命令
column命令 列格式的定義
column 目標列名 查看這個類是否定義了格式
column 目標列名 format a.. 設置列寬。
column last_name heading 'Employee|Name' FORMAT A15
設置題頭
這其中的'|'是換行符
column salary justify left format $99,990.00
定義數字顯示格式
注意:如果不滿足顯示的格式,就會把數據顯示為"#"
column salary justify left format $00,000.00
會出現$00,928.00 ,用0補齊
column 列名 clear (清除列格式定義)
注意:只有sqlplus命令才有簡寫,并且在使用sqlplus命令時結尾也不能加分號。
六、選擇操作
1、order by
排序子句 ASC(默認,升序) DESC(降序)
order by 目標列名(別名) 排序順序(不寫排序順序,會默認為升序排序)
例:select first_name from s_emp order by first_name;
select first_name from s_emp order by first_name desc;
注意:升序空值在結果的末尾,降序空值在結果的最前面。
2、where子句
where子句使用在 select ... from ... 后面,用來選擇所需(符合條件的)的記錄
where后面跟的是表達式 也就是 XXX=XXX, XXX between X and X ,XXX in(X,X,X)
like '...' 通配查詢
between ... and ... ,表示結果在這之間,between and是一個閉區間,
也就相當于... <= ... and ... >= ... 。
!=,<>,^=,這三個都標識不等于,<=,>=,=,這些運算符都可以使用。
... in (va1,val2,...) 判斷結果是否在這個枚舉中存在
like '...' 字符串通配查詢,'%'表示多個字符,'_',表示一個字符。
注意:轉義的用法:like ‘S\_%’ escape ‘\’
... and ... 表示只有兩個條件同時滿足
... or ... 表示條件只要滿足其中只一就可以
all ... 是要求都滿足條件。
not .....,則是可以與以上的條件產生反效果。
空值會對not in造成影響,也就是不等于任何值,但是空值例外。
... is null 使用來判斷值是否為空。
注意:Oracle中的字符串是嚴格區分大小寫的。
(1)注意數據類型,數字類型直接寫,字符用'......' ,缺省格式的Date可以用'......',只有別名
才用" "包含。
(2)選擇合適的運算符
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -