+ All Categories
Home > Documents > Chapter 22 - SQL, MySQL, DBI and ADO

Chapter 22 - SQL, MySQL, DBI and ADO

Date post: 04-Feb-2016
Category:
Upload: yvon
View: 34 times
Download: 0 times
Share this document with a friend
Description:
Chapter 22 - SQL, MySQL, DBI and ADO. Outline 22.1 Introduction 22.2 Relational Database Model 22.3 Relational Database Overview 22.4 Structured Query Language 22.4.1 Basic SELECT Query 22.4.2 WHERE Clause 22.4.3 GROUP BY Clause 22.4.4 ORDER BY Clause - PowerPoint PPT Presentation
53
2001 Prentice Hall, Inc. All rights reserved. 1 Chapter 22 - SQL, MySQL, DBI and ADO Outline 22.1 Introduction 22.2 Relational Database Model 22.3 Relational Database Overview 22.4 Structured Query Language 22.4.1 Basic SELECT Query 22.4.2 WHERE Clause 22.4.3 GROUP BY Clause 22.4.4 ORDER BY Clause 22.4.5 Merging Data from Multiple Tables 22.4.6 Inserting a Record 22.4.7 Updating a Record 22.4.8 DELETE FROM Statement 22.4.9 TitleAuthor Query from Books.mdb 22.5 MySQL
Transcript
Page 1: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

1

Chapter 22 - SQL, MySQL, DBI and ADO

Outline22.1 Introduction22.2 Relational Database Model22.3 Relational Database Overview22.4 Structured Query Language

22.4.1 Basic SELECT Query22.4.2 WHERE Clause22.4.3 GROUP BY Clause22.4.4 ORDER BY Clause22.4.5 Merging Data from Multiple Tables22.4.6 Inserting a Record22.4.7 Updating a Record22.4.8 DELETE FROM Statement22.4.9 TitleAuthor Query from Books.mdb

22.5 MySQL

Page 2: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

2

Chapter 22 - SQL, MySQL, DBI and ADO

Outline22.6 Introduction to DBI

22.6.1 Perl Database Interface22.6.2 Python DB-API22.6.3 PHP dbx module

22.7 ActiveX Data Objects (ADO)22.8 Internet and World Wide Web Resources

Page 3: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

3

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

Page 4: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

4

22.2 Relational Database Model

• 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.

Page 5: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

5

22.2 Relational Database Model

Number Name Department Salary Location23603 J ones 413 1100 New J ersey

24568 Kerwin 413 2000 New J ersey

34589 Larson 642 1800 Los Angeles

35761 Myers 611 1400 Orlando

47132 Neumann 413 9000 New J ersey

78321 Stephens 611 8500 Orlando

Row/Record

Column/ FieldPrimary key

Fig. 22.1 Relational database structure.

Page 6: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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

Department Location413 New J ersey

642 Los Angeles

611 Orlando

Fig. 22.2 Result set formed by selecting data from a table.

Page 7: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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. 22.3 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

Page 8: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

8

22.3 Relational Database Overview

Field Description

AuthorID An integer representing the author’s ID number in the database. This field is the primary key field for this table.

FirstName A string representing the author’s first name.

LastName A string representing the author’s last name.

YearBorn A string representing the author’s year of birth.

Fig. 22.3 Authors table from Books.mdb.

AuthorID FirstName LastName YearBorn

1 Harvey Deitel 1946

2 Paul Deitel 1968

3 Tem Nieto 1969

4 Kate Steinbuhler

Fig. 22.4 Data from the Authors table of Books.mdb.

Page 9: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

9

22.3 Relational Database Overview

• Publishers table (Figs. 22.5 and 22.6)– Consists of two fields

• Unique ID and publisher name

Field Description

PublisherID An integer representing the publisher’s ID number in the database. This is the primary key field for this table.

PublisherName A string representing the abbreviated name for the publisher.

Fig. 22.5 Publishers table from Books.mdb.

PublisherID PublisherName

1 Prentice Hall

2 Prentice Hall PTR

Fig. 22.6 Data from the Publishers table of Books.mdb.

Page 10: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

10

22.3 Relational Database Overview

• Titles table (Figs. 22.7 and 22.8)– Consists of six fields

• ISBN number, title, edition number, year published, book description and publisher ID number

Field Description

ISBN A string representing the ISBN number of the book.

Title A string representing the title of the book.

EditionNumber A string representing the edition number of the book.

YearPublished A string representing the publication year.

Description A string representing the description of the book.

PublisherID An integer representing the publisher’s ID number. This value must correspond to an ID number in the Publishers table.

Fig. 22.7 Titles table from Books.mdb.

