+ All Categories
Transcript
Page 1: PHP Roadshow - MySQL Database Essentials

MySQL Database Essentials

Cherrie Ann B. Domingo, CCNAPresident, PHP User Group Philippines (PHPUGPH)

Acting Secretary/Treasurer, Philippine SQL Server Users Group (PHISSUG)

Page 2: PHP Roadshow - MySQL Database Essentials

Objectives for the Session

� Understand relational database concepts

� Introduce MySQL RDBMS

� Retrieve row and column data from tables with the SELECT statement

� Use DML statements – INSERT, UPDATE, DELETE

� Control database transactions using COMMIT and ROLLBACK statements

Page 3: PHP Roadshow - MySQL Database Essentials

Historical Roots of Databases

� First applications focused on clerical tasks: order/entry processing, payroll,

work scheduling and so on.

� Small organizations keep track of their files using a manual file system

(folders, filing cabinets whose contents were logically related)

� As organizations grew and reporting requirements became more complex,

keeping track of data in a manual file system became more difficult.

� DP (data processing) Specialists were hired to computerize the manual file

systems

3

Page 4: PHP Roadshow - MySQL Database Essentials

Disadvantages of File Systems

� Data redundancy and inconsistency

� Difficulty in accessing data

� Data isolation

� Concurrent access anomalies

� Security problems

4

Page 5: PHP Roadshow - MySQL Database Essentials

Database Management Systems vs. File Systems

5

Page 6: PHP Roadshow - MySQL Database Essentials

Database Systems Terms

� Database - a collection of related data

� Instance - a collection of information stored in a database at a given point

in time

� Schema - over-all design of a database� Schema - over-all design of a database

6

Page 7: PHP Roadshow - MySQL Database Essentials

Database Management System (DBMS)

� consists of a collection of interrelated data and a collection of programs

used to access the data

� introduced to address the data-dependency problem and at the same

time remove unnecessary burdens from the application programmer

� Primary goal of a DBMS is to provide a convenient and efficient

environment for retrieving and storing information

7

Page 8: PHP Roadshow - MySQL Database Essentials

Functions of DBMS

� Data definition

• must be able to accept data definitions (internal, external, conceptual

schemas and all associated mappings) in source form and convert to

the appropriate object form (DDL)

� Data Manipulation� Data Manipulation

• must be able to handle requests from the user to retrieve and possibly

update existing data in the database or to add new data to the

database (DML)

� Data Security and Integrity

• must be able to monitor user requests and reject any attempts to

violate the security and integrity checks defined by the DBA

8

Page 9: PHP Roadshow - MySQL Database Essentials

Functions of DBMS

� Data Recovery and Concurrency

• must have the capability to recover from or minimize the effects of a

system crash

� Data dictionary management

• must provide a system database called database dictionary. It • must provide a system database called database dictionary. It

contains metadata (data about data) or the definition of other objects

in the system

9

Page 10: PHP Roadshow - MySQL Database Essentials

Advantages of DBMS

� Reduced data redundancy

• can be avoided by keeping a single copy of the data

� Data Integrity

• since there is only one copy of a particular data, it is certain that the changes to

the data will be reflected in all future uses of that datathe data will be reflected in all future uses of that data

� Data independence

• structure of the database system requires that data be independent of other

data in the database and the software used to access the database

� Data Security

• different access levels to different users

10

Page 11: PHP Roadshow - MySQL Database Essentials

Advantages of DBMS

� Data Consistency

• format (name and size) of data being stored

� Easier use of data

• a database system provides a user-friendly query language as part of the

packagepackage

� Less storage

• since data redundancy is reduced if not eliminated, the database will occupy

less storage space

11

Page 12: PHP Roadshow - MySQL Database Essentials

Disadvantages of DBMS

• Complex

• require special skills to implement and use

• Expensive

• since it is complex, it will require additional training to those who will make

use of the system. Also, the design and implementation is not cheapuse of the system. Also, the design and implementation is not cheap

