Web-Enabled Decision Support Systems

Download Report

Transcript Web-Enabled Decision Support Systems

Web-Enabled Decision Support Systems
SQL: Creating and Processing RDBs
Prof. Name
Position
University Name
[email protected]
(123) 456-7890
1
Overview

9.1 Introduction

9.2 Types of SQL Statements

9.3 The Data Definition Language (DDL)

9.4 The Data Manipulation Language (DML)

9.5 The SELECT Statement

9.6 The INSERT Statement

9.7 The DELETE Statement

9.8 The UPDATE Statement

9.9 Summary

9.10 In-Class Assignment
2
Introduction

Structured Query Language (SQL) is a complete and widely used
relational database (RDB) query language
– Originally developed by IBM in the late 1970s
– Currently the industry standard
– Not a complete programming language
 Like Visual Basic, C/C++, or Java
– SQL statements may be embedded into general purpose programming
languages to create database applications

Used for management of database objects:
– Creation
– Manipulation
– Control
3
Overview

9.1 Introduction

9.2 Types of SQL Statements

9.3 The Data Definition Language (DDL)

9.4 The Data Manipulation Language (DML)

9.5 The SELECT Statement

9.6 The INSERT Statement

9.7 The DELETE Statement

9.8 The UPDATE Statement

9.9 Summary

9.10 In-Class Assignment
4
Types of SQL Statements

We divide SQL statements into four categories based on the database
operations they perform:
– Data Definition Language (DDL) statements
 Define data by creating, altering, and destroying database objects
– Data Manipulation Language (DML) statements
 Manipulate (i.e., select, insert, update, and delete) data in the database tables
– Data Control Language (DCL) statements
 Configure and control the database permissions, roles, and referential integrity
controls
– Database Stored Procedure Language (DSPL) statements
 Used for triggers, event handlers, and stored procedures in transaction
processing
5
Overview

9.1 Introduction

9.2 Types of SQL Statements

9.3 The Data Definition Language (DDL)

9.4 The Data Manipulation Language (DML)

9.5 The SELECT Statement

9.6 The INSERT Statement

9.7 The DELETE Statement

9.8 The UPDATE Statement

9.9 Summary

9.10 In-Class Assignment
6
The Data Definition Language (DDL)

Data Definition Language (DDL) statements define the structure of
the data in a database
– Create, alter, and drop database objects like Tables, relationships, keys,
and indexes.
– DDL statements can perform visual steps performed in Chapter 6 and 7 to
create tables, keys, indexes, and relationships.
– We focus on CREATE, DROP, and ALTER DDL statements for database
tables.
7
Review of Database Terminology

Tables are used to store and relate data
– Two-dimensional grid
 Columns: data fields
 Rows: records

A primary key is an attribute or minimal set of attributes that uniquely
identifies each record within the table

A foreign key is an attribute or a set of attributes in a table that acts as
a primary key to the same or another table in the database

A database index is the ordered list of indexing attributes with a
pointer to table rows where the actual record can be found
8
The CREATE Statement

CREATE statements create database objects
– Define primary and foreign keys
– Create an index on a table attribute

Syntax:
CREATE TABLE [Table Name]
({<Column name> <Data type> <Constraint>}, {}…)
CONSTRAINT
{<Key Name> <key Type> (Field1, Field2…)}, {}…;
9
CREATE Statement - Example

Query:
– “Create a new table, tblDepartment, to store department information. Store
the department identification number, name, address, and phone number
for all the departments in the university database.”

SQL Statement:
CREATE TABLE tblDepartment
(DeptID
VARCHAR2 (10)
NOT NULL,
Name
VARCHAR2 (50)
,
Address
VARCHAR2 (200)
,
Phone
NUMBER (30)
DEFAULT 0,
CollegeID VARCHAR2 (3)
CONSTRAINT
DeptPK
)
PRIMARY KEY (DeptID)
DeptFK FOREIGN KEY (CollegeID) REFERENCES tblCollege (CollegeID);
10
SQL Field Constraints

The following tables lists a few column constraints that can be used
with the CREATE TABLE SQL statement:
Constraints
Meaning
MS Access Equivalent
NOT NULL
Cannot be null.
Required.
NULL
Set to null.
Allow Zero Length.
UNIQUE
Should be unique.
-
DEFAULT VALUE
Set the default value.
Default Value.
CHECK (Condition)
Check for the condition.
Validation Rule.
11
CREATE Index - Example

Query:
– “Create an index (named tblDeptAddressIndx) on the Address field of the
department table.”

