Sql for Oracle基本操做關鍵字

 Sql for Oracle基本操做關鍵字

+SQL TOP子句

TOP 子句用於規定要返回的記錄的數目數據庫

SELECT column_name(s) FROM table_name WHERE ROWNUM <= number服務器

+SQL LIKE 操做符

LIKE 操做符用於在 WHERE 子句中搜索列中的指定模式函數

SELECT column_name(s) FROM table_name WHERE column_name LIKE patternspa

提示:"%" 可用於定義通配符(模式中缺乏的字母)。對象

+SQL 通配符

在搜索數據庫中的數據時,SQL 通配符能夠替代一個或多個字符。索引

SQL 通配符必須與 LIKE 運算符一塊兒使用。事務

% 替代一個或多個字符rem

_ 僅替代一個字符it

[charlist] 字符列中的任何單一字符io

[^charlist]

或者

[!charlist] 不在字符列中的任何單一字符

+SQL IN 操做符

IN 操做符容許咱們在 WHERE 子句中規定多個值。

SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)

+SQL BETWEEN 操做符

操做符 BETWEEN ... AND 會選取介於兩個值之間的數據範圍。這些值能夠是數值、文本或者日期。

SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2

+SQL Alias(別名)

經過使用 SQL,能夠爲列名稱和表名稱指定別名(Alias)。

別名使查詢程序更易閱讀和書寫。

SELECT column_name(s) FROM table_name AS alias_name(表)

SELECT column_name AS alias_name FROM table_name(列)

例:SELECT po.OrderID, p.LastName, p.FirstName

FROM Persons AS p, Product_Orders AS po

WHERE p.LastName='Adams' AND p.FirstName='John'

+SQL JOIN

用於根據兩個或多個表中的列之間的關係,從這些表中查詢數據

JOIN: 若是表中有至少一個匹配,則返回行

LEFT JOIN: 即便右表中沒有匹配,也從左表返回全部的行

RIGHT JOIN: 即便左表中沒有匹配,也從右表返回全部的行

FULL JOIN: 只要其中一個表中存在匹配,就返回行

INNER JOIN:在表中存在至少一個匹配時,INNER JOIN 關鍵字返回行。

註釋:INNER JOIN JOIN 是相同的。

註釋:在某些數據庫中, LEFT JOIN 稱爲 LEFT OUTER JOIN

註釋:在某些數據庫中, RIGHT JOIN 稱爲 RIGHT OUTER JOIN



SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

FROM Persons

INNER JOIN Orders

ON Persons.Id_P = Orders.Id_P

ORDER BY Persons.LastName

 

SELECT column_name(s)

FROM table_name1

INNER JOIN table_name2

ON table_name1.column_name=table_name2.column_name

 

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

FROM Persons

FULL JOIN Orders

ON Persons.Id_P=Orders.Id_P

ORDER BY Persons.LastName

+SQL UNION UNION ALL 操做符

UNION 操做符用於合併兩個或多個 SELECT 語句的結果集。

UNION 內部的 SELECT 語句必須擁有相同數量的列

列也必須擁有類似的數據類型。

每條 SELECT 語句中的列的順序必須相同。

SELECT column_name(s) FROM table_name1

UNION

SELECT column_name(s) FROM table_name2

註釋:默認地,UNION 操做符選取不一樣的值。若是容許重複的值,請使用 UNION ALL

SELECT column_name(s) FROM table_name1

UNION ALL

SELECT column_name(s) FROM table_name2

另外,UNION 結果集中的列名老是等於 UNION 中第一個 SELECT 語句中的列名。

+SQL INTERSECT子句/操做符

由兩個SELECT語句返回相同的行(惟一)

SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]

INTERSECT

SELECT column1 [, column2 ] FROM table1 [, table2 ][WHERE condition]

+SQL EXCEPT子句/操做符

合併兩個SELECT語句,並從那些沒有被第二個SELECT語句返回的第一個SELECT語句返回行

SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]

EXCEPT

SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]



+SQL SELECT INTO 語句

可用於建立表的備份復件。

SELECT INTO 語句從一個表中選取數據,而後把數據插入另外一個表中。

SELECT INTO 語句經常使用於建立表的備份復件或者用於對記錄進行存檔。

把全部的列插入新表:

SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename

把但願的列插入新表:

SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename

+SQL 約束 (Constraints)

NOT NULL

ALTER TABLE CUSTOMERS MODIFY SALARY DECIMAL (18, 2) NOT NULL;