• Vulnerable

• since all data are stored in one central location, it is vulnerable to partial or

complete destruction when a breakdown of hardware components occur

• Incompatibility with other database systems

• files created in one product are not easily transferred to another database

product

12

Page 13: PHP Roadshow - MySQL Database Essentials

• Vulnerable

– since all data are stored in one central location, it is vulnerable to partial or

complete destruction when a breakdown of hardware components occur

• Incompatibility with other database systems

– files created in one product are not easily transferred to another database

Disadvantages of DBMS

– files created in one product are not easily transferred to another database

product

13

Page 14: PHP Roadshow - MySQL Database Essentials

� a popular open source RDBMS

� source code is available under terms of the GNU General Public License, as

well as under a variety of proprietary agreements

� owned and sponsored by a single for-profit firm,

the Swedish company MySQL AB, now a subsidiary of Sun Microsystems,

which holds the copyright to most of the codebasewhich holds the copyright to most of the codebase

� commonly used by free software projects which require a full-featured

database management system, such as WordPress, phpBB and other

software built on the LAMP software stack

� also used in very high-scale World Wide Web products

including Google and Facebook

14

Page 15: PHP Roadshow - MySQL Database Essentials

� open source tool written in PHP intended to handle the administration

of MySQL over the World Wide Web

� can perform various tasks such as:

• creating, modifying or deleting databases, tables, fields or rows

• executing SQL statements; or managing users and permissions.

15

Page 16: PHP Roadshow - MySQL Database Essentials

� ANSI standard for accessing database systems

� used to retrieve, insert, update and delete records from a database

� Works with database programs like MS Access, DB2, Informix, SQL Server, Oracle,

Sybase, etc.

SQL (Structured Query Language)

Sybase, etc.

16

Page 17: PHP Roadshow - MySQL Database Essentials

SQL (Structured Query Language)

� ANSI standard for accessing database systems

� used to retrieve, insert, update and delete records from a database

� Works with database programs like MS Access, DB2, Informix, SQL Server,

Oracle, Sybase, etc.Oracle, Sybase, etc.

17

Page 18: PHP Roadshow - MySQL Database Essentials

SQL� Data Manipulation Language (DML)

• Select

• Update

• Delete

• Insert into

� Data Definition Language (DDL)

• Create table

• Alter table

• Drop table

• Create index

• Drop index

18

Page 19: PHP Roadshow - MySQL Database Essentials

SQL� Data Control Language (DCL)

• Rollback

• Commit

19

Page 20: PHP Roadshow - MySQL Database Essentials

Capabilities of SELECT Statement

� Selection - choose rows in a table that should be returned by a query

� Projection - choose columns in a table that should be returned by a query

� Join - bring together data stored in different tables by creating a link

through a column that both tables sharethrough a column that both tables share

20

Page 21: PHP Roadshow - MySQL Database Essentials

Capabilities of SELECT Statement

SelectionProjection

Table 1 Table 2

Table 1Table 1

Join

21

Page 22: PHP Roadshow - MySQL Database Essentials

SELECT Syntax

SELECT * | column_name(s)

FROM table_name;

• SELECT identifies the columns to be displayed

• FROM identifies the table containing those columns.

22

Page 23: PHP Roadshow - MySQL Database Essentials

Column Alias

� Renames a column heading

� Is useful with calculations

� Immediately follows the column name (There can also be the optional

AS keyword between the column name and alias.)

� Requires double quotation marks if it contains spaces or special

characters or if it is case sensitivecharacters or if it is case sensitive

SELECT column_name column_alias

FROM table_name;

SELECT column_name AS column_alias

FROM table_name;

*A multiple word heading can be specified by putting it in quotes

23

Page 24: PHP Roadshow - MySQL Database Essentials

Arithmetic Operators

+ Addition

- Subtraction

/ Division

* Multiplication

% Modulo

SELECT ProductID, ProductName, UnitPrice * 10

FROM Products

24

