Chapter 22 Database: SQL, MySQL,



Similar documents
Database: SQL, MySQL

Introducción a las bases de datos SQL Libro de referencia

Python Database Application Programming Interface (DB-API)

SQL. Short introduction

SQL - QUICK GUIDE. Allows users to access data in relational database management systems.

ASP.NET Programming with C# and SQL Server

DIPLOMA IN WEBDEVELOPMENT

A Brief Introduction to MySQL

A table is a collection of related data entries and it consists of columns and rows.

Database Administration with MySQL

Structured Query Language. Telemark University College Department of Electrical Engineering, Information Technology and Cybernetics

David M. Kroenke and David J. Auer Database Processing: Fundamentals, Design and Implementation

VBA and Databases (see Chapter 14 )

Relational Databases. Christopher Simpkins

Introduction to Database. Systems HANS- PETTER HALVORSEN,

Chapter 9 Java and SQL. Wang Yang wyang@njnet.edu.cn

David M. Kroenke and David J. Auer Database Processing 11 th Edition Fundamentals, Design, and Implementation. Chapter Objectives

Learning MySQL! Angola Africa SELECT name, gdp/population FROM world WHERE area > !

SQL Injection. SQL Injection. CSCI 4971 Secure Software Principles. Rensselaer Polytechnic Institute. Spring

E-Business Technologies ms320 (2012/13) - Course Outline -

A basic create statement for a simple student table would look like the following.

Financial Data Access with SQL, Excel & VBA

database abstraction layer database abstraction layers in PHP Lukas Smith BackendMedia

Mul$media im Netz (Online Mul$media) Wintersemester 2014/15. Übung 03 (Nebenfach)

Intro to Databases. ACM Webmonkeys 2011

Information Systems SQL. Nikolaj Popov

Talking to Databases: SQL for Designers

Achieving Database Interoperability Across Data Access APIs through SQL Up-leveling

Introduction to SQL and database objects

TIM 50 - Business Information Systems

SQL Server for developers. murach's TRAINING & REFERENCE. Bryan Syverson. Mike Murach & Associates, Inc. Joel Murach

Darshan Institute of Engineering & Technology PL_SQL

Using Multiple Operations. Implementing Table Operations Using Structured Query Language (SQL)

D61830GC30. MySQL for Developers. Summary. Introduction. Prerequisites. At Course completion After completing this course, students will be able to:

CSE 530A Database Management Systems. Introduction. Washington University Fall 2013

Lab 9 Access PreLab Copy the prelab folder, Lab09 PreLab9_Access_intro

Beginning C# 5.0. Databases. Vidya Vrat Agarwal. Second Edition

5.5 Copyright 2011 Pearson Education, Inc. publishing as Prentice Hall. Figure 5-2

Karl Lum Partner, LabKey Software Evolution of Connectivity in LabKey Server

Lab # 5. Retreiving Data from Multiple Tables. Eng. Alaa O Shama

David M. Kroenke and David J. Auer Database Processing 12 th Edition

Using the SQL Procedure

VBScript Database Tutorial Part 1

2874CD1EssentialSQL.qxd 6/25/01 3:06 PM Page 1 Essential SQL Copyright 2001 SYBEX, Inc., Alameda, CA

CS 2316 Data Manipulation for Engineers

Writing MySQL Scripts With Python's DB-API Interface

Commercial Database Software Development- A review.

How To Create A Table In Sql (Ahem)

Exploring Microsoft Office Access Chapter 2: Relational Databases and Multi-Table Queries

Concepts Design Basics Command-line MySQL Security Loophole

6 CHAPTER. Relational Database Management Systems and SQL Chapter Objectives In this chapter you will learn the following:

Oracle Database: SQL and PL/SQL Fundamentals

Relational Database Basics Review

CSI 2132 Lab 3. Outline 09/02/2012. More on SQL. Destroying and Altering Relations. Exercise: DROP TABLE ALTER TABLE SELECT

Short notes on webpage programming languages

Equipment Room Database and Web-Based Inventory Management

