您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關數據庫中如何操作大數據集的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1、語法
INSERT INTO table [ column (, column) ] subquery;
2、說明:
您可以使用INSERT語句向一個表中添加行,其中的值來自于查詢結果集。
插入子句的列列表中列及其數據類型的數量必須與子查詢中的值和數據類型相匹配。
3、例句:
INSERT INTO EMPL3
SELECT *
FROM employees;
1、語法:
insert into (<select clause> WITH CHECK OPTION) values (...)
2、說明:
insert進subquery里的這張表里
如果不滿足subquery里的where條件的話,就不允許插入。
如果插入的列有不在subquery作為檢查的where條件里,那么也會不允許插入。
如果不加WITH CHECK OPTION則在插入時不會檢查。
這里注意,subquery其實是不會實際執行的。
3、例句
INSERT INTO
(SELECT EMPLOYEE_ID, LAST_NAME, EMAIL, HIRE_DATE, JOB_ID, SALARY
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 50 WITH CHECK OPTION)
VALUES
(99998,
'Smith',
'JSMITH',
TO_DATE('1999-06-07', 'yyyy-mm-dd'),
'ST_CLERK',
5000);
1、語法:
a) 無條件
INSERT [ALL] [conditional_insert_clause]
[insert_into_clause values_clause] (subquery)
b) 有條件
INSERT [ALL]
[WHEN condition THEN] [insert_into_clause values_clause]
[ELSE] [insert_into_clause values_clause]
2、說明
a) 如果沒有when條件,則會對所有表進行插入操作
b) 如果有when條件,則對每一個when條件都進行檢查,如果滿足條件就執行插入操作。
3、例句:
--無條件
INSERT ALL
INTO SAL_HISTORY
VALUES (EMPID, HIREDATE, SAL)
INTO MGR_HISTORY
VALUES (EMPID, MGR, SAL)
SELECT EMPLOYEE_ID EMPID, HIRE_DATE HIREDATE, SALARY SAL, MANAGER_ID MGR
FROM EMPLOYEES
WHERE EMPLOYEE_ID > 200;
--有條件
INSERT ALL
WHEN SAL > 10000
THEN INTO SAL_HISTORY
VALUES (EMPID, HIREDATE, SAL)
WHEN MGR > 200
THEN INTO MGR_HISTORY
VALUES (EMPID, MGR, SAL)
SELECT EMPLOYEE_ID EMPID, HIRE_DATE HIREDATE, SALARY SAL, MANAGER_ID MGR
FROM EMPLOYEES
WHERE EMPLOYEE_ID > 200;
1、語法:
INSERT [FIRST]
[WHEN condition THEN] [insert_into_clause values_clause]
[ELSE] [insert_into_clause values_clause]
2、說明:
對于每一行數據,只插入到第一個when條件成立的表,不繼續檢查其他條件。
3、例句:
INSERT FIRST
WHEN SAL > 25000
THEN INTO SPECIAL_SAL
VALUES (DEPTID, SAL)
WHEN HIREDATE LIKE ('%00%')
THEN INTO HIREDATE_HISTORY_00
VALUES (DEPTID, HIREDATE)
WHEN HIREDATE LIKE ('%99%')
THEN INTO HIREDATE_HISTORY_99
VALUES (DEPTID, HIREDATE)
ELSE INTO HIREDATE_HISTORY
VALUES (DEPTID, HIREDATE)
SELECT DEPARTMENT_ID DEPTID, SUM(SALARY) SAL, MAX(HIRE_DATE) HIREDATE
FROM EMPLOYEES
GROUP BY DEPARTMENT_ID;
1、語法:
MERGE INTO table_name table_alias
USING (table|view|sub_query) alias
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
col1 = col_val1,
col2 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list)
VALUES (column_values);
2、說明:
Merge用來從一個表中選擇一些數據更新或者插入到另一個表中。而最終是用更新還是用插入的方式取決于該語句中的條件。
3、例句:
MERGE INTO empl3 c
USING employees e
ON (c.employee_id = e.employee_id)
WHEN MATCHED
THEN UPDATE SET
c.first_name = e.first_name,
c.last_name = e.last_name,
...
c.department_id = e.department_id
WHEN NOT MATCHED
THEN INSERT VALUES
(e.employee_id, e.first_name, e.last_name,
e.email, e.phone_number, e.hire_date, e.job_id,
e.salary, e.commission_pct, e.manager_id,
e.department_id);
1、語法:
VERSIONS BETWEEN TIMESTAMP [lower bound] AND [upper bound]
VERSIONS BETWEEN SCN [lower bound] AND [upper bound]
2、說明:
通過versions between能夠查看指定時間段內undo表空間中記錄的不同版本
3、例句:
SELECT SALARY
FROM EMPLOYEES3 VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE
WHERE EMPLOYEE_ID = 107;
感謝各位的閱讀!關于“數據庫中如何操作大數據集”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。