SlideShare a Scribd company logo
1 of 106
Download to read offline
Orange Coast Database Associates Course                                       (800)355-9855 or http://www.d2associates.com



                           SQL201W Accelerated Introduction
                           to SQL Using MySQL




                  Orange Coast
                Database Associates




                             Specializing in Microsoft Office,
                           Access, SQL, and related technologies
                              Classes custom designed for Working Professionals
                                                http://www.d2associates.com
                                                  San Juan Capistrano, CA
                                                      (800)355-9855




Accelerated Computer Training for Working Professionals                                                     Bookstore Case
Welcome to SQL201W –
     Accelerated Introduction to
         SQL Using MySQL
    An accelerated introduction to SQL for non-
    programmers



     P.O. Box 6142
     Laguna Niguel, CA 92607
     949-489-1472
     http://www.d2associates.com

Bookstore                            SQL201W       1




    Accelerated Introduction to
               SQL
 • Introduction (s)
 • Facilities
 • Course Packet (contents may vary)
       –    Student questionnaire
       –    Collaterals (Maps, Catalogs, Etc.)
       –    PowerPoint handouts for all sessions
       –    Evaluation form
       –    Training certificate




Bookstore                           SQL201W        2




                                                       1
SQL Curriculum

     SQL201W       SQL202            SQL212
      MySQL      Transact-SQL         Oracle




                  SQL200*       * = included in
                                above courses
                SQL200S*



Bookstore             SQL201W                     3




 Accelerated Introduction to SQL
•   Assumes no prior knowledge of SQL
•   Quick pace for experienced computer users
•   End-user, not programmer, oriented
•   Focus is on SQL, not Management Studio
•   SQL200s is first two modules of SQL200,
    otherwise identical.


Bookstore             SQL201W                     4




                                                      2
Accelerated Introduction to
              SQL
  SQL Covered (Day 1: All Day):
                • Select
                  –   Basic
                  –   Filters
                  –   Special Operators
                  –   Multi-table retrieval
                       • Joins
                       • Subqueries
                       • Unions
                  – Calculations and
                    Aggregates

Bookstore                    SQL201W          5




   Accelerated Introduction to
              SQL
  SQL Covered (Day 2: AM Only):
            • Data Updates
              – Insert
              – Update
              – Delete

            • Data structures
              – Create
              – Drop
              – Alter

Bookstore                    SQL201W          6




                                                  3
Accelerated Introduction to
                SQL
    Course Format:

     •      3 Sessions
     •      Lecture
     •      Demo
     •      Student “hands-on”
     •      Many exercises are cumulative –
            later examples build on queries
            created earlier

Bookstore                  SQL201W            7




   Accelerated Introduction to
              SQL
   Course Schedule (“1/2” day sessions):

            • Session 1 – Basic SQL
            • Session 2 – Multi-table
              Retrieval
            • Session 3 – Modifying Data



Bookstore                  SQL201W            8




                                                  4
SQL201W




                       SQL Programming
               Based on SQL Clearly Explained by Jan Harrington



            Module 1 – Relational Database Background,
              Basic Single Table Retrieval Operations

Bookstore                    SQL201W Module 1                     1




            Note on SQL200 Slides
    • These slides were originally designed to support the
      single SQL200 course which was used for any of
      MS Access, MySQL, Oracle and SQL Server.
    • As such you may see here slides developed in any
      one of the above products.
    • We are in the process of migrating the various
      vendor slides out into their own slide sets. The
      SQL200 slides will cover MySQL and SQL Server
      which are virtually identical for purposes of this
      course.

Bookstore                    SQL201W Module 1                     2




                                                                      1
Warning!
• Below are some table name changes to be
  aware of in doing queries. We have created
  synonyms so either name should work.

            New Name                             Old Name
            Orders                               Order_filled
            Order_Lines                          Orderlines


Bookstore                              SQL201W Module 1         3




      SQL200 Contact Information



              P.O. Box 6142
              Laguna Niguel, CA 92607
              949-489-1472
              http://www.d2associates.com
              slides.1@dhdursoassociates.com
              Copyright 2001-2011. All rights reserved.


Bookstore                              SQL201W Module 1         4




                                                                    2
SQL200 Resources
• Bookstore database scripts found on
  box.net at
      http://tinyurl.com/SQLScripts
• Slides can be viewed on SlideShare…
      http://www.slideshare.net/OCDatabases
• Follow up questions?
      sql.support@dhdursoassociates.com

Bookstore              SQL201W Module 1         5




             SQL Programming
• Course focus is SQL language
• Widely used for:
      – Database administration
      – Enterprise application development
      – Data driven web sites
• A foundation skill for eBusiness and
  almost all major business applications that
  use relational databases

Bookstore              SQL201W Module 1         6




                                                    3
SQL Programming
• A basic knowledge of query systems,
  perhaps via MS Access, or some
  programming knowledge, is desirable
• We will use GUI tools or SQL Plus almost
  exclusively




Bookstore        SQL201W Module 1            7




    Relational Database Evolution
• Based on Codd’s paper
• Early commercial efforts focused on Unix
• First mainframe implementation by IBM -
  precursor to today’s DB2
• First PC implementation in early 80’s by
  Oracle


Bookstore        SQL201W Module 1            8




                                                 4
Relational Database Basics
•   Storage                       •   Indexes
•   Databases                     •   Views
•   Tables                        •   Cursors
•   Rows                          •   Application interfaces
•   Columns




Bookstore               SQL201W Module 1                       9




      Relational Database Table




Bookstore               SQL201W Module 1                   10




                                                                   5
Constraints
• Database                        • Other Business Rule
      – Domain                         – Triggers
      – Uniqueness                     – Stored Procedures
      – Relationship
        Cardinality
            • 1 to 1
            • 1 to N




Bookstore                SQL201W Module 1                    11




        Relational Database with constraints




Bookstore                SQL201W Module 1                    12




                                                                  6
Database Management Systems

                    Positioning Chart


    Cost                          VLDB
                           Enterprise
                       Workgroup
                  Single user
            Spreadsheet
                                    # Users
Bookstore               SQL201W Module 1               13




             System Architecture

 File Server
 Architecture
                                              Access
                                              MDB



                      Access



Bookstore               SQL201W Module 1               14




                                                            7
System Architecture

 Client/Server
 Architecture
                                               MySQL
            SQL                              DB



             Visual                         Access
             Basic App


Bookstore                SQL201W Module 1              15




            System Architecture

 Web
 Architecture
                         Web                   MySQL
                         Server                DB


                                            SQL
            Browser



Bookstore                SQL201W Module 1              16




                                                            8
Approaching SQL
• Relatively simple
• Two main environments
      – Interactive (This course)
      – Embedded
             • Static (Compiled)
             • Dynamic




Bookstore                    SQL201W Module 1   17




                SQL Standardization
ANSI standardization
      –     First standard in 1986
      –     SQL 89
      –     SQL 92
      –     SQL 99
• Various vendor extensions
      – Microsoft/Sybase: T-SQL
      – Oracle: PL/SQL

Bookstore                    SQL201W Module 1   18




                                                     9
SQL Conformance
•   Entry
•   Intermediate
•   Advanced
•   Most are at least entry level




Bookstore           SQL201W Module 1          19




              SQL Statements

• Data Manipulation Language (DML)
• Data Control Language (DCL)
• Data Definition Language (DDL)

• Note: SQL 99 changes these to seven types




Bookstore           SQL201W Module 1          20




                                                   10
SQL DDL
• Data definition language (DDL)

      – Create, alter, drop, etc.
      – Frequently implemented via various CASE
        tools: Visio, Embarcadero, ERWin, etc.
      – But very useful for database administration



Bookstore                  SQL201W Module 1           21




                          SQL DCL
• Data Control Language (DDL)

      –     Grant
      –     Revoke
      –     Deny
      –     Constraints



Bookstore                  SQL201W Module 1           22




                                                           11
SQL DML
• Data Manipulation Language (DML)
      –     Select
      –     Insert
      –     Update
      –     Delete




Bookstore             SQL201W Module 1   23




            SQL Statement Processing

                         Parse

                        Validate

                       Optimize

                      Access Plan

                        Execute

Bookstore             SQL201W Module 1   24




                                              12
Bookstore Sample Database



• Before we continue (note: instructor may have
  already done this)…
• Load the sample database if you haven’t already
     – Start the MySQL Control center
     – Load and run the MySQL
       “builddb_bookstore_mysql.sql” script


Bookstore                SQL201W Module 1           25




               Text Conventions
• In Access character strings are normally
  surrounded by double quotes
      – “Jones”
• In an enterprise database such as Oracle or
  MySQL enclose text strings in single
  quotes
      – ‘Jones’

Bookstore                SQL201W Module 1           26




                                                         13
Date Conventions
• In an enterprise database such as Oracle or
  SQL Sever, enclose dates in single quotes
      – ‘2004-12-23’ MySQL
      – ’12-23-2004’ SQL Server
      – ’23-DEC-04’ Oracle




Bookstore            SQL201W Module 1           27




             Listing the Tables




Bookstore            SQL201W Module 1           28




                                                     14
Describing a Table




Bookstore           SQL201W Module 1   29




            Select statement clauses
       SELECT…
       INTO…
       FROM…
       WHERE…
       GROUP BY…
       HAVING…
       ORDER BY…
Bookstore           SQL201W Module 1   30




                                            15
SELECT

             Basic Syntax (Projection):
             Select <column-list> or <*>
             From <table-list>




Bookstore                SQL201W Module 1   31




                       SELECT

            Basic Example (Projection):
            select
                customer_last_name,
                customer_street
            from customers


Bookstore                SQL201W Module 1   32




                                                 16
MySQL Select Query




Bookstore          SQL201W Module 1         33




      SELECT with Where Clause

   Example (Restriction plus Projection):
   Select <column-list> or *
   From <table-list>
   Where <selection-criteria>;


Bookstore          SQL201W Module 1         34




                                                 17
Comparison Operators
•    < less than
•    > greater than
•    <= less than or equal to
•    >= greater than or equal to
•    = equal to
•    <> or != two forms for not equal

Bookstore           SQL201W Module 1    35




            SELECT with Where
    Basic Example (Restriction plus
    Projection):
    select customer_last_name,
        customer_street
    from customers
    where customer_last_name =
    ‘Jones’
Bookstore           SQL201W Module 1    36




                                             18
Select with Where




Bookstore        SQL201W Module 1    37




             On Your Own
• Find books written by Mark Twain
• Show title, publisher, year




Bookstore        SQL201W Module 1    38




                                          19
Complex Predicates
  Follow normal boolean logic
  Select  customer_last_name,
      customer_street
  From customers
  Where (customer_last_name =
  ‘Jones’ or customer_last_name =
  ‘Smith’)and customer_state=‘NY’

Bookstore        SQL201W Module 1   39




       Select with Complex Where




Bookstore        SQL201W Module 1   40




                                         20
Complex Where Result




Bookstore          SQL201W Module 1   41




              Special Operators
•   Can be used in where clause
•   LIKE
•   IN
•   BETWEEN
•   IS NULL



Bookstore          SQL201W Module 1   42




                                           21
Like (“Wild Card Matches”)
• ANSI wildcards
• Where
  customer_last_name
  like ‘Jo%’
  like ‘Jo_’




Bookstore                 SQL201W Module 1           43




                              IN


  Select *
  From customers
  Where customer_last_name in
  (‘Rizzo’, ‘Jones’, ‘Garcia’);

      The list in parentheses can be replaced by a
      subquery. We will study this later.
Bookstore                 SQL201W Module 1           44




                                                          22
Select Like




Bookstore        SQL201W Module 1   45




        SQL Where Clause with IN




Bookstore        SQL201W Module 1   46




                                         23
IS NULL
   SQL uses three valued logic. Must use IS NULL
   to test for unknowns. A null is NOT the same as
   blank or empty.

  Select *
  From customers
  Where customer_street IS
  NULL;

Bookstore            SQL201W Module 1                47




             IS NULL Results




Bookstore            SQL201W Module 1                48




                                                          24
On Your Own
• Find all customers with an address not equal to
  4592 Maple Lane
• Was Peter Johnson selected?
• Why or why not?




Bookstore                SQL201W Module 1               49




                     BETWEEN
  List all orders placed in 1999.

  select *
  from orders
  where order_date BETWEEN ‘1-
  Jan-99’ and ’31-Dec-99’;

     Note: date formats vary from product to product.

Bookstore                SQL201W Module 1               50




                                                             25
Where with Between




