Concepts of Database Management Sixth Edition Chapter 3 The Relational Model 2: SQL Objectives • • • • • Introduce Structured Query Language (SQL) Use simple and compound conditions in SQL Use computed fields in SQL Use built-in SQL functions Use subqueries in SQL Concepts of Database Management 2 Objectives (continued) • • • • • Group records in SQL Join tables using SQL Perform union operations in SQL Use SQL to update database data Use an SQL query to create a table in a database Concepts of Database Management 3 Introduction • SQL (Structured Query Language) – Allows users to query a relational database – Must enter commands to obtain the desired results – Standard language for relational database manipulation Concepts of Database Management 4 Getting Started with SQL • If you are completing the work in this chapter using Microsoft Office Access 2003, Microsoft Office Access 2007, or MySQL version 4.1 or higher, the following sections contain specific information about your DBMS Concepts of Database Management 5 Getting Started with Microsoft Office Access 2003 and 2007 • If you are using the Access 2003 or 2007 version of the Premiere Products database provided with the Data Files for this text: – Tables in the database have already been created – You will not need to execute the CREATE TABLE commands to create the tables or the INSERT commands to add records to the tables Concepts of Database Management 6 Getting Started with Microsoft Office Access 2003 and 2007 (continued) • To execute the SQL commands shown in the figures in Access 2003 – Open the Premiere Products database – Click Queries on the Objects bar in the Database window, and then double-click the “Create query in Design view” option – Click the Close button in the Show Table dialog box – Click the View button list arrow on the Query Design toolbar, and then click SQL View – The query opens in SQL view, ready for you to type your SQL commands Concepts of Database Management 7 Getting Started with Microsoft Office Access 2003 and 2007 (continued) • To execute SQL commands shown in the figures in Access 2007: – – – – – Open the Premiere Products database Click the Create tab on the Ribbon Click the Query Design button in the Other group Click the Close button in the Show Table dialog box Click the View button arrow in the Results group on the Query Design Tools tab, then click SQL View – The Query1 tab displays the query in SQL view, ready for you to type your SQL commands Concepts of Database Management 8 Getting Started with MySQL • MySQL-Premiere script provided with the Data Files for this text will: – Activate the database – Create the tables – Insert the records • To run a script in MySQL: – Type the SOURCE command followed by the name of the file – Press the Enter key Concepts of Database Management 9 Getting Started with MySQL (continued) • Before typing commands in MySQL, you must activate the database by typing the USE command followed by the name of the database • The most recent command entered in MySQL is stored in a special area of memory called the statement history Concepts of Database Management 10 Table Creation • SQL CREATE TABLE command – Creates a table by describing its layout • Typical restrictions placed on table and column names by DBMS – Names cannot exceed 18 characters – Names must start with a letter – Names can contain only letters, numbers, and underscores (_) – Names cannot contain spaces Concepts of Database Management 11 Table Creation (continued) • INTEGER – Numbers without a decimal point • SMALLINT – Uses less space than INTEGER • DECIMAL(p,q) – P number of digits; q number of decimal places • CHAR(n) – Character string n places long • DATE – Dates in DD-MON-YYYY or MM/DD/YYYY form Concepts of Database Management 12 Simple Retrieval • SELECT-FROM-WHERE: SQL retrieval command – SELECT clause: lists fields to display – FROM clause: lists table or tables that contain data to display in query results – WHERE clause (optional): lists any conditions to be applied to the data to retrieve • Simple condition: field name, a comparison operator, and either another field name or a value Concepts of Database Management 13 Simple Retrieval (continued) FIGURE 3-5: SQL query with WHERE condition Concepts of Database Management 14 Simple Retrieval (continued) FIGURE 3-6: Query results Concepts of Database Management 15 Simple Retrieval (continued) FIGURE 3-7: Comparison operators used in SQL commands Concepts of Database Management 16 Compound Conditions • Compound condition – Connecting two or more simple conditions using one or both of the following operators: AND and OR – Preceding a single condition with the NOT operator • Connecting simple conditions using AND operator – All of the simple conditions must be true for the compound condition to be true • Connecting simple conditions using OR operator – Any of the simple conditions must be true for the compound condition to be true Concepts of Database Management 17 Compound Conditions (continued) FIGURE 3-14: Compound condition that uses the AND operator FIGURE 3-15: Query results Concepts of Database Management 18 Compound Conditions (continued) FIGURE 3-16: Compound condition that uses the OR operator FIGURE 3-17: Query results Concepts of Database Management 19 Compound Conditions (continued) • Preceding a condition by NOT operator – Reverses the truth or falsity of the original condition • BETWEEN operator – Value must be between the listed numbers Concepts of Database Management 20 Computed Fields • Computed field or calculated field – Field whose values you derive from existing fields – Can involve: • • • • Addition (+) Subtraction (-) Multiplication (*) Division (/) Concepts of Database Management 21 Computed Fields (continued) FIGURE 3-24: SQL query with a computed field and condition FIGURE 3-25: Query results Concepts of Database Management 22 Using Special Operators (LIKE and IN) • Wildcards in Access SQL – Asterisk (*): collection of characters – Question mark (?): any individual character • Wildcards in MySQL – Percent sign (%): any collection of characters – Underscore (_): any individual character • To use a wildcard, include the LIKE operator in the WHERE clause • IN operator provides a concise way of phrasing certain conditions Concepts of Database Management 23 Using Special Operators (LIKE and IN) (continued) FIGURE 3-26: SQL query with a LIKE operator FIGURE 3-27: Query results Concepts of Database Management 24 Using Special Operators (LIKE and IN) (continued) FIGURE 3-28: SQL query with an IN operator FIGURE 3-29: Query results Concepts of Database Management 25 Sorting • Sort data using the ORDER BY clause • Sort key: field on which to sort data • When sorting data on two fields: – Major sort key (or primary sort key): more important sort key – Minor sort key (or secondary sort key): less important sort key Concepts of Database Management 26 Sorting (continued) FIGURE 3-32: SQL query to sort data on multiple fields FIGURE 3-33: Query results Concepts of Database Management 27 Built-in Functions • Built-in functions (aggregate functions) in SQL – COUNT: calculates number of entries – SUM or AVG: calculates sum or average of all entries in a given column – MAX or MIN: calculates largest or smallest values respectively Concepts of Database Management 28 Built-in Functions (continued) FIGURE 3-34: SQL query to count records FIGURE 3-35: Query results Concepts of Database Management 29 Subqueries • Subquery: inner query • Subquery is evaluated first • Outer query is evaluated after the subquery Concepts of Database Management 30 Subqueries (continued) FIGURE 3-40: SQL query with a subquery FIGURE 3-41: Query results Concepts of Database Management 31 Grouping • Create groups of records that share a common characteristic • GROUP BY clause indicates grouping in SQL • HAVING clause is to groups what the WHERE clause is to rows Concepts of Database Management 32 Grouping (continued) FIGURE 3-44: SQL query to restrict the groups that are included FIGURE 3-45: Query results Concepts of Database Management 33 Joining Tables • • • Queries can locate data from more than one table Enter appropriate conditions in the WHERE clause To join tables, construct the SQL command as: 1. SELECT clause: list all fields you want to display 2. FROM clause: list all tables involved in the query 3. WHERE clause: give the condition that will restrict the data to be retrieved to only those rows from the two tables that match Concepts of Database Management 34 Joining Tables (continued) FIGURE 3-48: SQL query to join tables Concepts of Database Management 35 Joining Tables (continued) FIGURE 3-49: Query results Concepts of Database Management 36 Union • Union of two tables is a table containing all rows in the first table, the second table, or both tables • Two tables involved must be union compatible – Same number of fields – Corresponding fields must have same data types Concepts of Database Management 37 Union (continued) FIGURE 3-54: SQL query to perform a union FIGURE 3-55: Query results Concepts of Database Management 38 Updating Tables • UPDATE command makes changes to existing data • INSERT command adds new data to a table • DELETE command deletes data from the database Concepts of Database Management 39 Updating Tables (continued) FIGURE 3-56: SQL query to update data FIGURE 3-57: SQL query to insert a row Concepts of Database Management 40 Updating Tables (continued) FIGURE 3-58: SQL query to delete rows Concepts of Database Management 41 Creating a Table from a Query • INTO clause – Saves the results of a query as a table – Specified before FROM and WHERE clauses • MySQL – Create the new table using a CREATE TABLE command – Use an INSERT command to insert the appropriate data into the new table Concepts of Database Management 42 Creating a Table from a Query (continued) FIGURE 3-59a: Query to create a new table (Access) Concepts of Database Management 43 Creating a Table from a Query (continued) FIGURE 3-59b: Query to create a new table (MySQL) Concepts of Database Management 44 Summary of SQL Commands • Generic versions of SQL commands for every example presented in this chapter • In most cases, commands in Access are identical to the generic versions • For those commands that differ, both the generic version and the Access version are included Concepts of Database Management 45 Summary • Structured Query Language (SQL) is a language that is used to manipulate relational databases • Basic form of an SQL query: SELECT-FROMWHERE • Use CREATE TABLE command to describe table layout to the DBMS, which creates the table • In SQL retrieval commands, fields are listed after SELECT, tables are listed after FROM, and conditions are listed after WHERE • In conditions, character values must be enclosed in single quotation marks Concepts of Database Management 46 Summary (continued) • Compound conditions are formed by combining simple conditions using either or both of the following operators: AND and OR • Sorting is accomplished using ORDER BY clause • When the data is sorted in more than one field, can have a major and minor sort keys • Grouping: use the GROUP BY clause • HAVING clause: restricts the rows to be displayed Concepts of Database Management 47 Summary (continued) • Joining tables: use a condition that relates matching rows in the tables to be joined • Built-in (aggregate) functions: COUNT, SUM, AVG, MAX, and MIN • One SQL query can be placed inside another; the subquery is evaluated first • UNION operator: unifies the results of two queries Concepts of Database Management 48 Summary (continued) • Calculated fields: include the calculation, the word AS, the name of the calculated field • INSERT command adds a new row to a table • UPDATE command changes existing data • DELETE command deletes records • INTO clause is used in a SELECT command to create a table containing the results of the query Concepts of Database Management 49