Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Microsoft Access wikipedia , lookup
Relational algebra wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Ingres (database) wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Clusterpoint wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Relational model wikipedia , lookup
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