Sql Guide (Quick Study: SQL)
The Fifth Edition of Sams Teach Yourself SQL in 21 Days
More than 48,000 sold!
Â
In just one hour a day, you’ll have all the skills you need to begin creating effective SQL queries, reports, and database applications. With this complete tutorial, you’ll quickly master the basics and then move on to more advanced features and concepts:
Â
Â
Learn on your own time, at your own pace
Â
Ryan Stephens and Ron Plew are President and VP of Perpetual Technologies, Inc. (PTI) in Indianapolis, IN, providing managed services and consulting for top database implementations running Oracle, SQL Server, and other leading technologies. They taught for 5+ years as adjunct professors at Indiana University-Purdue University. Their books include Sams Teach Yourself SQL in 24 Hours, First through Fourth Editions, Sams Teach Yourself SQL in 21 Days, Second through Fourth Editions, and Database Design.
Â
Table of Contents
Â
Introduction  1
Â
PART I: Introducing SQL
Â
LESSON 1: Getting Started with SQLÂ Â Â Â 5
    A Brief History of SQL    5
    A Brief History of Databases    6
    Today’s Database Landscape    11
    A Cross-Product Language    12
        Early Implementations    12
        SQL and Client/Server Application Development    13
   An Overview of SQL    13
   Popular SQL Implementations    14
        MySQL    14
        Oracle    14
        Microsoft SQL Server and Sybase    15
        IBM DB2    16
   Open Database Connectivity    16
   Embedding SQL in Application Programming    17
Â
LESSON 2: Introducing the Query    21
   Exploring SQL’s Background    21
   Learning Basic Query Syntax    22
   The Building Blocks of Data Retrieval: SELECT and FROM    23
   Applying Query Concepts    25
   Writing Your First Query    26
        Terminating a SQL Statement    28
        Selecting Individual Columns    28
        Changing the Order of the Columns    29
        Selecting Different Tables    31
   Selecting Distinct Values    31
        Exercises 37
Â
LESSON 3: Expressions, Conditions, and Operators    39
   Working with Query Expressions    40
   Placing Conditions on Queries    40
   Learning How to Use Operators    42
       Arithmetic Operators    42
       Comparison Operators    55
       Character Operators    63
       Logical Operators    70
       Set Operators    75
       Miscellaneous Operators: IN and BETWEEN    78
Â
LESSON 4: Clauses in SQL Queries    85
   Specifying Criteria with the WHERE Clause    87
   Order from Chaos: The ORDER BY Clause    89
   The GROUP BY Clause    98
   The HAVING Clause    105
   Combining Clauses    112
       Example 4.1    112
       Example 4.2    113
       Example 4.3    113
       Example 4.4    115
Â
LESSON 5: Joining Tables    121
   Joining Multiple Tables in a Single SELECT Statement    121
       Cross Joining Tables    123
       Finding the Correct Column     128
   Joining Tables Based on Equality    129
   Joining Tables Based on Nonequality    137
   OUTER JOINs Versus INNER JOINs    139
   Joining a Table to Itself: The Self Join    143
Â
LESSON 6: Embedding Subqueries into Queries    151
   Building a Subquery    153
   Using Aggregate Functions with Subqueries    160
   Nesting Subqueries    162
   Referencing Outside with Correlated Subqueries    166
   Using EXISTS, ANY, and ALL    169