Bookstore                 SQL201W Module 1       51




             Removing Duplicates
       List once each city in which there are
       customers

            Select DISTINCT
            customer_city
            From customers;
        Removes duplicate rows from result set
Bookstore                 SQL201W Module 1       52




                                                      26
Removing Duplicates




Bookstore               SQL201W Module 1    53




            Sorting – ORDER BY
    Basic syntax:

            Select <column list> or *
            From <table list>
            Where <selection criteria>
            Order by <column list> [DESC]

      DESC will sort in descending order

Bookstore               SQL201W Module 1    54




                                                 27
Sorting – ORDER BY
       List all records sorted by state, city

       select *
       from customers
       order by customer_state,
       customer_city



Bookstore              SQL201W Module 1         55




    Sorting Results with Order By




Bookstore              SQL201W Module 1         56




                                                     28
SQL Exercises
  • List all books whose publisher name begins
    with “H” or “T”; sort by title [hint: use LIKE]
  • List all customers whose last name ends with
    “S”; sort by state, city, last name
  • Find the order numbers of orders with order
    dates in 1999; sort by order #. [Hint: use
    BETWEEN]
  • Find the order numbers and order dates of all
    orders with a “2” in character position 2 of the
    credit card #; sort by order date descending
Bookstore             SQL201W Module 1   [end module]   57




                      Notes




Bookstore             SQL201W Module 1                  58




                                                             29
Notes




Bookstore   SQL201W Module 1   59




            Notes




Bookstore   SQL201W Module 1   60




                                    30
SQL201W




                     SQL Programming
            Based on SQL Clearly Explained by Jan Harrington


       Workshop 2 – Joins, Calculations and Grouping


Bookstore                     SQL201W Module 2                 1




            Note on SQL200 Slides
• These slides were originally designed to support the
  single SQL200 course which was used for any of MS
  Access, MySQL, Oracle and SQL Server.
• As such you may see here slides developed in any one of
  the above products.
• We are in the process of migrating the various vendor
  slides out into their own slide sets. The SQL200 slides
  will cover MySQL and SQL Server which are virtually
  identical for purposes of this course.


Bookstore                    SQL201W Module 2                  2




                                                                   1
Warning!
• Below are some table name changes to be
  aware of in doing queries. We have created
  synonyms so either name should work.

            New Name                             Old Name
            Orders                               Order_filled
            Order_Lines                          Orderlines


Bookstore                             SQL201W Module 2          3




      SQL200 Contact Information



              P.O. Box 6142
              Laguna Niguel, CA 92607
              949-489-1472
              http://www.d2associates.com
              slides.1@dhdursoassociates.com
              Copyright 2001-20011 All rights reserved.


Bookstore                             SQL201W Module 2          4




                                                                    2
SQL200 Resources
• Bookstore database scripts found on
  box.net at
      http://tinyurl.com/SQLScripts
• Slides can be viewed on SlideShare…
      http://www.slideshare.net/OCDatabases
• Follow up questions?
      sql.support@dhdursoassociates.com

Bookstore              SQL201W Module 2       5




                   SQL201W

                 SQL Programming

                     Part 1 – Joins


Bookstore              SQL201W Module 2       6




                                                  3
Relational Database with constraints (from text)




Bookstore                 SQL201W Module 2                 7




                More conventions
• Alias names can be surrounded with “ “ as
  in “order details”. Better practice is to use
  an underscore as in order_details.
• MS Access uses [ ] instead. Some of the
  PowerPoint slides may have this
  convention. It works equally as well in
  SQL Server but not MySQL.

Bookstore                 SQL201W Module 2                 8




                                                               4
Joins
• Inner
• Outer
      – Left
      – Right
      – Full
•   Cross
•   Self
•   Theta
•   We will cover the most important; others as time
    and interest permit
Bookstore             SQL201W Module 2                 9




Bookstore             SQL201W Module 2                 10




                                                            5
Inner Join
• Pairs each row from first table with
  corresponding row from second table over
  the “join column”
• The result set only contains rows where
  there is a match over the join column in
  both tables
• Equi-join is the common inner join

Bookstore                 SQL201W Module 2   11




                        Inner Join

            Older Syntax:
             Select <column-list>
             From <tablelist>
             Where <predicate>
            Still very commonly used


Bookstore                 SQL201W Module 2   12




                                                  6
Inner Join

            Example using older syntax:
            SELECT customer_first_name,
            customer_street, order_numb,
            order_date
            from customers, orders
            Where customers.customer_numb =
            orders.customer_numb



Bookstore               SQL201W Module 2      13




              Inner Join with Result




Bookstore               SQL201W Module 2      14




                                                   7
Inner Join (New Syntax)

            Basic SQL 92 Syntax:
            Select <column-list>
            From <table1>
            Inner join <table2>
            On <join condition>

Bookstore                SQL201W Module 2   15




                       Inner Join

            Basic Example:
            SELECT customer_first_name,
            customer_street, order_numb,
            order_date
            from customers
            inner join orders
            on customers.customer_numb =
            orders.customer_numb

Bookstore                SQL201W Module 2   16




                                                 8
Inner Join with Result




Bookstore          SQL201W Module 2             17




 Inner Join over Multiple columns

• Note that that the join condition can apply
  to multiple columns if desired
• Used with composite keys




Bookstore          SQL201W Module 2             18




                                                     9
Inner Join Result in MS Access




Bookstore               SQL201W Module 2               19




                     Inner Join

• In the last example…
      – What was the cardinality of the relationship
        between customers and orders?
      – Which table was the parent?
      – What was it’s primary key?
      – In which table did we employ a foreign key
        and what was it?


Bookstore               SQL201W Module 2               20




                                                            10
Cross Join
• What happens when you omit a join
  expression?
• Get the cartesian product of the tables – all
  possible combinations of the two tables
• For large tables this will run a long time!



Bookstore          SQL201W Module 2               21




            Cross Join Result Set




Bookstore          SQL201W Module 2               22




                                                       11
Additional SQL92 Syntax
• Table1 natural join table3 – automatically
  uses columns with same name
