* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Document
Tandem Computers wikipedia , lookup
Serializability wikipedia , lookup
Relational algebra wikipedia , lookup
Microsoft Access wikipedia , lookup
Oracle Database wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Ingres (database) wikipedia , lookup
Concurrency control wikipedia , lookup
Functional Database Model wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
ContactPoint wikipedia , lookup
Clusterpoint wikipedia , lookup
Chapter 7 Introduction to Structured Query Language (SQL) 5/22/2017 Database Concepts 1 Objectives • Definition of terms • Interpret history and role of SQL • Define a database using SQL data definition language • Write single table queries using SQL • Establish referential integrity using SQL • Discuss SQL:1999 and SQL:2003 standards 5/22/2017 Database Concepts 2 The Physical Design Stage of SDLC (Revisited) Project Identification and Selection Database activity – physical database design and database implementation Project Initiation and Planning Analysis Logical Design Physical Physical Design Design Purpose –programming, testing, training, installation, documenting Deliverable – operational programs, documentation, training materials, program/data structures 5/22/2017 Database Concepts Implementation Implementation Maintenance 3 SQL Overview • Structured Query Language – Pronounced Sequel or S-Q-L • The standard for Relational Database Management Systems (RDBMS) – Data management system which implements a relational data model • Data is stored in collection of tables • Data relationships are represented by common values in related tables, not links 5/22/2017 Database Concepts 4 History of SQL 1970 E. Codd develops relational database concept 1974-1979 System R with Sequel (later SQL) created at IBM Research Lab 1979 Oracle markets first relational DB with SQL 1986 ANSI SQL standard released 1989, 1992, 1999, 2003 Major ANSI standard updates Current SQL is supported by most major database vendors 5/22/2017 Database Concepts 5 Purpose of SQL Standards • Specifies syntax/semantics for data definition and manipulation • Defines data structures and basic operations – For designing, accessing, maintaining, controlling and protecting an SQL database • Enables portability between conforming DBMS’s • Specifies minimal (level 1) and complete (level 2) standards • Provides for later growth/enhancement to standard 5/22/2017 Database Concepts 6 Benefits of a Standardized Relational Language • • • • • Reduced training costs Productivity Application portability Application longevity Reduced dependence on a single vendor (nonproprietary) • Cross-system communication 5/22/2017 Database Concepts 7 SQL Environment -1 • Catalog – A set of schemas that constitute the description of a database • Schema – The structure that contains descriptions of related objects created by a user (base tables, views, constraints) • Data Definition Language (DDL) – Commands that define a database, including creating, altering, and dropping tables and establishing constraints 5/22/2017 Database Concepts 8 SQL Environment -2 • Data Manipulation Language (DML) – Commands that maintain and query a database • Data Control Language (DCL) – Commands that control a database, including administering privileges and committing data 5/22/2017 Database Concepts 9 Typical SQL Environment Simplified Schematic As described by the SQL-92 Standard 5/22/2017 Database Concepts 10 Some SQL Data types (from Oracle) 5/22/2017 Database Concepts 11 Database Development Process DDL DML DCL 5/22/2017 Database Concepts 12 SQL Database Definition • Data Definition Language (DDL) • Major CREATE statements: – CREATE SCHEMA • defines a portion of the database owned by a particular user – CREATE TABLE • defines a table and its columns – CREATE VIEW • defines a logical table from one or more views 5/22/2017 Database Concepts 13 SQL Database Definition • Other CREATE statements: – CHARACTER SET • Defines a character set for text strings – COLLATION • Specifies the order of the character set – TRANSLATION • Rules that map characters from source CS to a destination CS – ASSERTION • Established a CHECK constraint – DOMAIN • Sets a domain for valid values 5/22/2017 Database Concepts 14 Table Creation General Syntax for CREATE TABLE Steps in table creation: 1. Identify data types for attributes 2. Identify columns that can and cannot be null 3. Identify columns that must be unique (candidate keys) 4. Identify primary keyforeign key mates 5. Determine default values 6. Identify constraints on columns (domain specifications) 7. Create the table and associated indexes 5/22/2017 Database Concepts 15 The Enterprise Data Model for Pine Valley Furniture 5/22/2017 Database Concepts 16 Tables Defined SQL Database Definition Commands Overall table definitions Customer_T Order_T Product_t Order_Line_T 5/22/2017 Database Concepts 17 Defining Attributes and their Data Types 5/22/2017 Database Concepts 18 Non-nullable specification Primary keys can never have NULL values Identifying primary key 5/22/2017 Database Concepts 19 Non-nullable specifications Primary key Some primary keys are composite – composed of multiple attributes 5/22/2017 Database Concepts 20 Controlling the values in attributes Default value Domain constraint 5/22/2017 Database Concepts 21 Identifying Foreign Keys and Establishing Relationships Primary key of parent table 5/22/2017 Foreign key of dependent table Database Concepts 22 Data Integrity Controls • Referential integrity – constraint that ensures that foreign key values of a table must match primary key values of a related table in 1:M relationships • Restricting: – Deletes of primary records – Updates of primary records – Inserts of dependent records 5/22/2017 Database Concepts 23 Ensuring Data Integrity Through Updates Relational integrity is enforced via the primarykey to foreignkey match 5/22/2017 Database Concepts 24 Changing and Removing Tables • ALTER TABLE statement allows changes in change column specifications: – ALTER TABLE CUSTOMER_T ADD (TYPE VARCHAR(2)) • DROP TABLE statement removal of tables from schema: – DROP TABLE CUSTOMER_T 5/22/2017 Database Concepts 25 Schema Definition • Control processing/storage efficiency: – – – – – Choice of indexes File organizations for base tables File organizations for indexes Data clustering Statistics maintenance • Creating indexes – Speed up random/sequential access to base table data – Example • CREATE INDEX NAME_IDX ON CUSTOMER_T(CUSTOMER_NAME) • This makes an index for the CUSTOMER_NAME field of the CUSTOMER_T table 5/22/2017 Database Concepts 26 Insert Statements -1 • Adds data to a table • Inserting into a table – INSERT INTO CUSTOMER_T VALUES (001, ‘Contemporary Casuals’, ‘1355 S. Himes Blvd.’, ‘Gainesville’, ‘FL’, 32601); 5/22/2017 Database Concepts 27 Insert Statements -2 • Inserting a record that has some null attributes requires identifying the fields that actually get data – INSERT INTO PRODUCT_T (PRODUCT_ID, PRODUCT_DESCRIPTION, PRODUCT_FINISH, STANDARD_PRICE, PRODUCT_ON_HAND) VALUES (1, ‘End Table’, ‘Cherry’, 175, 8); • Inserting from another table – INSERT INTO CA_CUSTOMER_T SELECT * FROM CUSTOMER_T WHERE STATE = ‘CA’; 5/22/2017 Database Concepts 28 Creating Tables with Identity Columns New with SQL:2003 Inserting into a table does not require explicit customer ID entry or field list INSERT INTO CUSTOMER_T VALUES ( ‘Contemporary Casuals’, ‘1355 S. Himes Blvd.’, ‘Gainesville’, ‘FL’, 32601); 5/22/2017 Database Concepts 29 Delete Statement • Removes rows from a table • Delete certain rows – DELETE FROM CUSTOMER_T WHERE STATE = ‘HI’; • Delete all rows – DELETE FROM CUSTOMER_T; 5/22/2017 Database Concepts 30 Update Statement • Modifies data in existing rows – UPDATE PRODUCT_T SET UNIT_PRICE = 775 WHERE PRODUCT_ID = 7; 5/22/2017 Database Concepts 31 Merge Statement Makes it easier to update a table…allows combination of Insert and Update in one statement Useful for updating master tables with new data 5/22/2017 Database Concepts 32 SELECT Statement Used for queries on single or multiple tables Clauses of the SELECT statement: • SELECT • GROUP BY – List the columns (and expressions) that should be returned from the query • FROM – Indicate the table(s) or view(s) from which data will be obtained • HAVING – Indicate the conditions under which a category (group) will be included • ORDER BY • WHERE – Indicate the conditions under which a row will be included in the result 5/22/2017 – Indicate categorization of results – Sorts the result according to specified criteria Database Concepts 33 SQL Statement Processing Order Adapted from van der Lans 5/22/2017 Database Concepts 34 SQL Examples 5/22/2017 Database Concepts 35 SELECT • Find products with standard price less than $275 _V indicates a View where the View is the Result SELECT PRODUCT_NAME, STANDARD_PRICE FROM PRODUCT_V WHERE STANDARD_PRICE < 275; Result: PRODUCT_NAME 5/22/2017 STANDARD_PRICE End Table 175 Computer Desk 250 Coffee Table 200 Database Concepts 36 SQL Comparison Operators (notice the Not Equal To) 5/22/2017 Database Concepts 37 SELECT Using Alias • Alias is an alternative column or table name SELECT CUST.CUSTOMER AS NAME, CUST.CUSTOMER_ADDRESS Alias for Customer Name FROM CUSTOMER_V CUST WHERE NAME = ‘Home Furnishings’; Result: 5/22/2017 NAME CUSTOMER_ADDRESS Home Furnishings 1900 Allard Ave. Database Concepts 38 Using a Function • Using the COUNT aggregate function to find totals Result: SELECT COUNT(*) COUNT (*) FROM ORDER_LINE_V 2 WHERE ORDER_ID = 1004; • Note: aggregate functions can’t have single-valued columns included in the SELECT clause • Aggregate functions only produce a one-row answer. • Note differences between COUNT (*) and COUNT 5/22/2017 Database Concepts 39 Using Boolean Operators & the Like • AND, OR, and NOT Operators for customizing conditions in WHERE clause • The LIKE operator permits comparing strings using wildcards. – Example • The % wildcard in ‘%Desk’ indicates that all strings that have any number of characters preceding the word “Desk” will be allowed 5/22/2017 Database Concepts 40 Using Boolean Operators & Like SELECT PRODUCT_DESCRIPTION, PRODUCT_FINISH, STANDARD_PRICE FROM PRODUCT_V WHERE (PRODUCT_DESCRIPTION LIKE ‘%Desk’ OR PRODUCT_DESCRIPTION LIKE ‘%Table’) AND UNIT_PRICE > 300; Result: 5/22/2017 PRODUCT_DESCRIPTION PRODUCT_FINISH Computer Desk Natural Ash 375 Writer's Desk Cherry 325 8-Drawer Desk White Ash 750 Dining Table Natural Ash 800 Computer Desk Walnut 350 Database Concepts STANDARD_PRICE 41 Venn Diagram from Previous Query 5/22/2017 Database Concepts 42 Using Ranges SELECT PRODUCT_DESCRIPTION, STANDARD_PRICE FROM PRODUCT_V WHERE STANDARD_PRICE > 199 AND STANDARD_PRICE < 301; Result: PRODUCT_NAME STANDARD_PRICE Coffee Table 200 Computer Desk 250 5/22/2017 Database Concepts 43 Using Distinct & All • Can only be used once in a SELECT statement SELECT DISTINCT ORDER_ID FROM ORDER_LINE_V; • Returns only one occurrence of each ORDER_ID instead of all occurrences 5/22/2017 Database Concepts 44 Sorting Results with the ORDER BY Clause • Sort the results first by STATE, and within a state by CUSTOMER_NAME SELECT CUSTOMER_NAME, CITY, STATE FROM CUSTOMER_V WHERE STATE IN (‘FL’, ‘TX’, ‘CA’, ‘HI’) ORDER BY STATE, CUSTOMER_NAME; Result: CUSTOMER_NAME CITY ST California Classics Santa Clara CA Impressions Sacramento CA Contemporary Casuals Gainesville FL M and H Casual Furniture Clearwater FL Seminole Interiors Seminole FL Kaneohe Homes Kaneohe HI Value Furniture Plano TX 5/22/2017 Database Concepts Note: the IN operator includes rows whose STATE value is either FL, TX, CA, or HI. It is more efficient than separate OR conditions. NOT IN can also be used. 45 Categorizing Results Using the GROUP BY Clause • For use with aggregate functions – Scalar aggregate • single value returned from SQL query with aggregate function – Vector aggregate • multiple values returned from SQL query with aggregate function (via GROUP BY) – Note: you can use single-value fields with aggregate functions if they are included in the GROUP BY clause 5/22/2017 Database Concepts 46 Categorizing Results Using the GROUP BY Clause SELECT CUSTOMER_STATE, COUNT(CUSTOMER_STATE) FROM CUSTOMER_V GROUP BY CUSTOMER_STATE 5/22/2017 Database Concepts Result: ST COUNT(STATE) CA 2 CO 1 FL 3 HI 1 MI 1 NJ 2 NY 1 PA 1 TX 1 UT 1 WA 1 47 Qualifying Results by Categories Using the HAVING Clause with Group By SELECT STATE, COUNT(CUSTOMER_STATE) FROM CUSTOMER_V GROUP BY CUSTOMER_STATE HAVING COUNT(CUSTOMER_STATE) > 1; Result: ST COUNT(CUSTOMER_STATE) CA 2 FL 3 NJ 2 Like a WHERE clause, but it operates on groups (categories), not on individual rows. Here, only those groups with total numbers greater than 1 will be included in final result 5/22/2017 Database Concepts 48 Views 5/22/2017 Database Concepts 49 Using and Defining Views • Views provide users controlled access to tables • Base Table – table containing the raw data 5/22/2017 Database Concepts 50 Dynamic & Materialized Views • Dynamic View • Materialized View – A “virtual table” created dynamically upon request by a user – No data actually stored; instead data from base table made available to user – Based on SQL SELECT statement on base tables or other views 5/22/2017 – Copy or replication of data – Data actually stored – Must be refreshed periodically to match the corresponding base tables Database Concepts 51 Sample CREATE VIEW CREATE VIEW EXPENSIVE_STUFF_V AS SELECT PRODUCT_ID, PRODUCT_NAME, UNIT_PRICE FROM PRODUCT_T WHERE UNIT_PRICE >300 WITH CHECK_OPTION; View has a name View is based on a SELECT statement CHECK_OPTION works only for updateable views and prevents updates that would create rows not included in the view 5/22/2017 Database Concepts 52 Advantages of Views • Simplify query commands • Assist with data security – Caution: do not rely on views for security exclusively, there are more important security measures • • • • • Enhance programming productivity Contain most current base table data Use little storage space Provide customized view for user Establish physical data independence 5/22/2017 Database Concepts 53 Disadvantages of Views • Use processing time each time view is referenced • May or may not be directly updateable 5/22/2017 Database Concepts 54 Homework Assignment • Homework Assignment 7 • In Class Exercise – Do Project Assignment #P1, Page 332 5/22/2017 Database Concepts 55 5/22/2017 Database Concepts 56