FileMaker 12. ODBC and JDBC Guide

Oracle9i Database and MySQL Database Server are

Application note: Connecting the to a Database

full file at

Relational Databases and SQLite

php tek 2006 in Orlando Florida Lukas Kahwe Smith

How To Work For Hanodale

Tutorial on Relational Database Design

Oracle Database 10g Express

P_Id LastName FirstName Address City 1 Kumari Mounitha VPura Bangalore 2 Kumar Pranav Yelhanka Bangalore 3 Gubbi Sharan Hebbal Tumkur

Web Development using PHP (WD_PHP) Duration 1.5 months

Databases and SQL. The Bioinformatics Lab SS Wiki topic 10. Tikira Temu. 04. June 2013

Introduction to Microsoft Jet SQL

Introduction to Relational Database. David Gerbing. School of Business Administration. Portland State University

2/3/04 Doc 7 SQL Part 1 slide # 1

relational database tables row column SQL

Deleting A Record Updating the Database Binding Data Tables to Controls Binding the Data Table to the Data Grid View...

Oracle 10g PL/SQL Training

VB.NET - DATABASE ACCESS

Oracle Database: SQL and PL/SQL Fundamentals NEW

Knocker main application User manual

Sharding with postgres_fdw

ICAB4136B Use structured query language to create database structures and manipulate data

3. Relational Model and Relational Algebra

DBX. SQL database extension for Splunk. Siegfried Puchbauer

B.1 Database Design and Definition

Microsoft Access Lesson 5: Structured Query Language (SQL)

Demystified CONTENTS Acknowledgments xvii Introduction xix CHAPTER 1 Database Fundamentals CHAPTER 2 Exploring Relational Database Components

Chapter 7 -- Adding Database Support

Oracle Database: SQL and PL/SQL Fundamentals

ER/Studio 8.0 New Features Guide

Database Query 1: SQL Basics

Unit 10: Microsoft Access Queries

Copyright 2011 Pearson Education, Inc. Publishing as Prentice Hall. Objectives

INTRODUCTION TO DATABASE SYSTEMS

LSINF1124 Projet de programmation

SQL Injection. The ability to inject SQL commands into the database engine through an existing application

SQL Server. 1. What is RDBMS?

Transcription:

Chapter 22 Database: SQL, MySQL, DBI and ADO.NET Outline 22.1 Introduction 22.2 Relational Database Model 22.3 Relational Database Overview: Books.mdb Database 22.4 SQL (Structured Query Language) 22.4.1 Basic SELECT Query 22.4.2 WHERE Clause 22.4.3 ORDER BY Clause 2244 22.4.4 Merging Data from Multiple l Tables: INNER JOIN 22.4.5 Joining Data from Tables Authors, AuthorISBN, Titles and Publishers 22.4.6 INSERT Statement 22.4.7 UPDATE Statement 22.4.8 DELETE Statement

Chapter 22 Database: SQL, MySQL, DBI and ADO.NET 22.5 MySQL 22.6 Introduction to DBI 22.6.1 Perl Database Interface 22.6.2 PHP dbx module 22.6.3 Python DB-API 22.7 ADO.NET Object Model 22.8 Web Resources

Objectives In this lesson, you will learn: To understand the relational database model. To be able to write database queries using SQL (Structured Query Language). To understand the MySQL database server. To learn various database interfaces. To understand ADO.NET s object model.

Database 22.1 Introduction Integrated collection of data Database management system (DBMS) Store and organize data consistent with database s format Relational database SQL (Structured Query Language) Queries Manipulate data

22.2 Relational Database Model Composed of tables Row Number column Primary key Reference data in the table A column or set of columns in table contains unique data

22.2 Relational Database Model Row number name department salary location 23603 Jones 413 1100 New Jersey 24568 Kerwin 413 2000 New Jersey 34589 Larson 642 1800 Los Angeles 35761 Myers 611 1400 Orlando 47132 Neumann 413 9000 New Jersey 78321 Stephens 611 8500 Orlando Primary key Column Fig. 22.1 Relational database structure of an Employee table.