Page 25: PHP Roadshow - MySQL Database Essentials

Operator Precedence

* / %

+ -

Parentheses are used to force prioritized evaluation and to clarify statements

SELECT ProductName, UnitPrice*UnitsInStock+12

FROM Products

25

Page 26: PHP Roadshow - MySQL Database Essentials

Defining a NULL value

� A null is a value that is unavailable, unassigned, unknown value or

inapplicable

� A null is not the same as a zero or blank space

26

Page 27: PHP Roadshow - MySQL Database Essentials

Null Values in Arithmetic Expressions

� Arithmetic expressions containing a null value evaluate to null.

27

Page 28: PHP Roadshow - MySQL Database Essentials

Duplicate Rows

� The default display of queries is all rows, including duplicate rows

� To eliminate duplicate values, use DISTINCT keyword

SELECT DISTINCT department_idSELECT DISTINCT department_id

FROM employees;

28

Page 29: PHP Roadshow - MySQL Database Essentials

Displaying Table Structure

� DESCRIBE | DESC - used to display table structure

Syntax:

DESC[RIBE] tablenameDESC[RIBE] tablename

DESCRIBE employees

29

Page 30: PHP Roadshow - MySQL Database Essentials

Limiting rows that are selected

� Restrict the rows that are returned by using the WHERE clause

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM table

[WHERE condition(s)];

� The WHERE clause follows the FROM clause.

SELECT employee_id, last_name, job_id, department_id

FROM employees

WHERE department_id = 90 ;

30

Page 31: PHP Roadshow - MySQL Database Essentials

Character Strings and Dates

� Character strings and date values are enclosed in single quotation marks.

� Character values are case sensitive, and date values are format sensitive.

� The default date format is YYYY-MM-DD.

SELECT last_name, job_id, department_idSELECT last_name, job_id, department_id

FROM employees

WHERE last_name = 'Whalen' ;

31

Page 32: PHP Roadshow - MySQL Database Essentials

Comparison ConditionOperator Meaning

= Equal to

> Greater than

>= Greater than or equal to

< Less than

<= Less than or equal to<= Less than or equal to

<> Not equal to

BETWEEN

...AND...Between two values

(inclusive)

IN(set) Match any of a list of values

LIKE Match a character pattern

IS NULL Is a null value

32

Page 33: PHP Roadshow - MySQL Database Essentials

Using Comparison Conditions

SELECT last_name, salary

FROM employees

WHERE salary <= 3000 ;

33

Page 34: PHP Roadshow - MySQL Database Essentials

BETWEEN condition

� Used to display rows based on a range of values

SELECT last_name, salary

FROM employees

WHERE salary BETWEEN 2500 AND 3500 ;

Lower limit Upper limit

34

Page 35: PHP Roadshow - MySQL Database Essentials

IN condition

� test for values in a list

SELECT employee_id, last_name, salary, manager_id

FROM employees

WHERE manager_id IN (100, 101, 201) ;

35

Page 36: PHP Roadshow - MySQL Database Essentials

LIKE condition

� Use the LIKE condition to perform wildcard searches of valid search string

values.

� Search conditions can contain either literal characters or numbers:

• % denotes zero or many characters.

• _ denotes one character.• _ denotes one character.

SELECT first_name

FROM employees

WHERE first_name LIKE 'S%' ;

36

Page 37: PHP Roadshow - MySQL Database Essentials

LIKE condition

� You can combine pattern-matching characters:

SELECT last_name

FROM employees

WHERE last_name LIKE '_o%' ;

� You can use the ESCAPE identifier to search for the actual % and _ symbols.

37

Page 38: PHP Roadshow - MySQL Database Essentials

NULL Conditions

Test for nulls with the IS NULL operator

SELECT last_name, manager_id

FROM employees

WHERE manager_id IS NULL ;

38

Page 39: PHP Roadshow - MySQL Database Essentials

LOGICAL Conditions

Operator Meaning

AND Returns TRUE if both component