DEFAULT

ALTER TABLE CUSTOMERS MODIFY SALARY DECIMAL (18, 2) DEFAULT 5000.00;

ALTER TABLE CUSTOMERS ALTER COLUMN SALARY DROP DEFAULT;



UNIQUE KEY

ALTER TABLE CUSTOMERS MODIFY AGE INT NOT NULL UNIQUE;

ALTER TABLE CUSTOMERS DROP INDEX myUniqueConstraint;

PRIMARY KEY

ALTER TABLE CUSTOMERS ADD CONSTRAINT PK_CUSTID PRIMARY KEY (ID, NAME);

ALTER TABLE CUSTOMERS DROP PRIMARY KEY ;

FOREIGN KEY

ALTER TABLE ORDERS ADD FOREIGN KEY (Customer_ID) REFERENCES CUSTOMERS (ID);

ALTER TABLE ORDERS DROP FOREIGN KEY;

CHECK

ALTER TABLE CUSTOMERS MODIFY AGE INT NOT NULL CHECK (AGE >= 18 );

ALTER TABLE CUSTOMERS DROP CONSTRAINT myCheckConstraint;

+索引

有助於加快SELECTWHERE子句查詢,但它會減慢數據輸入,使用UPDATEINSERT語句。索引可建立或刪除,但對數據不會有影響。

+SQL CREATE INDEX 語句

單列索引

CREATE INDEX 語句用於在表中建立索引。

惟一索引

CREATE [UNIQUE] INDEX index_name ON table_name (column_name)

組合索引(若是有頻繁使用WHERE子句做爲過濾器中的兩個或多個列,組合索引將是最好的選擇。 )

CREATE INDEX index_name on table_name (column1, column2);

隱式索引

隱式索引是自動由數據庫服務器建立對象時建立的索引。索引是主鍵約束和惟一性約束自動建立。

撤銷索引

DROP INDEX index_name

避免使用索引:

索引不該該用在小型表上。

有頻繁的,大批量更新或插入操做的表。

索引不該該用於對包含大量NULL值的列。

列常常操縱不該該被索引。



+SQL ALTER TABLE 語句

ALTER TABLE 語句用於在已有的表中添加、修改或刪除列。

ALTER TABLE table_name ADD column_name datatype

ALTER TABLE table_name DROP COLUMN column_name

ALTER TABLE table_name ALTER COLUMN column_name datatype

+SQL truncate table命令 (截斷)

用於刪除現有表中完整的數據。

TRUNCATE TABLE table_name;

+SQL AUTO INCREMENT 字段

經過 sequence 對建立 auto-increment 字段(該對象生成數字序列)。

CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10

INSERT INTO Persons (P_Id,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen')

+SQL VIEW(視圖)

SQL 中,視圖是基於 SQL 語句的結果集的可視化的表。

視圖無非是存儲在數據庫中的相關名稱的SQL語句。

視圖包含行和列,就像一個真實的表。視圖中的字段就是來自一個或多個數據庫中的真實的表中的字段。咱們能夠向視圖添加 SQL 函數、WHERE 以及 JOIN 語句,咱們也能夠提交數據,就像這些來自於某個單一的表。

CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition

註釋:視圖老是顯示最近的數據。每當用戶查詢視圖時,數據庫引擎經過使用 SQL 語句來重建數據。

SQL DROP VIEW Syntax DROP VIEW view_name

+事務

就是對數據庫執行的工做單元。事務是完成邏輯順序的工做,不管是在手動方式由用戶或者自動地經過某種數據庫程序的序列的單元。

事務具備如下四個標準屬性,一般由首字母縮寫ACID簡稱:

原子:確保工做單元中的全部操做都成功完成; 不然,該事務被停止的故障點,操做回到操做以前的狀態。

一致性:確保數據庫正確後成功提交事務更改狀態。

隔離:事務操做彼此獨立和透明。

持久性:可確保提交的事務的結果或仍然存在系統故障的狀況下的做用。

COMMIT:保存更改。COMMIT;

ROLLBACK:回滾更改。ROLLBACK;

SAVEPOINT:回滾事務組建立點

SAVEPOINT SAVEPOINT_NAME;

ROLLBACK TO SAVEPOINT_NAME;

RELEASE SAVEPOINT SAVEPOINT_NAME;

SET TRANSACTION:事務放置的名稱。

SET TRANSACTION [ READ WRITE | READ ONLY ];

相關文章
相關標籤/搜索