国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

PL/SQL學習筆記(一)

2024-07-21 02:33:33
字體:
來源:轉載
供稿:網友
基本概念:
                                                       
數據庫對象:                                         
                                                          
表                                                   
                                                      
約束條件:保證數據完整性。                            
                                                   
視圖:虛表,命名的查詢語句。                        
                                                     
索引:加速查詢(加快查詢的速度)。                 
                                                    
序列:一串連續遞增或遞減的數字,步長相同,(代理鍵)。
                                                                                                   
同義詞:一個對象的另外一個叫法(對象的別名)。                                                                                                
                                                                                             
存儲過程:用于操作
函數:用作復雜運算的。用于計算。                                                                                         
                                                                                               
觸發器:由事件觸發的存儲過程。                                                                                          包:
數據庫安全:1、用戶2、方案或模式(Schema):是用戶所對應的對象的集合。用戶名等于方案名3、權限4、角色:權限組,一組權限。
                                                      
5、配額(quota):答應被使用的空間。用戶可以在表空間上可以使用的空間。                                            
                                               
端口:2030
環境變量-Oracle_BASE基本目錄-ORACLE_NAME 當前的主目錄
-ORACLE_NLS33
使用US7ASCLL字符集時不用設
-PATH 路徑
////////////////////////////////////////////////////////////////////////////////////////////////////////////基本的SQL SELECT 語句口令中的第一個字符不能為數字。語句:(一)查詢:SELECT
數據操作語句:DML(數據的插入INSERT、刪除DELETE、修改UPDATE、合并MERGE) (二)合并:把一個表中的數據合并到另一個表中去,假如數據在原表中存在做UPDATE,否則INSERT(9I獨有)。(三)事務控制語句:COMMIT 提交、ROLLBACK 回滾、SAVEPOINT 存儲點(與 ROLLBACK 搭配使用)在回滾的時候可以回滾到某個存儲點上。否則回滾到最初起點上。(四)數據定義語句:對對象操作。TRUNCATE 清除表中所有數據 /CREATE 創建 /DROP 刪除 /ALTER 修改  (五)權限控制語句(DCL):GRANT 授予權限 /REVOKE 移除權限  
SELECT:SELECT 查詢列表 FROM 數據源;*&* SQL命令必須加分號。ALTER USER HR IDENTIFIED BY HR ACCOUNT UNLOCK;
修改用戶   解鎖
給HR解鎖CONNECT(conn) HR/HR(密碼) 用HR用戶連接數據庫。 
*&*(不是SQL命令 是 SQLPLUS 命令)不用加分號 DESCRIBE(desc) DEPARTMENTS
要害字  表名描述表命令(SQLPLUS 命令)
SQL語句說明:(1)語句文本的書寫不區分大小寫。(但字符串在作為值的時候要注重大小寫)
(2)語句可以寫單行也可以寫多行。
(3)要害字不能縮寫或跨行。
(4)語句通常被分多行書寫。
(5)縮進被用于提高語句的可讀性。 數字和日期都可以使用數學運算符建立表達式。
+,-,*,/ <>不等于日期可以加減數字,數字默認為天。日期不能加日期,但日期可以減日期。字符不能加減。 定義空(NULL)值空值出現在表達式中會導致整個表達式的值為空。NVL(字段名,將要賦予的值)函數
作用:將空值轉換成其他有ASCLL碼的值。annual_salary年薪
別名可以加中文的字段別名。假如想強制地改變列名的大小寫,可以在別名的定義時加上雙引號,列名有空格時也要在列名上加雙引號。
例:
select lastname as "employees name" from employees;spool +路徑;
保存命令(將顯示保存)   連接操作符:
 
 select lastname 'work in' department_id from tablename;select last_name '''s salary is ' salary 員工月薪 from employees;
     ~~~ 
     在單引號中還要使用單引號的話,就必須使用兩個單引號來實現一個單引號的功能。 
文本字符串:*可以代表字符、數字或是日期。
*當代表字符或日期的時候用單引號括起來,數字不需要。  在查詢時默認顯示所有的行,包括有重復值的行。DISTINCT 消除重復行要害字,放在整查詢列表的最前面。作用范圍:整個查詢列表的組合。消除重復行后會按字段的特性,做升序排列。(執行過程:先排序,再消除重復)select distinct department_id,job_id from employees; SQLPLUS 與 SQL 的關系SQL     *是一種語言
 *ANSI標準
 *要害字不能縮寫
 *用于操作數據庫中的數據和表的定義
  
SQLPLUS命令的功能:*描述表的結構
*編輯SQL語句查詢 SQLPLUS 命令help + 命令SQLPLUSW 在 WINDOWS 下運行的分析器。
 登陸ISQLPLUS(1)先到服務中啟動OracleOraHome92HTTPServer(2)在瀏覽器中輸入:http://wnj:7778/isqlplus
       ~~~~~~~~~~~~~~~ 
       URL(網頁中的地址)
      
 

SQLPLUS 命令:與文件相關的命令:
  spool + 路徑
 .
 .
 .
 .
   spool offsave
把當前內存中的語句保存為文本文件。 run 或  /
運行當前內存中的語句clear buffer(cl buff)
清空當前內存中的語句start @
讀取并執行get
讀取不執行 編輯命令:list
列出一條語句
*表示當前行change
修改命令
原來c/jj/kk
c/jjj/xxxinput
在當前行之后插入一行新的數據
append
在當前行中插入新的東西n
寫數字顯示對應行
delete
del + 回車 刪除當前行
del 1 3 刪除第一到第三行editl,c,i,a,n,d,e 查看當前用戶SHOW USER默認的日期格式
DD-MON-RR
日-月-年日期可以進行比較;字符可以進行比較(以字母的ASCLL碼比較);IN(set)或NOT IN 匹配任何列表中的值;LIKE 模糊匹配字符串值;IS NULL 是否空值;
IS NOT NULL 是否不為空;BETWEEN 可以做數字、日期和字符的比較。 通配符%
S_mithWHERE first_name like 's/_%'escape'/';
    解釋這個符號后的下劃線為正常的字符。
    假如不加,將被視為通配符作用的下劃線。'_'只能通配一個字符
主要用于通配固定位數的字符。例如查詢月收入五位數以上的員工。五位就可以用'_'來查詢。 邏輯操作符(用在WHERE子句中)ANDORNOT先執行 NOT ,再執行 AND 最后執行 OR。 ORDER BY ORDER BY子句在 SELECT 語句的最后。  ASC:升序
DESC:降序空值作為無窮大來處理。rownum 顯示行數量約束的要害字(在結果中可以做代理鍵使用);可以按照查詢列表中序號進行排序。系統在用戶寫出查詢列表的同時就賦予每個列名一個序號,升序賦予。
例:
SELECT name,phone,adress from.........;
          1      2          3  
單行函數:對單行數據進行計算并返回一個值的函數。*修改數據項
*接受參數返回一個值。
*對每行進行操作。
*每行返回一個結果。
*可以修改數據類型
*可以嵌套character字符類型函數:LOWER()強制小寫UPPER()強制大寫INITCAP()每個單詞首字母大寫可以用在WHERE子句中。CONCAT(‘’,‘’)連接函數
    {
 SUBSTR(string,a[,b])返回string的一部分,a和b以字符為單位。 SUBSTRB(string,a[,b])返回string的一部分,a和b是以字節為單位。 SUBSTRC(string,a[,b])返回string的一部分,a和b是以UNICODE完全字符為單位。 SUBSTR2(string,a[,b])返回string的一部分,a和b是以UCS2代碼點為單位。 SUBSTR4(string,a[,b])返回string的一部分,a和b是以UCS4代碼點為單位。    以上函數都是返回string的一部分,從字符位置A開始,長為B個字符。假如A是0,那它就被認為是1(字符串的開始位置)。假如A是正數,那么字符從左邊開始數。假如是負數,則從STRING的末尾開始,從右邊數。假如B不存在,那么缺省是整個字符串。假如B小于1,將返回NULL。假如A或B使用了浮點數,那么該數值首先被節取成一個整數,返回類型與STRING相同。
    } {
 LENGTH(string)
 LENGTHB(string)
 LENGTHC(string)
 LENGTH2(string)
 LENGTH4(string)
以上函數返回string的長度。因為CHAR類型的值是填充空格的,所以假如string是CHAR數據類型,那么末尾的空格算在長度之內。假如string是NULL,函數返回NULL。
} {
 INSTR(string1,string2[,a][,b])   返回string1中包含string2的位置。a和b以字符為單位。
 
 INSTRB(string1,string2[,a][,b]) 返回string1中包含string2的位置。a和b是以字節為單位。 
 INSTRC(string1,string2[,a][,b])返回string1中包含string2的位置。a和b是以UNICODE完全字符為單位。 INSTR2(string1,string2[,a][,b]) 返回string1中包含string2的位置。a和b是以UCS2代碼點為單位 INSTR4(string1,string2[,a][,b]) 返回string1中包含string2的位置a和b是以UCS4代碼點為單位。
以上函數返回string1中包含string2的位置。從左邊開始掃描string1,起始位置是A。假如A為負數那么從右邊開始掃描。第B次出現的位置將被返回。A和B缺省都為1,即返回在string1中第一次出現string2的位置。假如string2在A和B的規定下沒有找到那么就返回0。位置的計算是相對于string1的開始位置的,而不關A和B的取值。

LPAD(列名,數字,‘要補上的字符’)左補位RPAD(列名,數字,‘要補上的字符’)右補位TRIM(‘child_str’ FROM ‘parents_str’)將連續子串(只能有一個字符)從主串的兩邊截取出來,區分大小寫。
默認為截取空格。LTRIM()左截取RTRIM()右截取ascii(x)函數,返回'X'字符的十進制數,即X的ASCII碼值。chr(x)函數,返回ASCII碼為X的字符。length(x)函數,求串X的長度,與之相似的是lengthb(x)函數,用在多字節字符中。replace(x,y[,z])函數,返回值為將串X中的Y串用Z串替換后的結果字符串。若省略Z參數,則將串X中為Y串的地方刪除。soundex(x)函數,返回串X的語音描述,這個描述由4個字符組成,說明串X的聲音表示形式發音,有時在只知道一個名字的發音而不知道拼寫情況下或許能用到。
例:select soundex('smith') from dual; 返回值為:S530.
 
translate(x,y,z)函數,返回將X串中每個字符按它在Y串中出現的位置翻譯成Z串中相應位置的字符后的結果,相當與替換。
例:select translate('this is an example','my is','@#$%^&') from dual;
NLS函數
除了NCHR,這些函數都是以字符類型為參數返回字符類型值。CONVERT(string,dest_charset[,source_charset])將輸入string轉換為指定字符集dest_charset。source_charset是輸入值的字符集——假如它沒有被指定,則缺省為數據庫字符集。輸入值可以是CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB和NCLOB類型。返回值為
VARCHAR2類型。假如dest_charset中沒有輸入字符串中的一個字符,將會使用一個代替字符(由dest_charset定義)NCHR(X)返回數據庫國家字符集中值為X的字符。NCHR(X) 等價于CHR(x USING NCHAR_CS).NLS_CHARSET_DECL_LEN(byte_width,charset)返回一個NCHAR值的聲明寬度(以字符為單位).byte_width是該值以字節為單位的長度charset是該值的字符集ID。NLS_CHARSET_ID(charset_name)返回指定字符集charset_name的數字ID。為charset_name指定“CHAR_CS”將返回數據庫字符集的ID,為charset_name指定“NCHAR_CS”將返回數據庫國家字符集的ID。假如charset_name是一個無效字符集名,將返回
NULL。NLS_CHARSET_ID和NLS_CHARSET_NAME是互為反函數。NLS_CHARSET_NAME([charset_id])返回指定字符集ID charset_id 的名字。假如 charset_id 是一個無效字符集ID,將返回NULL;NLS_INITCAP(string[,nlsparams])以字符串中每個單詞第一個字符大寫而單詞中其余字母小寫的形式返回string.nlsparams指定了一個與該會話缺省的不同的排序次序。假如沒有指定該參數,NLS_INITCAP與INITCAP相同。nlsparams應該采取下面的形式:
'NLS_SORT=sort',其中sort是一個語言排序序列。NLS_UPPER(string[,nlsparams])以大寫形式返回string,不是字母的字符不受影響。假如沒有指定nlsparams,NLS_UPPER與UPPER相同。NLS_LOWER以小寫形式返回string,不是字母的字符不受影響,假如沒有指定nlsparams,NLS_LOWER與LOWER相同。NLSSORT(string[,nlsparams])返回用于排序string的字符串字節。所有值都被轉換為字節字符串,這樣在不同數據庫之間就保持了一致性。
假如沒有指定nlsparams,那么就會使用會話中缺省排序序列。TRANSLATE(string USING {CHAR_CSINCHAR_CS})TRANSLATE...USING 將輸入string參數轉換為數據庫字符集(指定CHAR_CS)或數據庫國家字符集(指定NCHAR_CS).string可以是CHAR、VARCHAR2、NCHAR、NVARCHAR2類型。假如指定CHAR_CS,返回類型為VARCHAR2,假如指定NCHAR_CS,返回類型為NVARCHAR2。TRANSLATE...USING是CONVERT功能的子集。
假如輸入值包含UCS2字符或反斜線符號要使用UNSTR函數。例:
SQL> select translate('asd' using NCHAR_CS) from dual;--數據庫國家字符集TRANSL
------
asdSQL> select translate('asd' using CHAR_CS) from dual;--數據庫字符集
TRA
---
asdUNSTR(s)返回轉換為數據庫UNICODE字符集的字符串。s可包含escaped UCS2 代碼點字符。它由一個反斜線符號加上十六進制代碼點數字組成。因此,要在字符串中包含一個反斜線符號就必須使用雙反斜線符號(//).UNISTR與
TRANSLATE...USING相似,差別是它僅能轉換為UNICODE,而且可以包含escaped 字符。
general
//number
//conversion
//date多行函數:對多行數據(一組數據)進行計算并返回一個值的函數。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克拉玛依市| 安徽省| 孟津县| 如皋市| 都安| 搜索| 平安县| 南开区| 华池县| 修文县| 桦南县| 邵阳市| 拉萨市| 衡东县| 鹤壁市| 枝江市| 昌邑市| 西乌珠穆沁旗| 金湖县| 治多县| 博爱县| 五峰| 河南省| 江口县| 肃北| 宝清县| 明溪县| 修水县| 济宁市| 德江县| 丰都县| 蒙自县| 昌宁县| 阿瓦提县| 宁陵县| 时尚| 德令哈市| 安远县| 仙居县| 万源市| 石渠县|