Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 22 - SQL, MySQL, DBI and ADO

Similar presentations


Presentation on theme: "Chapter 22 - SQL, MySQL, DBI and ADO"— Presentation transcript:

1 Chapter 22 - SQL, MySQL, DBI and ADO
Outline Introduction Relational Database Model Relational Database Overview Structured Query Language Basic SELECT Query WHERE Clause GROUP BY Clause ORDER BY Clause Merging Data from Multiple Tables Inserting a Record Updating a Record DELETE FROM Statement TitleAuthor Query from Books.mdb MySQL

2 Chapter 22 - SQL, MySQL, DBI and ADO
Outline Introduction to DBI Perl Database Interface Python DB-API PHP dbx module ActiveX Data Objects (ADO) Internet and World Wide Web Resources

3 Database management system (DBMS)
22.1 Introduction Database Integrated collection of data Database management system (DBMS) Provides mechanisms for storing and organizing data Allows users to access and store data without addressing internal representation of databases Relational databases Consist of data corresponding to one another Most popular database systems in use Uses Structured Query Language (SQL) to create queries Examples: Oracle, MS SQL Server, MySQL, Informix

4 22.2 Relational Database Model
Logical representation of data allowing users to consider relationships between data Consists of tables Following figure illustrates Employee table Might exist in personnel system Table row called record Table column called field Number field is primary key Contains unique data that cannot be duplicated Identifies the record Examples: social security number, employee ID number, etc.

5 22.2 Relational Database Model
Fig Relational database structure.

6 22.2 Relational Database Model
SQL statements Use to obtain table subsets Complete set of keywords enable programmers to define complex queries Results of query called result sets (or record sets) Following table shows results of SQL query (Fig. 22.2) Provides geographical location of several departments Fig Result set formed by selecting data from a table.

7 22.3 Relational Database Overview
Overview SQL using Books.mdb database Consists of four tables Authors, Publishers, AuthorISBN and Tables Primary key fields in italics Authors table (Figs and 22.4) Consists of four fields Unique ID number, first name, last name and year of birth Contains null value for YearBorn field Not primary key, so can contain null values FirstName and LastName can contain null values also

8 22.3 Relational Database Overview

9 22.3 Relational Database Overview
Publishers table (Figs and 22.6) Consists of two fields Unique ID and publisher name

10 22.3 Relational Database Overview
Titles table (Figs and 22.8) Consists of six fields ISBN number, title, edition number, year published, book description and publisher ID number

11 22.3 Relational Database Overview

12 22.3 Relational Database Overview
AuthorISBN table (Figs and 22.10) Consists of two fields ISBN number and author ID number Links names of authors with respective book titles

13 22.3 Relational Database Overview

14 22.3 Relational Database Overview
Microsoft Access diagram (Fig ) Illustrates relationships between tables in database Lines represent table relationships One-to-many relationship Example: line between Publishers and Titles tables Single publisher can have many books in Titles table

15 22.3 Relational Database Overview
Fig Table relationships in Books.mdb.

16 22.3 Relational Database Overview
Rule of Entity Integrity Every record must have value in primary key field Primary key values must be unique Foreign key field (or constraints) References primary key field in another table Specified when creating tables Maintains Rule of Referential Integrity Every foreign key field value must appear in another table’s primary key field Example: PublisherID field in Titles table Enables information from multiple tables to be joined for analysis

17 22.4 Structured Query Language
Overview SQL using Books.mdb database Following table lists some SQL keywords

18 Extracts information from one or more tables Simplest form
Basic SELECT Query Extracts information from one or more tables Simplest form SELECT * FROM TableName Asterisk (*) notifies query to select all rows and columns from table TableName specifies a table in database Example: SELECT * FROM Authors Selecting specific fields Replace asterisk (*) with field names Example: SELECT AuthorID, LastName FROM Authors

19 Basic SELECT Query

20 Optional clause in SELECT query
WHERE Clause Optional clause in SELECT query Selects records satisfying selection criteria Basic form SELECT fieldName1, fieldName2 FROM TableName WHERE criteria Example: SELECT * FROM Authors WHERE YearBorn > 1960 Result set contains two authors born after 1960

