Top Banner
Learning PHP-MySQL aadhayan academy of education By: Akash Gupta
28
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: My sql1

Learning PHP-MySQL

aadhayan academy of education

By: Akash Gupta

Page 2: My sql1

Course Contents

aadhayan academy of education

• Basics of Database• MySQL• PHP basics• HTML/Javascript/CSS basics• Creating a simple Registration form using html/php/javascript/css/mysql• More practicals…• Project

Page 3: My sql1

Scopes of the Course

aadhayan academy of education

After completion of this course, you will: • Learn PHP and MySQL• Learn HTML, Javascript and CSS• Create a Webpage• Create a Industry-level project

Page 4: My sql1

What is Database?

aadhayan academy of education

A database is a separate application that stores a collection of data. Each database has one or more distinct APIs for creating, accessing, managing, searching, and replicating the data it holds.Other kinds of data stores can be used, such as files on the file system or large hash tables in memory but data fetching and writing would not be so fast and easy with those type of systems.So now a days we use relational database management systems (RDBMS) to store and manager huge volume of data. This is called relational database because all the data is stored into different tables and relations are established using primary keys or other keys known as foreign keys.A Relational DataBase Management System (RDBMS) is a software that:• Enables you to implement a database with tables, columns, and indexes.• Guarantees the Referential Integrity between rows of various tables.• Updates the indexes automatically.• Interprets an SQL query and combines information from various tables.

Page 5: My sql1

RDBMS Terminology

aadhayan academy of education

Before we proceed to explain MySQL database system, lets revise few definitions related to database.Database: A database is a collection of tables, with related data.Table: A table is a matrix with data. A table in a database looks like a simple spreadsheet.Column: One column (data element) contains data of one and the same kind, for example the column postcode.Row: A row (= tuple, entry or record) is a group of related data, for example the data of one subscription.Redundancy: Storing data twice, redundantly to make the system faster.

Page 6: My sql1

aadhayan academy of education

RDBMS Terminology cont.

Primary Key: A primary key is unique. A key value can not occur twice in one table. With a key you can find at most one row.Foreign Key: A foreign key is the linking pin between two tables.Compound Key: A compound key (composite key) is a key that consists of multiple columns, because one column is not sufficiently unique.Index: An index in a database resembles an index at the back of a book.Referential Integrity: Referential Integrity makes sure that a foreign key value always points to an existing row.

Page 7: My sql1

An example…

aadhayan academy of education

Student_ID Name Major Grade

101 Shannon BCB A

102 Mike BBMB A

103 Wang MCDB A

… … …

Page 8: My sql1

MySQL Introduction MySQL is a fast, easy-to-use RDBMS used being used

for many small and big businesses. MySQL is developed, marketed, and supported by MySQL AB, which is a Swedish company. MySQL is becoming so popular because of many good reasons.

MySQL is released under an open-source license. So you have nothing to pay to use it.

MySQL works on many operating systems and with many languages including PHP, PERL, C, C++, JAVA etc.

MySQL is very friendly to PHP, the most appreciated language for web development.

aadhayan academy of education

Page 9: My sql1

Basic MySQL Operations Create table Insert records Load data Retrieve records Update records Delete records Modify table Join table Drop table Optimize table Count, Like, Order by, Group by More advanced ones (sub-queries, stored procedures, triggers, views

…)aadhayan academy of education

Page 10: My sql1

How MySQL stores data (by default)

A MySQL server can store several databases Databases are stored as directories

Default is at /usr/local/mysql/var/ Tables are stored as files inside each database

(directory) For each table, it has three files:

table.FRM file containing information about the table structure

table.MYD file containing the row data table.MYI containing any indexes belonging with this

table, as well as some statistics about the table. aadhayan academy of education

Page 11: My sql1

Login

mysql –h hostname –u username –p [password] Example

% mysql -u usrname -pEnter password: passowrdWelcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 23 to server version: 3.23.41.

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