• Table 1 natural join table2 using(<column-
  list>
• Not yet widely available in commercial
  implementations


Bookstore           SQL201W Module 2           23




    Joining More than Two Tables
• Can join several tables in one select
• Try to limit to three or four
• Join order can be important for
  performance (although optimizers will
  usually handle this for you)
• Use parentheses to force order of
  evaluation (also vendor extensions, often
  called “hints”)

Bookstore           SQL201W Module 2           24




                                                    12
Joining More than Two Tables
• Add orderlines detail to previous queries
  SELECT customer_first_name, customer_street,
  orders.order_numb, orders.order_date,
  orderlines.isbn, orderlines.quantity
  FROM customers
  INNER JOIN orders ON
  customers.customer_numb=orders.customer_numb
  INNER JOIN orderlines
  on orders.order_numb = orderlines.order_numb

Bookstore           SQL201W Module 2             25




      Multi-table Join with Results




Bookstore           SQL201W Module 2             26




                                                      13
On Your Own
• Add the book title to the previous query
  results
• Hint: add another join to books table




Bookstore              SQL201W Module 2      27




  Correlation Names (Table Aliases)

• Can abbreviate references to tables
• For example:
      Select e.name, j.payrange
      From employees as e
      Inner join job_information as j
      On e.jobcode = j.jobcode;



Bookstore              SQL201W Module 2      28




                                                  14
Self Joins
• Implements a recursive relationship
• Important in various applications
      –     Parts lists/assemblies
      –     HR
      –     Etc.
      –     Table joined to itself using correlation names



Bookstore                  SQL201W Module 2                  29




                         Self Joins

               SELECT e.*, m.name
               FROM employees AS e, employees
               AS m
               WHERE e.managerid =
               m.employeeid;




Bookstore                  SQL201W Module 2                  30




                                                                  15
Bookstore                 SQL201W Module 2                31




                     Outer Joins
• Left – selects all rows from the left or first table,
  even if no match exists in the other table
      – Widely used in commercial practice
      – Especially useful for reporting
      – Can be slower and interfere with optimizer
• Right – same idea but all rows from right table
• Full – all rows form both tables


Bookstore                 SQL201W Module 2                32




                                                               16
Left Outer Join

            Basic SQL 92 Syntax:
            Select <column-list>
            From <table1>
            Left join <table2>
            On <join condition>

Bookstore                SQL201W Module 2   33




                       Left-Join

            Basic Example:
            SELECT customer_first_name,
            customer_street, order_numb,
            order_date
            from customers as c
            left join orders as o
            on c.customer_numb =
            o.customer_numb

Bookstore                SQL201W Module 2   34




                                                 17
Left Join with Results




Bookstore          SQL201W Module 2             35




               On Your Own
• List all books and corresponding quantities
  sold
• Show isbn, title, quantity
• How many books were there?
• Now do the same but include books with
  no sales
• Now how many?

Bookstore          SQL201W Module 2             36




                                                     18
SQL200

                     SQL Programming

            Part 2– Subqueries, Unions (Not available in
                     earlier versions of MySQL)
Bookstore                    SQL201W Module 2              37




                        Subqueries
• One select statement embedded in another
• Can be nested multiple levels deep
• Can be used in select, from and where
  clauses
• Two types:
      – Uncorrelated – executes inner query then outer
      – Correlated – executes inner query once for
        each outer query row

Bookstore                   SQL201W Module 2               38




                                                                19
Uncorrelated Subquery

            select isbn, quantity
            from orderlines
            where order_numb in
            (select order_numb from
            orders where order_date
            between ‘1/1/99’ and
            ‘12/31/99’);
Bookstore             SQL201W Module 2   39




 Uncorrelated Subquery with Results




Bookstore             SQL201W Module 2   40




                                              20
Negative Subquery
• A type of subquery that matches “not
  found” conditions




Bookstore             SQL201W Module 2   41




                Negative Subquery

            select isbn, quantity
            from orderlines
            where order_numb not in
            (select order_numb from
            orders where order_date
            between ‘1/1/99’ and
            ‘12/31/99’);
Bookstore             SQL201W Module 2   42




                                              21
Negative Subquery with Results




Bookstore           SQL201W Module 2                 43




 Correlated Subquery with Exists
• Inner subquery executed once for each outer row
• Exists will return true or false depending on
  whether the result will have any rows or not
• Can be a quick way to test for existence of
  records (parent records, say) as used in
  application enforcement of referential integrity




Bookstore           SQL201W Module 2                 44




                                                          22
Correlated subquery with Exists
            SELECT isbn, quantity
            FROM orderlines AS ol
            WHERE exists
            (select * from orders o where
            ol.order_numb = o.order_numb
             and o.order_date between ‘1/1/99’
            and ‘12/31/99’);

    This type of query covered in intermediate SQL class
Bookstore                 SQL201W Module 2                 45




                          Unions
• Combines two or more tables
• Tables must be union compatible




Bookstore                 SQL201W Module 2                 46




                                                                23
Unions

      Select <column-list> from
      <table1>
      Union [ALL]
      Select <same-columns> from
      <table2>



Bookstore              SQL201W Module 2   47




                    Unions

            select *
            from employees
            union all
            select *
            from employees_copy


Bookstore              SQL201W Module 2   48




                                               24
Results of Union query




Bookstore                SQL201W Module 2         49




                       SQL200

                   SQL Programming

              Part 3 – Calculations, Aggregates


Bookstore                 SQL201W Module 2        50




                                                       25
Calculated Fields
• Can add a column calculated from others


            SELECT order_numb, quantity,
            cost_each,
            quantity*cost_each as
            extension
            FROM orderlines

Bookstore             SQL201W Module 2      51




                Calculated Fields
• Can rename the new column, too


            SELECT order_numb, quantity,
            cost_each,
            quantity*cost_each as
            extension
            FROM Orderlines

Bookstore             SQL201W Module 2      52




                                                 26
Calculated field w/ Given Name




Bookstore        SQL201W Module 2      53




      Calculated field in the Result




Bookstore        SQL201W Module 2      54




                                            27
On Your Own
• Calculate the total sales for the books in
  earlier query
• Show isbn, titles, quantity, cost_each and
  extension




Bookstore          SQL201W Module 2            55




            String Manipulation
•   Concatenation
•   Trim
•   Substring
•   Upper, Lower
•   Etc. (various vendor extensions)



Bookstore          SQL201W Module 2            56




                                                    28
Concatenation
• Used for concatenated keys
• Useful to format reports

            Basic syntax:

             (Access) Field1 & Field2
             (Oracle, std) Field1 || Field2
             (Sql Server) Field1 + Field2
             (MySQL) Concat(field1, field2)
Bookstore               SQL201W Module 2      57




                  Concatenation

     select
     concat(customer_first_name
     ,’ ‘,customer_last_name)
     as Name
     from customers


Bookstore               SQL201W Module 2      58




                                                   29
Concatenation




Bookstore            SQL201W Module 2   59




        Pretty up the concatenation
• Use trim
  functions, add a
  space
• Sort by last
  name – a neat
  trick for
  reporting!




Bookstore            SQL201W Module 2   60




                                             30
Date Functions
• Numerous date functions
• Often vendor specific
• Often used:
      – year
      – month
• Ex: where year(order_date) = 1999



Bookstore          SQL201W Module 2          61




                Date Functions
• Remember your three table query with the
  order dates?
• Restrict it to orders in December




Bookstore          SQL201W Module 2          62




                                                  31
Aggregate Functions
•   Count
•   Sum
•   Min
•   Max
•   Avg
•   Often used in conjunction with grouping

Bookstore                  SQL201W Module 2          63




              Aggregate Functions

            Basic syntax:

            Select <function>(<column>)
            From <table>
            Group by <column-list>
            Having <predicate>

            Group by all columns to left of one(s)
            you want to aggregate
Bookstore                  SQL201W Module 2          64




                                                          32
Aggregate Functions
     SELECT order_numb, Count(*) AS
     [Number of Order Lines] ,
     Sum(quantity) AS [Total Quantity],
     Sum(quantity * cost_each) AS [Total
     Amount]
     FROM order_lines
     GROUP BY order_numb
     having count(*)      > 1;



Bookstore            SQL201W Module 2      65




            Aggregates with Group By




Bookstore            SQL201W Module 2      66




                                                33
Having Clause
    SELECT Order_lines.order_numb,
    Count(*) AS ‘Number of Order Lines ‘,
    Sum(Order_lines.quantity) AS
    Total_Quantity,
    Sum(quantity*cost_each) AS extension
    FROM Order_lines
    GROUP BY Order_lines.order_numb
    having count(*)    > 1


Bookstore          SQL201W Module 2         67




            Group By with Having




Bookstore          SQL201W Module 2         68




                                                 34
Having vs. Where
• Having and Where clauses are similar but
  not the same
• Having removes groups after they are
  formed
• Where removes rows before groups are
  formed


Bookstore        SQL201W Module 2            69




             On Your Own
• Find the aggregates without any grouping –
  see what you get
• Then restrict the ISBN




Bookstore        SQL201W Module 2            70




                                                  35
Summary Exercise
• List all customers and their orders
      – Name nicely formatted
      – With orders in the year of 1999 (do not use
        between, etc.)
      – Show total order quantities and amounts
      – Only include orders with more than three
        order lines


Bookstore              SQL201W Module 2                  71




                Exercise Result




                                          [end module]
Bookstore              SQL201W Module 2                  72




                                                              36
SQL/200




                        SQL Programming
               Based on SQL Clearly Explained by Jan Harrington


            Workshop 3 – Modifying Data, Managing the
                           Database
Bookstore                        SQL201W Module 3                 1




             Note on SQL200 Slides
    • These slides were originally designed to support the
      single SQL200 course which was used for any of
      MS Access, Oracle and SQL Server.
    • As such you may see here slides developed in any
      one of the above products.
    • We are in the process of migrating the various
      vendor slides out into their own slide sets. These
      SQL200 slides will focus on Microsoft SQL Server
      and MySQL which are virtually identical for
      purposes of this course.

Bookstore                       SQL201W Module 3                  2




                                                                      1
Warning!
• Below are some table name changes to be
  aware of in doing queries. We have created
  synonyms so either name should work.

            New Name                             Old Name
            Orders                               Order_filled
            Order_Lines                          Orderlines


Bookstore                              SQL201W Module 3         3




      SQL200 Contact Information



              P.O. Box 6142
              Laguna Niguel, CA 92607
              949-489-1472
              http://www.d2associates.com
              slides.1@dhdursoassociates.com
              Copyright 2001-2011. All rights reserved.


Bookstore                              SQL201W Module 3         4




                                                                    2
SQL200 Resources
• Bookstore database scripts found on
  box.net at
      http://tinyurl.com/SQLScripts
• Slides can be viewed on SlideShare…
      http://www.slideshare.net/OCDatabases
• Follow up questions?
      sql.support@dhdursoassociates.com

Bookstore              SQL201W Module 3       5




            SQL201W Module 3
•   Part 1 – Modifying Data
•   Part 2 – Managing Database Structures
•   Part 3 – Creating Views and Indexes
•   Part 4 -- Security




Bookstore              SQL201W Module 3       6




                                                  3
SQL/201W

                   SQL Programming

                   Part 1 – Modifying Data


Bookstore                 SQL201W Module 3                 7




        Relational Database with constraints (from text)




Bookstore                 SQL201W Module 3                 8




                                                               4
Data Modification Statements

                  • Insert

                  • Update

                  • Delete


Bookstore                 SQL201W Module 3        9




     Data Modification Statements

            • End-user rarely sees these
              statements

            • Application developer prepares
              these statements “behind the
              scenes” based on forms filled out
              by user



Bookstore                 SQL201W Module 3        10




                                                       5
Insert
• Adds new rows to an existing table
• Two forms:
      – Single Row
      – Multi-Row




Bookstore                SQL201W Module 3   11




                Single Row Insert


            Basic Syntax:
            Insert [into] <table-name>
            Values (<value-list>)




Bookstore                SQL201W Module 3   12




                                                 6
Single Row Insert

            Basic Example:
            insert into sources(source_numb,
            source_name, source_street)
            values(22,'Specialty Books',
            'Canal Street')




Bookstore               SQL201W Module 3       13




                  Insert Statement




Bookstore               SQL201W Module 3       14




                                                    7
Sources table after Insert




Bookstore                SQL201W Module 3          15




                 Multi-row Insert
            Basic Syntax:


            Insert [into] <table-name>
            Select <select-statement>


            We will do this after creating a new
            table later in this module
Bookstore                SQL201W Module 3          16




                                                        8
Update
• Updates fields in an existing row

   Basic Syntax:
   Update <table-name>
   Set <field1> = new value, <field2> = new
   value,…
   Where <selection-criteria>
Bookstore            SQL201W Module 3         17




                     Update
• Increase Ingram prices by 10%

   Example:
   Update books
   Set retail_price = retail_price
   *1.10
   Where source_numb = 1
Bookstore            SQL201W Module 3         18




                                                   9
Ingram Book Prices before Update




Bookstore     SQL201W Module 3       19




 Ingram Book Prices after Update




Bookstore     SQL201W Module 3       20




                                          10
After update in MS Access




Bookstore                   SQL201W Module 3   21




                            Delete
• Deletes one or more rows

            Basic Syntax:


            Delete from <table-name>
            Where <selection-criteria>


Bookstore                   SQL201W Module 3   22




                                                    11
Delete

            Example:


            Delete from sources
            Where source_numb = 22


Bookstore                SQL201W Module 3   23




                         Delete




Bookstore                SQL201W Module 3   24




                                                 12
Sources table after Delete




Bookstore                     SQL201W Module 3            25




  Delete and Referential Integrity
• Can affect referential integrity when deleting a
  “parent” row
• Can do following with child…
      –     Cascade: delete the child row
      –     Set null: set the child’s foreign key null
      –     Set default: as above but to default value
      –     No action: don’t allow delete of parent row
• Referential integrity can be established when
  creating or modifying table structures which we
  will look at later in the class

Bookstore                     SQL201W Module 3            26




                                                               13
SQL/200

                  SQL Programming

            Part 2– Managing Database Structures


Bookstore                SQL201W Module 3          27




                          DDL
• Create
• Alter
• Drop




Bookstore                SQL201W Module 3          28




                                                        14
Schemas
• Logical view of a database; sort of a “sub-
  database” – we will not cover these in this
  module or…
      – Catalogs
      – Clusters
      – Domains (somewhat like a user defined datatype)
• These topics are highly dependent upon the
  vendor DBMS and installation practices


Bookstore                SQL201W Module 3                 29




                         Tables

            • Base tables
            • Temporary tables
              – Local (or module scope)
              – Global (session scope)




Bookstore                SQL201W Module 3                 30




                                                               15
Creating Tables
• Use create statement
• Specify:
      – Columns with data types and column
        constraints
      – Table constraints
            • Foreign key references
            • Primary key designation


Bookstore                   SQL201W Module 3    31




                       Data Types
• Int – integers or whole numbers
      – Ex: how_many int
• Char – fixed length fields
      – Ex: state char(2)
• Varchar/Varchar2 – variable length fields
      – Ex: address varchar(35)
• Money – money field; same as MS Access
  currency
• Date/Datetime – date and time
• And many others – see documentation or Help
Bookstore                   SQL201W Module 3    32




                                                     16
Create Table
     Basic syntax:
     Create table <table-name>
     <column1> <datatype> <constraints>
     ,.. <column1> <datatype> <constraints>
     …
     <table constraints>
     Note: often preceded by a drop
Bookstore                SQL201W Module 3               33




               Temporary Tables

   Basic syntax (SQL standard):
   Create [global] temporary table <table-name>
   <rest of statement as for normal create>


   Note: SQL Server uses a different syntax. Just put
   a #in front of the table name as in #mytable.

Bookstore                SQL201W Module 3               34




                                                             17
Column Constraints
•   Primary key
•   Not NULL
•   CHECK clause
•   Default
•   Unique



Bookstore          SQL201W Module 3         35




             Table Constraints
• Primary Key
• Foreign Key
• Compare fields against each other. I.e.
  ship_date >= order_date




Bookstore          SQL201W Module 3         36




                                                 18
But first – the Drop Statement
• Deletes a database “object”
      –     Drop table <table-name>
      –     Drop view <view-name>
      –     Drop index <index-name>
      –     Drop domain <domain-name>




Bookstore               SQL201W Module 3     37




                    Create Table
       Example 1: Create a summary table
       Create table summary(
       isbn varchar(20) primary key,
       How_many int check (how_many >= 0),
       Constraint isbn_fk
       Foreign key (isbn) references
       books(isbn)
       )
Bookstore               SQL201W Module 3     38




                                                  19
Create Summary Table




Bookstore          SQL201W Module 3   39




   Constraints on Summary Table




Bookstore          SQL201W Module 3   40




                                           20
Multi-row Insert


            Basic Syntax:


            Insert [into] <table-name>
            [(<column list>)]
            Select <select-statement>


Bookstore                   SQL201W Module 3     41




                  Multi-row Insert
            Basic Example: (store # times each
            book ordered)


            Insert into summary
            Select isbn, count(*)
            From orderlines
            Group by isbn;

Bookstore                   SQL201W Module 3     42




                                                      21
Multi-row Insert




Bookstore              SQL201W Module 3   43




   After multi-row insert in MS Access




Bookstore              SQL201W Module 3   44




                                               22
SQL/200

                   SQL Programming

        Part 3 – Creating Views and Indexes, Modifying
                           Structures
Bookstore                 SQL201W Module 3               45




                         Views
• Think of a view as a named query wherein
  the definition is stored in the database
• Can be read like a table
• Some are updateable




Bookstore                SQL201W Module 3                46




                                                              23
Views

   Basic syntax:
   Create view <view-name> (<column-list>)
   As
   <select statement>




Bookstore               SQL201W Module 3     47




              Creating a View




Bookstore               SQL201W Module 3     48




                                                  24
Using Views
• Can be used like a table subject to various
  limitations
      – Cannot insert into grouped queries, etc.
      – Etc.
• Sample syntax:
            select column-list
            from employee_view

Bookstore                SQL201W Module 3          49




                    Using a View




Bookstore                SQL201W Module 3          50




                                                        25
Indexes
• Used to speed searches, joins, etc.
• Placed on:
      – primary and foreign keys
      – Secondary keys
• In commercial practice often managed by
  DBA’s for large databases


Bookstore                SQL201W Module 3                     51




                        Indexes
    Basic syntax:


    Create [unique] index <index-name>
    On <table-name> (field-name> [desc])


    Note: can place index on a composite key; ex: state and
    city

Bookstore                SQL201W Module 3                     52




                                                                   26
Indexes

      Basic example:


      create index state_inx
      on customers(customer_state)




Bookstore              SQL201W Module 3   53




        Customers table with index




Bookstore              SQL201W Module 3   54




                                               27
Dropping an index
Basic Syntax:
      – Drop index <table-name.index-name>;




Bookstore                 SQL201W Module 3    55




            Modifying a Table Design
• Applies to tables
• Use ALTER statement
      –     Add columns
      –     Delete columns
      –     Rename columns
      –     Add column constraints
      –     Add table constraints

Bookstore                 SQL201W Module 3    56




                                                   28
Modifying a Table Design
      Basic syntax:
      Alter <table-name>
      Add <field-name>,
      Add <table-constraint>,
      Modify <field-name>
      Etc.

Bookstore              SQL201W Module 3     57




             Modify a Table Design

        Example: add a phone number field


        alter table publishers
        add phone char(12);




Bookstore              SQL201W Module 3     58




                                                 29
After alter publishers table




Bookstore              SQL201W Module 3    59




                    SQL/200

                 SQL Programming

                    Part 4 – Security


Bookstore               SQL201W Module 3   60




                                                30
Security
• Important DBA function
      – Beyond scope of this course
      – Typically controlled through Enterprise
        Manager or Studio GUI’s
• In commercial practice application security
  frequently controlled via own login and a
  “users” table or similar

Bookstore              SQL201W Module 3           61




                      Security
•   Specifics can vary by product
•   Access: workgroup administrator
•   SQL Server: users, roles
•   Oracle: users, roles




Bookstore              SQL201W Module 3           62




                                                       31
SQL Security Statements


              • Grant
              • Revoke
              • Deny




Bookstore               SQL201W Module 3                      63




                         Grant
   Syntax:


   Grant <access-right> [with grant option]
   On <object> to <user>

  Note: by default only tables owners and admins can access
  a table. Others must be granted the relevant rights.
Bookstore               SQL201W Module 3                      64




                                                                   32
Access Rights
•   Select
•   Update
•   Insert
•   Delete
•   References
•   All privileges

Bookstore            SQL201W Module 3   65




                     Grant

     Example:


     Grant update
     On employees to ddurso



Bookstore            SQL201W Module 3   66




                                             33
Revoke
• Revokes the rights
• Syntax similar to grant




                                     [end module]
Bookstore         SQL201W Module 3                  67




                  Notes




Bookstore         SQL201W Module 3                  68




                                                         34
Orange Coast Database Associates Course                                            (800)355-9855 or http://www.d2associates.com



                           Accelerated Computer Training




                  Orange Coast
                Database Associates




                                  Specializing in Microsoft Office,
                                Access, SQL, and related technologies
                                Computer Training, Programming & Consulting
                                                   32422 Alipaz St., Suite A-15
                                                     San Juan Capistrano, CA
                             (800)355-9855 (Toll Free) | (949)489-1472 (Direct) | (949)485-6284 (Fax)
                                    http://www.d2associates.com | sales@dhdursoassociates.com




Accelerated Computer Training for Working Professionals

More Related Content

What's hot

MySQL Features & Implementation
MySQL Features & ImplementationMySQL Features & Implementation
MySQL Features & ImplementationOSSCube
 
KoprowskiT_SQLRelay2014#9_London_FromPlanToBackupToCloud
KoprowskiT_SQLRelay2014#9_London_FromPlanToBackupToCloudKoprowskiT_SQLRelay2014#9_London_FromPlanToBackupToCloud
KoprowskiT_SQLRelay2014#9_London_FromPlanToBackupToCloudTobias Koprowski
 
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...SpanishPASSVC
 
Sql server 2012 roadshow masd overview 003
Sql server 2012 roadshow masd overview 003Sql server 2012 roadshow masd overview 003
Sql server 2012 roadshow masd overview 003Mark Kromer
 
Introduction to SQL Server Analysis services 2008
Introduction to SQL Server Analysis services 2008Introduction to SQL Server Analysis services 2008
Introduction to SQL Server Analysis services 2008Tobias Koprowski
 
KoprowskiT_SQLAzureLandingInBelfast
KoprowskiT_SQLAzureLandingInBelfastKoprowskiT_SQLAzureLandingInBelfast
KoprowskiT_SQLAzureLandingInBelfastTobias Koprowski
 
Software architecture to analyze licensing needs for pcms- pegasus cargo ma...
Software architecture   to analyze licensing needs for pcms- pegasus cargo ma...Software architecture   to analyze licensing needs for pcms- pegasus cargo ma...
Software architecture to analyze licensing needs for pcms- pegasus cargo ma...Shahzad
 
An overview of microsoft data mining technology
An overview of microsoft data mining technologyAn overview of microsoft data mining technology
An overview of microsoft data mining technologyMark Tabladillo
 
What's New in MySQL 5.6
What's New in MySQL 5.6What's New in MySQL 5.6
What's New in MySQL 5.6Santo Leto
 
SQL Saturday 79 Enterprise Data Mining for SQL Server 2008 R2
SQL Saturday 79 Enterprise Data Mining for SQL Server 2008 R2SQL Saturday 79 Enterprise Data Mining for SQL Server 2008 R2
SQL Saturday 79 Enterprise Data Mining for SQL Server 2008 R2Mark Tabladillo
 
Sql server licensing_guide_partneredn_v1-1
Sql server licensing_guide_partneredn_v1-1Sql server licensing_guide_partneredn_v1-1
Sql server licensing_guide_partneredn_v1-1guestd54e35
 
Secrets of Enterprise Data Mining
Secrets of Enterprise Data Mining Secrets of Enterprise Data Mining
Secrets of Enterprise Data Mining Mark Tabladillo
 
An overview of Microsoft data mining technology
An overview of Microsoft data mining technologyAn overview of Microsoft data mining technology
An overview of Microsoft data mining technologyMark Tabladillo
 
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Events
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended EventsSQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Events
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Eventssqlserver.co.il
 
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBegan
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBeganKoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBegan
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBeganTobias Koprowski
 
Toad for Sybase Datasheet
Toad for Sybase DatasheetToad for Sybase Datasheet
Toad for Sybase DatasheetToad4Sybase
 
SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5Gianluca Hotz
 
SQL Server Developer 70-433
SQL Server Developer 70-433SQL Server Developer 70-433
SQL Server Developer 70-433jasonyousef
 

What's hot (20)

MySQL Features & Implementation
MySQL Features & ImplementationMySQL Features & Implementation
MySQL Features & Implementation
 
KoprowskiT_SQLRelay2014#9_London_FromPlanToBackupToCloud
KoprowskiT_SQLRelay2014#9_London_FromPlanToBackupToCloudKoprowskiT_SQLRelay2014#9_London_FromPlanToBackupToCloud
KoprowskiT_SQLRelay2014#9_London_FromPlanToBackupToCloud
 
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
24 HOP edición Español -Diferentes técnicas de administración de logins y usu...
 
Sql server 2012 roadshow masd overview 003
Sql server 2012 roadshow masd overview 003Sql server 2012 roadshow masd overview 003
Sql server 2012 roadshow masd overview 003
 
Introduction to SQL Server Analysis services 2008
Introduction to SQL Server Analysis services 2008Introduction to SQL Server Analysis services 2008
Introduction to SQL Server Analysis services 2008
 
KoprowskiT_SQLAzureLandingInBelfast
KoprowskiT_SQLAzureLandingInBelfastKoprowskiT_SQLAzureLandingInBelfast
KoprowskiT_SQLAzureLandingInBelfast
 
VinayKumar_Sirikonda
VinayKumar_SirikondaVinayKumar_Sirikonda
VinayKumar_Sirikonda
 
Software architecture to analyze licensing needs for pcms- pegasus cargo ma...
Software architecture   to analyze licensing needs for pcms- pegasus cargo ma...Software architecture   to analyze licensing needs for pcms- pegasus cargo ma...
Software architecture to analyze licensing needs for pcms- pegasus cargo ma...
 
An overview of microsoft data mining technology
An overview of microsoft data mining technologyAn overview of microsoft data mining technology
An overview of microsoft data mining technology
 
What's New in MySQL 5.6
What's New in MySQL 5.6What's New in MySQL 5.6
What's New in MySQL 5.6
 
SQL Saturday 79 Enterprise Data Mining for SQL Server 2008 R2
SQL Saturday 79 Enterprise Data Mining for SQL Server 2008 R2SQL Saturday 79 Enterprise Data Mining for SQL Server 2008 R2
SQL Saturday 79 Enterprise Data Mining for SQL Server 2008 R2
 
Sql server licensing_guide_partneredn_v1-1
Sql server licensing_guide_partneredn_v1-1Sql server licensing_guide_partneredn_v1-1
Sql server licensing_guide_partneredn_v1-1
 
Secrets of Enterprise Data Mining
Secrets of Enterprise Data Mining Secrets of Enterprise Data Mining
Secrets of Enterprise Data Mining
 
An overview of Microsoft data mining technology
An overview of Microsoft data mining technologyAn overview of Microsoft data mining technology
An overview of Microsoft data mining technology
 
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Events
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended EventsSQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Events
SQL Explore 2012 - Tzahi Hakikat and Keren Bartal: Extended Events
 
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBegan
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBeganKoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBegan
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBegan
 
MySQL 开发
MySQL 开发MySQL 开发
MySQL 开发
 
Toad for Sybase Datasheet
Toad for Sybase DatasheetToad for Sybase Datasheet
Toad for Sybase Datasheet
 
SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5SQL Server 2019 CTP 2.5
SQL Server 2019 CTP 2.5
 
SQL Server Developer 70-433
SQL Server Developer 70-433SQL Server Developer 70-433
SQL Server Developer 70-433
 

Viewers also liked

Teknologi dalam pendidikan
Teknologi dalam pendidikanTeknologi dalam pendidikan
Teknologi dalam pendidikanRudy Jemain Rj
 
AIN102S Access string function sample queries
AIN102S Access string function sample queriesAIN102S Access string function sample queries
AIN102S Access string function sample queriesDan D'Urso
 
ArchEvolution In 1 Slide! By Copyright 2009 Andres Agostini (Andy) - Arlingto...
ArchEvolution In 1 Slide! By Copyright 2009 Andres Agostini (Andy) - Arlingto...ArchEvolution In 1 Slide! By Copyright 2009 Andres Agostini (Andy) - Arlingto...
ArchEvolution In 1 Slide! By Copyright 2009 Andres Agostini (Andy) - Arlingto...Andres Agostini, Future Knowledgist
 
AMP110 Microsoft Access Macros
AMP110 Microsoft Access MacrosAMP110 Microsoft Access Macros
AMP110 Microsoft Access MacrosDan D'Urso
 
Tutorial: Your First Reporting Assignment
Tutorial: Your First Reporting AssignmentTutorial: Your First Reporting Assignment
Tutorial: Your First Reporting AssignmentRyan Thornburg
 
Creating a Photo Story With Soundslides
Creating a Photo Story With SoundslidesCreating a Photo Story With Soundslides
Creating a Photo Story With SoundslidesRyan Thornburg
 
AIA101.1.MS Access Tables & Data
AIA101.1.MS Access Tables & DataAIA101.1.MS Access Tables & Data
AIA101.1.MS Access Tables & DataDan D'Urso
 
GovProjects.org
GovProjects.orgGovProjects.org
GovProjects.orgF R
 
My Print Portfolio
My Print PortfolioMy Print Portfolio
My Print Portfoliobeth7865
 
KaDouce AutoBio
KaDouce AutoBioKaDouce AutoBio
KaDouce AutoBioKarine L
 
我國數位產業學習發展與推動概況
我國數位產業學習發展與推動概況我國數位產業學習發展與推動概況
我國數位產業學習發展與推動概況RICK Lin
 
Il Mostro Di Cogne
Il Mostro Di CogneIl Mostro Di Cogne
Il Mostro Di CogneF R
 
Alles Van Tmm
Alles Van TmmAlles Van Tmm
Alles Van Tmmlucasnet
 
Beoordeelmijnleraar - Overheid20
Beoordeelmijnleraar - Overheid20Beoordeelmijnleraar - Overheid20
Beoordeelmijnleraar - Overheid20BZK
 
青年創業及圓夢網 創業稅務大小事【創業懶人包 】
青年創業及圓夢網 創業稅務大小事【創業懶人包 】青年創業及圓夢網 創業稅務大小事【創業懶人包 】
青年創業及圓夢網 創業稅務大小事【創業懶人包 】RICK Lin
 

Viewers also liked (20)

Teknologi dalam pendidikan
Teknologi dalam pendidikanTeknologi dalam pendidikan
Teknologi dalam pendidikan
 
AIN102S Access string function sample queries
AIN102S Access string function sample queriesAIN102S Access string function sample queries
AIN102S Access string function sample queries
 
ArchEvolution In 1 Slide! By Copyright 2009 Andres Agostini (Andy) - Arlingto...
ArchEvolution In 1 Slide! By Copyright 2009 Andres Agostini (Andy) - Arlingto...ArchEvolution In 1 Slide! By Copyright 2009 Andres Agostini (Andy) - Arlingto...
ArchEvolution In 1 Slide! By Copyright 2009 Andres Agostini (Andy) - Arlingto...
 
AMP110 Microsoft Access Macros
AMP110 Microsoft Access MacrosAMP110 Microsoft Access Macros
AMP110 Microsoft Access Macros
 
minggu 2
minggu 2minggu 2
minggu 2
 
Tutorial: Your First Reporting Assignment
Tutorial: Your First Reporting AssignmentTutorial: Your First Reporting Assignment
Tutorial: Your First Reporting Assignment
 
Creating a Photo Story With Soundslides
Creating a Photo Story With SoundslidesCreating a Photo Story With Soundslides
Creating a Photo Story With Soundslides
 
Widget SOA
Widget SOAWidget SOA
Widget SOA
 
¿Somos animales?
¿Somos animales?¿Somos animales?
¿Somos animales?
 
AIA101.1.MS Access Tables & Data
AIA101.1.MS Access Tables & DataAIA101.1.MS Access Tables & Data
AIA101.1.MS Access Tables & Data
 
GovProjects.org
GovProjects.orgGovProjects.org
GovProjects.org
 
My Print Portfolio
My Print PortfolioMy Print Portfolio
My Print Portfolio
 
KaDouce AutoBio
KaDouce AutoBioKaDouce AutoBio
KaDouce AutoBio
 
London
LondonLondon
London
 
我國數位產業學習發展與推動概況
我國數位產業學習發展與推動概況我國數位產業學習發展與推動概況
我國數位產業學習發展與推動概況
 
Il Mostro Di Cogne
Il Mostro Di CogneIl Mostro Di Cogne
Il Mostro Di Cogne
 
Alles Van Tmm
Alles Van TmmAlles Van Tmm
Alles Van Tmm
 
Beoordeelmijnleraar - Overheid20
Beoordeelmijnleraar - Overheid20Beoordeelmijnleraar - Overheid20
Beoordeelmijnleraar - Overheid20
 
Filoarnaucadell
Filoarnaucadell Filoarnaucadell
Filoarnaucadell
 
青年創業及圓夢網 創業稅務大小事【創業懶人包 】
青年創業及圓夢網 創業稅務大小事【創業懶人包 】青年創業及圓夢網 創業稅務大小事【創業懶人包 】
青年創業及圓夢網 創業稅務大小事【創業懶人包 】
 

Similar to SQL201W MySQL SQL Manual

SQL201S Accelerated Introduction to MySQL Queries
SQL201S Accelerated Introduction to MySQL QueriesSQL201S Accelerated Introduction to MySQL Queries
SQL201S Accelerated Introduction to MySQL QueriesDan D'Urso
 
SQL302 Intermediate SQL
SQL302 Intermediate SQLSQL302 Intermediate SQL
SQL302 Intermediate SQLDan D'Urso
 
SQL302 Intermediate SQL Workshop 1
SQL302 Intermediate SQL Workshop 1SQL302 Intermediate SQL Workshop 1
SQL302 Intermediate SQL Workshop 1Dan D'Urso
 
Geek Sync | Locating and Resolving Common Database Performance Issues in Micr...
Geek Sync | Locating and Resolving Common Database Performance Issues in Micr...Geek Sync | Locating and Resolving Common Database Performance Issues in Micr...
Geek Sync | Locating and Resolving Common Database Performance Issues in Micr...IDERA Software
 
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
Rapid SQL Datasheet - The Intelligent IDE for SQL DevelopmentRapid SQL Datasheet - The Intelligent IDE for SQL Development
Rapid SQL Datasheet - The Intelligent IDE for SQL DevelopmentEmbarcadero Technologies
 
MySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeMySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeArnab Ray
 
Sql data base
Sql data baseSql data base
Sql data baseAli Jafar
 
SQL Azure Intro and what’s New
SQL Azure Intro and what’s NewSQL Azure Intro and what’s New
SQL Azure Intro and what’s Newandythiru
 
SQL in Version Control using SQL Server Database Projects
SQL in Version Control using SQL Server Database ProjectsSQL in Version Control using SQL Server Database Projects
SQL in Version Control using SQL Server Database Projectsfloydhilton
 
newsql-intro.ppt
newsql-intro.pptnewsql-intro.ppt
newsql-intro.pptsjukic
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)James Serra
 