SQL Statement:
CREATE INDEX
tblDeptAddressIndx
ON
tblDepartment (Address);
12
The DROP Statement

DROP statements removes database objects
– Table, Index

Syntax:
DROP TABLE [Table Name];
DROP INDEX [Index Name];
13
DROP Statement - Examples

Query 1:
– “Remove the department table, its data, columns, and indexes.”

SQL Statement 1:
DROP TABLE tblDepartment;

Query 2:
– “Remove only the index on the Address field of the department table.”

SQL Statement 2:
DROP INDEX
tblDeptAddressIndx;
14
The ALTER Statement

ALTER statements alter existing database objects
– Addition or deletion of columns or constraints
– Revision of data types and field constraints


Add Syntax:
ALTER TABLE
[Table Name]
ADD COLUMN
[<Column name> <Data type> <Constraint>]
ADD CONSTRAINT
[<Key Name> <key Type> (Field1, Field2…)];
Drop Syntax:
ALTER TABLE
[Table Name]
DROP COLUMN
[Column name]
DROP CONSTRAINT
[Key Name];
15
ALTER Statement – Example 1

Query:
– “Add a field for the department chairperson to the department table. Make
this field a foreign key in the faculty table.”

SQL Statement:
ALTER TABLE
tblDepartment
ADD COLUMN
Chair
NUMBER (10)
ADD CONSTRAINT DeptFK2 FOREIGN KEY(Chair) REFERENCES tblFaculty(FacultyID);
16
ALTER Statement – Example 2

Query:
– “Drop the Chair column and DeptFK2 constraint from the department
table.”

SQL Statement:
ALTER TABLE
tblDepartment
DROP COLUMN
Chair
DROP CONSTRAINT
DeptFK2;
17
Overview

9.1 Introduction

9.2 Types of SQL Statements

9.3 The Data Definition Language (DDL)

9.4 The Data Manipulation Language (DML)

9.5 The SELECT Statement

9.6 The INSERT Statement

9.7 The DELETE Statement

9.8 The UPDATE Statement

9.9 Summary

9.10 In-Class Assignment
18
The Data Manipulation Language (DML)

Data Manipulation Language (DML) statements involve selection,
insertion, update, and deletion operations
– The core and most frequently used SQL statements
– The manipulation involves selection, insertion, updates, and deletion
operations and the SELECT, INSERT, UPDATE, and DELETE statements
are used to perform these operations, respectively
– All DML statements have equivalent Access query types
19
Overview

9.1 Introduction

9.2 Types of SQL Statements

9.3 The Data Definition Language (DDL)

9.4 The Data Manipulation Language (DML)

9.5 The SELECT Statement

9.6 The INSERT Statement

9.7 The DELETE Statement

9.8 The UPDATE Statement

9.9 Summary

9.10 In-Class Assignment
20
The SELECT Statement

SELECT statements are by far the most frequently used SQL
statements
– Used for a wide variety of purposes

Structure:
SELECT
Mandatory
FROM
WHERE
GROUP BY
Optional, but must appear in this order
HAVING
ORDER BY
21
Projection: The SELECT Clause

The basic SELECT statement presented below projects the selected
table columns as a query output
– SELECT clause
 Specify the columns of query output
– FROM clause
 List the tables involved in the query design to select columns from

Syntax:
SELECT [Field name (s)]
FROM
[Table name];
22
Projection: The SELECT Clause - Examples

Query 1:
– “Project the student name, email, address, and phone fields from the
student table.”

SQL Statement 1:
SELECT Name, Email, Address, Phone
FROM

tblStudent;
Query 2:
– “Project all columns from the student table.”

SQL Statement 2:
SELECT * FROM tblStudent;
23
Hands-On Tutorial: Running
DML Statements in the Access Environment

How-to: Write, Execute, and Test SQL Statements in Access
1. Click the Create Query in Design View option in the Database Window to
open a new query in the Design View.
2. Click the Close button in the Show Table dialog box without adding any
tables to open the SQL View.
3. Write the SQL statement and click the Run (!) button on the toolbar to
execute the query.
Running DML SQL Statements in the Access Environment
24
Join: The FROM Clause

Join systematically draws data from multiple tables in order to provide
a unified view of data in individual tables
– A powerful and frequently used operation
– We join tables in SQL by specifying table names (separated by commas) in
the FROM clause

Syntax:
SELECT [Field name (s)]
FROM
[Table1, Table 2, Table 3...];
25
Join: The FROM Clause - Example

Query:
– “Select the contact information and department name for faculty
members.”