conditions are true

OR Returns TRUE if either component

condition is truecondition is true

NOT Returns TRUE if the following

condition is false

39

Page 40: PHP Roadshow - MySQL Database Essentials

Sorting using ORDER BY

� Sort retrieved rows with the ORDER BY clause

� ASC: ascending order, default

� DESC: descending order

� The ORDER BY clause comes last in the SELECT statement:

40

Page 41: PHP Roadshow - MySQL Database Essentials

Obtaining Data from Multiple Tables

EMPLOYEES DEPARTMENTS

41

Page 42: PHP Roadshow - MySQL Database Essentials

Types of Joins

� Joins that are compliant with the SQL:1999 standard include the following:

• Cross joins

• Full (or two-sided) outer joins

• Arbitrary join conditions for outer joins

42

Page 43: PHP Roadshow - MySQL Database Essentials

JOIN� Used to display data from multiple tables

EMPLOYEES DEPARTMENTS

… …

Foreign key Primary key

43

Page 44: PHP Roadshow - MySQL Database Essentials

Qualifying Ambiguous Column Names

� Use table prefixes to qualify column names that are in multiple tables.

� Use table prefixes to improve performance.

� Use column aliases to distinguish columns that have identical names

but reside in different tables.but reside in different tables.

44

Page 45: PHP Roadshow - MySQL Database Essentials

Using Table Aliases

� Use table aliases to simplify queries.

� Use table aliases to improve performance.

45

Page 46: PHP Roadshow - MySQL Database Essentials

Retrieving Records with the ON Clause

SELECT e.employee_id, e.last_name, e.department_id,

d.department_id, d.location_id

FROM employees e JOIN departments d

ON (e.department_id = d.department_id);

46

Page 47: PHP Roadshow - MySQL Database Essentials

Self-Joins Using the ON Clause

EMPLOYEES (WORKER) EMPLOYEES (MANAGER)

MANAGER_ID in the WORKER table is equal to

EMPLOYEE_ID in the MANAGER table.

47

Page 48: PHP Roadshow - MySQL Database Essentials

Self-Joins Using the ON Clause

SELECT e.last_name emp, m.last_name mgr

FROM employees e JOIN employees m

ON (e.manager_id = m.employee_id);

48

Page 49: PHP Roadshow - MySQL Database Essentials

Creating Three-Way Joins with the ON Clause

SELECT employee_id, city, department_name

FROM employees e

JOIN departments d

ON d.department_id = e.department_id

JOIN locations l

ON d.location_id = l.location_id;ON d.location_id = l.location_id;

49

Page 50: PHP Roadshow - MySQL Database Essentials

Inner JOIN

� Inner Join - the typical join operation which uses some comparison

operator like = or <>). These include equi-joins and natural joins.

50

Page 51: PHP Roadshow - MySQL Database Essentials

Outer JOIN� can be a left or a right outer join

� specified with one of the following sets of keywords when they are

specified in the FROM clause

DEPARTMENTS EMPLOYEES

There are no employees in

department 190.

51

Page 52: PHP Roadshow - MySQL Database Essentials

INNER Versus OUTER Joins

� In SQL:1999, the join of two tables returning only matched rows is

called an inner join.

� A join between two tables that returns the results of the inner join as

well as the unmatched rows from the left (or right) tables is called a

left (or right) outer join.left (or right) outer join.

� A join between two tables that returns the results of an inner join as

well as the results of a left and right join is a full outer join.

52

Page 53: PHP Roadshow - MySQL Database Essentials

LEFT OUTER JOIN

SELECT e.last_name, e.department_id, d.department_name

FROM employees e LEFT OUTER JOIN departments d

ON (e.department_id = d.department_id) ;

53

Page 54: PHP Roadshow - MySQL Database Essentials

RIGHT OUTER JOIN

SELECT e.last_name, e.department_id, d.department_name

FROM employees e RIGHT OUTER JOIN departments d

ON (e.department_id = d.department_id) ;