Kb 40 kevin_klineukug_reading20070717[1]
Kb 40 kevin_klineukug_reading20070717[1]Kb 40 kevin_klineukug_reading20070717[1]
Kb 40 kevin_klineukug_reading20070717[1]shuwutong
 
6232 b 01
6232 b 016232 b 01
6232 b 01stamal
 
SQL200A Microsoft Access SQL Design
SQL200A Microsoft Access SQL DesignSQL200A Microsoft Access SQL Design
SQL200A Microsoft Access SQL DesignDan D'Urso
 
MySQL - powering the web economy v1.0
MySQL - powering the web economy v1.0MySQL - powering the web economy v1.0
MySQL - powering the web economy v1.0IDG Romania
 
Bn 1019 demo sql server 2012
Bn 1019 demo  sql server 2012Bn 1019 demo  sql server 2012
Bn 1019 demo sql server 2012conline training
 
20090425mysqlslides 12593434194072-phpapp02
20090425mysqlslides 12593434194072-phpapp0220090425mysqlslides 12593434194072-phpapp02
20090425mysqlslides 12593434194072-phpapp02Vinamra Mittal
 

Similar to SQL201W MySQL SQL Manual (20)

SQL201S Accelerated Introduction to MySQL Queries
SQL201S Accelerated Introduction to MySQL QueriesSQL201S Accelerated Introduction to MySQL Queries
SQL201S Accelerated Introduction to MySQL Queries
 