SQL Statement:
SELECT Name, Email, Address, Phone, Name
FROM
tblFaculty, tblDepartment;
26
Renaming Query Tables and Fields
Using the Keyword “AS”

To resolve conflicts, identify columns by prefixing tables’ names:
SELECT tblFaculty.Name, Email, Address, Phone, tblDepartment.Name
FROM

tblFaculty, tblDepartment;
If table names are long or complex, use the keyword AS to rename:
SELECT Fac.Name, Email, Address, Phone, Dept.Name
FROM
tblFaculty AS Fac, tblDepartment AS Dept;
27
Selection: The WHERE Clause

The WHERE clause is an optional clause of the SELECT statement
used to specify selection criteria
– Often used to specify the selection condition of an inner join
 Usually equate the primary key and foreign key values
– Can include following operators:
 Arithmetic Operators: =, <, <=, >, >=
 Clause Operators: BETWEEN, LIKE, IN
 Logical Operators: AND, OR, NOT

Syntax:
SELECT [Field Name (s)]
FROM
[Table Name (s)]
WHERE
[Criteria];
28
Selection: The WHERE Clause - Example

Query:
– “Select the contact information and department name of the faculty
members who joined the university after 1995 and whose salary exceeds
$75,000.”

SQL Statement:
SELECT Fac.Name, Email, Address, Phone, Dept.Name
FROM
tblFaculty AS Fac, tblDepartment AS Dept
WHERE
(Fac.DeptID = Dept.DeptID) AND (Salary > 75000)
AND (JoiningDate > #31/12/1995#);
Join Clause
Filter Clauses
29
Using the BETWEEN Clause Operator

The BETWEEN clause operator is used in conjunction with the logical
AND operator to specify a range of values

Query:
– “Select the contact information and department name of the faculty
members whose salary is between $65,000 and $75,000 and who joined
the university after 1995.”

SQL Statement:
SELECT Fac.Name, Email, Address, Phone, Dept.Name
FROM
tblFaculty AS Fac, tblDepartment AS Dept
WHERE
(Fac.DeptID = Dept.DeptID) AND (Salary BETWEEN 65000 AND 75000)
AND (JoiningDate > #31/12/1995#);
30
Using the LIKE Clause Operator

The LIKE clause is widely applied in search criteria
– Often used with the wildcard character: (*)

Query:
– “List the contact information for all the industrial engineering students who
have taken computer- or database-related courses.”

SQL Statement:
SELECT T1.Name, Email, Address, Phone
FROM tblStudent AS T1, tblTranscript AS T2, tblSection AS T3, tblCourse AS T4
WHERE (T1.StudentID = T2.StudentID) AND (T2.SectionID = T3.SectionID)
AND (T3.CourseID = T4.CourseID) AND (T1.DeptID = “ISE”)
AND ((T4.Name LIKE “*Computer*”) OR (T4.Name LIKE “*Database*”));
31
Using the IN Clause Operator

The IN clause is often used for nested or sub queries
– Specifies the inner query to look in

Query:
– “List the contact information for all the distinct industrial engineering
students who have taken computer- or database-related courses.”

SQL Statement:
SELECT Name, Email, Address, Phone
FROM
tblStudent
WHERE (DeptID = ISE)
AND (StudentID IN
(SELECT DISTINCT StudentID FROM tblTranscript WHERE SectionID IN
(SELECT SectionID FROM tblSection WHERE CourseID IN
(SELECT CourseID
FROM
tblCourse
WHERE (Name LIKE “*Computer*”) OR (Name LIKE “*Database*”)
) ) ) );
32
Using the Keyword DISTINCT

We can obtain distinct records using the keyword DISTINCT in the
SELECT clause
– Prevents duplicate records in output recordset

SQL Statement:
SELECT Name, Email, Address, Phone
FROM
tblStudent
WHERE (DeptID = ISE)
AND (StudentID IN
(SELECT DISTINCT StudentID FROM tblTranscript WHERE SectionID IN
(SELECT SectionID FROM tblSection WHERE CourseID IN
(SELECT CourseID
FROM
tblCourse
WHERE (Name LIKE “*Computer*”) OR (Name LIKE “*Database*”)
) ) ) );
33
Sorting: The ORDER BY Clause

We can use the ORDER BY clause to sort the output records based
on one or more attributes in ascending (ASC) or descending (DESC)
order

Syntax:
SELECT
[Field Name (s)]
FROM
[Table Name (s)]
WHERE
[Criteria]
ORDER BY [Field name (s)] <ASC, DESC>;
34
Sorting: The ORDER BY Clause - Example

Query:
– “Select the contact information and department name of the faculty
members whose salary is between $65,000 and $75,000. List the output,
first in ascending order of their joining date and then in descending order
of their salary.”

SQL Statement:
SELECT
Fac.Name, Email, Address, Phone, Dept.Name
FROM
tblFaculty AS Fac, tblDepartment AS Dept
WHERE
(Fac.DeptID = Dept.DeptID) AND (Salary BETWEEN 65000 AND 75000)
ORDER BY
JoiningDate ASC, Salary DESC;
35
Grouping: The GROUP BY Clause

A GROUP BY clause combines similar records and treats them as a
single unit or group
– For use with aggregate functions:
 MIN, MAX: Provides the minimum or maximum value
 SUM, AVG: Calculates the sum or average value
 COUNT: Finds the count of records
– Aggregate function syntax:
[Function Name] [Field name] AS <Rename>

Syntax:
SELECT
[Field Name (s)]
FROM
[Table Name (s)]
WHERE
[Criteria]
GROUP BY [Field name (s)];
36
Grouping: The GROUP BY Clause - Example

Query:
– “Count the number of students in each department in the department
table.”

SQL Statement:
SELECT
Dept.Name, COUNT (Std.StudentID) AS TotalStudents
FROM
tblStudent AS Std, tblDepartment AS Dept
WHERE
Std.DeptID = Dept.DeptID
GROUP BY Dept.Name;
37
Using the HAVING Clause

The HAVING clause is always used with the GROUP BY clause to
specify the filtering criteria for group values
– Similar to the WHERE clause

Syntax:
SELECT
[Field Name (s)]
FROM
[Table Name (s)]
WHERE
[Criteria]
GROUP BY [Field name (s)]
HAVING
[Criteria];
38
Using the HAVING Clause - Example

Query:
– “List the departments in the College of Engineering that have enrollments
of 100 or more students.”

SQL Statement:
SELECT
Dept.Name, COUNT (Std.StudentID) AS TotalStudents
FROM
tblStudent AS Std, tblDepartment AS Dept
WHERE
(Std.DeptID = Dept.DeptID) AND (Dept.CollegeID = “COE”)
GROUP BY Dept.Name
HAVING
(COUNT (Std.StudentID)) > 100;
39
Overview

9.1 Introduction

9.2 Types of SQL Statements

9.3 The Data Definition Language (DDL)

9.4 The Data Manipulation Language (DML)

9.5 The SELECT Statement

9.6 The INSERT Statement

9.7 The DELETE Statement

9.8 The UPDATE Statement

9.9 Summary

9.10 In-Class Assignment
40
The INSERT Statement

INSERT statements are DML statements that insert one or more
records into database tables

Syntax:
INSERT INTO [Table Name]
([Column1, Column2, Column3 ...])
VALUES
([Value1, Value2, Value3 ...]);
41
The INSERT Statement - Example

Query:
– “Insert information about the new department, “Digital Institute”, into the
department table.”

SQL Statement:
INSERT INTO tblDepartment
(DeptID, Name, Address, Phone, CollegeID)
VALUES
(“DGI”, “Digital Institute”, “303FAB UFL 32611”, 3921044, “CFA”);
42
The INSERT Statement – More Examples

Query 1:
– “Insert information about the new department, setting the Phone to NULL.”
INSERT INTO tblDepartment
(DeptID, Name, Phone, CollegeID)
VALUES

(“BIE”, “Bio Informatics Eng”, NULL, “COE”);
Query 2:
– “Insert information about multiple new departments from tblDownload.”
INSERT INTO tblDepartment
(DeptID, Name, Address, Phone, CollegeID)
SELECT DeptID1, Name1, Address1, Phone1, CollegeID1
FROM tblDownload WHERE CollegeID1 = “COE”;
43
Overview

9.1 Introduction

9.2 Types of SQL Statements

9.3 The Data Definition Language (DDL)

9.4 The Data Manipulation Language (DML)

9.5 The SELECT Statement

9.6 The INSERT Statement

9.7 The DELETE Statement

9.8 The UPDATE Statement

9.9 Summary

9.10 In-Class Assignment
44
The DELETE Statement

DELETE statements are DML statements that delete one or more
records from database tables
– Specify the deletion criteria using a WHERE clause

Syntax:
DELETE FROM [Table Name]
WHERE
[Criteria];
45
The DELETE Statement – Example 1

Query:
– “Delete all last year (senior) industrial engineering students.”

SQL Statement:
DELETE
*
FROM
tblStudent
WHERE
Class = “Senior” AND DeptID = “ISE”;
46
The DELETE Statement – Example 2

Query:
– “Delete all last year (senior) industrial engineering students.”
 Delete records in conjunction with a sub query

SQL Statement:
DELETE
*
FROM
tblStudent
WHERE
StudentID IN
(SELECT StudentID FROM tblStudent
WHERE Class = “Senior” AND DeptID = “ISE”);
47
Overview

9.1 Introduction

9.2 Types of SQL Statements

9.3 The Data Definition Language (DDL)

9.4 The Data Manipulation Language (DML)

9.5 The SELECT Statement

9.6 The INSERT Statement

9.7 The DELETE Statement

9.8 The UPDATE Statement

9.9 Summary

9.10 In-Class Assignment
48
The UPDATE Statement

UPDATE statements are DML statements that update one or more
rows of a table
– Specify the update criteria using a WHERE clause

Syntax:
UPDATE
[Table Name]
SET
[Column1 = Value1, Column2 = Value2 ...]
WHERE
[Criteria];
49
The UPDATE Statement – Example 1

Query:
– “Raise the salary field in the faculty table by 5% for all the faculty members
who joined the university before 1995 and who earn less than $70,000.”

SQL Statement:
UPDATE
tblFaculty
SET
Salary = Salary * 1.05
WHERE
JoiningDate < #1/1/1995# AND Salary < 70000;
50
The UPDATE Statement – Example 2

Query:
– “Raise the salary field in the faculty table by 5% for all the faculty members
who joined the university before 1995 and who earn less than $70,000.”
 Update records in conjunction with a sub query

SQL Statement:
UPDATE tblFaculty
SET
Salary = Salary * 1.05
WHERE
FacultyID IN
(SELECT FacultyID FROM tblFaculty
WHERE JoiningDate < #1/1/1995# AND Salary < 70000);
51
Overview

9.1 Introduction

9.2 Types of SQL Statements

9.3 The Data Definition Language (DDL)

9.4 The Data Manipulation Language (DML)

9.5 The SELECT Statement

9.6 The INSERT Statement

9.7 The DELETE Statement

9.8 The UPDATE Statement

9.9 Summary

9.10 In-Class Assignment
52
Summary

We divide SQL statements into four categories:
–
–
–
–

Data Definition Language (DDL) statements
Data Manipulation Language (DML) statements
Data Control Language (DCL) statements
Database Stored Procedure Language (DSPL) statements
The SELECT statement features two clauses:
– SELECT clause
 Specify the columns of query output
– FROM clause
 List the tables involved in the query design to select columns from
53
Summary (cont.)

We can use the ORDER BY clause to sort the output records based on
one or more attributes in ascending (ASC) or descending (DESC)
order

We obtain distinct records using the keyword DISTINCT in the
SELECT clause

A SELECT clause can have those fields without aggregate functions
grouped in the GROUP BY clause

A HAVING clause can have those fields that either appear in the
GROUP BY clause or are used with aggregate functions in the
SELECT clause
54
Summary (cont.)

CREATE, DROP, and ALTER statements are used to create, delete,
and update database objects such as tables and indexes

INSERT statements insert one or multiple records into database tables

DELETE statements delete one or more records from database tables
– We specify the deletion criteria using a WHERE clause

UPDATE statements update one or more rows of database tables
– We specify the update criteria using a WHERE clause
55
Overview

9.1 Introduction

9.2 Types of SQL Statements

9.3 The Data Definition Language (DDL)

9.4 The Data Manipulation Language (DML)

9.5 The SELECT Statement

9.6 The INSERT Statement

9.7 The DELETE Statement

9.8 The UPDATE Statement

9.9 Summary

9.10 In-Class Assignment
56
In-Class Assignment

Write SQL statements for the following queries based on the university
database:
– Query 1:
 “Create a new faculty table, tblFaculty. Assume appropriate fields and their data
types, including a primary key field. The table must have a DeptID as a foreign
key referring to the department table, tblDepartment. Also, create an index on
the primary key of the faculty table.”
– Query 2:
 “Display the number of faculty members working for each department in the
department table.”
– Query 3:
 “Delete all those faculty members who have been at the university for 15 years
(use JoiningDate fields) and who are earning less than $50,000 (use Salary
field).”
57
Additional Links

Refer SQL: The Complete Reference by James R Groff and Paul N.
Weinberg for additional details on SQL.

Also refer Access 2003 Bible by Cary N. Prague, Michael R. Irwin,
and Jennifer Reardon.

Also see: http://msdn.microsoft.com/ for useful tips on SQL and
Access.
58