aadhayan academy of education

Page 12: My sql1

Create User and Database

mysql>use mysql; Use database mysql, used by the system

mysql>insert into user (Host, User, Password) values (‘localhost’, ‘test1’, password(‘pass1’)); Create a new database user test1 An alternative

GRANT USAGE ON *.* TO ‘test1’@’localhost‘ IDENTIFIED BY ‘pass1’;

aadhayan academy of education

Page 13: My sql1

Create User and Database (cont.)

mysql>insert into db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) values (‘localhost’, ‘testdb’, ‘test1‘, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’); Create a new database testdb for user test1

mysql>flush privileges Reloads the privileges from the grant tables in the

database mysql An alternative

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON testdb.* TO ‘test1’@’localhost’ IDENTIFIED BY ‘pass1’;

aadhayan academy of education

Page 14: My sql1

What are the current databases at the server?mysql> show databases;+--------------+| Database |+--------------+ | mysql | mysql is a database (stores users’ password …) used by system. | test |+--------------+Create a database (make a directory) whose name is MyDBmysql> create database MyDB;Select database to use mysql> use MyDB;Database changedWhat tables are currently stored in the MyDB database? mysql> show tables;Empty set (0.00 sec)

Create Database

aadhayan academy of education

Page 15: My sql1

CREATE TABLE Table_Name (column_specifications)

Examplemysql> CREATE TABLE student-> (-> student_ID INT UNSIGNED NOT NULL,-> name VARCHAR(20) NOT NULL,-> major VARCHAR(50),-> grade VARCHAR(5)-> );Query OK, 0 rows affected (0.00 sec)

Student_ID Name Major Grade

Create Table

aadhayan academy of education

Page 16: My sql1

Display Table Structuremysql> show tables;+--------------------+| Tables_in_MyDB |+--------------------+| student |+--------------------+1 row in set (0.00 sec)mysql> describe student;+---------------+----------------------+------+------+----------+--------+| Field | Type | Null | Key | Default | Extra |+---------------+----------------------+-------+-----+-----------+-------+| student_ID | int(10) unsigned | | | 0 | || name | varchar(20) | | | | || major | varchar(50) | YES | | NULL | || grade | varchar(5) | YES | | NULL | |+---------------+----------------------+-------+------+----------+-------+4 rows in set (0.00 sec)

aadhayan academy of education

Page 17: My sql1

Modify Table Structure

ALTER TABLE table_name Operations

mysql> alter table student add primary key (student_ID);Query OK, 0 rows affected (0.00 sec)Records: 0 Duplicates: 0 Warnings: 0

mysql> describe student;+---------------+--------------------- +-------+------+----------+-------+| Field | Type | Null | Key | Default | Extra |+---------------+----------------------+-------+------+----------+-------+| student_ID | int(10) unsigned | | PRI | 0 | || name | varchar(20) | | | | || major | varchar(10) | YES | | NULL | || grade | varchar(5) | YES | | NULL | |+---------------+----------------------+-------+------+-----------+-------+4 rows in set (0.00 sec)

aadhayan academy of education

Page 18: My sql1

Insert Record

INSERT INTO table_name SET col_name1=value1, col_name2=value2, col_name3=value3, …

Example

mysql> INSERT INTO student SET student_ID=101, name='Shannon', major='BCB', grade='A';

Query OK, 1 row affected (0.00 sec)

aadhayan academy of education

Student_ID

Name Major Grade

101 Shannon BCB A

Page 19: My sql1

Retrieve Record SELECT what_columns FROM table or tables WHERE condition Example

mysql> SELECT major, grade FROM student WHERE name='Shannon';

+-------+-------+| major| grade|+-------+-------+| BCB | A |+-------+-------+1 row in set (0.00 sec)

mysql> SELECT * FROM student;

aadhayan academy of education

Student_ID

Name Major Grade

101 Shannon BCB A

102 Mike BBMB A

