PhpMyAdmin and MySQL for beginners

46
april 2012 MySQL en phpMyAdmin voor “beginners” MySQL en phpMyAdmin door Jisse Reitsma

description

Dutch presentation for the JoomlaDays 2012 in The Netherlands; given by Yireo-founder Jisse Reitsma

Transcript of PhpMyAdmin and MySQL for beginners

Page 1: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

MySQL en phpMyAdmin

door Jisse Reitsma

Page 2: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Jisse Reitsma● Auteur “Joomla! templates ontwerpen”● Mede-oprichter en developer van Yireo

MageBridge, Vm2Mage, SimpleLists

Dynamic404, SSL Redirect, ...

● ProgrammeurJoomla!, Magento, PHP, Java, Android

Page 3: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Deze presentatie● Deel 1: Introductie tot MySQL● Deel 2: phpMyAdmin in de praktijk● Deel 3: Geavanceerde onderwerpen

Page 4: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

(daar gaan we)

Page 5: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Deel 1:Introductie tot MySQL

Page 6: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Introductie tot MySQL● Onderdeel van een stack● Client/server architectuur● Wat is SQL?

Page 7: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Introductie tot MySQL● Onderdeel van een stack● Client/server architectuur● Wat is SQL?

Page 8: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Introductie tot MySQL● Onderdeel van een stack

– LAMP (Linux, Apache, MySQL, PHP)

– MAMP (MacOS, Apache, MySQL, PHP)

– WAMP (Windows, Apache, MySQL, PHP)

– WIMP (Windows, IIS, MySQL, PHP)

● Client/server architectuur● Wat is SQL?

Page 9: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Introductie tot MySQL● Onderdeel van een stack● Client/server architectuur● Wat is SQL?

Page 10: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Introductie tot MySQL● Onderdeel van een stack● Client/server architectuur

– MySQL server

– MySQL client

● Wat is SQL?

Page 11: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

MySQL server● Op dezelfde server

localhost

● Op een andere server bij dezelfde hostermysql12345.hoster.local

● Op een andere server bij andere hoster– TCP-poort 3306 open in firewall

– NIET DOEN

Page 12: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

MySQL client● Joomla! (PHP “mysql”)

● phpMyAdmin (PHP “mysql”)

● command-line client (SSH)

● MySQL GUI client (SQLWave, HeidiSQL)

Page 13: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Introductie tot MySQL● Onderdeel van een stack● Client/server architectuur● Wat is SQL?

Page 14: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Introductie tot MySQL● Onderdeel van een stack● Client/server architectuur● Wat is SQL?

– Structured Query Language

– Aanspreken van relationele database

Page 15: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Page 16: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Voorbeeld: Joomla! gebruikers

● jos_users = Lijst van gebruikers

● jos_usergroups = Lijst van groepen

● jos_user_usergroup_map = Koppeling

Page 17: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Voorbeeld: Joomla! artikelen

● jos_content = Lijst van artikelen

● jos_categories = Lijst van categorieen

● jos_assets = Authorisatie

Page 18: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

SQL databases● MySQL● Oracle● Microsoft SQL● DB2● PostgreSQL

● SQLite● Sybase● Microsoft Access● dBase● ...

Page 19: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

(duurde dat 10 minuten?)

Page 20: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Deel 2:phpMyAdmin in de praktijk

Page 21: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

phpMyAdmin in de praktijk● Overzicht van phpMyAdmin● Wijzigen / toevoegen / verwijderen● SELECT-statement● Exporteren & importeren

Page 22: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

phpMyAdmin in de praktijk● Inloggen op phpMyAdmin● Wijzigen / toevoegen / verwijderen● SELECT-statement● Exporteren & importeren

Page 23: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Inloggen op phpMyAdmin● Direct via een phpMyAdmin link● Via control panel van hosting omgeving

– CPanel, Plesk, DirectAdmin

– eigen control panel

Page 24: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Inloggen op phpMyAdmin

Page 25: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Page 26: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Page 27: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Page 28: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Page 29: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Page 30: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

phpMyAdmin in de praktijk● Inloggen op phpMyAdmin● Wijzigen / toevoegen / verwijderen● SELECT-statement● Exporteren & importeren

Page 31: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Wijzigen / toevoegen / verwijderen

● UPDATE = Wijzigen

● INSERT = Toevoegen

● DELETE = Verwijderen

Page 32: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

phpMyAdmin in de praktijk● Inloggen op phpMyAdmin● Wijzigen / toevoegen / verwijderen● SELECT-statement● Exporteren & importeren

Page 33: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Voorbeelden van SELECTs● SELECT * FROM jos_users WHERE id=42;

● SELECT title,alias FROM jos_content WHERE title = “contacts”;

● SELECT title FROM jos_content WHERE title LIKE “cont%”;

Page 34: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Voorbeeld van JOIN SELECT● SELECT article.* FROM jos_content AS articleLEFT JOIN  jos_categories AS catON cat.id = a.catidWHERE cat.id = 3;

Page 35: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

phpMyAdmin in de praktijk● Inloggen op phpMyAdmin● Wijzigen / toevoegen / verwijderen● SELECT-statement● Exporteren & importeren

Page 36: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Exporteren● Welke tabellen?

– Enkele tabel

– Meerdere tabellen

– Alle tabellen

● Welke gegevens?– Structuur en/of data

Page 37: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

(rustig ademen)

Page 38: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Deel 3:Geavanceerde onderwerpen

Page 39: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Database table prefix● Gebruik niet “jos_”● Instelbaar tijdens Joomla! installatie● Maakt SQL-injection moeilijker

Page 40: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

User ID 42● Standaard “admin” user heeft ID 42● Maakt SQL-injection makkelijker● Wijzigen

– Maak nieuwe Super User aan

– Verwijder oude Super User

● Vraag: Waarom niet via phpMyAdmin wijzigen?

Page 41: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

Tabellen leegmaken● TRUNCATE `jos_content`;

● Wees voorzichtig– Dit kan niet teruggedraaid worden

– Relaties worden niet in acht genomen

Page 42: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

JOINs● LEFT JOIN● RIGHT JOIN● INNER JOIN● OUTER JOIN

Page 43: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

UTF-8 en collations● UTF-8 = De-facto karakterset voor Joomla!

– Support voor veel talen (Westers, Arabisch, Hindu, Klingon)

● Collations = Interpretatie van karakterset– utf8_general_ci (standaard)

– utf8_polish_ci

– latin1 (nooit gebruiken)

Page 44: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

MyISAM en InnoDB● MyISAM Storage Engine● InnoDB Storage Engine

Page 45: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

In het kort● Deel 1: Introductie tot MySQL

Stack; Client/server; SQL;

● Deel 2: phpMyAdmin in de praktijkINSERT, SELECT, UPDATE, DELETE;

Aanmaken van database, database-user; Import / export;

● Deel 3: Geavanceerde onderwerpenJOINs; UTF-8, collations; user-ID 42; MyISAM, InnoDB

TRUNCATE; database table prefix

Page 46: PhpMyAdmin and MySQL for beginners

april 2012 MySQL en phpMyAdmin voor “beginners”

(vragen)