MySQL en phpMyAdmin
door Jisse Reitsma
april 2012 MySQL en phpMyAdmin voor “beginners”
2.
Jisse Reitsma
● Auteur “Joomla! templates ontwerpen”
● Mede-oprichter en developer van Yireo
MageBridge, Vm2Mage, SimpleLists
Dynamic404, SSL Redirect, ...
● Programmeur
Joomla!, Magento, PHP, Java, Android
april 2012 MySQL en phpMyAdmin voor “beginners”
3.
Deze presentatie
● Deel 1: Introductie tot MySQL
● Deel 2: phpMyAdmin in de praktijk
● Deel 3: Geavanceerde onderwerpen
april 2012 MySQL en phpMyAdmin voor “beginners”
Deel 1:
Introductie tot MySQL
april 2012 MySQL en phpMyAdmin voor “beginners”
6.
Introductie tot MySQL
● Onderdeel van een stack
● Client/server architectuur
● Wat is SQL?
april 2012 MySQL en phpMyAdmin voor “beginners”
7.
Introductie tot MySQL
● Onderdeel van een stack
● Client/server architectuur
● Wat is SQL?
april 2012 MySQL en phpMyAdmin voor “beginners”
8.
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?
april 2012 MySQL en phpMyAdmin voor “beginners”
9.
Introductie tot MySQL
● Onderdeel van een stack
● Client/server architectuur
● Wat is SQL?
april 2012 MySQL en phpMyAdmin voor “beginners”
10.
Introductie tot MySQL
● Onderdeel van een stack
● Client/server architectuur
– MySQL server
– MySQL client
● Wat is SQL?
april 2012 MySQL en phpMyAdmin voor “beginners”
11.
MySQL server
● Op dezelfde server
localhost
● Op een andere server bij dezelfde hoster
mysql12345.hoster.local
● Op een andere server bij andere hoster
– TCP-poort 3306 open in firewall
– NIET DOEN
april 2012 MySQL en phpMyAdmin voor “beginners”
12.
MySQL client
● Joomla! (PHP “mysql”)
● phpMyAdmin (PHP “mysql”)
● command-line client (SSH)
● MySQL GUI client (SQLWave, HeidiSQL)
april 2012 MySQL en phpMyAdmin voor “beginners”
13.
Introductie tot MySQL
● Onderdeel van een stack
● Client/server architectuur
● Wat is SQL?
april 2012 MySQL en phpMyAdmin voor “beginners”
14.
Introductie tot MySQL
● Onderdeel van een stack
● Client/server architectuur
● Wat is SQL?
– Structured Query Language
– Aanspreken van relationele database
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
april 2012 MySQL en phpMyAdmin voor “beginners”
17.
Voorbeeld: Joomla! artikelen
● jos_content = Lijst van artikelen
● jos_categories = Lijst van categorieen
● jos_assets = Authorisatie
april 2012 MySQL en phpMyAdmin voor “beginners”
18.
SQL databases
● MySQL ● SQLite
● Oracle ● Sybase
● Microsoft SQL ● Microsoft Access
● DB2 ● dBase
● PostgreSQL ● ...
april 2012 MySQL en phpMyAdmin voor “beginners”
19.
(duurde dat 10minuten?)
april 2012 MySQL en phpMyAdmin voor “beginners”
20.
Deel 2:
phpMyAdmin in de praktijk
april 2012 MySQL en phpMyAdmin voor “beginners”
21.
phpMyAdmin in depraktijk
● Overzicht van phpMyAdmin
● Wijzigen / toevoegen / verwijderen
● SELECT-statement
● Exporteren & importeren
april 2012 MySQL en phpMyAdmin voor “beginners”
22.
phpMyAdmin in depraktijk
● Inloggen op phpMyAdmin
● Wijzigen / toevoegen / verwijderen
● SELECT-statement
● Exporteren & importeren
april 2012 MySQL en phpMyAdmin voor “beginners”
23.
Inloggen op phpMyAdmin
● Direct via een phpMyAdmin link
● Via control panel van hosting omgeving
– CPanel, Plesk, DirectAdmin
– eigen control panel
april 2012 MySQL en phpMyAdmin voor “beginners”
phpMyAdmin in depraktijk
● Inloggen op phpMyAdmin
● Wijzigen / toevoegen / verwijderen
● SELECT-statement
● Exporteren & importeren
april 2012 MySQL en phpMyAdmin voor “beginners”
31.
Wijzigen / toevoegen/ verwijderen
● UPDATE = Wijzigen
● INSERT = Toevoegen
● DELETE = Verwijderen
april 2012 MySQL en phpMyAdmin voor “beginners”
32.
phpMyAdmin in depraktijk
● Inloggen op phpMyAdmin
● Wijzigen / toevoegen / verwijderen
● SELECT-statement
● Exporteren & importeren
april 2012 MySQL en phpMyAdmin voor “beginners”
33.
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%”;
april 2012 MySQL en phpMyAdmin voor “beginners”
34.
Voorbeeld van JOINSELECT
● SELECT article.*
FROM jos_content AS article
LEFT JOIN jos_categories AS cat
ON cat.id = a.catid
WHERE cat.id = 3;
april 2012 MySQL en phpMyAdmin voor “beginners”
35.
phpMyAdmin in depraktijk
● Inloggen op phpMyAdmin
● Wijzigen / toevoegen / verwijderen
● SELECT-statement
● Exporteren & importeren
april 2012 MySQL en phpMyAdmin voor “beginners”
36.
Exporteren
● Welke tabellen?
– Enkele tabel
– Meerdere tabellen
– Alle tabellen
● Welke gegevens?
– Structuur en/of data
april 2012 MySQL en phpMyAdmin voor “beginners”
Deel 3:
Geavanceerde onderwerpen
april 2012 MySQL en phpMyAdmin voor “beginners”
39.
Database table prefix
● Gebruik niet “jos_”
● Instelbaar tijdens Joomla! installatie
● Maakt SQL-injection moeilijker
april 2012 MySQL en phpMyAdmin voor “beginners”
40.
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?
april 2012 MySQL en phpMyAdmin voor “beginners”
41.
Tabellen leegmaken
● TRUNCATE `jos_content`;
● Wees voorzichtig
– Dit kan niet teruggedraaid worden
– Relaties worden niet in acht genomen
april 2012 MySQL en phpMyAdmin voor “beginners”
42.
JOINs
● LEFT JOIN
● RIGHT JOIN
● INNER JOIN
● OUTER JOIN
april 2012 MySQL en phpMyAdmin voor “beginners”
43.
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)
april 2012 MySQL en phpMyAdmin voor “beginners”
44.
MyISAM en InnoDB
● MyISAM Storage Engine
● InnoDB Storage Engine
april 2012 MySQL en phpMyAdmin voor “beginners”
45.
In het kort
● Deel 1: Introductie tot MySQL
Stack; Client/server; SQL;
● Deel 2: phpMyAdmin in de praktijk
INSERT, SELECT, UPDATE, DELETE;
Aanmaken van database, database-user; Import / export;
● Deel 3: Geavanceerde onderwerpen
JOINs; UTF-8, collations; user-ID 42; MyISAM, InnoDB
TRUNCATE; database table prefix
april 2012 MySQL en phpMyAdmin voor “beginners”