103 Wang MCDB A

… … …

Page 20: My sql1

Update Record

UPDATE table_name SET which columns to change WHERE condition Example

mysql> UPDATE student SET grade='B' WHERE name='Shannon';Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0mysql> SELECT * FROM student WHERE name=‘Shannon’;+------------+---------------+--------+--------+| name | student_ID | major | grade |+------------+---------------+--------+--------+| Shannon | 101 | BCB | B |+------------+---------------+--------+--------+1 row in set (0.00 sec)

aadhayan academy of education

Page 21: My sql1

Delete Record

DELETE FROM table_name WHERE condition Examplemysql> DELETE FROM student WHERE name='Shannon';Query OK, 1 row affected (0.00 sec)

Mysql> DELETE FROM student;

Will delete ALL student records!

aadhayan academy of education

Page 22: My sql1

Drop Table DROP TABLE table_name Examplemysql> drop table student;Query OK, 0 rows affected (0.00 sec)

Logout MySQLmysq> quit;

aadhayan academy of education

Page 23: My sql1

More Table Retrieval OR

mysql> select name from student where major = 'BCB' OR major = 'CS'; COUNT (Count query results)

mysql> select count(name) from student where major = 'BCB' OR major = 'CS'; ORDER BY (Sort query results)

mysql> select name from student where major = 'BCB' OR major = 'CS‘ ORDER BY name;

mysql> select name from student where major = 'BCB' OR major = 'CS‘ ORDER BY name DESC;

mysql> select * from student where major = 'BCB' OR major = 'CS‘ ORDER BY student_id ASC, name DESC

LIKE (Pattern matching)mysql> select name from student where name LIKE "J%";

DISTINCT (Remove duplicates)mysql> select major from student;mysql> select DISTINCT major from student;

aadhayan academy of education

Page 24: My sql1

Group By

Cluster query results based on different groups Examplemysql> select major, count(*) from student GROUP BY major;+---------+----------+| major | count(*) |+---------+----------+| BBMB | 3 || BCB | 3 || Chem | 1 || CS | 5 || IG | 2 || Math | 2 || MCDB | 3 || Stat | 2 |+---------+------------+8 rows in set (0.00 sec)

aadhayan academy of education

Page 25: My sql1

NULL No Value Can not use the usual comparison operators (>, =, != …) Use IS or IS NOT operators to compare with Example

mysql> select name from student where project_ID = NULL;Empty set (0.00 sec)

mysql> select name from student where project_ID IS NULL;+-------+| name|+-------+| Jerry |+-------+1 row in set (0.00 sec)

aadhayan academy of education

Page 26: My sql1

Table Join

Retrieve information from multiple tables Example

Which BCB students chose level-4 project? mysql> select s.name from student s, project p where s.project_ID = p.project_ID and s.major='BCB' and p.level=4;

+------------+| name |+------------+| Stephen |+------------+1 row in set (0.00 sec)

aadhayan academy of education

Page 27: My sql1

MySQL Optimization

Index Index columns that you search for Example

mysql> alter table student add index (name);Query OK, 22 rows affected (0.00 sec)Records: 22 Duplicates: 0 Warnings: 0mysql> describe student;+---------------+----------------------+--------+-------+---------+---------+| Field | Type | Null | Key | Default | Extra |+---------------+----------------------+--------+-------+---------+---------+| student_ID | int(10) unsigned | | PRI | 0 | || name | varchar(20) | | MUL | | || major | varchar(10) | YES | | NULL | || project_ID | int(10) unsigned | YES | | NULL | |+--------------+-----------------------+--------+-------+---------+---------+4 rows in set (0.00 sec)

aadhayan academy of education

Page 28: My sql1

MySQL Optimization (cont.)

EXPLAIN Find what is going on a slow query Example

mysql> EXPLAIN select * from student s, project p where s.project_ID = p.project_ID order by p.level;

aadhayan academy of education