22.2 Relational Database Model department location 413 New Jersey 611 Orlando 642 Los Angeles Fig. 22.2 Table formed by selecting department and location data from the Employee table.

22.3 Relational Database Overview: Books.mdb Database Primary key uniquely identifies each row Rule of Entity Integrity Composite primary key Lines connecting tables Relationships One-to-many relationship Foreign key Join multiple tables Rule of Referential Integrity

22.3 Relational Database Overview: Books.mdb Database Field Description authorid Author s ID number in the database. In the Books.mdb database, this Integer column is defined as autoincrement. For each new row inserted in this table, the database increments the authorid value, ensuring that each row has a unique authorid. This column represents the table s primary key. firstname Author s first name (a String). lastname Author s last name (a String). Fig. 22.3 Authors table from Books.mdb.

22.3 Relational Database Overview: Books.mdb Database authorid firstname lastname 1 Harvey Deitel 2 Paul Deitel 3 Tem Nieto 4 Kate Steinbuhler 5 Sean Santry 6 Ted Lin 7 Praveen Sadhu 8 David McPhie 9 Cheryl Yaeger 10 Marina Zlatkina 11 Ben Wiedermann 12 Jonathan Liperi Fig. 22.4 Data from the Authors table of Books.mdb.

22.3 Relational Database Overview: Books.mdb Database Field Description publisherid The publisher s ID number in the database. This auto-incremented Integer is the table s primary key. publishername The name of the publisher (a String). Fig. 22.5 Publishers table from Books.mdb. publisherid publishername 1 Prentice Hall 2 Prentice Hall PTG Fig. 22.6 Data from the Publishers table of Books.mdb. Field Description authorid The author s ID number, which allows the database to associate each book with a specific author. The integer ID number in this column must also appear in the Authors table. isbn The ISBN number for a book (a String). Fig. 22.7 AuthorISBN table from Books.mdb.

22.3 Relational Database Overview: Books.mdb Database authorid isbn authorid isbn 1 0130895725 2 0139163050 1 0132261197 2 013028419x 1 0130895717 2 0130161438 1 0135289106 2 0130856118 1 0139163050 2 0130125075 1 013028419x 2 0138993947 1 0130161438 2 0130852473 1 0130856118 2 0130829277 1 0130125075 2 0134569555 1 0138993947 2 0130829293 1 0130852473 2 0130284173 1 0130829277 2 0130284181 1 0134569555 2 0130895601 1 0130829293 3 013028419x 1 0130284173 3 0130161438 1 0130284181 3 0130856118 1 0130895601 3 0134569555 2 0130895725 3 0130829293 2 0132261197 3 0130284173 2 0130895717 3 0130284181 2 0135289106 4 0130895601 Fig. 22.8 Data from AuthorISBN table in Books.mdb.

22.3 Relational Database Overview: Books.mdb Database Field Description isbn ISBN number of the book (a String). title Title of the book (a String). editionnumber Edition number of the book (a String). copyright Copyright year of the book (an Integer). description Description of the book (a String). publisherid Publisher s ID number (an Integer). This value must correspond to an ID number in the Publishers table. imagefile Name of the file containing the book s cover image (a String). price Suggested retail price of the book (a real number). [Note: The prices shown in this database are for example purposes only.] Fig. 22.9 Titles table from Books.mdb.

22.3 Relational Database Overview: Books.mdb Database isbn title edition- Number publisherid copyright price 0130923613 Python How to Program 1 1 2002 $69.95 0130622214 C# How to Program 1 1 2002 $69.9595 0130341517 Java How to Program 4 1 2002 $69.95 0130649341 The Complete Java Training 4 2 2002 $109.95 Course 0130895601 Advanced Java 2 Platform 1 1 2002 $69.95 How to Program 0130308978 Internet and World Wide 2 1 2002 $69.95 Web How to Program 0130293636 Visual Basic.NET How to 2 1 2002 $69.95 Program 0130895636 The Complete C++ Training 3 2 2001 $109.95 Course 0130895512 The Complete e-business & 1 2 2001 $109.95 e-commerce Programming Training Course Fig. 22.10 Portion of the data from the Titles table of Books.mdb.