54

Page 55: PHP Roadshow - MySQL Database Essentials

FULL OUTER JOIN

SELECT e.last_name, d.department_id, d.department_name

FROM employees e FULL OUTER JOIN departments d

ON (e.department_id = d.department_id) ;

55

Page 56: PHP Roadshow - MySQL Database Essentials

Cartesian Products

� A Cartesian product is formed when:

• A join condition is omitted

• A join condition is invalid

• All rows in the first table are joined to all rows in the second table

� To avoid a Cartesian product, always include a valid join condition.

56

Page 57: PHP Roadshow - MySQL Database Essentials

Generating a Cartesian Product

EMPLOYEES (20 rows) DEPARTMENTS (8 rows)

Cartesian product:

20 x 8 = 160 rows

57

Page 58: PHP Roadshow - MySQL Database Essentials

Creating CROSS JOIN

� The CROSS JOIN clause produces the cross-product of two tables.

� This is also called a Cartesian product between the two tables.

SELECT last_name, department_name

FROM employeesFROM employees

CROSS JOIN departments ;

58

Page 59: PHP Roadshow - MySQL Database Essentials

Adding a New Row to a Table

DEPARTMENTS

New row

Insert new rowinto the

DEPARTMENTS table

59

Page 60: PHP Roadshow - MySQL Database Essentials

INSERT statement

� Add new rows to a table by using the INSERT statement:

� With this syntax, only one row is inserted at a time.

INSERT INTO table [(column [, column...])]

VALUES (value [, value...]);

60

Page 61: PHP Roadshow - MySQL Database Essentials

Inserting New Rows

– Insert a new row containing values for each column.

– List values in the default order of the columns in the table.

– Optionally, list the columns in the INSERT clause.

INSERT INTO departments(department_id,

department_name, manager_id, location_id)

VALUES (70, 'Public Relations', 100, 1700);

– Enclose character and date values in single quotation marks.

VALUES (70, 'Public Relations', 100, 1700);

1 row created.

61

Page 62: PHP Roadshow - MySQL Database Essentials

UPDATE Statement Syntax

� Modify existing rows with the UPDATE statement:

� Update more than one row at a time (if required).

UPDATE table

SET column = value [, column = value, ...]

[WHERE condition];

62

Page 63: PHP Roadshow - MySQL Database Essentials

Updating Rows in a Table

� Specific row or rows are modified if you specify the WHERE clause:

UPDATE employees

SET department_id = 70

WHERE employee_id = 113;

1 row updated.

� All rows in the table are modified if you omit the WHERE clause:

UPDATE copy_emp

SET department_id = 110;

22 rows updated.

63

Page 64: PHP Roadshow - MySQL Database Essentials

Removing a Row from a Table

DEPARTMENTS

Delete a row from the DEPARTMENTS table:

64

Page 65: PHP Roadshow - MySQL Database Essentials

DELETE Statement

� You can remove existing rows from a table by using the DELETE

statement:

DELETE [FROM] table

[WHERE condition];

65

Page 66: PHP Roadshow - MySQL Database Essentials

Deleting Rows from a Table

� Specific rows are deleted if you specify the WHERE clause:

DELETE FROM departments

WHERE department_name = 'Finance';

1 row deleted.

� All rows in the table are deleted if you omit the WHERE

clause:

DELETE FROM copy_emp;

22 rows deleted.

66

Page 67: PHP Roadshow - MySQL Database Essentials

TRUNCATE Statement

� Removes all rows from a table, leaving the table empty and the table

structure intact

� Is a data definition language (DDL) statement rather than a DML

statement; cannot easily be undone

� Syntax:

� Example:

TRUNCATE TABLE table_name;

TRUNCATE TABLE copy_emp;

67

Page 68: PHP Roadshow - MySQL Database Essentials

DROP Statement

� All data and structure in the table are deleted.

� Any pending transactions are committed.

� All indexes are dropped.

� All constraints are dropped.