SQL302 Intermediate SQL
SQL302 Intermediate SQLSQL302 Intermediate SQL
SQL302 Intermediate SQL
 
SQL302 Intermediate SQL Workshop 1
SQL302 Intermediate SQL Workshop 1SQL302 Intermediate SQL Workshop 1
SQL302 Intermediate SQL Workshop 1
 
Geek Sync | Locating and Resolving Common Database Performance Issues in Micr...
Geek Sync | Locating and Resolving Common Database Performance Issues in Micr...Geek Sync | Locating and Resolving Common Database Performance Issues in Micr...
Geek Sync | Locating and Resolving Common Database Performance Issues in Micr...
 
FatDB Intro
FatDB IntroFatDB Intro
FatDB Intro
 
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
Rapid SQL Datasheet - The Intelligent IDE for SQL DevelopmentRapid SQL Datasheet - The Intelligent IDE for SQL Development
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
 
MySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeMySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime Time
 
Sql data base
Sql data baseSql data base
Sql data base
 
SQL Azure Intro and what’s New
SQL Azure Intro and what’s NewSQL Azure Intro and what’s New
SQL Azure Intro and what’s New
 
Manageability Enhancements of SQL Server 2012
Manageability Enhancements of SQL Server 2012Manageability Enhancements of SQL Server 2012
Manageability Enhancements of SQL Server 2012
 
SQL in Version Control using SQL Server Database Projects
SQL in Version Control using SQL Server Database ProjectsSQL in Version Control using SQL Server Database Projects
SQL in Version Control using SQL Server Database Projects
 
newsql-intro.ppt
newsql-intro.pptnewsql-intro.ppt
newsql-intro.ppt
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)
 
Kb 40 kevin_klineukug_reading20070717[1]
Kb 40 kevin_klineukug_reading20070717[1]Kb 40 kevin_klineukug_reading20070717[1]
Kb 40 kevin_klineukug_reading20070717[1]
 
6232 b 01
6232 b 016232 b 01
6232 b 01
 
SQL200A Microsoft Access SQL Design
SQL200A Microsoft Access SQL DesignSQL200A Microsoft Access SQL Design
SQL200A Microsoft Access SQL Design
 
MySQL - powering the web economy v1.0
MySQL - powering the web economy v1.0MySQL - powering the web economy v1.0
MySQL - powering the web economy v1.0
 
Bn 1019 demo sql server 2012
Bn 1019 demo  sql server 2012Bn 1019 demo  sql server 2012
Bn 1019 demo sql server 2012
 
20090425mysqlslides 12593434194072-phpapp02
20090425mysqlslides 12593434194072-phpapp0220090425mysqlslides 12593434194072-phpapp02
20090425mysqlslides 12593434194072-phpapp02
 
Topic1
Topic1Topic1
Topic1
 

More from Dan D'Urso

LCD201d Database Diagramming with Lucidchart
LCD201d Database Diagramming with LucidchartLCD201d Database Diagramming with Lucidchart
LCD201d Database Diagramming with LucidchartDan D'Urso
 
Database Normalization
Database NormalizationDatabase Normalization
Database NormalizationDan D'Urso
 
VIS201d Visio Database Diagramming
VIS201d Visio Database DiagrammingVIS201d Visio Database Diagramming
VIS201d Visio Database DiagrammingDan D'Urso
 
PRJ101a Project 2013 Accelerated
PRJ101a Project 2013 AcceleratedPRJ101a Project 2013 Accelerated
PRJ101a Project 2013 AcceleratedDan D'Urso
 
PRJ101xl Project Libre Basic Training
PRJ101xl Project Libre Basic TrainingPRJ101xl Project Libre Basic Training
PRJ101xl Project Libre Basic TrainingDan D'Urso
 
Introduction to coding using Python
Introduction to coding using PythonIntroduction to coding using Python
Introduction to coding using PythonDan D'Urso
 
Stem conference
Stem conferenceStem conference
Stem conferenceDan D'Urso
 
Microsoft access self joins
Microsoft access self joinsMicrosoft access self joins
Microsoft access self joinsDan D'Urso
 
AIN106 Access Reporting and Analysis
AIN106 Access Reporting and AnalysisAIN106 Access Reporting and Analysis
AIN106 Access Reporting and AnalysisDan D'Urso
 
SQL302 Intermediate SQL Workshop 3
SQL302 Intermediate SQL Workshop 3SQL302 Intermediate SQL Workshop 3
SQL302 Intermediate SQL Workshop 3Dan D'Urso
 
SQL302 Intermediate SQL Workshop 2
SQL302 Intermediate SQL Workshop 2SQL302 Intermediate SQL Workshop 2
SQL302 Intermediate SQL Workshop 2Dan D'Urso
 
Course Catalog
Course CatalogCourse Catalog
Course CatalogDan D'Urso
 
SQL206 SQL Median
SQL206 SQL MedianSQL206 SQL Median
SQL206 SQL MedianDan D'Urso
 
SQL202.3 Accelerated Introduction to SQL Using SQL Server Module 3
SQL202.3 Accelerated Introduction to SQL Using SQL Server Module 3SQL202.3 Accelerated Introduction to SQL Using SQL Server Module 3
SQL202.3 Accelerated Introduction to SQL Using SQL Server Module 3Dan D'Urso
 
SQL202.2 Accelerated Introduction to SQL Using SQL Server Module 2
SQL202.2 Accelerated Introduction to SQL Using SQL Server Module 2SQL202.2 Accelerated Introduction to SQL Using SQL Server Module 2
SQL202.2 Accelerated Introduction to SQL Using SQL Server Module 2Dan D'Urso
 
SQL202.1 Accelerated Introduction to SQL Using SQL Server Module 1
SQL202.1 Accelerated Introduction to SQL Using SQL Server Module 1SQL202.1 Accelerated Introduction to SQL Using SQL Server Module 1
SQL202.1 Accelerated Introduction to SQL Using SQL Server Module 1Dan D'Urso
 
AIN102 Microsoft Access Queries
AIN102 Microsoft Access QueriesAIN102 Microsoft Access Queries
AIN102 Microsoft Access QueriesDan D'Urso
 
AIN102.2 Microsoft Access Queries
AIN102.2 Microsoft Access QueriesAIN102.2 Microsoft Access Queries
AIN102.2 Microsoft Access QueriesDan D'Urso
 
AIN102.1 Microsoft Access Queries Module 1
AIN102.1 Microsoft Access Queries Module 1AIN102.1 Microsoft Access Queries Module 1
AIN102.1 Microsoft Access Queries Module 1Dan D'Urso
 

More from Dan D'Urso (20)

LCD201d Database Diagramming with Lucidchart
LCD201d Database Diagramming with LucidchartLCD201d Database Diagramming with Lucidchart
LCD201d Database Diagramming with Lucidchart
 
Database Normalization
Database NormalizationDatabase Normalization
Database Normalization
 
