顯示包含「SQL」標籤的文章。顯示所有文章
顯示包含「SQL」標籤的文章。顯示所有文章

2016-01-19

Oracle SQL Developer Default Script Path


How to define the script path to run SQL via text file?

Tools --> Preferences --> Database --> Worksheet -->
Select default path to look for scripts



2013-07-25

Overiew of Oracle Sequences

在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。

1、Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE權限,
CREATE SEQUENCE emp_sequence
    INCREMENT BY 1  -- 每次加幾個
    START WITH 1    -- 從1開始計數
    NOMAXVALUE      -- 不設置最大值
    NOCYCLE         -- 一直累加,不循環
    CACHE 10;

一旦定義了emp_sequence,你就可以用CURRVAL,NEXTVAL
 CURRVAL=返回 sequence的當前值
 NEXTVAL=增加sequence的值,然返回 sequence 值
比如:
  emp_sequence.CURRVAL
  emp_sequence.NEXTVAL

可以使用sequence的地方:
- 不包含子查詢、snapshot、VIEW的 SELECT 語句
- INSERT語句的子查詢中
- NSERT語句的VALUES中
- UPDATE 的 SET中  

可以看如下例子:
INSERT INTO emp VALUES
(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);

SELECT empseq.currval     FROM DUAL;

但是要注意的是:
- 第一次NEXTVAL返回的是初始值;隨的NEXTVAL會自動增加你定義的INCREMENT BY值,然返回增加的值。CURRVAL 總是返回當前SEQUENCE的值,但是在第一次NEXTVAL初始化之才能使用CURRVAL,否則會出錯。一次NEXTVAL會增加一次SEQUENCE的值,所以如果你在同一個語句裡面使用多個NEXTVAL,其值就是不一樣的。

- 如果指定CACHE值,ORACLE就可以預先在內存裡面放置一些sequence,這樣存取的快些。cache裡面的取完,oracle自動再取一組到cache。 使用cache或許會跳號, 比如數據庫突然不正常down掉(shutdown abort),cache中的sequence就會丟失. 所以可以在create sequence的時候用nocache防止這種情況。

2、Alter Sequence
你或者是該sequence的owner,或者有ALTER ANY SEQUENCE 權限才能改動sequence. 可以alter除start至以外的所有sequence參數.如果想要改變start值,必須 drop  sequence 再 re-create .
Alter sequence 的例子
ALTER SEQUENCE emp_sequence
    INCREMENT BY 10
    MAXVALUE 10000
    CYCLE    -- 到10000從頭開始
    NOCACHE ;


影響Sequence的初始化參數:
SEQUENCE_CACHE_ENTRIES =設置能同時被cache的sequence數目。

可以很簡單的Drop Sequence
DROP SEQUENCE order_seq;

From: http://fanqiang.chinaunix.net/a2/b2/20010514/10150052_b.html

2013-07-18

SQL四種語言:DDL,DML,DCL,TCL

1.DDLData Definition Language)數據庫定義語言statements are used to define the database structure or schema.
DDLSQL語言的四大功能之一。
用於定義數據庫的三級結構,包括外模式、概念模式、內模式及其相互之間的映像,定義數據的完整性、安全控制等約束
DDL不需要commit.
CREATE
ALTER
DROP
TRUNCATE
COMMENT
RENAME

2.DMLData Manipulation Language)數據操縱語言statements are used for managing data within schema objects.
DBMS提供,用於讓用戶或程序員使用,實現對數據庫中數據的操作。
DML分成交互型DML和嵌入型DML兩類。
依據語言的級別,DML又可分成過程性DML和非過程性DML兩種。
需要commit.
SELECT
INSERT
UPDATE
DELETE
MERGE
CALL
EXPLAIN PLAN
LOCK TABLE

3.DCLData Control Language)數據庫控制語言授權,角色控制等
GRANT 授權
REVOKE 取消授權

4.TCLTransaction Control Language)事務控制語言
SAVEPOINT 設置保存點
ROLLBACK 回滾
SET TRANSACTION
SQL主要分成四部分:
1)數據定義。 SQL DDL)用於定義SQL模式、基本表、視圖和索引的創建和撤消操作。
2)數據操縱。 SQL DML)數據操縱分成數據查詢和數據更新兩類。數據更新又分成插入、刪除、和修改三種操作。
3)數據控制。包括對基本表和視圖的授權,完整性規則的描述,事務控制等內容。

4)嵌入式SQL的使用規定。涉及到SQL語句嵌入在宿主語言程序中使用的規則。

Review Who is Connected to Windows Shared Folder

  1. Open Computer Management Console     Windows Key + R -> compmgmt.msc      2. Expand System Tools -> Shared Folder -> Sessions ...