� You cannot roll back the DROP TABLE statement.

DROP TABLE dept80;

Table dropped.

68

Page 69: PHP Roadshow - MySQL Database Essentials

Database Transactions

A database transaction consists of one of the following:

� DML statements that constitute one consistent change to the data

� One DDL statement

� One data control language (DCL) statement

69

Page 70: PHP Roadshow - MySQL Database Essentials

Database Transactions

� Begin when the first DML SQL statement is executed

� End with one of the following events:

• A COMMIT or ROLLBACK statement is issued.

• A DDL or DCL statement executes (automatic commit).

• The system crashes.• The system crashes.

70

Page 71: PHP Roadshow - MySQL Database Essentials

Advantages of COMMIT and ROLLBACK Statements

With COMMIT and ROLLBACK statements, you can:

� Ensure data consistency

� Preview data changes before making changes permanent

� Group logically related operations

71

Page 72: PHP Roadshow - MySQL Database Essentials

Controlling Transactions

DELETE

INSERT

COMMITTime

Transaction

INSERT

UPDATE

INSERT

ROLLBACK

72

Page 73: PHP Roadshow - MySQL Database Essentials

State of the Data Before COMMIT or ROLLBACK

� The previous state of the data can be recovered.

� The current user can review the results of the DML operations by

using the SELECT statement.

� Other users cannot view the results of the DML statements by the

current user.

� The affected rows are locked; other users cannot change the data in � The affected rows are locked; other users cannot change the data in

the affected rows.

73

Page 74: PHP Roadshow - MySQL Database Essentials

State of the Data After COMMIT

� Data changes are made permanent in the database.

� The previous state of the data is permanently lost.

� All users can view the results.

� Locks on the affected rows are released; those rows are available for

other users to manipulate.

74

Page 75: PHP Roadshow - MySQL Database Essentials

Committing Data

� Make the changes:

DELETE FROM employees

WHERE employee_id = 99999;

1 row deleted.

INSERT INTO departments

� Commit the changes:

INSERT INTO departments

VALUES (290, 'Corporate Tax', NULL, 1700);

1 row created.

COMMIT;

Commit complete.

75

Page 76: PHP Roadshow - MySQL Database Essentials

State of the Data After ROLLBACK

Discard all pending changes by using the ROLLBACK statement:

� Data changes are undone.

� Previous state of the data is restored.

� Locks on the affected rows are released.

76

Page 77: PHP Roadshow - MySQL Database Essentials

State of the Data After ROLLBACK

DELETE FROM test;

25,000 rows deleted.

ROLLBACK;

Rollback complete.

DELETE FROM test WHERE id = 100;DELETE FROM test WHERE id = 100;

1 row deleted.

SELECT * FROM test WHERE id = 100;

No rows selected.

COMMIT;

Commit complete.

77

Page 78: PHP Roadshow - MySQL Database Essentials

SummaryThis session covers the following topics:

� RDBMS concepts

� Selecting all data from different tables

� Describing the structure of tables

� Performing arithmetic calculations and specifying column names

� Use of the statements below:� Use of the statements below:

Function Description

INSERT Adds a new row to the table

UPDATE Modifies existing rows in the table

DELETE Removes existing rows from the table

COMMIT Makes all pending changes permanent

ROLLBACK Discards all pending data changes

Page 79: PHP Roadshow - MySQL Database Essentials

Be a PHPUGPH’er! ^__^

Register now at http://www.phpugph.com

It’s totally FREE!

Page 80: PHP Roadshow - MySQL Database Essentials

Contact Me ^__^

Cherrie Ann B. Domingo, CCNA

[email protected]

[email protected]

cherrie.ann.domingo

cherrie.ann.domingo

cherrie.ann.domingo

http://www.plurk.com/chean

http://www.twitter.com/betelguese

http://www.cherrieanndomingo.com

+63917.865.2412 (Globe)

(632) 975.6976

http://www.facebook.com/cherrieann


Top Related