VIS201d Visio Database Diagramming
VIS201d Visio Database DiagrammingVIS201d Visio Database Diagramming
VIS201d Visio Database Diagramming
 
PRJ101a Project 2013 Accelerated
PRJ101a Project 2013 AcceleratedPRJ101a Project 2013 Accelerated
PRJ101a Project 2013 Accelerated
 
PRJ101xl Project Libre Basic Training
PRJ101xl Project Libre Basic TrainingPRJ101xl Project Libre Basic Training
PRJ101xl Project Libre Basic Training
 
Introduction to coding using Python
Introduction to coding using PythonIntroduction to coding using Python
Introduction to coding using Python
 
Stem conference
Stem conferenceStem conference
Stem conference
 
Microsoft access self joins
Microsoft access self joinsMicrosoft access self joins
Microsoft access self joins
 
AIN106 Access Reporting and Analysis
AIN106 Access Reporting and AnalysisAIN106 Access Reporting and Analysis
AIN106 Access Reporting and Analysis
 
SQL302 Intermediate SQL Workshop 3
SQL302 Intermediate SQL Workshop 3SQL302 Intermediate SQL Workshop 3
SQL302 Intermediate SQL Workshop 3
 
SQL302 Intermediate SQL Workshop 2
SQL302 Intermediate SQL Workshop 2SQL302 Intermediate SQL Workshop 2
SQL302 Intermediate SQL Workshop 2
 
Course Catalog
Course CatalogCourse Catalog
Course Catalog
 
AIN100
AIN100AIN100
AIN100
 
SQL206 SQL Median
SQL206 SQL MedianSQL206 SQL Median
SQL206 SQL Median
 
SQL202.3 Accelerated Introduction to SQL Using SQL Server Module 3
SQL202.3 Accelerated Introduction to SQL Using SQL Server Module 3SQL202.3 Accelerated Introduction to SQL Using SQL Server Module 3
SQL202.3 Accelerated Introduction to SQL Using SQL Server Module 3
 
SQL202.2 Accelerated Introduction to SQL Using SQL Server Module 2
SQL202.2 Accelerated Introduction to SQL Using SQL Server Module 2SQL202.2 Accelerated Introduction to SQL Using SQL Server Module 2
SQL202.2 Accelerated Introduction to SQL Using SQL Server Module 2
 
SQL202.1 Accelerated Introduction to SQL Using SQL Server Module 1
SQL202.1 Accelerated Introduction to SQL Using SQL Server Module 1SQL202.1 Accelerated Introduction to SQL Using SQL Server Module 1
SQL202.1 Accelerated Introduction to SQL Using SQL Server Module 1
 
AIN102 Microsoft Access Queries
AIN102 Microsoft Access QueriesAIN102 Microsoft Access Queries
AIN102 Microsoft Access Queries
 
AIN102.2 Microsoft Access Queries
AIN102.2 Microsoft Access QueriesAIN102.2 Microsoft Access Queries
AIN102.2 Microsoft Access Queries
 
AIN102.1 Microsoft Access Queries Module 1
AIN102.1 Microsoft Access Queries Module 1AIN102.1 Microsoft Access Queries Module 1
AIN102.1 Microsoft Access Queries Module 1
 

Recently uploaded

Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 

Recently uploaded (20)

Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 