21 22.4.2 WHERE Clause Can contain operators LIKE operator
<, >, <=, >=, =, <> and LIKE LIKE operator Performs pattern matching with wildcard characters asterisk (*) and question mark (?) Pattern matching allows SQL to search for particular string or string of characters Asterisk (*) indicates string can have zero or more characters at it’s position Example: SELECT AuthorID, FirstName, LastName, YearBorn FROM Authors WHERE LastName LIKE ‘D*’ Result set contains two records

22 WHERE Clause

23 22.4.2 WHERE Clause LIKE operator, cont.
Question mark (?) indicates single character can occupy it’s position Example: SELECT AuthorID, FirstName, LastName, YearBorn FROM Authors WHERE LastName LIKE ‘?i*’ Result set contains one author

24 Specifying range of characters
WHERE Clause Specifying range of characters Use [startValue-endValue] startValue is first character in range endValue is last character in range

25 Groups result set by a particular column Basic form
GROUP BY Clause Groups result set by a particular column Basic form SELECT fieldName, COUNT(*) FROM TableName GROUP BY fieldName COUNT returns number of records selected by query Example: SELECT AuthorID, COUNT (*) AS Count FROM AuthorISBN GROUP BY AuthorID COUNT (*) AS Count assigns name to column that contains total count values

26 Combining WHERE and GROUP BY clauses
Example: SELECT AuthorID, COUNT(*) AS Count FROM AuthorISBN WHERE AuthorID <= 3 GROUP BY AuthorID Result set contains three records

27 Sorts result set by given criteria Basic form
ORDER BY Clause Sorts result set by given criteria In ascending order (ASC) or descending order (DESC) Basic form SELECT fieldName1, fieldName2 FROM TableName ORDER BY fieldName ASC Can replace ASC with DESC Example: SELECT AuthorID, FirstName, LastName, YearBorn FROM Authors ORDER BY LastName ASC

28 22.4.4 ORDER BY Clause Basic form, cont.
To obtain same list in descending order Example: SELECT AuthorID, FirstName, LastName, YearBorn FROM Authors ORDER BY LastName DESC

29 22.4.4 ORDER BY Clause Sorts multiple fields
Example: SELECT AuthorID, FirstName, LastName, YearBorn FROM Authors ORDER BY LastName, FirstName ASC keyword is default sorting order, so is optional First sorts by last name, then by first name

30 Combining WHERE and ORDER BY clauses
Example: SELECT ISBN, Title, EditionNumber, YearPublished, PublisherID FROM Titles WHERE Title LIKE ‘*How to Program’ ORDER BY Title ASC Selects titles ending in “How to Program” Sorts them in ascending order

31 ORDER BY Clause

32 22.4.5 Merging Data from Multiple Tables
May need to combine data from different tables Merging data = joining tables Combines records from different tables Extracts records common to tables Basic form SELECT fieldName1, fieldName2 FROM TableName1, TableName2 WHERE TableName1.fieldName = TableName2.fieldName WHERE clause specifies fields to be compared from each table Normally represent primary key field in one table and foreign key field in other table

33 22.4.5 Merging Data from Multiple Tables
Basic Form, cont. Example: SELECT FirstName, LastName, ISBN FROM Authors, AuthorISBN WHERE Authors.AuthorID = AuthorISBN.AuthorID ORDER BY LastName, FirstName Merges FirstName and LastName fields from Authors table with ISBN field from AuthorISBN table Result set contains list of authors and ISBN numbers of books each author wrote Sorts in ascending order by LastName and FirstName

34 22.4.5 Merging Data from Multiple Tables

35 22.4.5 Merging Data from Multiple Tables
Fully qualified name TableName.fieldName specifies fields to be compared Fields with same name in tables require “TableName.” syntax Cross database queries require database name before TableName

36 Use INSERT INTO operation Basic Form
Inserting a Record Use INSERT INTO operation Basic Form INSERT INTO TableName (fieldName1, fieldName2) VALUES (value1, value2) TableName specifies table that receives new records Comma-separated list of field names specify the fields of TableName Specifies columns that receive new records VALUES specifies data to be inserted into table Example: INSERT INTO Authors (FirstName, LastName, YearBorn) VALUES (‘Sue’, ‘Smith’, 1960) Inserts three values into three columns of Authors table

