oracle學習筆記 一

2021-08-29 08:54:03 字數 3770 閱讀 2964

oracle sql(oracle 9i 9.2.0.1.0)

一、database

儲存資料,以表的形式表現資料

二、sql

sql(structure 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 資料庫管理員

四、相關操作

echo $oracle_sid 檢視現有的oracle資料庫

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語句,這條命令用於檢視表的結構。describe的縮寫

[欄位名] [欄位的型別],這是使用完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)edit命令來編輯最後一條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 first_name,salary*12*(1+nvl(commission_pct,0)/100) "total salary" from s_emp;

distinct關鍵字,去掉重複行(這個關鍵字會觸發排序操作)

例: select distinct dept_id,title from s_emp;

distinct 可以使dept_id與title的聯合唯一

注意:distinct,關鍵字之後會對from之前的字段進行排重操作。

六、選擇操作

1、order by 排序是按照儲存順序輸出的,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;

注意:公升序空值在結果的末尾,降序空值在結果的最前面。

oracle學習筆記 一

oralce 開發 1,自增長序列 方法一 建表,建序列 create table mytable id number primary key,name char 14 char 2 check 1 or 0 mark varchar2 1000 create sequence xok autoin...

Oracle學習筆記(一)

系統要求 作業系統最好為windows2000 記憶體最好在256m以上 硬碟空間需要2g以上 進入資料庫 1.開始 sql plus 2.執行輸入命令 sqlplusw 3.dos下操作oracle工具 執行輸入命令 sqlplus 工具 pl sql developer sql plus常用命令...

oracle學習筆記一

表 基本的資料儲存物件,以行和列的形式存在,列 也就是字段,行也就是記錄 資料字典 也就是系統表,存放資料庫相關資訊的表 約束條件 執行資料校驗,保證了資料完整性的 檢視 乙個或者多個表資料的邏輯顯示 索引 用於提高查詢的效能 同義詞 物件的別名 資料庫物件的命名規則 1 物件名稱必須以字母開頭 2...