oracle 1

ORACLE筆記01sql

 

############################################################數據庫

[oracle@oracle ~]$ lsnrctl start安全

 

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 03-4月 -2019 15:39:31服務器

 

Copyright (c) 1991, 2009, Oracle.  All rights reserved.oracle

 

啓動/db/app/oracle/product/11.2.0//bin/tnslsnr: 請稍候...app

 

TNSLSNR for Linux: Version 11.2.0.1.0 - Productiontcp

系統參數文件爲/db/app/oracle/product/11.2.0/network/admin/listener.ora測試

寫入/db/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml的日誌信息日誌

監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))xml

監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))

 

正在鏈接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

LISTENER 的 STATUS

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

別名                      LISTENER

版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production

啓動日期                  03-4月 -2019 15:39:33

正常運行時間              0 天 0 小時 0 分 0 秒

跟蹤級別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監聽程序參數文件          /db/app/oracle/product/11.2.0/network/admin/listener.ora

監聽程序日誌文件          /db/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml

監聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))

監聽程序不支持服務

命令執行成功

[oracle@oracle ~]$ sqlplus "/as sysdba"^C

[oracle@oracle ~]$ sqlplus / as sysdba

 

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 4月 3 15:39:49 2019

 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

 

已鏈接到空閒例程。

 

SQL> SQL>

SQL>

SQL>

SQL> conn as sysdba     

請輸入用戶名:  arcl

輸入口令:

已鏈接到空閒例程。

SQL> startup

ORACLE 例程已經啓動。

 

Total System Global Area 1586708480 bytes

Fixed Size              2213736 bytes

Variable Size                922749080 bytes

Database Buffers      654311424 bytes

Redo Buffers                 7434240 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL>

############################################################

 

1,  術語及其它們的定義;

表table : 由行和列組成的二維結構;

行 row : 每一行給出了一個供應商的所有信息(記錄);

列 column : 每一列表示供應商的一種特性(屬性);

值 value : 行和列的交匯處,

約定:

表 table = 實體 entity = 關係 relation

行 row = 記錄 record

列 column = 屬性 attribute

ORACLE服務器SERVER = ORACLE 系統 = ORACLE數據庫管理系;

沒有陰影的內容是用戶要輸入的; 提示符: 2是SQL語句的行號,由SQL*Plus自動產生。

SP2-0171: 幫助系統不可用。

SQL> SELECT *

  2  FROM supplier;

SELECT *

*

第 1 行出現錯誤:

ORA-01034: ORACLE not available

進程 ID: 0

會話 ID: 0 序列號: 0

 

2,查詢語句的兩個關鍵字:SELECT 和 FROM;

一個完整的SQL命令叫語句statement, 每一個關鍵字和後面跟着的選項叫作子句clause 。

語法: SELECT  * |{[DISTINCT] 列表……}

              FROM 表名;

列表的格式爲:列表|表達式[別名]  :

SELECT  *  FROM 表名;從表名所指定的表中選擇全部的列;

                    SELECT DISTINCT 列表… FROM 表名;從表名所指定的表中選出所指定的列,但不顯示重複的列(記錄);

 

,3,SQL*Plus默認的列標題顯示結果以下:

(1)       字符和日期型數據爲左對齊。

(2)       數字型數據爲右對齊。

 

4,運算符的優先級;

(1)       先乘除後加減。

(2)       在表達式中,同一優先級的運算符計算次序是從左到右。

(3)       若是使用了括號,括號中的運算優先;

(4)       若是有多重括號嵌套,內層括號中的運算優先。

 

5,使用別名:

         方法:只需在列名和別名之間放AS或空格就能夠了。

                     若是別名中包含了特殊字符,就要用雙引號把別名括起來。

                     若是字符、數字或表達式(文本字符串)是日期型或字符型,就必須將它們用單引號括起來;

6,鏈接運算符(||)

         用於把一個或多個列和字符串鏈接起來。

7,運算符DISTINCT,distinct去掉重複的行。

         DISTINCT能夠做用於多列,此時顯示的結果爲妹一種列組合只顯示一行。

8,限制所選擇的數據行(選擇操做SELECTION)

         使用WHERE子句來限制那些行(記錄)要顯示,WHERE子句跟在FROM子句以後。

(1)       WHERE是關鍵字,其後跟限制條件。

(2)       條件是由列名、字符串、算數表達式、常量和比較運算符組成的。

(3)       可使用比較運算符operator 來構造條件。格式以下:

表達式  operator  表達式

經常使用的比較運算符: >  <  =  >=  <=   <> 或!=