37 Inserting a Record

38 Modifies data in tables (updates records) Basic form:
Updating a Record Modifies data in tables (updates records) Basic form: UPDATE TableName SET fieldName = value1 WHERE criteria SET assigns values to certain fields Example: UPDATE Authors SET YearBorn = ‘1969’ WHERE LastName = ‘Deitel’ AND FirstName = ‘Paul’ AND states all components of selection criteria must be satisfied Can replace WHERE clause with WHERE AuthorID = 2

39 Updating a Record

40 Removes data from tables Basic form
DELETE FROM Statement Removes data from tables Basic form DELETE FROM TableName WHERE criteria Example: DELETE FROM Authors WHERE LastName = ‘Smith’ AND FirstName = ‘Sue’ Can replace WHERE clause with WHERE AuthorID = 5

41 22.4.9 TitleAuthor Query from Books.mdb
Books.mdb contains one predefined query TitleAuthor Produces table containing book title, ISBN number, last name, book’s year published and publisher’s name Figure shows query, Figure shows result set

42 Fully qualified names for clarity
TitleAuthor 1 SELECT Titles.Title, Titles.ISBN, Authors.FirstName, Authors.LastName, Titles.YearPublished, Publishers.PublisherName FROM Publishers, Titles, Authors, AuthorISBN WHERE Publishers.PublisherID = Titles.PublisherID AND Authors.AuthorID = AuthorISBN.AuthorID AND Titles.ISBN = AuthorISBN.ISBN ORDER BY Titles.Title Lines 1-3 indicate fields that query selects Joins tables provided that PublisherID in Publishers table matches PublisherID in Titles table Combines two preceding result sets on condition that ISBN field in Titles table matches ISBN field in AuthorISBN table Fig TitleAuthor query from the Books.mdb database.

43 22.4.9 TitleAuthor Query from Books.mdb

44 Pronounced “My Ess Que Ell” Robust and scalable RDBMS
22.5 MySQL Pronounced “My Ess Que Ell” Robust and scalable RDBMS Multiuser, multithreaded server Performs multiple commands concurrently Uses SQL to interact with data Supports various programming languages C, C++, Java, Python, Perl, PHP, etc Supports various operating systems Windows, Linux and Unix Access multiple databases with single query

45 Databases part of distributed applications
22.6 Introduction to DBI Databases part of distributed applications Divides work across multiple computers Retrieves result set and displays results Driver Helps programs access databases Each can have different syntax Each database requires its own driver Interface Provides uniform access to all database systems Database interface Programmatic library for accessing relational database

46 22.6.1 Perl Database Interface
Perl DBI Enables users to access relational databases from Perl programs Database independent Most widely used interface in Perl Uses handles (Fig ) Object-oriented interfaces Driver handles, database handles, statement handles

47 22.6.2 Python DB-API Python DB-API
Database application programming interface Portable across several databases Consists of Connection and Cursor data objects Connection data object (Fig ) Accesses database through four methods Cursor data object (Fig ) Manipulates and retrieves data

48 Python DB-API

49 22.6.3 PHP dbx module dbx module
Consists of seven functions that interface to database modules Supports MySQL, PostgreSQL and ODBC databases

50 22.7 ActiveX Data Objects (ADO)
Microsoft Universal Data Access (UDA) Supports high-performance data access to relational, non-relational and mainframe data sources Consists of three primary components OLE DB Core of UDA architecture Provides low-level access to data source Open Database Connectivity (ODBC) C programming-language library Uses SQL to access data ActiveX Data Objects Simple object modules Provide uniform access to data source through OLE DB

51 22.7 ActiveX Data Objects (ADO)
Fig Microsoft’s UDA architecture. Fig Portion of the ADO object model.

52 22.7 ActiveX Data Objects (ADO)
ADO object model Provides objects and collections Collections Containers that hold one or more objects of specific type Following table lists some ADO objects and collections

53 22.7 ActiveX Data Objects (ADO)


Download ppt "Chapter 22 - SQL, MySQL, DBI and ADO"

Similar presentations


Ads by Google