SQL201W MySQL SQL Manual

  • 1. Orange Coast Database Associates Course (800)355-9855 or http://www.d2associates.com SQL201W Accelerated Introduction to SQL Using MySQL Orange Coast Database Associates Specializing in Microsoft Office, Access, SQL, and related technologies Classes custom designed for Working Professionals http://www.d2associates.com San Juan Capistrano, CA (800)355-9855 Accelerated Computer Training for Working Professionals Bookstore Case
  • 2. Welcome to SQL201W – Accelerated Introduction to SQL Using MySQL An accelerated introduction to SQL for non- programmers P.O. Box 6142 Laguna Niguel, CA 92607 949-489-1472 http://www.d2associates.com Bookstore SQL201W 1 Accelerated Introduction to SQL • Introduction (s) • Facilities • Course Packet (contents may vary) – Student questionnaire – Collaterals (Maps, Catalogs, Etc.) – PowerPoint handouts for all sessions – Evaluation form – Training certificate Bookstore SQL201W 2 1
  • 3. SQL Curriculum SQL201W SQL202 SQL212 MySQL Transact-SQL Oracle SQL200* * = included in above courses SQL200S* Bookstore SQL201W 3 Accelerated Introduction to SQL • Assumes no prior knowledge of SQL • Quick pace for experienced computer users • End-user, not programmer, oriented • Focus is on SQL, not Management Studio • SQL200s is first two modules of SQL200, otherwise identical. Bookstore SQL201W 4 2
  • 4. Accelerated Introduction to SQL SQL Covered (Day 1: All Day): • Select – Basic – Filters – Special Operators – Multi-table retrieval • Joins • Subqueries • Unions – Calculations and Aggregates Bookstore SQL201W 5 Accelerated Introduction to SQL SQL Covered (Day 2: AM Only): • Data Updates – Insert – Update – Delete • Data structures – Create – Drop – Alter Bookstore SQL201W 6 3
  • 5. Accelerated Introduction to SQL Course Format: • 3 Sessions • Lecture • Demo • Student “hands-on” • Many exercises are cumulative – later examples build on queries created earlier Bookstore SQL201W 7 Accelerated Introduction to SQL Course Schedule (“1/2” day sessions): • Session 1 – Basic SQL • Session 2 – Multi-table Retrieval • Session 3 – Modifying Data Bookstore SQL201W 8 4
  • 6. SQL201W SQL Programming Based on SQL Clearly Explained by Jan Harrington Module 1 – Relational Database Background, Basic Single Table Retrieval Operations Bookstore SQL201W Module 1 1 Note on SQL200 Slides • These slides were originally designed to support the single SQL200 course which was used for any of MS Access, MySQL, Oracle and SQL Server. • As such you may see here slides developed in any one of the above products. • We are in the process of migrating the various vendor slides out into their own slide sets. The SQL200 slides will cover MySQL and SQL Server which are virtually identical for purposes of this course. Bookstore SQL201W Module 1 2 1
  • 7. Warning! • Below are some table name changes to be aware of in doing queries. We have created synonyms so either name should work. New Name Old Name Orders Order_filled Order_Lines Orderlines Bookstore SQL201W Module 1 3 SQL200 Contact Information P.O. Box 6142 Laguna Niguel, CA 92607 949-489-1472 http://www.d2associates.com slides.1@dhdursoassociates.com Copyright 2001-2011. All rights reserved. Bookstore SQL201W Module 1 4 2
  • 8. SQL200 Resources • Bookstore database scripts found on box.net at http://tinyurl.com/SQLScripts • Slides can be viewed on SlideShare… http://www.slideshare.net/OCDatabases • Follow up questions? sql.support@dhdursoassociates.com Bookstore SQL201W Module 1 5 SQL Programming • Course focus is SQL language • Widely used for: – Database administration – Enterprise application development – Data driven web sites • A foundation skill for eBusiness and almost all major business applications that use relational databases Bookstore SQL201W Module 1 6 3
  • 9. SQL Programming • A basic knowledge of query systems, perhaps via MS Access, or some programming knowledge, is desirable • We will use GUI tools or SQL Plus almost exclusively Bookstore SQL201W Module 1 7 Relational Database Evolution • Based on Codd’s paper • Early commercial efforts focused on Unix • First mainframe implementation by IBM - precursor to today’s DB2 • First PC implementation in early 80’s by Oracle Bookstore SQL201W Module 1 8 4
  • 10. Relational Database Basics • Storage • Indexes • Databases • Views • Tables • Cursors • Rows • Application interfaces • Columns Bookstore SQL201W Module 1 9 Relational Database Table Bookstore SQL201W Module 1 10 5
  • 11. Constraints • Database • Other Business Rule – Domain – Triggers – Uniqueness – Stored Procedures – Relationship Cardinality • 1 to 1 • 1 to N Bookstore SQL201W Module 1 11 Relational Database with constraints Bookstore SQL201W Module 1 12 6
  • 12. Database Management Systems Positioning Chart Cost VLDB Enterprise Workgroup Single user Spreadsheet # Users Bookstore SQL201W Module 1 13 System Architecture File Server Architecture Access MDB Access Bookstore SQL201W Module 1 14 7
  • 13. System Architecture Client/Server Architecture MySQL SQL DB Visual Access Basic App Bookstore SQL201W Module 1 15 System Architecture Web Architecture Web MySQL Server DB SQL Browser Bookstore SQL201W Module 1 16 8
  • 14. Approaching SQL • Relatively simple • Two main environments – Interactive (This course) – Embedded • Static (Compiled) • Dynamic Bookstore SQL201W Module 1 17 SQL Standardization ANSI standardization – First standard in 1986 – SQL 89 – SQL 92 – SQL 99 • Various vendor extensions – Microsoft/Sybase: T-SQL – Oracle: PL/SQL Bookstore SQL201W Module 1 18 9
  • 15. SQL Conformance • Entry • Intermediate • Advanced • Most are at least entry level Bookstore SQL201W Module 1 19 SQL Statements • Data Manipulation Language (DML) • Data Control Language (DCL) • Data Definition Language (DDL) • Note: SQL 99 changes these to seven types Bookstore SQL201W Module 1 20 10
  • 16. SQL DDL • Data definition language (DDL) – Create, alter, drop, etc. – Frequently implemented via various CASE tools: Visio, Embarcadero, ERWin, etc. – But very useful for database administration Bookstore SQL201W Module 1 21 SQL DCL • Data Control Language (DDL) – Grant – Revoke – Deny – Constraints Bookstore SQL201W Module 1 22 11
  • 17. SQL DML • Data Manipulation Language (DML) – Select – Insert – Update – Delete Bookstore SQL201W Module 1 23 SQL Statement Processing Parse Validate Optimize Access Plan Execute Bookstore SQL201W Module 1 24 12
  • 18. Bookstore Sample Database • Before we continue (note: instructor may have already done this)… • Load the sample database if you haven’t already – Start the MySQL Control center – Load and run the MySQL “builddb_bookstore_mysql.sql” script Bookstore SQL201W Module 1 25 Text Conventions • In Access character strings are normally surrounded by double quotes – “Jones” • In an enterprise database such as Oracle or MySQL enclose text strings in single quotes – ‘Jones’ Bookstore SQL201W Module 1 26 13
  • 19. Date Conventions • In an enterprise database such as Oracle or SQL Sever, enclose dates in single quotes – ‘2004-12-23’ MySQL – ’12-23-2004’ SQL Server – ’23-DEC-04’ Oracle Bookstore SQL201W Module 1 27 Listing the Tables Bookstore SQL201W Module 1 28 14
  • 20. Describing a Table Bookstore SQL201W Module 1 29 Select statement clauses SELECT… INTO… FROM… WHERE… GROUP BY… HAVING… ORDER BY… Bookstore SQL201W Module 1 30 15
  • 21. SELECT Basic Syntax (Projection): Select <column-list> or <*> From <table-list> Bookstore SQL201W Module 1 31 SELECT Basic Example (Projection): select customer_last_name, customer_street from customers Bookstore SQL201W Module 1 32 16
  • 22. MySQL Select Query Bookstore SQL201W Module 1 33 SELECT with Where Clause Example (Restriction plus Projection): Select <column-list> or * From <table-list> Where <selection-criteria>; Bookstore SQL201W Module 1 34 17
  • 23. Comparison Operators • < less than • > greater than • <= less than or equal to • >= greater than or equal to • = equal to • <> or != two forms for not equal Bookstore SQL201W Module 1 35 SELECT with Where Basic Example (Restriction plus Projection): select customer_last_name, customer_street from customers where customer_last_name = ‘Jones’ Bookstore SQL201W Module 1 36 18
  • 24. Select with Where Bookstore SQL201W Module 1 37 On Your Own • Find books written by Mark Twain • Show title, publisher, year Bookstore SQL201W Module 1 38 19
  • 25. Complex Predicates Follow normal boolean logic Select customer_last_name, customer_street From customers Where (customer_last_name = ‘Jones’ or customer_last_name = ‘Smith’)and customer_state=‘NY’ Bookstore SQL201W Module 1 39 Select with Complex Where Bookstore SQL201W Module 1 40 20
  • 26. Complex Where Result Bookstore SQL201W Module 1 41 Special Operators • Can be used in where clause • LIKE • IN • BETWEEN • IS NULL Bookstore SQL201W Module 1 42 21
  • 27. Like (“Wild Card Matches”) • ANSI wildcards • Where customer_last_name like ‘Jo%’ like ‘Jo_’ Bookstore SQL201W Module 1 43 IN Select * From customers Where customer_last_name in (‘Rizzo’, ‘Jones’, ‘Garcia’); The list in parentheses can be replaced by a subquery. We will study this later. Bookstore SQL201W Module 1 44 22
  • 28. Select Like Bookstore SQL201W Module 1 45 SQL Where Clause with IN Bookstore SQL201W Module 1 46 23
  • 29. IS NULL SQL uses three valued logic. Must use IS NULL to test for unknowns. A null is NOT the same as blank or empty. Select * From customers Where customer_street IS NULL; Bookstore SQL201W Module 1 47 IS NULL Results Bookstore SQL201W Module 1 48 24
  • 30. On Your Own • Find all customers with an address not equal to 4592 Maple Lane • Was Peter Johnson selected? • Why or why not? Bookstore SQL201W Module 1 49 BETWEEN List all orders placed in 1999. select * from orders where order_date BETWEEN ‘1- Jan-99’ and ’31-Dec-99’; Note: date formats vary from product to product. Bookstore SQL201W Module 1 50 25
  • 31. Where with Between Bookstore SQL201W Module 1 51 Removing Duplicates List once each city in which there are customers Select DISTINCT customer_city From customers; Removes duplicate rows from result set Bookstore SQL201W Module 1 52 26
  • 32. Removing Duplicates Bookstore SQL201W Module 1 53 Sorting – ORDER BY Basic syntax: Select <column list> or * From <table list> Where <selection criteria> Order by <column list> [DESC] DESC will sort in descending order Bookstore SQL201W Module 1 54 27
  • 33. Sorting – ORDER BY List all records sorted by state, city select * from customers order by customer_state, customer_city Bookstore SQL201W Module 1 55 Sorting Results with Order By Bookstore SQL201W Module 1 56 28
  • 34. SQL Exercises • List all books whose publisher name begins with “H” or “T”; sort by title [hint: use LIKE] • List all customers whose last name ends with “S”; sort by state, city, last name • Find the order numbers of orders with order dates in 1999; sort by order #. [Hint: use BETWEEN] • Find the order numbers and order dates of all orders with a “2” in character position 2 of the credit card #; sort by order date descending Bookstore SQL201W Module 1 [end module] 57 Notes Bookstore SQL201W Module 1 58 29
  • 35. Notes Bookstore SQL201W Module 1 59 Notes Bookstore SQL201W Module 1 60 30
  • 36. SQL201W SQL Programming Based on SQL Clearly Explained by Jan Harrington Workshop 2 – Joins, Calculations and Grouping Bookstore SQL201W Module 2 1 Note on SQL200 Slides • These slides were originally designed to support the single SQL200 course which was used for any of MS Access, MySQL, Oracle and SQL Server. • As such you may see here slides developed in any one of the above products. • We are in the process of migrating the various vendor slides out into their own slide sets. The SQL200 slides will cover MySQL and SQL Server which are virtually identical for purposes of this course. Bookstore SQL201W Module 2 2 1
  • 37. Warning! • Below are some table name changes to be aware of in doing queries. We have created synonyms so either name should work. New Name Old Name Orders Order_filled Order_Lines Orderlines Bookstore SQL201W Module 2 3 SQL200 Contact Information P.O. Box 6142 Laguna Niguel, CA 92607 949-489-1472 http://www.d2associates.com slides.1@dhdursoassociates.com Copyright 2001-20011 All rights reserved. Bookstore SQL201W Module 2 4 2
  • 38. SQL200 Resources • Bookstore database scripts found on box.net at http://tinyurl.com/SQLScripts • Slides can be viewed on SlideShare… http://www.slideshare.net/OCDatabases • Follow up questions? sql.support@dhdursoassociates.com Bookstore SQL201W Module 2 5 SQL201W SQL Programming Part 1 – Joins Bookstore SQL201W Module 2 6 3
  • 39. Relational Database with constraints (from text) Bookstore SQL201W Module 2 7 More conventions • Alias names can be surrounded with “ “ as in “order details”. Better practice is to use an underscore as in order_details. • MS Access uses [ ] instead. Some of the PowerPoint slides may have this convention. It works equally as well in SQL Server but not MySQL. Bookstore SQL201W Module 2 8 4
  • 40. Joins • Inner • Outer – Left – Right – Full • Cross • Self • Theta • We will cover the most important; others as time and interest permit Bookstore SQL201W Module 2 9 Bookstore SQL201W Module 2 10 5
  • 41. Inner Join • Pairs each row from first table with corresponding row from second table over the “join column” • The result set only contains rows where there is a match over the join column in both tables • Equi-join is the common inner join Bookstore SQL201W Module 2 11 Inner Join Older Syntax: Select <column-list> From <tablelist> Where <predicate> Still very commonly used Bookstore SQL201W Module 2 12 6
  • 42. Inner Join Example using older syntax: SELECT customer_first_name, customer_street, order_numb, order_date from customers, orders Where customers.customer_numb = orders.customer_numb Bookstore SQL201W Module 2 13 Inner Join with Result Bookstore SQL201W Module 2 14 7
  • 43. Inner Join (New Syntax) Basic SQL 92 Syntax: Select <column-list> From <table1> Inner join <table2> On <join condition> Bookstore SQL201W Module 2 15 Inner Join Basic Example: SELECT customer_first_name, customer_street, order_numb, order_date from customers inner join orders on customers.customer_numb = orders.customer_numb Bookstore SQL201W Module 2 16 8
  • 44. Inner Join with Result Bookstore SQL201W Module 2 17 Inner Join over Multiple columns • Note that that the join condition can apply to multiple columns if desired • Used with composite keys Bookstore SQL201W Module 2 18 9
  • 45. Inner Join Result in MS Access Bookstore SQL201W Module 2 19 Inner Join • In the last example… – What was the cardinality of the relationship between customers and orders? – Which table was the parent? – What was it’s primary key? – In which table did we employ a foreign key and what was it? Bookstore SQL201W Module 2 20 10
  • 46. Cross Join • What happens when you omit a join expression? • Get the cartesian product of the tables – all possible combinations of the two tables • For large tables this will run a long time! Bookstore SQL201W Module 2 21 Cross Join Result Set Bookstore SQL201W Module 2 22 11
  • 47. Additional SQL92 Syntax • Table1 natural join table3 – automatically uses columns with same name • Table 1 natural join table2 using(<column- list> • Not yet widely available in commercial implementations Bookstore SQL201W Module 2 23 Joining More than Two Tables • Can join several tables in one select • Try to limit to three or four • Join order can be important for performance (although optimizers will usually handle this for you) • Use parentheses to force order of evaluation (also vendor extensions, often called “hints”) Bookstore SQL201W Module 2 24 12
  • 48. Joining More than Two Tables • Add orderlines detail to previous queries SELECT customer_first_name, customer_street, orders.order_numb, orders.order_date, orderlines.isbn, orderlines.quantity FROM customers INNER JOIN orders ON customers.customer_numb=orders.customer_numb INNER JOIN orderlines on orders.order_numb = orderlines.order_numb Bookstore SQL201W Module 2 25 Multi-table Join with Results Bookstore SQL201W Module 2 26 13
  • 49. On Your Own • Add the book title to the previous query results • Hint: add another join to books table Bookstore SQL201W Module 2 27 Correlation Names (Table Aliases) • Can abbreviate references to tables • For example: Select e.name, j.payrange From employees as e Inner join job_information as j On e.jobcode = j.jobcode; Bookstore SQL201W Module 2 28 14
  • 50. Self Joins • Implements a recursive relationship • Important in various applications – Parts lists/assemblies – HR – Etc. – Table joined to itself using correlation names Bookstore SQL201W Module 2 29 Self Joins SELECT e.*, m.name FROM employees AS e, employees AS m WHERE e.managerid = m.employeeid; Bookstore SQL201W Module 2 30 15
  • 51. Bookstore SQL201W Module 2 31 Outer Joins • Left – selects all rows from the left or first table, even if no match exists in the other table – Widely used in commercial practice – Especially useful for reporting – Can be slower and interfere with optimizer • Right – same idea but all rows from right table • Full – all rows form both tables Bookstore SQL201W Module 2 32 16
  • 52. Left Outer Join Basic SQL 92 Syntax: Select <column-list> From <table1> Left join <table2> On <join condition> Bookstore SQL201W Module 2 33 Left-Join Basic Example: SELECT customer_first_name, customer_street, order_numb, order_date from customers as c left join orders as o on c.customer_numb = o.customer_numb Bookstore SQL201W Module 2 34 17
  • 53. Left Join with Results Bookstore SQL201W Module 2 35 On Your Own • List all books and corresponding quantities sold • Show isbn, title, quantity • How many books were there? • Now do the same but include books with no sales • Now how many? Bookstore SQL201W Module 2 36 18
  • 54. SQL200 SQL Programming Part 2– Subqueries, Unions (Not available in earlier versions of MySQL) Bookstore SQL201W Module 2 37 Subqueries • One select statement embedded in another • Can be nested multiple levels deep • Can be used in select, from and where clauses • Two types: – Uncorrelated – executes inner query then outer – Correlated – executes inner query once for each outer query row Bookstore SQL201W Module 2 38 19
  • 55. Uncorrelated Subquery select isbn, quantity from orderlines where order_numb in (select order_numb from orders where order_date between ‘1/1/99’ and ‘12/31/99’); Bookstore SQL201W Module 2 39 Uncorrelated Subquery with Results Bookstore SQL201W Module 2 40 20
  • 56. Negative Subquery • A type of subquery that matches “not found” conditions Bookstore SQL201W Module 2 41 Negative Subquery select isbn, quantity from orderlines where order_numb not in (select order_numb from orders where order_date between ‘1/1/99’ and ‘12/31/99’); Bookstore SQL201W Module 2 42 21
  • 57. Negative Subquery with Results Bookstore SQL201W Module 2 43 Correlated Subquery with Exists • Inner subquery executed once for each outer row • Exists will return true or false depending on whether the result will have any rows or not • Can be a quick way to test for existence of records (parent records, say) as used in application enforcement of referential integrity Bookstore SQL201W Module 2 44 22
  • 58. Correlated subquery with Exists SELECT isbn, quantity FROM orderlines AS ol WHERE exists (select * from orders o where ol.order_numb = o.order_numb and o.order_date between ‘1/1/99’ and ‘12/31/99’); This type of query covered in intermediate SQL class Bookstore SQL201W Module 2 45 Unions • Combines two or more tables • Tables must be union compatible Bookstore SQL201W Module 2 46 23
  • 59. Unions Select <column-list> from <table1> Union [ALL] Select <same-columns> from <table2> Bookstore SQL201W Module 2 47 Unions select * from employees union all select * from employees_copy Bookstore SQL201W Module 2 48 24
  • 60. Results of Union query Bookstore SQL201W Module 2 49 SQL200 SQL Programming Part 3 – Calculations, Aggregates Bookstore SQL201W Module 2 50 25
  • 61. Calculated Fields • Can add a column calculated from others SELECT order_numb, quantity, cost_each, quantity*cost_each as extension FROM orderlines Bookstore SQL201W Module 2 51 Calculated Fields • Can rename the new column, too SELECT order_numb, quantity, cost_each, quantity*cost_each as extension FROM Orderlines Bookstore SQL201W Module 2 52 26
  • 62. Calculated field w/ Given Name Bookstore SQL201W Module 2 53 Calculated field in the Result Bookstore SQL201W Module 2 54 27
  • 63. On Your Own • Calculate the total sales for the books in earlier query • Show isbn, titles, quantity, cost_each and extension Bookstore SQL201W Module 2 55 String Manipulation • Concatenation • Trim • Substring • Upper, Lower • Etc. (various vendor extensions) Bookstore SQL201W Module 2 56 28
  • 64. Concatenation • Used for concatenated keys • Useful to format reports Basic syntax: (Access) Field1 & Field2 (Oracle, std) Field1 || Field2 (Sql Server) Field1 + Field2 (MySQL) Concat(field1, field2) Bookstore SQL201W Module 2 57 Concatenation select concat(customer_first_name ,’ ‘,customer_last_name) as Name from customers Bookstore SQL201W Module 2 58 29
  • 65. Concatenation Bookstore SQL201W Module 2 59 Pretty up the concatenation • Use trim functions, add a space • Sort by last name – a neat trick for reporting! Bookstore SQL201W Module 2 60 30
  • 66. Date Functions • Numerous date functions • Often vendor specific • Often used: – year – month • Ex: where year(order_date) = 1999 Bookstore SQL201W Module 2 61 Date Functions • Remember your three table query with the order dates? • Restrict it to orders in December Bookstore SQL201W Module 2 62 31
  • 67. Aggregate Functions • Count • Sum • Min • Max • Avg • Often used in conjunction with grouping Bookstore SQL201W Module 2 63 Aggregate Functions Basic syntax: Select <function>(<column>) From <table> Group by <column-list> Having <predicate> Group by all columns to left of one(s) you want to aggregate Bookstore SQL201W Module 2 64 32
  • 68. Aggregate Functions SELECT order_numb, Count(*) AS [Number of Order Lines] , Sum(quantity) AS [Total Quantity], Sum(quantity * cost_each) AS [Total Amount] FROM order_lines GROUP BY order_numb having count(*) > 1; Bookstore SQL201W Module 2 65 Aggregates with Group By Bookstore SQL201W Module 2 66 33
  • 69. Having Clause SELECT Order_lines.order_numb, Count(*) AS ‘Number of Order Lines ‘, Sum(Order_lines.quantity) AS Total_Quantity, Sum(quantity*cost_each) AS extension FROM Order_lines GROUP BY Order_lines.order_numb having count(*) > 1 Bookstore SQL201W Module 2 67 Group By with Having Bookstore SQL201W Module 2 68 34
  • 70. Having vs. Where • Having and Where clauses are similar but not the same • Having removes groups after they are formed • Where removes rows before groups are formed Bookstore SQL201W Module 2 69 On Your Own • Find the aggregates without any grouping – see what you get • Then restrict the ISBN Bookstore SQL201W Module 2 70 35
  • 71. Summary Exercise • List all customers and their orders – Name nicely formatted – With orders in the year of 1999 (do not use between, etc.) – Show total order quantities and amounts – Only include orders with more than three order lines Bookstore SQL201W Module 2 71 Exercise Result [end module] Bookstore SQL201W Module 2 72 36
  • 72. SQL/200 SQL Programming Based on SQL Clearly Explained by Jan Harrington Workshop 3 – Modifying Data, Managing the Database Bookstore SQL201W Module 3 1 Note on SQL200 Slides • These slides were originally designed to support the single SQL200 course which was used for any of MS Access, Oracle and SQL Server. • As such you may see here slides developed in any one of the above products. • We are in the process of migrating the various vendor slides out into their own slide sets. These SQL200 slides will focus on Microsoft SQL Server and MySQL which are virtually identical for purposes of this course. Bookstore SQL201W Module 3 2 1
  • 73. Warning! • Below are some table name changes to be aware of in doing queries. We have created synonyms so either name should work. New Name Old Name Orders Order_filled Order_Lines Orderlines Bookstore SQL201W Module 3 3 SQL200 Contact Information P.O. Box 6142 Laguna Niguel, CA 92607 949-489-1472 http://www.d2associates.com slides.1@dhdursoassociates.com Copyright 2001-2011. All rights reserved. Bookstore SQL201W Module 3 4 2
  • 74. SQL200 Resources • Bookstore database scripts found on box.net at http://tinyurl.com/SQLScripts • Slides can be viewed on SlideShare… http://www.slideshare.net/OCDatabases • Follow up questions? sql.support@dhdursoassociates.com Bookstore SQL201W Module 3 5 SQL201W Module 3 • Part 1 – Modifying Data • Part 2 – Managing Database Structures • Part 3 – Creating Views and Indexes • Part 4 -- Security Bookstore SQL201W Module 3 6 3
  • 75. SQL/201W SQL Programming Part 1 – Modifying Data Bookstore SQL201W Module 3 7 Relational Database with constraints (from text) Bookstore SQL201W Module 3 8 4
  • 76. Data Modification Statements • Insert • Update • Delete Bookstore SQL201W Module 3 9 Data Modification Statements • End-user rarely sees these statements • Application developer prepares these statements “behind the scenes” based on forms filled out by user Bookstore SQL201W Module 3 10 5
  • 77. Insert • Adds new rows to an existing table • Two forms: – Single Row – Multi-Row Bookstore SQL201W Module 3 11 Single Row Insert Basic Syntax: Insert [into] <table-name> Values (<value-list>) Bookstore SQL201W Module 3 12 6
  • 78. Single Row Insert Basic Example: insert into sources(source_numb, source_name, source_street) values(22,'Specialty Books', 'Canal Street') Bookstore SQL201W Module 3 13 Insert Statement Bookstore SQL201W Module 3 14 7
  • 79. Sources table after Insert Bookstore SQL201W Module 3 15 Multi-row Insert Basic Syntax: Insert [into] <table-name> Select <select-statement> We will do this after creating a new table later in this module Bookstore SQL201W Module 3 16 8
  • 80. Update • Updates fields in an existing row Basic Syntax: Update <table-name> Set <field1> = new value, <field2> = new value,… Where <selection-criteria> Bookstore SQL201W Module 3 17 Update • Increase Ingram prices by 10% Example: Update books Set retail_price = retail_price *1.10 Where source_numb = 1 Bookstore SQL201W Module 3 18 9
  • 81. Ingram Book Prices before Update Bookstore SQL201W Module 3 19 Ingram Book Prices after Update Bookstore SQL201W Module 3 20 10
  • 82. After update in MS Access Bookstore SQL201W Module 3 21 Delete • Deletes one or more rows Basic Syntax: Delete from <table-name> Where <selection-criteria> Bookstore SQL201W Module 3 22 11
  • 83. Delete Example: Delete from sources Where source_numb = 22 Bookstore SQL201W Module 3 23 Delete Bookstore SQL201W Module 3 24 12
  • 84. Sources table after Delete Bookstore SQL201W Module 3 25 Delete and Referential Integrity • Can affect referential integrity when deleting a “parent” row • Can do following with child… – Cascade: delete the child row – Set null: set the child’s foreign key null – Set default: as above but to default value – No action: don’t allow delete of parent row • Referential integrity can be established when creating or modifying table structures which we will look at later in the class Bookstore SQL201W Module 3 26 13
  • 85. SQL/200 SQL Programming Part 2– Managing Database Structures Bookstore SQL201W Module 3 27 DDL • Create • Alter • Drop Bookstore SQL201W Module 3 28 14
  • 86. Schemas • Logical view of a database; sort of a “sub- database” – we will not cover these in this module or… – Catalogs – Clusters – Domains (somewhat like a user defined datatype) • These topics are highly dependent upon the vendor DBMS and installation practices Bookstore SQL201W Module 3 29 Tables • Base tables • Temporary tables – Local (or module scope) – Global (session scope) Bookstore SQL201W Module 3 30 15
  • 87. Creating Tables • Use create statement • Specify: – Columns with data types and column constraints – Table constraints • Foreign key references • Primary key designation Bookstore SQL201W Module 3 31 Data Types • Int – integers or whole numbers – Ex: how_many int • Char – fixed length fields – Ex: state char(2) • Varchar/Varchar2 – variable length fields – Ex: address varchar(35) • Money – money field; same as MS Access currency • Date/Datetime – date and time • And many others – see documentation or Help Bookstore SQL201W Module 3 32 16
  • 88. Create Table Basic syntax: Create table <table-name> <column1> <datatype> <constraints> ,.. <column1> <datatype> <constraints> … <table constraints> Note: often preceded by a drop Bookstore SQL201W Module 3 33 Temporary Tables Basic syntax (SQL standard): Create [global] temporary table <table-name> <rest of statement as for normal create> Note: SQL Server uses a different syntax. Just put a #in front of the table name as in #mytable. Bookstore SQL201W Module 3 34 17
  • 89. Column Constraints • Primary key • Not NULL • CHECK clause • Default • Unique Bookstore SQL201W Module 3 35 Table Constraints • Primary Key • Foreign Key • Compare fields against each other. I.e. ship_date >= order_date Bookstore SQL201W Module 3 36 18
  • 90. But first – the Drop Statement • Deletes a database “object” – Drop table <table-name> – Drop view <view-name> – Drop index <index-name> – Drop domain <domain-name> Bookstore SQL201W Module 3 37 Create Table Example 1: Create a summary table Create table summary( isbn varchar(20) primary key, How_many int check (how_many >= 0), Constraint isbn_fk Foreign key (isbn) references books(isbn) ) Bookstore SQL201W Module 3 38 19
  • 91. Create Summary Table Bookstore SQL201W Module 3 39 Constraints on Summary Table Bookstore SQL201W Module 3 40 20
  • 92. Multi-row Insert Basic Syntax: Insert [into] <table-name> [(<column list>)] Select <select-statement> Bookstore SQL201W Module 3 41 Multi-row Insert Basic Example: (store # times each book ordered) Insert into summary Select isbn, count(*) From orderlines Group by isbn; Bookstore SQL201W Module 3 42 21
  • 93. Multi-row Insert Bookstore SQL201W Module 3 43 After multi-row insert in MS Access Bookstore SQL201W Module 3 44 22
  • 94. SQL/200 SQL Programming Part 3 – Creating Views and Indexes, Modifying Structures Bookstore SQL201W Module 3 45 Views • Think of a view as a named query wherein the definition is stored in the database • Can be read like a table • Some are updateable Bookstore SQL201W Module 3 46 23
  • 95. Views Basic syntax: Create view <view-name> (<column-list>) As <select statement> Bookstore SQL201W Module 3 47 Creating a View Bookstore SQL201W Module 3 48 24
  • 96. Using Views • Can be used like a table subject to various limitations – Cannot insert into grouped queries, etc. – Etc. • Sample syntax: select column-list from employee_view Bookstore SQL201W Module 3 49 Using a View Bookstore SQL201W Module 3 50 25
  • 97. Indexes • Used to speed searches, joins, etc. • Placed on: – primary and foreign keys – Secondary keys • In commercial practice often managed by DBA’s for large databases Bookstore SQL201W Module 3 51 Indexes Basic syntax: Create [unique] index <index-name> On <table-name> (field-name> [desc]) Note: can place index on a composite key; ex: state and city Bookstore SQL201W Module 3 52 26
  • 98. Indexes Basic example: create index state_inx on customers(customer_state) Bookstore SQL201W Module 3 53 Customers table with index Bookstore SQL201W Module 3 54 27
  • 99. Dropping an index Basic Syntax: – Drop index <table-name.index-name>; Bookstore SQL201W Module 3 55 Modifying a Table Design • Applies to tables • Use ALTER statement – Add columns – Delete columns – Rename columns – Add column constraints – Add table constraints Bookstore SQL201W Module 3 56 28
  • 100. Modifying a Table Design Basic syntax: Alter <table-name> Add <field-name>, Add <table-constraint>, Modify <field-name> Etc. Bookstore SQL201W Module 3 57 Modify a Table Design Example: add a phone number field alter table publishers add phone char(12); Bookstore SQL201W Module 3 58 29
  • 101. After alter publishers table Bookstore SQL201W Module 3 59 SQL/200 SQL Programming Part 4 – Security Bookstore SQL201W Module 3 60 30
  • 102. Security • Important DBA function – Beyond scope of this course – Typically controlled through Enterprise Manager or Studio GUI’s • In commercial practice application security frequently controlled via own login and a “users” table or similar Bookstore SQL201W Module 3 61 Security • Specifics can vary by product • Access: workgroup administrator • SQL Server: users, roles • Oracle: users, roles Bookstore SQL201W Module 3 62 31
  • 103. SQL Security Statements • Grant • Revoke • Deny Bookstore SQL201W Module 3 63 Grant Syntax: Grant <access-right> [with grant option] On <object> to <user> Note: by default only tables owners and admins can access a table. Others must be granted the relevant rights. Bookstore SQL201W Module 3 64 32
  • 104. Access Rights • Select • Update • Insert • Delete • References • All privileges Bookstore SQL201W Module 3 65 Grant Example: Grant update On employees to ddurso Bookstore SQL201W Module 3 66 33
  • 105. Revoke • Revokes the rights • Syntax similar to grant [end module] Bookstore SQL201W Module 3 67 Notes Bookstore SQL201W Module 3 68 34
  • 106. Orange Coast Database Associates Course (800)355-9855 or http://www.d2associates.com Accelerated Computer Training Orange Coast Database Associates Specializing in Microsoft Office, Access, SQL, and related technologies Computer Training, Programming & Consulting 32422 Alipaz St., Suite A-15 San Juan Capistrano, CA (800)355-9855 (Toll Free) | (949)489-1472 (Direct) | (949)485-6284 (Fax) http://www.d2associates.com | sales@dhdursoassociates.com Accelerated Computer Training for Working Professionals