Page 11: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

11

22.3 Relational Database Overview

ISBN Title Edition Number

Year Published

Publisher ID

0-13-012507-5 Java How to Program 3 1999 1

0-13-013249-7 Getting Started with Visual C++ 6 with an Introduction to MFC

1 1999 1

0-13-016143-8 Internet and World Wide Web How to Program

1 1999 1

0-13-020522-2 Visual Basic 6 How to Program Instructor's Manual with Solution Disk

1 1999 1

0-13-028417-3 XML How to Program 1 2001 1

0-13-089571-1 C++ How to Program 3 2001 1

0-13-089572-5 C How to Program 3 2001 1

0-13-271974-6 Java Multimedia Cyber Classroom 1 1996 2

0-13-456955-5 Visual Basic 6 How to Program

1 1998 1

0-13-899394-7 Java How to Program 2 1997 1

Fig. 22.8 Portion of the data from the Titles table of Books.mdb.

Page 12: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

12

22.3 Relational Database Overview

• AuthorISBN table (Figs. 22.9 and 22.10)– Consists of two fields

• ISBN number and author ID number

– Links names of authors with respective book titles

Page 13: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

13

22.3 Relational Database Overview

Field Description

ISBN A string representing the ISBN number for a book. The ISBN number in this field also must appear in the Titles table.

AuthorID An integer representing the author’s ID number, which allows the database to connect each book to a specific author. The ID number in this field must also appear in the Authors table.

Fig. 22.9 AuthorISBN table from Books.mdb.

ISBN AuthorID 0-13-010671-2 1

0-13-010671-2 2

0-13-012507-5 1

0-13-013249-7 2

0-13-016143-8 2

0-13-020522-2 3

0-13-032364-0 2

0-13-032364-0 4

0-13-082928-5 3

Fig. 22.10 Portion of the data from the AuthorISBN table of Books.mdb.

Page 14: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

14

22.3 Relational Database Overview

• Microsoft Access diagram (Fig. 22.11)– 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

Page 15: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

15

22.3 Relational Database Overview

Fig. 22.11 Table relationships in Books.mdb.

Page 16: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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

Page 17: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

17

22.4 Structured Query Language

• Overview SQL using Books.mdb database• Following table lists some SQL keywords

SQL keyword Description

SELECT Select (retrieve) fields from one or more tables.

FROM Tables from which to get fields. Required in every SELECT.

WHERE Criteria for selection that determine the rows to be retrieved.

GROUP BY Criteria for grouping records.

ORDER BY Criteria for ordering (sorting) records.

INSERT INTO Insert values into one or more tables. Some databases do not require the SQL keyword

INTO.

UPDATE Update existing data in one or more tables.

DELETE FROM Delete data from a specified table.

Fig. 22.12 Some SQL query keywords.

Page 18: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

18

22.4.1 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

Page 19: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

19

22.4.1 Basic SELECT Query

AuthorID LastName 1 Deitel

2 Deitel

3 Nieto

4 Steinbuhler

Fig. 22.13 AuthorID and LastName from the Authors table.

Page 20: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

20

22.4.2 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

AuthorID FirstName LastName YearBorn 2 Paul Deitel 1968

3 Tem Nieto 1969

Fig. 22.14 Authors from the Authors table born after 1960.

Page 21: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

21

22.4.2 WHERE Clause

• Can contain operators– <, >, <=, >=, =, <> 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

Page 22: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

22

22.4.2 WHERE Clause

AuthorID FirstName LastName YearBorn 1 Harvey Deitel 1946

2 Paul Deitel 1968

Fig. 22.15 Authors from the Authors table whose last names start with D.

Page 23: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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

AuthorID FirstName LastName YearBorn 3 Tem Nieto 1969

Fig. 22.16 Authors from the Authors table whose last names contain i as the second letter.

Page 24: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

24

22.4.2 WHERE Clause

• Specifying range of characters– Use [startValue-endValue]

• startValue is first character in range

• endValue is last character in range

Page 25: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

25

22.4.3 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 valuesAuthorID Count 1 28

2 28

3 11

4 1

Fig. 22.17 Number of ISBN values associated with each author.

Page 26: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

26

22.4.3 GROUP BY Clause

• 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

AuthorID Count 1 28

2 28

3 11

Fig. 22.18 Combining WHERE and GROUP BY to retrieve the number of ISBN values associated with each author.

Page 27: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

27

22.4.4 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

AuthorID FirstName LastName YearBorn 1 Harvey Deitel 1946

2 Paul Deitel 1968

3 Tem Nieto 1969

4 Kate Steinbuhler

Fig. 22.19 Authors from the Authors table in ascending order by LastName.

