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