一、SQL指令
1.資料定義語言:DDL
主要用于建立删除資料庫對象和維護資料對象的屬性。主要有三個主指令:CREATE .DROP . ALTER
示例:
SQL>--建立普通資料表
SQL>CREATE TABLE ORDERS
(
Oid number PRIMARY KEY NOT NULL,
username varchar2(50) references USERINFO (username)
);
SQL>--建立備份資料表
SQL>CREATE TABLE 表1 AS SELECT * FROM 表2;
SQL>--删除表
SQL>DROP TABLE 表名;
SQL>--添加.修改.删除字段
SQL> ALTER TABLE 表名 ADD/MODIFY(字段 類型);
SQL> ALTER TABLE 表名 DROP(字段);
2.資料操作語言:DML
資料操作語言主要是對表資料操作的一些指令,
包括SELECT .INSERT .UPDATE.DELETE。
(1)普通查詢語句:SELECT 字段 FROM 表名 WHERE 神馬字段 = 神馬;等等
(2)關聯查詢:
内連接配接:連接配接兩個表中隻要資料存在不比對就都不顯示
示例1:SELECT 字段.... FROM 表1 JOIN 表2 ON 表1.字段0 = 表2.字段0 ORDER BY 字段0
示例2:SELECT 字段.... FROM 表1 INNER JOIN 表2 ON 表1.字段0 = 表2.字段0 ORDER BY 字段0
示例3:SELECT 字段.... FROM 表1,表2 WHERE 表1.字段0 = 表2.字段0 ORDER BY 字段0
外連接配接:在兩個表連接配接查詢時,兩個表中都存在空比對的記錄,這些記錄都顯示出 來,空比對的字段用Null表示。
示例1:SELECT 字段.... FROM 表1 FULL OUTER JOIN 表2 ON 表1.字段0 = 表2.字段0
示例2:SELECT 字段.... FROM 表1 FULL JOIN 表2 ON 表1.字段0 = 表2.字段0
左連接配接:連接配接兩個表的左表為主顯示表,空比對用Null
示例1:SELECT 字段 FROM 表1 LEFT JOIN 表2 ON 表1.字段0 = 表2.字段0
示例2:SELECT 字段 FROM 表1 LEFT OUTER JOIN 表2 ON 表1.字段0 = 表2.字段0
示例3:SELECT 字段 FROM 表1 , 表2 WHERE 表1.字段0 = 表2.字段0(+)
右連接配接:類似于左連接配接,但是以右表為基表
示例1:SELECT 字段 FROM 表1 RIGHT JOIN 表2 ON 表1.字段0 = 表2.字段0
示例2:SELECT 字段 FROM 表1 RIGHT OUTER JOIN 表2 ON 表1.字段0 = 表2.字段0
示例3:SELECT 字段 FROM 表1 , 表2 WHERE 表1.字段0(+) = 表2.字段0
(3)插入.修改資料
示例: SQL>INSERT INTO 表名 VALUES(對應的内容);
SQL>UPDATE 表名 SET 神馬字段=新内容 WHERE ID = 那一個;
3.資料控制語言:DCL
主要用于資料庫中權限的授予和取消。
角色:系統中一組權限的集合,可以将一個角色授予一個使用者,這個使用者會同時擁有 該角色所有權限
常用角色:CONNECT(基本的連接配接),RESOURCE(資源使用),DBA(資料庫管理)
授權
示例1:SQL> GRANT CONNECT,RESOURCE TO 使用者名;
示例2:
GRANT ALL ON 對象名 TO 使用者名;是将該對象上的所有權限授予指定使用者。
回收權限:
示例1:REVOKE 系統權限名 FROM 使用者名
示例2:REVOKE 對象權限名 ON 對象名 FROM 使用者名
4.事務控制語言:TCL
TCL幾個事務控制指令:
COMMIT(送出) . ROLLBACK(回退) . SAVEPOINT(儲存)
5.僞表及僞列
(1)DUAL的僞表,這個表的資料中有一行一列
示例:SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss') FROM DUAL;
(2)僞列
ROWID 記錄每一資料行在硬碟上位置的唯一辨別;
ROWNUM 辨別查詢結果集中記錄序号;
LEVEL 查詢資料所對應的層次;
注:在select查詢中執行計劃是首先給出 rownum 排序,然後進行 order by 排序。
6.集合運算
(1)并集(UNION):目的是将兩個sql語句的結果合并起來,可以檢視你要查詢的結果
UNION : 會排除重複的記錄。
UNION ALL :不會排除重複的記錄,速度較UNION快很多,建議在相同的情況下用這個。
注:UNION 用法中,兩個select語句的字段類型比對,并且字段個數要相同。
示例1:SQL>SELECT * FROM 表1 UNION SELECT * FROM 表2;
示例2:SQL>SELECT * FROM 表1 UNION ALL SELECT * FROM 表;
(2)交集(INTERSECT):會在兩個查詢結果中找到相同的記錄。
示例:SQL>SELECT * FROM 表1 INTERSECT ALL SELECT * FROM 表2;
(3)剪集/割集(MINUS):會從第一個結果集合中減去第二個結果集合中存在的記錄。
示例:SQL>SELECT * FROM 表1 MINUS ALL SELECT * FROM 表2;