PhpMyAdmin and MySQL for beginners

Preview:

DESCRIPTION

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

Citation preview

april 2012 MySQL en phpMyAdmin voor “beginners”

MySQL en phpMyAdmin

door Jisse Reitsma

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

april 2012 MySQL en phpMyAdmin voor “beginners”

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

april 2012 MySQL en phpMyAdmin voor “beginners”

(daar gaan we)

april 2012 MySQL en phpMyAdmin voor “beginners”

Deel 1:Introductie tot MySQL

april 2012 MySQL en phpMyAdmin voor “beginners”

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

april 2012 MySQL en phpMyAdmin voor “beginners”

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

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?

april 2012 MySQL en phpMyAdmin voor “beginners”

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

april 2012 MySQL en phpMyAdmin voor “beginners”

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

– MySQL server

– MySQL client

● Wat is SQL?

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

april 2012 MySQL en phpMyAdmin voor “beginners”

MySQL client● Joomla! (PHP “mysql”)

● phpMyAdmin (PHP “mysql”)

● command-line client (SSH)

● MySQL GUI client (SQLWave, HeidiSQL)

april 2012 MySQL en phpMyAdmin voor “beginners”

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

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

april 2012 MySQL en phpMyAdmin voor “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

april 2012 MySQL en phpMyAdmin voor “beginners”

Voorbeeld: Joomla! artikelen

● jos_content = Lijst van artikelen

● jos_categories = Lijst van categorieen

● jos_assets = Authorisatie

april 2012 MySQL en phpMyAdmin voor “beginners”

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

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

april 2012 MySQL en phpMyAdmin voor “beginners”

(duurde dat 10 minuten?)

april 2012 MySQL en phpMyAdmin voor “beginners”

Deel 2:phpMyAdmin in de praktijk

april 2012 MySQL en phpMyAdmin voor “beginners”

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

april 2012 MySQL en phpMyAdmin voor “beginners”

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

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

april 2012 MySQL en phpMyAdmin voor “beginners”

Inloggen op phpMyAdmin

april 2012 MySQL en phpMyAdmin voor “beginners”

april 2012 MySQL en phpMyAdmin voor “beginners”

april 2012 MySQL en phpMyAdmin voor “beginners”

april 2012 MySQL en phpMyAdmin voor “beginners”

april 2012 MySQL en phpMyAdmin voor “beginners”

april 2012 MySQL en phpMyAdmin voor “beginners”

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

april 2012 MySQL en phpMyAdmin voor “beginners”

Wijzigen / toevoegen / verwijderen

● UPDATE = Wijzigen

● INSERT = Toevoegen

● DELETE = Verwijderen

april 2012 MySQL en phpMyAdmin voor “beginners”

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

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%”;

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;

april 2012 MySQL en phpMyAdmin voor “beginners”

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

april 2012 MySQL en phpMyAdmin voor “beginners”

Exporteren● Welke tabellen?

– Enkele tabel

– Meerdere tabellen

– Alle tabellen

● Welke gegevens?– Structuur en/of data

april 2012 MySQL en phpMyAdmin voor “beginners”

(rustig ademen)

april 2012 MySQL en phpMyAdmin voor “beginners”

Deel 3:Geavanceerde onderwerpen

april 2012 MySQL en phpMyAdmin voor “beginners”

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

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?

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

april 2012 MySQL en phpMyAdmin voor “beginners”

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

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)

april 2012 MySQL en phpMyAdmin voor “beginners”

MyISAM en InnoDB● MyISAM Storage Engine● InnoDB Storage Engine

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

april 2012 MySQL en phpMyAdmin voor “beginners”

(vragen)

Recommended