Â
LESSON 7: Molding Data with Built-in Functions    179
   Using Aggregate Functions to Summarize Data    180
        COUNT    180
        SUM    181
        AVG    182
        MAX    184
        MIN    185
        VARIANCE    186
        STDDEV    186
    Using Functions to Format Date and Time Values    187
        ADD_MONTHS/ADD_DATE    188
        LAST_DAY    190
        MONTHS_BETWEEN    191
        NEXT_DAY    193
        SYSDATE    193
    Using Functions for Arithmetic Operations    195
        ABS    195
        CEIL and FLOOR    196
        EXP 196
        LN and LOG    197
        MOD 198
        POWER    199
        SIGN 199
        SQRT    200
   Using Functions to Modify the Appearance of Character Values    201
        CHR    201
        CONCAT    202
        INITCAP    203
        LOWER and UPPER    203
        LPAD and RPAD    205
        LTRIM and RTRIM    206
        REPLACE    207
        SUBSTR    209
        TRANSLATE    213
        INSTR    214
        LENGTH    214
   Conversion Functions    215
        TO_CHAR    215
        TO_NUMBER    217
   Miscellaneous Functions    217
        GREATEST and LEAST    217
        USER    218
   Supplemental Examples of MySQL Character Functions    219
       LENGTH    219
        LOCATE    219
        INSTR    220
        LPAD    220
        RPAD    220
        LEFT    220
        RIGHT    221
        SUBSTRING    221
        LTRIM    221
        RTRIM    222
        TRIM    222
   Supplemental Examples of MySQL Date Functions    222
        DATE_FORMAT    223
        TIME_FORMAT    224
        CURDATE    224
        CURTIME    225
Â
PART II: Database Design
Â
LESSON 8: Database Normalization    229
   Normalizing a Database    229
        The Raw Database    229
        Logical Database Design    230
        The Needs of the End User    230
        Data Redundancy    231
   Understanding the Normal Forms    231
        The First Normal Form    232
        The Second Normal Form    233
        The Third Normal Form    234
   Making Normalization Work    235
        Referential Integrity    235
   Benefits of Normalization    236
   Drawbacks of Normalization    237
   Denormalizing a Database    237
Â
LESSON 9: Creating and Maintaining Tables    241
   Beginning with the CREATE DATABASE Statement    242
        CREATE DATABASE Options    243
        Database Design    244
        Creating a Data Dictionary (System Catalog)     244
        Creating Key Fields    246
   Defining Tables with the CREATE TABLE Statement    247
        The Table Name    248
        The Field Name    249
        The Field’s Data Type    249
        Table Storage and Sizing    254
        Creating a Table from an Existing Table    255
  Modifying Table Structures with the ALTER TABLE Statement    257
  The DROP TABLE Statement    261
  The DROP DATABASE Statement    262
       Working with DROP TABLE and DROP DATABASE    262
Â
LESSON 10: Controlling Data Integrity    267
   Introducing Constraints    267
       Data Integrity    267
       Why Use Constraints?     268
   Exploring Types of Constraints    269
        NOT NULL Constraints    269
        Primary Key Constraints    271
        Unique Constraints    273
        Foreign Key Constraints    274
        Check Constraints    276
  Managing Constraints    277
        Using the Right Order    278
        Different Approaches to Creating Constraints    279
        Example Oracle Referential Integrity Reports    279
Â
PART III: Data Manipulation
Â
LESSON 11: Manipulating Data    285
   Introducing Data-Manipulation Statements    285
   Entering Data with the INSERT Statement    286
        Entering One Record with the INSERT...VALUES Statement    286
        Inserting NULL Values    289
        Inserting Unique Values    291
        Entering Multiple Records with the INSERT...SELECT Statement    292
  Modifying Existing Data with the UPDATE Statement    295
  Removing Information with the DELETE Statement    298
  Importing and Exporting Data from Foreign Sources    303
        Microsoft Access    303
        Microsoft SQL Server    304
        Oracle    305
        MySQL    305
Â
LESSON 12: Dates and Time in SQLÂ Â Â Â 309
   How Are Date and Time Values Stored?     310
        ANSI Standard Data Types for Date and Time    310
        DATETIME Elements    311
        Implementation of Specific Data Types    311
   Applying Date Functions to the Query    312
        The Current Date    312
        Time Zones    314
        Adding Time to Dates    315
        Subtracting Dates    318
        Comparing Dates and Time Periods    320
        Other Miscellaneous Date Functions    320
  Converting Date Formats    321
        Date Pictures    322
        Converting Dates to Character Strings    324
        Converting Character Strings to Dates    325
