Categories of SQL Statements

Post on 10-Jan-2016

34 views 0 download

Tags:

description

Categories of SQL Statements. Data definition statements Data manipulation statements Cursor manipulation statements Cursor optimization statements Dynamic management statements Data access statements Data integrity statements Optimization statements Routine Definition statements - PowerPoint PPT Presentation

Transcript of Categories of SQL Statements

1

Categories of SQL Statements • Data definition statements• Data manipulation statements• Cursor manipulation statements• Cursor optimization statements• Dynamic management statements• Data access statements• Data integrity statements• Optimization statements• Routine Definition statements• Auxiliary statements• Client/server connection statements• Optical subsystem statements

2

Data Definition StatementsALTER FRAGMENT ALTER FUNCTIONALTER INDEX ALTER PROCEDUREALTER ROUTINE ALTER TABLECLOSE DATABASE CREATE AGGREGATECREATE CAST CREATE DATABASECREATE DISTINCT TYPE CREATE EXTERNAL TABLECREATE INDEX CREATE OPAQUE TYPECREATE PROCEDURE CREATE PROCEDURE FROMCREATE ROLE CREATE ROW TYPECREATE SCHEMA CREATE SYNONYMCREATE TABLE CREATE TEMPORARY TABLECREATE TRIGGER CREATE VIEWDATABASE DROP AGGREGATEDROP CAST DROP DATABASEDROP INDEX DROP PROCEDUREDROP ROLE DROP ROW TYPEDROP SYNONYM DROP TABLEDROP TRIGGER DROP VIEWRENAME COLUMN RENAME DATABASERENAME TABLE TRUNCATE

3

Data Manipulation Statements

DELETE INSERT

LOAD SELECT

UNLOAD UPDATE

  

Cursor Manipulation Statements

CLOSE DECLARE

FETCH FLUSH

FREE OPEN

PUT SET AUTOFREE

  

Optimization Statements

SET AUTOFREE

SET DEFERRED_PREPARE

4

Dynamic Management StatementsALLOCATE COLLECTION ALLOCATE DESCRIPTORALLOCATE ROW DEALLOCATE COLLECTIONDEALLOCATE DESCRIPTOR DEALLOCATE ROWDESCRIBE EXECUTEEXECUTE IMMEDIATE FREEGET DESCRIPTOR PREPARESET DEFERRED_PREPARE SET DESCRIPTOR  Data Access StatementsGRANT GRANT FRAGMENTLOCK TABLE REVOKEREVOKE FRAGMENT SET ISOLATIONSET LOCK MODE SET ROLESET SESSION AUTHORIZATION SET TRANSACTIONSET TRANSACTION MODE UNLOCK TABLE

5

Data Integrity Statements

BEGIN WORK COMMIT WORK

ROLLBACK WORK SET DATABASE OBJECT MODE

SET LOG SET PLOAD FILE

SET TRANSACTION MODE START VIOLATIONS TABLE

STOP VIOLATIONS TABLE

  

Optimization Statements

SET EXPLAIN SET OPTIMIZATION

SET PDQPRIORITY SET RESIDENCY

SET SCHEDULE LEVEL SET STATEMENT CACHE

UPDATE STATISTICS 

6

Routine Definition Statements

ALTER FUNCTION ALTER PROCEDURE

ALTER ROUTINE CREATE FUNCTION

CREATE FUNCTION FROM CREATE PROCEDURE

CREATE PROCEDURE FROM CREATE ROUTINE FROM

DROP FUNCTION DROP PROCEDURE

DROP ROUTINE EXECUTE FUNCTION

EXECUTE PROCEDURE SET DEBUG FILE TO

7

Auxiliary Statements

INFO OUTPUT

GET DIAGNOSTICS SET DATASKIP

WHENEVER 

  

Client/Server Connection Statements

CONNECT DISCONNECT

SET CONNECTION

  

Optical Subsystem Statements