22.3 Relational Database Overview: Books.mdb Database Fig. 22.11 Table relationships in Books.mdb.

22.4 SQL (Structured Query Language) SQL keyword SELECT FROM WHERE INNER JOIN GROUP BY ORDER BY INSERT UPDATE DELETE CREATE DROP COUNT Fig. 22.12 Description Selects (retrieves) columns from one or more tables. Specifies tables from which to get columns or delete rows. Required in every SELECT and DELETE statement. Specifies criteria that determine the rows to be retrieved. Joins rows from multiple tables to produce a single set of rows. Specifies criteria for grouping rows. Specifies criteria for ordering rows. Inserts data into a specified table. Updates data in a specified table. Deletes data from a specified table. Creates a new table. Deletes an existing table. Returns the number of records that satisfy given search criteria. SQL keywords.

22.4.1 Basic SELECT Query SELECT * FROM tablename SELECT * FROM Authors SELECT authorid, lastname FROM Authors

22.4.1 Basic SELECT Query authorid lastname authorid lastname 1 Deitel 7 Sadhu 2 Deitel 8 McPhie 3 Nieto 9 Yaeger 4 Steinbuhler 10 Zlatkina 5 Santry 11 Wiedermann 6 Lin 12 Liperi Fig. 22.13 authorid and lastname from the Authors table.

22.4.2 WHERE Clause Specify selection criteria for query SELECT columnname1, columnname2, FROM tablename WHERE criteria SELECT title, editionnumber, copyright FROM Titles WHERE copyright > 1999 LIKE Pattern matching Asterisk(* ) SELECT authorid, firstname, lastname FROM Authors WHERE lastname LIKE D* Question mark (? ) SELECT authorid, firstname, lastname FROM Authors WHERE lastname LIKE?I*

22.4.2 WHERE Clause Title editionnumber copyright Internet and World Wide Web How to 2 2002 Program Java How to Program 4 2002 The Complete Java Training Course 4 2002 The Complete e-business & e-commerce 1 2001 Programming Training Course The Complete Internet & World Wide Web 2 2001 Programming Training Course The Complete Perl Training Course 1 2001 The Complete XML Programming Training 1 2001 Course C How to Program 3 2001 C++ How to Program 3 2001 The Complete C++ Training Course 3 2001 e-business and e-commerce How to Program 1 2001 Internet and World Wide Web How to 1 2000 Program The Complete Internet and World Wide Web Programming g Training Course 1 2000

22.4.2 WHERE Clause Java How to Program (Java 2) 3 2000 The Complete Java 2 Training Course 3 2000 XML How to Program 1 2001 Perl How to Program 1 2001 Advanced Java 2 Platform How to 1 2002 Program e-business and e-commerce for Managers 1 2000 Wireless Internet and Mobile Business 1 2001 How to Program C# How To Program 1 2002 Python How to Program 1 2002 Visual Basic.NET How to Program 2 2002 Fig. 22.14 Titles with copyrights after 1999 from table Titles.

22.4.2 WHERE Clause authorid firstname lastname 1 Harvey Deitel 2 Paul Deitel Fig. 22.15 Authors from the Authors table whose last names start with D. authorid firstname lastname 3 Tem Nieto 6 Ted Lin 11 Ben Wiedermann 12 Jonathan Liperi Fig. 22.16 Authors from table Authors whose last names contain i as their second letter.

22.4.3 ORDER BY Clause Arranged in ascending or descending order SELECT columnname1, columnname2, FROM tablename ORDER BY column ASC SELECT authorid, firstname, lastname FROM Authors ORDER BY lastname ASC SELECT columnname1, columnname2, FROM tablename ORDER BY column DESC SELECT authorid, firstname, lastname FROM Authors ORDER BY lastname DESC

22.4.3 ORDER BY Clause authorid firstname lastname 2 Paul Deitel 1 Harvey Deitel 6 Ted Lin 12 Jonathan Liperi 8 David McPhie 3 Tem Nieto 7 Praveen Sadhu 5 Sean Santry 4 Kate Steinbuhler 11 Ben Wiedermann 9 Cheryl Yaeger 10 Marina Zlatkina Fig. 22.17 Authors from table Authors in ascending order by lastname.

22.4.3 ORDER BY Clause authorid firstname lastname 10 Marina Zlatkina 9 Cheryl Yaeger 11 Ben Wiedermann 4 Kate Steinbuhler 5 Sean Santry 7 Praveen Sadhu 3 Tem Nieto 8 David McPhie 12 Jonathan Liperi 6 Ted Lin 2 Paul Deitel 1 Harvey Deitel Fig. 22.18 Authors from table Authors in descending order by lastname.

22.4.3 ORDER BY Clause authorid firstname lastname 1 Harvey Deitel 2 Paul Di Deitel 6 Ted Lin 12 Jonathan Liperi 8 David McPhie 3 Tem Nieto 7 Praveen Sadhu 5 Sean Santry 4 Kate Steinbuhler 11 Ben Wiedermann 9 Cheryl Yaeger 10 Marina Zlatkina Fig. 22.19 Authors from table Authors in ascending order by lastname and by firstname.

22.4.3 ORDER BY Clause isbn title edition- copyright price Number 0130895601 Advanced Java 2 Platform 1 2002 $69.95 How to Program 0131180436 C How to Program 1 1992 $69.95 0130895725 C How to Program 3 2001 $69.95 0132261197 C How to Program 2 1994 $49.95 0130622214 C# How To Program 1 2002 $69.95 0135289106 C++ How to Program 2 1998 $49.95 0131173340 C++ How to Program 1 1994 $69.95 0130895717 C++ How to Program 3 2001 $69.95 013028419X e-business and e- 1 2001 $69.95 Commerce How to Program 0130308978 Internet and World Wide 2 2002 $69.95 Web How to Program 0130161438 Internet and World Wide Web How to Program 1 2000 $69.95

22.4.3 ORDER BY Clause 0130341517 Java How to Program 4 2002 $69.95 0136325890 Java How to Program 1 1998 $69.95 0130284181 Perl How to Program 1 2001 $69.9595 0130923613 Python How to 1 2002 $69.95 Program 0130293636 Visual Basic.NET 2 2002 $69.95 How to Program 0134569555 Visual Basic 6 How to 1 1999 $69.95 Program 0130622265 Wireless Internet and 1 2001 $69.95 Mobile Business How to Program 0130284173 XML How to Program 1 2001 $69.95 Fig. 22.20 Books from table Titles whose titles end with How to Program in ascending order by title.

22.4.4 Merging Data from Multiple Tables: INNER JOIN Normalize databases Ensure database does not store data redundantly SELECT columnname1, columnname2, FROM table1 INNER JOIN table2 ON table1, columnname = table2.columnname l

22.4.4 Merging Data from Multiple Tables: INNER JOIN firstname lastname isbn firstname lastname isbn Harvey Deitel 0130895601 Harvey Deitel 0130856118 Harvey Deitel 0130284181 Harvey Deitel 0130161438 Harvey Deitel 0130284173 Harvey Deitel 013028419x Harvey Deitel 0130829293 Harvey Deitel 0139163050 Harvey Deitel 0134569555 Harvey Deitel 0135289106 Harvey Deitel 0130829277 Harvey Deitel 0130895717 Harvey Deitel 0130852473 Harvey Deitel 0132261197 Harvey Di Deitel 0138993947 Harvey Di Deitel 0130895725 Harvey Deitel 0130125075 Paul Deitel 0130895601 Paul Deitel 0130284181 Paul Deitel 0135289106 Paul Deitel 0130284173 Paul Deitel 0130895717 Paul Deitel 0130829293 Paul Deitel 0132261197 Paul Deitel 0134569555 Paul Deitel 0130895725 Paul Deitel 0130829277 Tem Nieto 0130284181 Paul Deitel 0130852473 Tem Nieto 0130284173 Paul Deitel 0138993947 Tem Nieto 0130829293 Paul Deitel 0130125075 Tem Nieto 0134569555 Paul Deitel 0130856118 Tem Nieto 0130856118 Paul Deitel 0130161438 Tem Nieto 0130161438 Paul Deitel 013028419x Tem Nieto 013028419x Paul Deitel 0139163050 Sean Santry 0130895601 Fig. 22.21 21 Authors from table Authors and ISBN numbers of the authors books, sorted in ascending order by lastname and firstname.

