This PPT Gives Information about:
1. Database basics,
2. Indexes,
3. PHP MyAdmin Connect & Pconnect,
4. MySQL Create,
5. MySQL Insert,
6. MySQL Select,
7. MySQL Update,
8. MySQL Delete,
9. MySQL Truncate,
10.MySQL Drop
3. MySQL/PHP WorkshopMySQL/PHP Workshop
• 2 MySQL lectures
• 2 PHP lectures
• Each lecture builds on concepts taught and learned in the previous
lectures.
• The first two lectures discuss the concept of a relational database
such as MySQL and show you how to manipulate the data stored in
the database from the command line. It is essential to learn this first
because PHP makes use of the language of the database.
• The third and fourth lectures will introduce you to PHP, a server-side
scripting language that allows you to interact with the MySQL
database from a web browser and create fancy web pages to
display the data. PHP is the go-between that fetches the data from
the MySQL database and then spits it out dynamically as the nicely
formatted HTML page that the browser expects.
4. Introduction to MySQLIntroduction to MySQL
• Relational databases
• Database design
• SQL
o Creating databases
o Creating tables
o Selecting from, deleting, and updating tables
• Exercises
• You should have
o Class notes
o Exercise handout
o MySQL Pocket Reference
5. First Name Last Name Phone
Nadia Li 2687
Madhu Charu 7856
Ajuma Kinsaka 4489
Wade Randal 5257
Helen Clark 2147
Employees
Relational DatabasesRelational Databases
• A database is a collection of tables
• Columns define attributes of the data
o All data in a column must have the same data
type
• A record is stored in a row
table name
column
row
6. Use a Relational DatabaseUse a Relational Database
When…When…
• You have a very large dataset
• There is redundant data
o Wastes disk space
o Increases errors
• Information must be updated in multiple locations
• Security is important
o Different users can be granted different permissions
• Strict enforcement of data types is important
7. Spreadsheet ExampleSpreadsheet Example
Title Author Borrower Phone
A House for Mr. Biswas VS Naipaul Sarah 646.555.1234
Midnight's Children Salman Rushdie
On the Road Jack Kerouac
8. Spreadsheet ExampleSpreadsheet Example
Title Author Borrower Phone
A House for Mr. Biswas VS Naipaul Sarah 646.555.1234
Midnight's Children Salman Rushdie
On the Road Jack Kerouac
Data is inconsistent!
Now imagine you are designing the New York Public
Library database which has tens of million books and
well over a million cardholders.
One Flew Over the Cuckoo's Nest Ken Kesey Sarah 646.555.1244
Sula Toni Morrison
Villette Charlotte Bronte Jim 646.555.4586
9. Database DesignDatabase Design
Entity Relationship Design
Entity (“thing”, “object”) Table
Attributes (describe entity) Columns
Entity Instance Row
Relationships between entities preserved in relationships
between tables.
If you are interested in learning more formal design
methods look up “normalization” and/or “third normal
form”.
10. Our dataOur dataEnsembl Gene ID Symbol /
Name
Chromo
some
Start
Position
(bp)
End
Position
(bp)
LocusLink
ID
Taxonomy
ID
Common
Name
Species
ENSG00000186891.3 TNFRSF18 1 1044947 1048147 8784 9606 human Homo sapiens
ENSG00000078808.4 CAB45 1 1058370 1073469 51150 9606 human Homo sapiens
ENSG00000176022.1 B3GALT6 1 1073703 1076476 126792 9606 human Homo sapiens
ENSG00000160087.5 UBE2J2 1 1095352 1115292 118424 9606 human Homo sapiens
ENSG00000162572.4 SCNN1D 1 1123634 1133467 6339 9606 human Homo sapiens
ENSG00000162576.4 MGC3047 1 1194130 1199973 84308 9606 human Homo sapiens
ENSG00000175756.3 AKIP 1 1215168 1216641 54998 9606 human Homo sapiens
ENSG00000131586.2 MRPL20 1 1288703 1294063 55052 9606 human Homo sapiens
ENSG00000179403.2 WARP 1 1322311 1327547 64856 9606 human Homo sapiens
ENSG00000160072.5 ATAD3B 1 1358611 1396091 83858 9606 human Homo sapiens
ENSG00000008128.5 CDC2L2 1 1582617 1604060 985 9606 human Homo sapiens
ENSG00000169911.4 SLC35E2 1 1611978 1625728 9906 9606 human Homo sapiens
ENSG00000008130.3 FLJ13052 1 1630975 1659805 65220 9606 human Homo sapiens
ENSG00000078369.3 GNB1 1 1665027 1770792 2782 9606 human Homo sapiens
ENSMUSG00000041954.1 TNFRSF18 4 154139702 154142251 21936 10090 mouse Mus musculus
ENSMUSG00000023286.1 UBE2J2 4 154057210 1540722964 140499 10090 mouse Mus musculus
11. Our tablesOur tables
How do we know which organism a gene belongs to?
Do we have unique identifiers?
Can the organism have more than one gene?
Can the gene have more than one organism?
13. Data TypesData Types
• float
• integer
• tinyint
• varchar(size)
o stores strings
o size can be between 0 - 255, inclusive
• datetime
• + more What data types should our attributes (columns) be?
14. Complete DesignComplete Design Gene
Column Data Type
gene_id integer
ensembl_gene_id varchar(50)
organism_id integer
name varchar(35)
locuslink varchar(10)
chromosome tinyint
chromo_start integer
chromo_end integer
description varchar(255)
Organism
Column Data Type
organism_id integer
taxonomy_id integer
common_name varchar(35)
species varchar(35)
Database name: ensmartdb
15. Connecting to MySQL from the Command LineConnecting to MySQL from the Command Line
mysql -uusername -p
Example:
>mysql -uroot
To EXIT MySQL:
EXIT;
16. Basic SQL CommandsBasic SQL Commands
• SQL statements end with a semicolon
• View databases
SHOW DATABASES;
17. Importing a DatabaseImporting a Database
• Creating a database
CREATE DATABASE trii;
• From the command line:
mysql -uusername -ppassword databasename <
filename.sql
• Example:
o mysql -uroot trii < trii.sql
18. Basic SQL CommandsBasic SQL Commands
• Use database databasename
USE databasename;
• Display all tables in a database
SHOW TABLES;
19. Create TableCreate Table
CREATE TABLE organism (
organism_id INTEGER NOT NULL AUTO_INCREMENT,
taxonomy_id INTEGER NOT NULL,
common_name VARCHAR(35) NOT NULL,
species VARCHAR(35) NOT NULL,
PRIMARY KEY (organism_id),
UNIQUE (taxonomy_id)
);
database name
column
names
20. View column details for a tableView column details for a table
DESC tablename;
22. Select only the columnsSelect only the columns
you needyou need (it will be faster)(it will be faster)
SELECT common_name, species
FROM organism;
23. Limiting your dataLimiting your data
• Get the species name for a specific organism (you
have the id)
SELECT species
FROM organism
WHERE organism_id=1;
How do we select all the gene names for chromosome 1?
24. InsertInsert
• Inserting a gene
INSERT INTO gene
(ensembl_gene_id,
organism_id,
name,
chromosome,
chromo_start,
chromo_end) VALUES (‘MY_NEW_GENE’,
1, ‘MY GENE’, 1, 12345, 67890);
• Get the id of the gene:
SELECT gene_id FROM gene WHERE name='MY GENE';
26. Table JoinsTable Joins
• Sometimes you want data from more than one
table. To do this we join the tables. The result is a
new (temporary) table.
27. Cross JoinCross Join
• SELECT gene.name, organism.species
FROM gene, organism;
Note: There are only
two records in the
gene table with the
name “TNFRSF18”.
One is a mouse gene
and the other is a
human gene. What do
you think happened?
28. Cross Join (Continued)Cross Join (Continued)
Each row of the gene table was joined with
every row in the organism table.
29. Cross Join (Continued)Cross Join (Continued)
• We want to use the organism id to match a gene
record with the correct organism record so that we
get:
Remember there
are two gene
records with the
name “TNFRSF18”.
30. Cross Join (Continued)Cross Join (Continued)
SELECT gene.name, organism.species
FROM gene, organism
WHERE gene.organism_id=organism.organism_id;
31. Notice that we have 18
rows and that there are
18 rows in the gene
table.
32. ThankThank You !!!You !!!
For More Information click below link:
Follow Us on:
http://vibranttechnologies.co.in/php-classes-in-mumbai
Editor's Notes
Answers:
Gene, Organism
Yes, the species information is repeated
If we add another species attribute, for example “genus”, we will have to be careful to update all the records. We don’t have one record which contains the attributes for species “human”, so when we add the genus for the human species we must add it to every human record.
Answers:
We must store an organism id with the gene information.
Yes, the Ensembl_Gene_ID uniquely identifies a gene, and the Taxonomy_ID uniquely identifies an organism.
Each organism has many genes.
In our database each gene belongs to only one organism.
For example, sometimes it is faster to have one huge table with redundant data than to have no redundancy and tables that must be joined. If this is the case, and speed is the top priority, design has not really been sacrificed by introducing redundancy since the design meets the need of your situation.
See “MySQL Pocket Reference” for a complete list of data types.
Create Trii Database
Download http://www.trii.org/courses/introtomysql/trii.sql
Save as trii.sql in the training home directory.
At the command prompt (NOT in MySQL):
mysql -uroot &lt; trii.sql
Run MySQL again
mysql -uroot