Page 28: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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

AuthorID FirstName LastName YearBorn 4 Kate Steinbuhler

3 Tem Nieto 1969

1 Harvey Deitel 1946

2 Paul Deitel 1968

Fig. 22.20 Authors from the Authors table in descending order by LastName.

Page 29: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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

AuthorID FirstName LastName YearBorn 1 Harvey Deitel 1946

2 Paul Deitel 1968

3 Tem Nieto 1969

4 Kate Steinbuhler

Fig. 22.21 Authors from the Authors table in ascending order by LastName and by FirstName.

Page 30: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

30

22.4.4 ORDER BY Clause

• 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

Page 31: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

31

22.4.4 ORDER BY Clause

ISBN Title EditionNumber Year Published

Publisher ID

0-13-089572-5 C How to Program 3 2001 1

0-13-089571-7 C++ How to Program 3 2001 1

0-13-528910-6 C++ How to Program 2 1997 1

0-13-028419-X e-Business and e-Commerce How to Program

1 2001 1

0-13-016143-8 Internet and World Wide Web How to Program

1 1999 1

0-13-012507-5 Java How to Program 3 1999 1

0-13-028418-1 Perl How to Program 1 2001 1

0-13-456955-5 Visual Basic 6 How to Program 1 1998 1

0-13-028417-3 XML How to Program 1 2001 1

Fig. 22.22 Portion of the books from the Titles table whose titles end with How to Program, sorted in ascending order by Title.

Page 32: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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

Page 33: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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

Page 34: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

34

22.4.5 Merging Data from Multiple Tables

FirstName LastName ISBN Harvey Deitel 0-13-226119-7

Harvey Deitel 0-13-016143-8

Harvey Deitel 0-13-085609-6

Harvey Deitel 0-13-013249-7

Harvey Deitel 0-13-899394-7

Paul Deitel 0-13-899394-7

Paul Deitel 0-13-226119-7

Paul Deitel 0-13-118043-6

Paul Deitel 0-13-028418-1

Paul Deitel 0-13-083055-0

Tem Nieto 0-13-016143-8

Tem Nieto 0-13-456955-5

Tem Nieto 0-13-020522-2

Tem Nieto 0-13-904947-9

Tem Nieto 0-13-028419-X

Kate Steinbuhler 0-13-0323-64-0

Fig. 22.23 Portion of the result set containing authors and ISBN numbers sorted in ascending order by LastName and FirstName.

Page 35: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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

Page 36: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

36

22.4.6 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

Page 37: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

37

22.4.6 Inserting a Record

AuthorID FirstName LastName YearBorn 1 Harvey Deitel 1946

2 Paul Deitel 1968

3 Tem Nieto 1969

4 Kate Steinbuhler

5 Sue Smith 1960

Fig. 22.24 Authors table after an INSERT INTO operation to add a record.

Page 38: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

38

22.4.7 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

Page 39: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

39

22.4.7 Updating a Record

AuthorID FirstName LastName YearBorn 1 Harvey Deitel 1946

2 Paul Deitel 1969

3 Tem Nieto 1969

4 Kate Steinbuhler

5 Sue Smith 1960

Fig. 22.25 Authors table after an UPDATE operation to modify a record.

Page 40: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

40

22.4.8 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

AuthorID FirstName LastName YearBorn

1 Harvey Deitel 1946

2 Paul Deitel 1969

3 Tem Nieto 1969

4 Kate Steinbuhler

Fig. 22.26 Table Authors after a DELETE operation to remove a record.

Page 41: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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 22.27 shows query, Figure 22.28 shows result set

Page 42: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc.All rights reserved.

Outline42

TitleAuthor1 SELECT Titles.Title, Titles.ISBN, Authors.FirstName, 2 Authors.LastName, Titles.YearPublished, 3 Publishers.PublisherName4 FROM Publishers, Titles, Authors, AuthorISBN5 WHERE Publishers.PublisherID = Titles.PublisherID 6 AND Authors.AuthorID = AuthorISBN.AuthorID7 AND Titles.ISBN = AuthorISBN.ISBN8 ORDER BY Titles.Title

Fig. 22.27 TitleAuthor query from the Books.mdb database.

Fully qualified names for clarity

Lines 1-3 indicate fields that query selects

Joins tables provided that PublisherID in Publishers table matches PublisherID in Titles tableCombines two preceding result sets on condition that ISBN field in

Titles table matches ISBN field in AuthorISBN table

Page 43: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

43

22.4.9 TitleAuthor Query from Books.mdb

Title ISBN First Name

Last Name

Year Published

Publisher Name

