2 Objectives • Explore basiccommands and functions of SQL • How to use SQL for data administration (to create tables, indexes, and views) • How to use SQL for data manipulation (to add, modify, delete, and retrieve data) • How to use SQL to query a database to extract useful information
3.
3 Introduction to SQL •SQL functions fit into two broad categories: – Data definition language • SQL includes commands to: – Create database objects, such as tables, indexes, and views – Define access rights to those database objects – Data manipulation language • Includes commands to insert, update, delete, and retrieve data within database tables
4.
4 Introduction to SQL(continued) • SQL is relatively easy to learn • Basic command set has vocabulary of less than 100 words • Nonprocedural language • American National Standards Institute (ANSI) prescribes a standard SQL • Several SQL dialects exist
10 Creating the Database •Following two tasks must be completed: – Create database structure – Create tables that will hold end-user data • First task: – RDBMS creates physical files that will hold database – Tends to differ substantially from one RDBMS to another
11.
11 The Database Schema •Authentication – Process through which DBMS verifies that only registered users are able to access database – Log on to RDBMS using user ID and password created by database administrator • Schema – Group of database objects—such as tables and indexes—that are related to each other
12.
12 Data Types • Datatype selection is usually dictated by nature of data and by intended use • Pay close attention to expected use of attributes for sorting and data retrieval purposes
14 Creating Table Structures •Use one line per column (attribute) definition • Use spaces to line up attribute characteristics and constraints • Table and attribute names are capitalized • NOT NULL specification • UNIQUE specification
15.
15 Creating Table Structures (continued) •Primary key attributes contain both a NOT NULL and a UNIQUE specification • RDBMS will automatically enforce referential integrity for foreign keys • Command sequence ends with semicolon
16.
16 SQL Constraints • NOTNULL constraint – Ensures that column does not accept nulls • UNIQUE constraint – Ensures that all values in column are unique • DEFAULT constraint – Assigns value to attribute when a new row is added to table • CHECK constraint – Validates data when attribute value is entered
17.
17 SQL Indexes • Whenprimary key is declared, DBMS automatically creates unique index • Often need additional indexes • Using CREATE INDEX command, SQL indexes can be created on basis of any selected attribute • Composite index – Index based on two or more attributes – Often used to prevent data duplication
19 Adding Table Rows •INSERT – Used to enter data into table – Syntax: • INSERT INTO columnname VALUES (value1, value2, … , valuen);
20.
20 Adding Table Rows(continued) • When entering values, notice that: – Row contents are entered between parentheses – Character and date values are entered between apostrophes – Numerical entries are not enclosed in apostrophes – Attribute entries are separated by commas – A value is required for each column • Use NULL for unknown values
21.
21 Saving Table Changes •Changes made to table contents are not physically saved on disk until, one of the following occurs: – Database is closed – Program is closed – COMMIT command is used • Syntax: – COMMIT [WORK]; • Will permanently save any changes made to any table in the database
22.
22 Listing Table Rows •SELECT – Used to list contents of table – Syntax: • SELECT columnlist FROM tablename; • Columnlist represents one or more attributes, separated by commas • Asterisk can be used as wildcard character to list all attributes
23.
23 Updating Table Rows •UPDATE – Modify data in a table – Syntax: • UPDATE tablename SET columnname = expression [, columname = expression] [WHERE conditionlist]; • If more than one attribute is to be updated in row, separate corrections with commas
24.
24 Restoring Table Contents •ROLLBACK – Used to restore database to its previous condition – Only applicable if COMMIT command has not been used to permanently store changes in database • Syntax: – ROLLBACK; • COMMIT and ROLLBACK only work with data manipulation commands that are used to add, modify, or delete table rows
25.
25 Deleting Table Rows •DELETE – Deletes a table row – Syntax: • DELETE FROM tablename [WHERE conditionlist ]; • WHERE condition is optional • If WHERE condition is not specified, all rows from specified table will be deleted
26.
26 Inserting Table Rowswith a Select Subquery • INSERT – Inserts multiple rows from another table (source) – Uses SELECT subquery • Query that is embedded (or nested) inside another query • Executed first – Syntax: • INSERT INTO tablename SELECT columnlist FROM tablename;
27.
27 Selecting Rows with ConditionalRestrictions • Select partial table contents by placing restrictions on rows to be included in output – Add conditional restrictions to SELECT statement, using WHERE clause • Syntax: – SELECT columnlist FROM tablelist [ WHERE conditionlist ] ;
30 Arithmetic Operators: The Ruleof Precedence • Perform operations within parentheses • Perform power operations • Perform multiplications and divisions • Perform additions and subtractions
32 Special Operators • BETWEEN –Used to check whether attribute value is within a range • IS NULL – Used to check whether attribute value is null • LIKE – Used to check whether attribute value matches given string pattern
33.
33 Special Operators (continued) •IN – Used to check whether attribute value matches any value within a value list • EXISTS – Used to check if subquery returns any rows
34.
34 Advanced Data Definition Commands •All changes in table structure are made by using ALTER command – Followed by keyword that produces specific change – Following three options are available: • ADD • MODIFY • DROP
35.
35 Changing a Column’sData Type • ALTER can be used to change data type • Some RDBMSs (such as Oracle) do not permit changes to data types unless column to be changed is empty
36.
36 Changing a Column’sData Characteristics • Use ALTER to change data characteristics • If column to be changed already contains data, changes in column’s characteristics are permitted if those changes do not alter the data type
37.
37 Adding a Column •Use ALTER to add column – Do not include the NOT NULL clause for new column
38.
38 Dropping a Column •Use ALTER to drop column – Some RDBMSs impose restrictions on the deletion of an attribute
40 Copying Parts ofTables • SQL permits copying contents of selected table columns so that the data need not be reentered manually into newly created table(s) • First create the PART table structure • Next add rows to new PART table using PRODUCT table rows
41.
41 Adding Primary andForeign Key Designations • When table is copied, integrity rules do not copy, so primary and foreign keys need to be manually defined on new table • User ALTER TABLE command – Syntax: • ALTER TABLE tablename ADD PRIMARY KEY(fieldname); • For foreign key, use FOREIGN KEY in place of PRIMARY KEY
42.
42 Deleting a Tablefrom the Database • DROP – Deletes table from database – Syntax: • DROP TABLE tablename;
43.
43 Advanced Select Queries •SQL provides useful functions that can: – Count – Find minimum and maximum values – Calculate averages • SQL allows user to limit queries to only those entries having no duplicates or entries whose duplicates may be grouped
52 Virtual Tables: Creatinga View • View is virtual table based on SELECT query – Can contain columns, computed columns, aliases, and aggregate functions from one or more tables • Base tables are tables on which view is based • Create view by using CREATE VIEW command
54 Joining Database Tables •Ability to combine (join) tables on common attributes is most important distinction between relational database and other databases • Join is performed when data are retrieved from more than one table at a time • Join is generally composed of an equality comparison between foreign key and primary key of related tables
55.
55 Joining Tables withan Alias • Alias can be used to identify source table • Any legal table name can be used as alias • Add alias after table name in FROM clause – FROM tablename alias
56.
56 Summary • SQL commandscan be divided into two overall categories: – Data definition language commands – Data manipulation language commands • The ANSI standard data types are supported by all RDBMS vendors in different ways • Basic data definition commands allow you to create tables, indexes, and views
57.
57 Summary (continued) • DMLcommands allow you to add, modify, and delete rows from tables • The basic DML commands are SELECT, INSERT, UPDATE, DELETE, COMMIT, and ROLLBACK • INSERT command is used to add new rows to tables • SELECT statement is main data retrieval command in SQL
58.
58 Summary (continued) • ManySQL constraints can be used with columns • The column list represents one or more column names separated by commas • WHERE clause can be used with SELECT, UPDATE, and DELETE statements to restrict rows affected by the DDL command
59.
59 Summary (continued) • Aggregatefunctions – Special functions that perform arithmetic computations over a set of rows • ORDER BY clause – Used to sort output of SELECT statement – Can sort by one or more columns and use either an ascending or descending order • Join output of multiple tables with SELECT statement
60.
60 Summary (continued) • Naturaljoin uses join condition to match only rows with equal values in specified columns • Right outer join and left outer join used to select rows that have no matching values in other related table