Â
LESSON 13: Creating Views    331
   Introducing Views    331
   Using Views    332
        Exploring a Simple View    335
        Renaming Columns    337
        Examining SQL View Processing    338
        Restrictions on Using SELECT    343
        Modifying Data in a View    343
        Problems with Modifying Data Using Views    345
        Common Applications of Views    346
        Removing Views with the DROP VIEW Statement    350
Â
LESSON 14: Controlling Transactions    353
   Transaction Management    354
   The Banking Application    354
   Beginning a Transaction    356
   Finishing a Transaction    358
   Canceling the Transaction    361
   Using Transaction Savepoints    363
Â
PART IV: Database Administration
Â
LESSON 15: Creating Indexes on Tables to Improve Performance    369
   What Are Indexes?     370
         Indexing Tips    378
         Indexing on More Than One Field    379
   Using the UNIQUE Keyword with CREATE INDEX    381
   Indexes and Joins    382
   Using Clustered Indexes    384
Â
LESSON 16: Streamlining SQL Statements for Improved Performance    389
   Making Your SQL Statements Readable    390
   Avoiding the Full-Table Scan    391
   Adding a New Index    393
   Arranging Elements in a Query    393
        Procedures    395
        Avoiding OR    396
   OLAP Versus OLTP    397
        Tuning an OLTP System    397
        Tuning an OLAP System    398
   Batch Loads Versus Transactional Processing    398
   Optimizing Data Loads by Dropping Indexes    400
   COMMIT Statement    401
   Rebuilding Tables and Indexes in a Dynamic Environment    402
   Tuning the Database    405
   Identifying Performance Obstacles    407
   Using Built-in Tuning Tools    409
Â
LESSON 17: Database Security    413
   Security’s Role in Database Administration    413
   Popular Database Products and Security    414
   Oracle Express and MySQL Security    416
        Creating Users    416
        Creating Roles    419
        User Privileges    421
        Using Views for Security Purposes    429
        Using Synonyms in Place of Views    430
        Using Views to Solve Security Problems    431
        Using the WITH GRANT OPTION Clause    433
Â
LESSON 18: Exploring the Data Dictionary (System Catalog)Â Â Â Â Â 437
   An Introduction to the Data Dictionary    437
   Identifying Data Dictionary Users    438
   Exploring the Contents of the Data Dictionary    439
        Oracle’s Data Dictionary    439
        MySQL Data Dictionary    440
   A Look Inside Oracle’s Data Dictionary    440
        User Views    440
        System DBA Views    449
        Dynamic Performance Views    458
   A Look Inside MySQL’s Data Dictionary    459
        Showing Table Commands Within MySQL    460
        Using INFORMATION_SCHEMA    461
Â
PART V: More SQL Objects
Â
LESSON 19: Temporary Tables, Stored Procedures, Triggers, and Cursors    467
   Creating Temporary Tables    468
   Using Cursors    472
        Creating a Cursor    473
        Opening a Cursor    473
        Scrolling a Cursor    473
        Testing a Cursor’s Status    474
        Closing a Cursor    475
        The Scope of Cursors    475
   Creating and Using Stored Procedures    476
        Removing a Stored Procedure    478
   Designing and Using Triggers    479
        Triggers and Transactions    480
        Restrictions on Using Triggers    481
        Nested Triggers    481
   Using Embedded SQL    481
        Static and Dynamic SQL    482
Â
LESSON 20: New Objects in the Latest Standard    487
   Exploring the CREATE ROLE Statement    488
   Creating Triggers    490
   Using the CREATE TYPE Statement    492
   Regular Expressions    497
   Working with BLOB Data Types    498
   A Short XML Example    499