C How to Program 0-13-226119-7 Paul Deitel 1994 Prentice Hall

C How to Program 0-13-089572-5 Harvey Deitel 2001 Prentice Hall

C++ How to Program

0-13-089571-7 Paul Deitel 2001 Prentice Hall

e-Business and e-Commerce for Managers

0-13-032364-0 Kate Steinbuhler 2001 Prentice Hall

e-Business and e-Commerce How to Program

0-13-028419-X Harvey Deitel 2001 Prentice Hall

Internet and World Wide Web How to Program

0-13-016143-8 Paul Deitel 1999 Prentice Hall

Java How to Program

0-13-899394-7 Paul Deitel 1997 Prentice Hall

Perl How to Program

0-13-028418-1 Tem Nieto 2001 Prentice Hall

Visual Basic 6 How to Program

0-13-456955-5 Tem Nieto 1998 Prentice Hall

XML How to Program

0-13-028417-3 Harvey Deitel 2001 Prentice Hall

XML How to Program

0-13-028417-3 Paul Deitel 2001 Prentice Hall

Fig. 22.28 Portion of the query results from the TitleAuthor query.

Page 44: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

44

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

Page 45: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

45

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

Page 46: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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. 22.29)• Object-oriented interfaces

• Driver handles, database handles, statement handles

Data Object Handles Description Driver Handles Encapsulates the driver for the database; rarely used in a Perl script.

Database Handles Encapsulates a specific connection to a database; can send SQL statements to a database.

Statement Handles Encapsulates specific SQL statements and the results returned from them.

Fig. 22.29 Data object handles for Perl DBI.

Page 47: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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. 22.30)

– Accesses database through four methods• Cursor data object (Fig. 22.31)

– Manipulates and retrieves data

Page 48: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

48

22.6.2 Python DB-API

Connection Data Objects Description

close Closes the connection to the database.

commit Commits (saves) a transaction (i.e., interaction with a database through SQL keywords and commands).

rollback Exits a pending transaction without saving changes. Returns the user to the beginning of the transaction.

cursor Returns a new Cursor object or the current connection.

Fig. 22.30 Connection data objects for Python DB-API.

Cursor Data Objects Description

rowcount Returns the number of rows retrieved by the last execute method call.

close Closes the Cursor object.

execute( operation ) Executes a database query or command. Return values not defined.

executemany( operation,

parameters )

Executes a database query or command against a set of parameters. Return values not defined.

fetchone Returns the next row of a query result.

fetchmany( size ) Returns a set of rows—defined in the parameter—for a query result set.

fetchall Returns all the rows of a query result set.

Fig. 22.31 Some Cursor data objects for PB-API.

Page 49: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

49

22.6.3 PHP dbx module

• dbx module– Consists of seven functions that interface to database

modules

– Supports MySQL, PostgreSQL and ODBC databases

dbx functions Description

dbx_close Closes an open connection/database.

dbx_connect Opens a connection/database.

dbx_error Reports any error messages from the last function call in the module.

dbx_query Executes a query and returns the results.

dbx_sort Sorts a result by a custom sort function.

dbx_cmp_asc Compares two rows and sorts them in ascending order.

dbx_cmp_desc Compares two rows and sorts them in descending order.

Fig. 22.32 Data objects for PHP dbx modules.

Page 50: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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

Page 51: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

51

22.7 ActiveX Data Objects (ADO)

ADO

OLE DB

Legacy dataRelationa l data sources

Application or Browser

Non-rela tiona l data sources

ODBC

Fig. 22.33 Microsoft’s UDA architecture.

Field

Parameter

Fields

Error

Parameters

RecordSet

Errors

Command

Connection

Fig. 22.34 Portion of the ADO object model.

Page 52: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

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

Page 53: Chapter 22 - SQL, MySQL, DBI and ADO

2001 Prentice Hall, Inc. All rights reserved.

53

22.7 ActiveX Data Objects (ADO)

Object/Collection Description

Connection object Connects to the data source.

Command object Contains the query that interacts with the database (the data source) to manipulate data.

Parameter object Contains information needed by a Command object to query the data source.

Parameters collection Contains one or more Parameter objects.

Error object Created when an error occurs while accessing data.

Errors collection Contains one or more Error objects.

Recordset object Contains zero or more records that match the database query. Collectively, this group of

records is called a recordset. Field object Contains the value (and other attributes) of one data source field.

Fields collection Contains one or more Field objects.

Property object Contains a characteristic of an ADO object.

Properties collection Contains one or more Property objects.

Record object Contains a single row of a Recordset.

Stream object Contains a stream of binary data.

Fig. 22.35 Some ADO object and collection types.


Recommended