Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Introduction to SQL Prof. Yin-Fu Huang CSIE, NYUST Chapter 4.

Similar presentations


Presentation on theme: "An Introduction to SQL Prof. Yin-Fu Huang CSIE, NYUST Chapter 4."— Presentation transcript:

1 An Introduction to SQL Prof. Yin-Fu Huang CSIE, NYUST Chapter 4

2 Advanced Database SystemYin-Fu Huang 4.1Introduction SQL:1999 Products typically support what might be called “a superset of a subset” of the standard. e.g. IBM DB2

3 Advanced Database SystemYin-Fu Huang 4.2Overview Data definition operations (See Fig. 4.1)

4 Advanced Database SystemYin-Fu Huang Insert Into Temp(P#, Weight) Select P#, Weight From P Where Color=Color(‘Red’); Delete From Sp Where P#=P#(’P2’); Update S Set Status=Status*2, City=‘Rome’ Where City=‘Paris’; Data manipulation operations (See Fig. 4.2) 4.2Overview (Cont.)

5 Advanced Database SystemYin-Fu Huang Information Schema SQL catalog vs. SQL schema 4.3The Catalog

6 Advanced Database SystemYin-Fu Huang 4.4Views Example: Create View Good_Supplier As Select S#, Status, City From S Where Status > 15; Select S#, Status From Good_Supplier Where City=’London’;  Select S#, Status From S Where Status > 15 And City=’London’;

7 Advanced Database SystemYin-Fu Huang 4.5Transactions Statements: Start Transaction, Commit Work, Rollback Work 4.6Embedded SQL The dual-mode principle is that any SQL statement that can be used interactively can also be embedded in an application program; Its converse is not. Example (See Fig. 4.3)

8 Advanced Database SystemYin-Fu Huang EXEC SQL executable and declarative SQL statements host variables Into clauses declare sections host variable Sqlstate host variables ⇒ appropriate data type host variables and SQL columns ⇒ the same name EXEC SQL Whenever ; ⇒ a directive to the SQL compiler loose coupling

9 Advanced Database SystemYin-Fu Huang 4.6Embedded SQL (Cont.) It is necessary to provide some kind of bridge between the set- level retrieval capacities of SQL and the row-level retrieval capacities of the host. Such is the purpose of cursors. Operations Not Involving Cursors Exam: Singleton Select EXEC SQL Select Status, City Into :Rank, :Town From S Where S#=S#(:Givens#); Exam: Insert EXEC SQL Insert Into P(P#, Pname, Weight) Values (:P#, :Pname, :Pwt); Exam: Delete EXEC SQL Delete From Sp Where :City= (Select City From S Where S.S#=Sp.S#); Exam: Update EXEC SQL Update S Set Status=Status+:Raise Where City=‘London’;

10 Advanced Database SystemYin-Fu Huang 4.6Embedded SQL (Cont.) Operations Involving Cursors  Declare cursor statement EXEC SQL Declare Cursor For [ ];  Open Statement EXEC SQL Open ;  Active set  Fetch Statement EXEC SQL Fetch Into ;  Close Statement EXEC SQL Close ;  Changing the values of host variables ⇒ no effect

11 Advanced Database SystemYin-Fu Huang Current forms of Delete and Update e.g. EXEC SQL Update S Set Status = Status +:Raise Where Current Of X; Example (Fig. 4.4)

12 Advanced Database SystemYin-Fu Huang 4.7Dynamic SQL and SQL/CLI The steps of an online application:  1. Accept a command from the terminal  2. Analyze that command  3. Execute appropriate SQL statements on the database  4. Return a message and/or results to the terminal Dynamic SQL  Dynamic SQL consists of a set of “dynamic statements”---which themselves are compiled ahead of time---whose purpose is precisely to support the compilation and execution of regular SQL statements that are constructed at run time.  Prepare and Execute statements e.g. DCL Sqlsource Char Varying (65000); Sqlsource = ‘Delete From Sp Where Qty < Qty(300)’; EXEC SQL Prepare Sqlprepped From :Sqlsource; EXEC SQL Execute Sqlprepped;

13 Advanced Database SystemYin-Fu Huang 4.7Dynamic SQL and SQL/CLI (Cont.) Call-Level Interfaces  SQL/CLI permits an application written in one of the usual host languages to issue database requests, not via embedded SQL, but rather by invoking certain vendor-provided routines.  Those routines use dynamic SQL to perform the requested database operations on the application’s behalf.  Reasons: 1.SQL/CLI standardizes the details of certain routine invocations. 2.Those applications can be DBMS-independent. e.g.char sqlsource [65000]; strcpy(sqlsource, “Delete From Sp Where Qty < Qty(300)”); rc = SQLExecDirect(hstmt, (SQLCHAR *)sqlsource, SQL_NTS);

14 Advanced Database SystemYin-Fu Huang 4.8 4.8SQL Is Not Perfect There is no product on the market today that supports the relational model in its entirety.

15 Advanced Database SystemYin-Fu Huang The End.


Download ppt "An Introduction to SQL Prof. Yin-Fu Huang CSIE, NYUST Chapter 4."

Similar presentations


Ads by Google