Â
PART VI: Advanced SQL Programming
Â
LESSON 21: Using SQL to Generate SQL Statements    503
   Understanding the Power of SQL Statement Generation    503
   Miscellaneous SQL*Plus Commands    505
        SET ECHO ON/OFF    505
        SET FEEDBACK ON/OFF    506
        SET HEADING ON/OFF    506
        SPOOL FILENAME/OFF    506
   Counting the Rows in All Tables    507
   Granting System Privileges to Multiple Users    511
   Granting Privileges on Your Tables to Another User    513
   Disabling Table Constraints to Load Data    516
   Creating Numerous Synonyms in a Single Bound    517
   Creating Views on Your Tables    520
   Truncating All Tables in a Schema    522
   Using SQL to Generate Shell Scripts    523
   Applying SQL Generation and Other Concepts to the Real World    524
Â
LESSON 22: Creating Complex SQL Queries    529
   CREATE TABLE statements    529
   Examples of Complex Queries    532
        Computing Age from Date of Birth    532
        Breaking a Fraction of a Day into Hours, Minutes, and Seconds    533
        Converting Bytes to Kilobytes to Megabytes    536
        Database Fragmentation Report    536
        Subqueries in DML    537
        Formatting Your Dates    538
        Subquery Involving a Maximum Value    539
        Multiple Subqueries    540
        Using Dashes and Parentheses to Format Numeric Values    541
        Increasing a Numeric Value by a Given Percent    542
        Finding the Next Highest Numeric Value in a Column    542
        Dealing with NULL Values    544
   Tips for Building Complex Queries    546
Â
LESSON 23: Debugging Your SQL Statements    551
   Exploring Common SQL Errors    551
        Table or View that Does Not Exist    552
        Invalid Username or Password    553
        FROM Keyword Not Specified    553
        Group Function Not Allowed    554
        Invalid Column Name    555
        Missing Keyword    556
        Missing Left Parenthesis    556
        Missing Right Parenthesis    557
        Missing Comma    558
        Column Ambiguously Defined    558
        SQL Command Not Properly Ended    559
        Missing Expression    559
        Not Enough Arguments for Function    560
        Not Enough Values    560
        Integrity Constraint Violated–Parent Key Not Found    561
        Oracle Not Available    562
        Inserted Value Too Large for Column    562
        TNS: Listener Could Not Resolve SID Given in Connect Descriptor    563
        Insufficient Privileges During Grants    563
        Escape Character in Your Statement–Invalid Character    564
        Cannot Create Operating System File    564
   Exploring Common Logical Mistakes    564
        Using Reserved Words in Your SQL Statement    564
        The Use of DISTINCT When Selecting Multiple Columns    566
        Dropping an Unqualified Table    566
        The Use of Public Synonyms in a Multischema Database    567
        The Dreaded Cartesian Product    567
        Failure to Enforce Input Standards    568
        Failure to Enforce File System Structure Conventions    568
        Allowing Large Tables to Take Default Storage Parameters    569
        Placing Objects in the System Tablespace    569
        Failure to Compress Large Backup Files    570
        Failure to Budget System Resources    570
   Preventing Problems with Your Data    571
Â
LESSON 24: Embedding SQL in Application Programming    575
   A Quick Trip Through Some Application Development Tools    575
        ODBC    576
        Oracle Express    576
        SQL in Java with JDBC    576
        SQL in .NET with OleDB    577
        Getting Set Up for Oracle    577
   Creating the Database    577
   Using Java and SQL    581
   Using . NET and SQL    583
