程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracale數據處理和約束

Oracale數據處理和約束

編輯:Oracle教程

Oracale數據處理和約束


數據處理

其他DML語句:

INSERT
①INSERT INTO table [(column [, column…])]
VALUES (value [, value…]);
使用這種語法一次只能向表中插入一條數據。
不能使用這種方式同時向表中插入多條數據
②通過創建腳本的方式
如:INSERT INTO departments
(department_id, department_name, location_id)
VALUES (&department_id, ‘&department_name’,&location);
和C語言中取地址符類似
③INSERT INTO sales_reps(id, name, salary, commission_pct)
SELECT employee_id, last_name, salary, commission_pct
FROM employees
WHERE job_id LIKE ‘%REP%’;
從其他表中拷貝數據,可以根據WHERE子句來確定是否插入數據,以及插入什麼數據

UPDATE
UPDATE table
SET column = value [, column = value, …]
[WHERE condition];
可以一次更新多條數據:同樣的用WHERE子句來控制
同樣的也可以在UPDATE語句中使用子查詢

DELETE
DELETE FROM table
[WHERE condition];
同樣的也可以在DELETE語句中使用子查詢

事務控制
事務:一組邏輯操作單元,使數據從一種狀態變換到另一種狀態。
組成:
一個或多個DML 語句
一個 DDL(Data Definition Language – 數據定義語言) 語句
執行:
以第一個 DML 語句的執行作為開始
以下面的其中之一作為結束:
COMMIT 或 ROLLBACK 語句
DDL 語句(自動提交)
用戶會話正常結束
系統異常終止
事務控制:
COMMIT
ROLLBACK
SAVEPOINT(ROLLBACK TO SAVEPOINT)

約束

約束是一種規定
**NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK**
創建表的同時可以創建約束
創建表後可以修改約束

可以在表級或列級定義約束
可以通過數據字典來查看約束
表級約束和列級約束:

作用范圍:
①列級約束只能作用在一個列上
column [CONSTRAINT constraint_name] constraint_type,

②表級約束可以作用在多個列上(當然表級約束也
可以作用在一個列上)
column,…
[CONSTRAINT constraint_name] constraint_type
(column, …),

定義方式:列約束必須跟在列的定義後面,表約束不與列一起,而是單獨定義。

非空(not null) 約束只能定義在列上

UNIQUE :
唯一約束,允許出現多個空值:NULL。

FOREIGN KEY:
FOREIGN KEY: 在表級指定子表中的列
REFERENCES: 標示在父表中的列
ON DELETE CASCADE(級聯刪除): 當父表中的列被刪除時,子表中相對應的列也被刪除
ON DELETE SET NULL(級聯置空): 子表中相應的列置空

CHECK:
可以理解為自定義約束

約束的添加和刪除
添加約束
ALTER TABLE table
ADD [CONSTRAINT constraint] type (column);
添加或刪除約束,但是不能修改約束
有效化或無效化約束
添加 NOT NULL 約束要使用 MODIFY 語句 刪除約束
ALTER TABLE employees
DROP CONSTRAINT emp_manager_fk; 無效化約束
ALTER TABLE employees
DISABLE CONSTRAINT emp_emp_id_pk;
Table altered. 激活約束
ALTER TABLE employees
ENABLE CONSTRAINT emp_emp_id_pk;
查詢約束
查詢約束:
查詢數據字典視圖 USER_CONSTRAINTS
SELECT constraint_name, constraint_type,
search_condition
FROM user_constraints
WHERE table_name = ‘EMPLOYEES’; 查詢定義約束的列:
查詢數據字典視圖 USER_CONS_COLUMNS
SELECT constraint_name, column_name
FROM user_cons_columns
WHERE table_name = ‘EMPLOYEES’;

練習的話,我會單獨寫一篇。因為學sql主要就是的練,最難的部分就是子查詢,需要多練,這裡給大家說一下我認為比較高效的聯系方法,就是一定要注意書寫格式,例如:

--查詢平均工資最低的部門信息和該部門的平均工資
SELECT d.*, (SELECT avg(salary)
          FROM employees
          WHERE department_id = d.department_id)
FROM departments d
WHERE department_id = (
                      SELECT department_id
                      FROM employees
                      GROUP BY department_id
                      HAVING avg(salary) = (
                                           SELECT min(avg(salary))
                                           FROM employees
                                           GROUP BY department_id
                      )
)

這樣的書寫格式方便分析

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved