+ All Categories
Home > Documents > Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Date post: 22-Dec-2015
Category:
Upload: alessandra-forward
View: 221 times
Download: 1 times
Share this document with a friend
Popular Tags:
26
Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 1 C hapter3 Introduction to relationaldatabases and M ySQ L
Transcript
Page 1: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 1

Chapter 3

Introduction to relational databases

and MySQL

Page 2: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 2

Objectives

Knowledge

1. Describe the structure of a relational database table.

2. Describe how the tables in a relational database are related using these terms: primary key and foreign key.

3. Identify the three types of relationships that can exist between two tables.

4. Describe the way the columns in a table are defined using these terms: data type, null value, default value, and auto-increment column.

5. Describe the use of SELECT statements, including the use of inner joins.

6. Describe the use of INSERT, UPDATE, and DELETE statements.

7. Describe the way the creation of users and the assignment of privileges affect how a MySQL database can be used.

Page 3: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 3

Introduction Databases are collections of related data files

Several ways of implementing these collections have been tried

Hierarchies

Networks

Mathematical Relations

Relational Databases were created by E.F. Codd at IBM

Relations and Relationships are two different terms

There are many different Relational Database Systems

Oracle

SQL Server

MySQL

Page 4: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 4

Terms relational database table – relation - file row – tuple - record column – attribute - field cell unique key primary key non-primary key

Page 5: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 5

A products table with 5 columns and 10 rows (primary key= productID)

Page 6: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 6

The categories table (primary key = categoryID)

Page 7: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 7

How are these Relations Related?

Page 8: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 8

Terms foreign key

one-to-many relationship

one-to-one relationship

many-to-many relationship

Page 9: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 9

Column definitions for MySQL products table

Page 10: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 10

Some of the more common MySQL data types CHAR

VARCHAR

INT

DECIMAL

DATE, TIME, DATETIME

Page 11: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 11

SQL- Structured Query Language A computer language for working with Relational Databases

Derived from work done at IBM

Not a complete programming language

Has ‘sub-languages’; DML, DDL

Page 12: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 12

Introduction to the DML part of SQL

Handles CRUD operations INSERT – Creates data SELECT – Retrieves data UPDATE – Updates data DELETE – Deletes data

Page 13: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 13

The notation used to define SQL syntax Reserved words are in upper-case letters (but SQL itself is case-insensitive) User-defined terms are in lower-case Terms separated by | are alternatives, choose one Terms inside [ ] are optional Terms inside { } means one must be selected Use of . . . means previous terms may be repeated All other symbols are used as written

Page 14: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 14

The SELECT statement syntax for all columns SELECT * FROM table-1 [WHERE selection-criteria] [ORDER BY column-1 [ASC|DESC] [, column-2 [ASC|DESC] ...] ]

A SELECT statement that gets all columns SELECT * FROM products WHERE categoryID = 2

The result table

Page 15: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 15

The syntax for selected columns SELECT column-1 [, column-2] ... FROM table-1 [WHERE selection-criteria] [ORDER BY column-1 [ASC|DESC] [, column-2 [ASC|DESC] ...] ]

A statement that gets selected columns and rows SELECT productName, listPrice FROM products WHERE listPrice < 500 ORDER BY listPrice ASC

The result table

Page 16: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 16

The syntax that joins two tables SELECT column-1 [, column-2] ... FROM table-1 {INNER | LEFT OUTER | RIGHT OUTER} JOIN table-2 ON table-1.column-1 {=|<|>|<=|>=|<>} table-2.column-2 [WHERE selection-criteria] [ORDER BY column-1 [ASC|DESC] [, column-2 [ASC|DESC] ...] ]

Page 17: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 17

A statement that gets data from two related tables SELECT categoryName, productName, listPrice FROM categories INNER JOIN products ON categories.categoryID = products.categoryID WHERE listPrice > 800 ORDER BY listPrice ASC

The result table

Page 18: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 18

Terms join

inner join

outer join

left outer join

right outer join

Page 19: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 19

The syntax for the INSERT statement INSERT INTO table-name [(column-list)] VALUES (value-list)

A statement that adds one row to a table INSERT INTO products (categoryID, productCode, productName, listPrice) VALUES (1, 'tele', 'Fender Telecaster', 599.00)

A statement that uses the MySQL NOW function to get the current date

INSERT INTO orders (customerID, orderDate) VALUES (1, NOW())

Page 20: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 20

The syntax for the UPDATE statement UPDATE table-name SET expression-1 [, expression-2] ... WHERE selection-criteria

A statement that updates a column in one row UPDATE products SET productName = 'Ludwig 5-Piece Kit with Zildjian Cymbals' WHERE productCode = 'ludwig'

A statement that updates multiple rows UPDATE products SET listPrice = 299 WHERE categoryID = 1

Page 21: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 21

The syntax for the DELETE statement DELETE FROM table-name WHERE selection-criteria

A statement that deletes one row from a table DELETE FROM products WHERE productID = 1

A statement that deletes multiple rows DELETE FROM products WHERE listPrice > 200

Page 22: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 22

Using MySQL via a command-line client

Page 23: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 23

Using MySQL via a web-based GUI client

Page 24: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 24

Running a SQL script that creates a database

Page 25: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 25

How to import and run a SQL script 1. Click the Import tab, go to the “File to Import” section, click the

Browse button, and select the file that contains the script.

2. Click the Go button. This runs the script that’s in the file.

The script for creating the databases for this book \xampp\htdocs\book_apps\_create_db\create_db.sql

Page 26: Murach's PHP and MySQL, C3© 2010, Mike Murach & Associates, Inc.Slide 1.

Murach's PHP and MySQL, C3 © 2010, Mike Murach & Associates, Inc. Slide 26

Creating a user with limited privileges on one table

GRANT SELECT ON my_guitar_shop1.products TO mgs_tester@localhost IDENTIFIED BY 'pa55word'

Creating a user with limited privileges on all tables

GRANT SELECT, INSERT, DELETE, UPDATE ON my_guitar_shop1.* TO mgs_user@localhost IDENTIFIED BY 'pa55word'


Recommended