IBM Informix Guide to SQL: Tutorial - IBM Informix Guide to SQL:Tutorial SC27-3522-00. IBM Informix

  • View
    1

  • Download
    0

Embed Size (px)

Text of IBM Informix Guide to SQL: Tutorial - IBM Informix Guide to SQL:Tutorial SC27-3522-00. IBM Informix

  • IBM Informix Version 11.70

    IBM Informix Guide to SQL: Tutorial

    SC27-3522-00

    ����

  • IBM Informix Version 11.70

    IBM Informix Guide to SQL: Tutorial

    SC27-3522-00

    ����

  • Note Before using this information and the product it supports, read the information in “Notices” on page B-1.

    Edition

    This publication contains proprietary information of IBM. It is provided under a license agreement and is protected by copyright law. The information contained in this publication does not include any product warranties, and any statements provided in this publication should not be interpreted as such.

    When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you.

    © Copyright IBM Corporation 1996, 2010. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

  • Contents

    Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix In this introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix About this publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

    Types of users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Software dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Assumptions about your locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Demonstration database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x

    What's new in IBM Informix Guide to SQL: Tutorial, Version 11.70 . . . . . . . . . . . . . . . . . x Example code conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Additional documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Compliance with Industry Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . xii

    Chapter 1. Database concepts . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 Illustration of a data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1

    Store data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Query data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Modify data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4

    Concurrent use and security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Control database use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Centralized management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7

    Important database terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 The relational database model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8 Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8 Rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 Sequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 Operations on tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9 The object-relational model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10

    Structured Query Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11 Standard SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11 Informix SQL and ANSI SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11 Interactive SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 General programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 ANSI-compliant databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 Global Language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12

    Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12

    Chapter 2. Compose SELECT statements . . . . . . . . . . . . . . . . . . . . 2-1 SELECT statement overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1

    Output from SELECT statements . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Some basic concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

    Single-table SELECT statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 The asterisk symbol (*) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 The ORDER BY clause to sort the rows . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 Select specific columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 The WHERE clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16 Create a comparison condition . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17 FIRST clause to select specific rows . . . . . . . . . . . . . . . . . . . . . . . . . . 2-30 Expressions and derived values . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-33 Rowid values in SELECT statements . . . . . . . . . . . . . . . . . . . . . . . . . 2-39

    Multiple-table SELECT statements . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-40 Create a Cartesian product. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-40 Create a join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-41 Some query shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-47

    © Copyright IBM Corp. 1996, 2010 iii

  • Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-50

    Chapter 3. Select data from complex types . . . . . . . . . . . . . . . . . . . . 3-1 Select row-type data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1

    Select columns of a typed table . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Select columns that contain row-type data . . . . . . . . . . . . . . . . . . . . . . . . 3-3

    Select from a collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 Select nested collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 The IN keyword to search for elements in a collection . . . . . . . . . . . . . . . . . . . . 3-8

    Select rows within a table hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 Select rows of the supertable without the ONLY keyword . . . . . . . . . . . . . . . . . . 3-10 Select rows from a supertable with the ONLY keyword . . . . . . . . . . . . . . . . . . . 3-11 An alias for a supertable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11

    Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12

    Chapter 4. Functions in SELECT statements . . . . . . . . . . . . . . . . . . . 4-1 Functions in SELECT statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1

    Aggregate functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 Time functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 Date-conversion functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10 Cardinality function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13 Smart large object functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 String-manipulation functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15 Other functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20

    SPL routines in SELECT statements . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26 Data encryption functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-28

    Using column-level data encryption to secure credit card data . . . . . . . . . . . . . . . . . 4-28 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29

    Chapter 5. Compose advanced SELECT statements . . . . . . . . . . . . . . . . 5-1 The GROUP BY and HAVING clauses . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1

    The GROUP BY clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 The HAVING clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5

    Create advanced joins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 Self-joins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 Outer joins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10

    Subqueries in SELECT statements . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17 Correlated subqueries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Using subqueries to combine SELECT statements . . . . . . . . . . . . . . . . . . . . . 5-18 Subqueries in a Projection clause . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19 Subqueries in the FROM clause . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20 Subqueries in WHERE clauses . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21 Subqueries in DELETE and UPDATE statements . . . . . . . . . . . . . . . . . . . . . 5-27

    Handle collections in SELECT statements . . . . . . . . . . . . . . . . . . . . . . . . . 5-27 Collection subqueries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28 Collection-derived tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-30 ISO-compliant syntax for collection derived tables . . . . . . . . . . . . . . . . . . . . . 5-31

    Set operations . . .