ALTER OPTICAL CLUSTER CREATE OPTICAL CLUSTER

DROP OPTICAL CLUSTER RELEASE

RESERVE SET MOUNTING TIMEOUT

8

Data Type

9

Data Type

10

CREATE DATABASE

11

CREATE SCHEMA

12

CREATE TABLE

13

CREATE TABLE 1

14

CREATE TABLE 2

15

CREATE TABLE 3

16

CREATE TABLE 4

17

CREATE TABLE 5

18

CREATE INDEX

19

TRIGGER

• A mechanism that resides in the database.• It is available to any user who has permission to use it.• Specifies that when a particular action, an insert, a select, a delete, or an update, occurs on a particular table, the database server should automatically perform one or more additional actions.• The additional actions can be INSERT, DELETE, UPDATE, EXECUTE PROCEDURE or EXECUTE FUNCTION statements.

20

CREATE TRIGGER 1

21

CREATE TRIGGER 2

22

CREATE TRIGGER 3

23

CREATE TRIGGER 4

24

CREATE TRIGGER 5

25

CREATE PROCEDURE 1

26

CREATE PROCEDURE 2

27

CREATE PROCEDURE 3

28

Example 1:

CREATE TRIGGER upqtyUPDATE OF quantity ON itemsBEFORE (EXECUTE PROCEDURE upd_items_p1)

Example 2:

CREATE PROCEDURE upd_items_p1()DEFINE GLOBAL old_qty INT DEFAULT 0;LET old_qty = (SELECT SUM(quantity) FROM items);

END PROCEDURE;

CREATE PROCEDURE upd_items_p2()DEFINE GLOBAL old_qty INT DEFAULT 0;DEFINE new_qty INT;LET new_qty = (SELECT SUM(quantity) FROM items;IF new_qty > old_qty * 1.50 THEN

RAISE EXCEPTION –746, 0, ‘Not allowed / rule violation;’END IF

END PROCEDURE;

29

Example 3: CREATE TRIGGER up_itemsUPDATE OF quantity ON itemsBEFORE(EXECUTE PROCEDURE upd_items_p1())AFTER(EXECUTE PROCEDURE upd_items_p2());

30

Example 4: FOR EACH ROW clause, REFERENCING clause

CREATE TABLE log_record(item_num SMALLINT,ord_num INTEGER,username CHAR (8),update_time DATETIME YEAR TO MINUTE,old_qty SMALLINT,new_qty SMALLINT);

CREATE TRIGGER upqtyUPDATE OF quantity ON itemsREFERENCING OLD AS pre_upd NEW AS post_updFOR EACH ROW

(INSERT INTO log_record VALUES (pre_upd.item_num, pre_upd.order_num, USER, CURRENT year to fraction(3), pre_upd.quantity, post_upd.quantity));

31

Example 5: WHEN condition

CREATE TRIGGER up_priceUPDATE OF unit_price ON stockREFERENCING OLD AS pre NEW AS postFOR EACH ROW WHEN (post.unit_price > pre.unit_price * 2)

(INSERT INTO warn_tab VALUES (pre.stock_num, pre.order_num, pre.unit_price, post.unit_price, CURRENT))

32

Example 6: passing data to SPL procedure

CREATE TRIGGER upd_totprUPDATE OF quantity ON itemsREFERENCING OLD AS pre_upd NEW AS post_updFOR EACH ROW(EXECUTE PROCEDURE calc_totpr(pre_upd.quantity,

post_upd.quantity, pre_upd.total_price) INTO total_price)

CREATE PROCEDURE calc_totpr(old_qty SMALLINT, new_qty SMALLINT, total MONEY(8)) RETURNING MONEY(8);DEFINE u_price LIKE items.total_price;DEFINE n_total LIKE items.total_price;LET u_price = total / old_qty;LET n_total = new_qty * u_price;RETURN n_total;

END PROCEDURE

33

Zdroje:Informix Dynamic Server 2000, Product Documentation