1 SELECT Titles.title, Titles.isbn, Authors.firstName, 2 Authors.lastName, Titles.copyright, 3 Publishers.publisherName 4 FROM 5 ( Publishers INNER JOIN Titles 6 ON Publishers.publisherID = Titles.publisherID ) 7 INNER JOIN 8 ( Authors INNER JOIN AuthorISBN 9 ON Authors.authorID h = AuthorISBN.authorID h ) 10 ON Titles.isbn = AuthorISBN.isbn 11 ORDER BY Titles.title Fig. 22.22 (1 of 1) Outline 2004 Prentice Hall, Inc. All rights reserved.

22.4.5 Joining Data from Tables Authors, AuthorISBN,, Titles and Publishers Title isbn first- Name last- Name copyright publisher- Name Advanced Java 2 Platform 0130895601 Paul Deitel 2002 Prentice Hall How to Program Advanced Java 2 Platform 0130895601 Harvey Deitel 2002 Prentice Hall How to Program Advanced Java 2 Platform 0130895601 Sean Santry 2002 Prentice Hall How to Program C How to Program 0131180436 Harvey Deitel 1992 Prentice Hall C How to Program 0131180436 Paul Deitel 1992 Prentice Hall C How to Program 0132261197 Harvey Deitel 1994 Prentice Hall C How to Program 0132261197 Paul Deitel 1994 Prentice Hall C How to Program 0130895725 Harvey Deitel 2001 Prentice Hall C How to Program 0130895725 Paul Deitel 2001 Prentice Hall C# How To Program 0130622214 Tem Nieto 2002 Prentice Hall C# How To Program 0130622214 Paul Deitel 2002 Prentice Hall C# How To Program 0130622214 Cheryl Yaeger 2002 Prentice Hall C# How To Program 0130622214 Marina Zlatkina 2002 Prentice Hall C# How To Program 0130622214 Harvey Deitel 2002 Prentice Hall C++ How to Program 0130895717 Paul Deitel 2001 Prentice Hall C++ How to Program 0130895717 Harvey Deitel 2001 Prentice Hall

22.4.5 Joining Data from Tables Authors, AuthorISBN,, Titles and Publishers C++ How to Program 0131173340 Paul Deitel 1994 Prentice Hall C++ How to Program 0131173340 Harvey Deitel 1994 Prentice Hall C++ How to Program 0135289106 Harvey Deitel 1998 Prentice Hall C++ How to Program 0135289106 Paul Deitel 1998 Prentice Hall e-business and e-commerce 0130323640 Harvey Deitel 2000 Prentice Hall for Managers e-business and e-commerce 0130323640 Kate Steinbuhler 2000 Prentice Hall for Managers e-business and e-commerce 0130323640 Paul Deitel 2000 Prentice Hall for Managers e-business and e-commerce 013028419X Harvey Deitel 2001 Prentice Hall How to Program e-business and e-commerce 013028419X Paul Deitel 2001 Prentice Hall How to Program e-business and e-commerce 013028419X Tem Nieto 2001 Prentice Hall How to Program Fig. 22.23 Portion of the result set produced by the query in Fig. 22.22.

22.4.6 INSERT Statement Inserts new row in table INSERT INTO tablename ( columnname1, columnname2,, columnnamen ) VALUES ( value1, value2,, valuen )