(4)       還有BETWEEN AND、 IN 和 LINK  3個比較運算符。

9,BETWEEN AND運算符

         用於測試某些值是否在指定的數值範圍以內,該運算符不但能夠用於數字型數據,還能夠用於字符型和日期型數據,但這兩種類型的數據必須用單引號括起來。

SELECT  empno,ename,sal,hiredate FROM emp WHERE hiredate BETWEEN ’01-JAN-81’ AND ’31-MAY-82’;

能夠在BETWEEN以前加上NOT,用於測試某些值是否不在BETWEEN和AND指定的數值範圍以內。

SELECT empno,ename,sal,hiredate FROM emp WHERE hiredate NOT BETWEEN ’01-JAN-81’ AND ’31-MAY-82’;

P28continue

 

10,在SQL語句中使用字符串和日期

         注意:在WHERE 子句中的字符串是區分大小寫的。 在WHERE 子句中字符串和日期型數據要用單引號括起來,但數字型不用。

         SELECT empno, ename, job,sal  FROM emp WHERE job=’SALESMAN’;

 

11,使用IN 比較運算符

         SELECT empno, ename, sal, job  FROM emp  WHERE job IN (‘SALESMAN’,’CLERK’,’MANAGER’);

         IN 用來測試某些值是否在列表中出現。在上面的sql語句中,只要某一個記錄的JOB列的值等於IN列表中(即括號中)的任何一個,該數據行就會顯示出來。

         另:還能夠在IN 以前加否認詞NOT。NOT IN 用來測試某些值是否不在列表中出現。

         SELECT empno,ename,sal,job  FROM emp WHERE job NOT IN (‘ANALYST’,’PRESIDENT’);

 

12,使用LIKE運算符

         SELECT  empno,ename,sal,job FROM emp WHERE job LIKE ‘SAL%’;

         LIKE運算符進行通配符(wildcard)查詢。

         LIKE運算符可使用如下兩個通配符 「%」和「_」 。其中,

                   「%」 表明0個或多個字符。

                   「_」 表明一個且只能是一個字符。

SELECT  empno, ename, sal, job  FROM emp WHERE job LIKE ‘S_L_S%’;    ----SALESMAN

SELECT empno,ename,sal,hiredate  FROM emp WHERE hiredate LIKE ‘%81’;

 

13,轉義操做符

         要查詢的字符串中含有」_」或「%」時,可使用轉義escape關鍵字來實現。 

         SELECT * FROM dept_temp WHERE dname LIKE ‘IT\_%’ escape ‘\’;

         即在查詢語句中,定義的」\」爲轉義符,即在「\」以後的「_」字符已不是通配符了,而是它原本的含義,即下劃線。

         除了」\」, 也可使用任何感興趣的字符做爲轉義符。

 

14,ORDER BY 子句(排序操做)

         利用ORDER BY 子句對查詢的結果進行排序。您能夠對數字型、日期型和字符型數據進行排序。默認狀況下,數字型和日期型數據是從小到大排序;字符型數據是按ASCII碼的次序排序;DESC(descending order)爲降序排序;

         Order by 由小到大

         SELECT empno,ename,sal FROM emp WHERE sal >= 1500 ORDER BY sal DESC;

 

15,在ORDER BY 子句中使用別名和表達式;

         SELECT  empno AS 「Employee Number」, ename name,(500+sal)*12 「Annal Salary」 FROM emp ORDER BY 「Annual Salary」 DESC;

P35contune

 

16,擴充後的查詢語句的格式;

         格式: SELECT *|{[DISTINCT] 列表, ….}

            FROM  表名

                            [WHERE 條件]

                            [ORDER BY {列名|別名|表達式, …}[ASC|DESC]];

         注:其中,條件由列名、文本字符串、算數表達式、常量和比較運算符5個部分組成。 須要注意的是ORDER BY子句必定要放在SQL語句的最後。

 

Oracle筆記02

 

第2章 經常使用的SQL*Plus命令和環境變量

 

1,  DESC [RIBE]命令

用來查詢表的結構。

語法: DESC  表名;

2,  SET LINE[SIZE]{80|n} 命令

n爲天然數,80爲默認值。

該命令是講顯示屏的顯示輸出置爲n個字符寬,80個字符爲此命令的默認顯示寬度。

3,  L命令和n text命令

可使用L(LIST)命令來顯示剛剛輸入的SQL語句。

4,」/」 RUN 命令

         「/」RUN命令用來從新運行SQL緩衝區中的SQL語句。

5,  n(設置當前行)命令和A[PPEND](附加)命令

p44continue

相關文章
相關標籤/搜索