Â
PART VII: SQL in Various Database Implementations
Â
LESSON 25: Using Oracle SQL*Plus to Satisfy Reporting Needs    587
   An Introduction to SQL*Plus    587
   The SQL*Plus Buffer    588
   Viewing Table Structure with the DESCRIBE Command    593
   Displaying Settings with the SHOW Command    594
   Manipulating Files with File Commands    595
        The SAVE, GET, and EDIT Commands    595
        Starting a File    596
        Spooling Query Output    598
   Customizing the Work Environment with SET Commands    599
   Removing Settings with the CLEAR Command    603
   Formatting Your Output    603
        TTITLE and BTITLE    604
        Formatting Columns (COLUMN, HEADING, FORMAT)     605
   Creating Report and Group Summaries    606
        BREAK ON    607
        COMPUTE    608
   Using Variables in SQL*Plus    610
        Substitution Variables (&)     611
        DEFINE    611
        ACCEPT    612
        NEW_VALUE    614
   Using the DUAL Table    615
   Exploring the DECODE Function    616
   DATE Conversions    619
   Running a Series of SQL Files    622
   Adding Comments to Your SQL Script    623
   Creating Advanced Reports    624
Â
LESSON 26: An Introduction to Oracle PL/SQLÂ Â Â Â 629
   Introducing PL/SQL    629
   The Structure of a PL/SQL Block    630
        The DECLARE Section    632
        The PROCEDURE Section    635
        The EXCEPTION Section    640
   Transactional Control in PL/SQL    644
   Putting Everything Together    644
        Sample Tables and Data    645
        A Simple PL/SQL Block    646
        A More Extended Example of a PL/SQL Block    648
   Using Stored Procedures, Packages, and Triggers    652
        Sample Procedure    653
        Sample Package    654
        Sample Trigger    654
Â
LESSON 27: An Introduction to Transact-SQLÂ Â Â Â 661
    An Overview of Transact-SQL    661
    Extensions to ANSI QL    662
        Who Uses Transact-SQL?     662
        The Basic Components of Transact-SQL    662
    Data Types    663
        Character Strings    663
        Numeric Data Types    663
        Date Data Types    664
        Money Data Types    664
        Binary Strings    664
        bit: A Logical Data Type    665
   Accessing the Database with Transact-SQL    665
        The BASEBALL Database    665
        Declaring Local Variables    668
        Declaring Global Variables    668
        Using Variables    670
        The PRINT Command    671
   Establishing Flow Control    672
        BEGIN and END Statements    672
        IF ...ELSE Statements    673
        The EXISTS Condition    675
        Testing a Query’s Result    675
        The WHILE Loop    676
        The BREAK Command    677
        The CONTINUE Command    677
        Using the WHILE Loop to Scroll Through a Table    678
   Using Transact-SQL Wildcard Operators    679
   Date Conversions    680
   SQL Server Diagnostic Tools–SET Commands    681
Â
LESSON 28: Using MySQL on a UNIX-based System    685
   MySQL Administration    686
        Installing MySQL    686
        Starting and Stopping MySQL    687
        Initial MySQL Privileges    688
   The MySQL Terminal Monitor    688
        Connecting to the Database    689
        Command-Line Options    689
        Entering MySQL Monitor Commands    690
        Command-Line History    692
        Batch Mode    692
        SHOW    693
   MySQL Utilities    694
        Exercises    695
Â
PART VIII: Appendices
Â
APPENDIX A: Answers    697
APPENDIX B: Code Examples to Create Tables    731
APPENDIX C: Code Examples to Populate Tables    743
APPENDIX D: Using MySQL for Exercises    763
Index    767
Â
Online Appendixes
APPENDIX E: Glossary of Common SQL Commands PDF:1
APPENDIX F: Glossary of Common SQL Functions PDF:7
Â
Country | USA |
Binding | Paperback |
Brand | Sams Publishing |
EAN | 9780672330254 |
Edition | 5 |
Feature | Used Book in Good Condition |
ISBN | 0672330253 |
Label | Sams Publishing |
Manufacturer | Sams Publishing |
MPN | ill |
NumberOfItems | 1 |
NumberOfPages | 840 |
PartNumber | ill |
PublicationDate | 2009-06-08 |
Publisher | Sams Publishing |
Studio | Sams Publishing |
ReleaseDate | 0000-00-00 |