22.4.6 INSERT Statement authorid firstname lastname 1 Harvey Deitel 2 Paul Deitel 3 Tem Nieto 4 Kate Steinbuhler 5 Sean Santry 6 Ted Lin 7 Praveen Sadhu 8 David McPhie 9 Cheryl Yaeger 10 Marina Zlatkina 11 Ben Wiedermann 12 Jonathan Liperi 13 Sue Smith Fig. 22.24 24 Table Authors after an INSERT operation to add a row.

22.4.7 UPDATE Statement Modifies data in a table UPDATE tablename SET columnname1 = value1, columnname2 = value2,, columnnamen = valuen WHERE criteria

22.4.7 UPDATE Statement authorid firstname lastname 1 Harvey Deitel 2 Paul Di Deitel 3 Tem Nieto 4 Kate Steinbuhler 5 Sean Santry 6 Td Ted Lin 7 Praveen Sadhu 8 David McPhie 9 Cheryl Yaeger 10 Marina Zlatkina 11 Ben Wiedermann 12 Jonathan Liperi 13 Sue Jones Fig. 22.2525 Table Authors after an UPDATE operation to change a row.

22.4.8 DELETE Statement Removes data from a table DELETE FROM tablename WHERE criteria

22.4.8 DELETE Statement authorid firstname lastname 1 Harvey Deitel 2 Paul Deitel 3 Tem Nieto 4 Kate Steinbuhler 5 Sean Santry 6 Ted Lin 7 Praveen Sadhu 8 David McPhie 9 Cheryl Yaeger 10 Marina Zlatkina 11 Ben Wiedermann 12 Jonathan Liperi Fig. 22.26 Table Authors after a DELETE operation to remove a row.

22.5 MySQL Multi-user and multi-threaded RDBMS server Uses SQL to interact with and manipulate data Supports various programming languages Access tables from different tdatabases Handle large databases

22.6 Introduction to DBI Uniform access to all database systems Access relational databases

22.6.1 Perl Database Interface Access relational databases from Perl programs Database independent Handles Driver handles Database handles Statement handles

22.6.1 Perl Database Interface Data object handle Description Driver handle Encapsulates the driver for the database; rarely used in a Perl script. Database handle Encapsulates a specific connection to a database; can send SQL statements to a database. Statement handle Encapsulates specific SQL statements and the results returned from them. Fig. 22.27 Data object handles for Perl DBI.

22.6.2 PHP dbx module Seven functions that interface to database modules MySQL PostgreSQL Microsoft SQL Server Oracle Sybase FrontBase ODBC (Open Database Connectivity)

22.6.2 PHP dbx module dbx function Description dbx_connect Opens a connection/database. dbx_close Closes an open 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_compare Compares two rows and sorts them. dbx_escape_string Escapes a string for use in an SQL query. Fig. 22.28 Data objects for PHP dbx modules.

22.6.3 Python DB-API Consists of Connection data objects and Cursor data objects Portable across several databases

22.6.3 Python DB-API Connection data object Description close Closes the connection to the database. commit Commits (saves) a transaction (i.e., database update operation). rollback Exits a pending transaction without saving changes. cursor Returns a new Cursor object or the current connection. Fig. 22.29 Connection data objects for Python DB-API. Cursor data object Description rowcount Returns the number of rows affected by the last execute method call. close Closes the Cursor object. execute( operation ) Executes a database query or statement. Return values not defined. executemany( operation, parameters ) Executes a database query or statement 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 from a query result. fetchall Returns all the rows of a query result. Fig. 22.30 Some Cursor data objects for Python-API.

API 22.7 ADO.NET Object Model Access database systems programmatically Created for the.net framework Primary namespaces System.Data System.Data.OleDb System.Data.SqlClient

22.8 Web Resources www.sql.org www.mysql.com www.microsoft.com/sql com/sql www.microsoft.com/sql/downloads/default.asp www.postgresql.org www.interbase.com www.maverick-dbms.org www.devshed.com www.cql.com leap.sourceforge.net www.voicenet.com/~gray/home.html msdn.microsoft.com/library/devprods/vs6/vstudio/mdac200/mda c3sc7.htm www.w3schools.com/sql www.sqlmag.com