Βασικές γνώσεις PHP και MySQL/Εισαγωγή στην MySQL
Η MySQL [1] είναι ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων της οποίας ο πηγαίος κώδικας είναι διαθέσιμος με ελεύθερη άδεια χρήσης. Η ονομασία MySQL περιέχει δύο στοιχεία. Το My είναι το όνομα της κόρης του συνιδρυτή του συστήματος Μόντι Βιδένιους (Monty Widenius) [2] και το SQL αναφέρεται στη γλώσσα SQL (Structured Query Language) [3], μια γλώσσα υπολογιστών που σχεδιάστηκε ανεξάρτητα από την MySQL για τη διαχείριση δεδομένων, σε ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων (MySQL, PostgreSQL, Oracle κλπ). Το πρότυπο της γλώσσας SQL αναπτύχθηκε ξεχωριστά από τις υλοποιήσεις συστημάτων διαχείρισης βάσεων δεδομένων (όπως της MySQL, της PostgreSQL, της Oracle κλπ). Θεωρητικά ένας κώδικας SQL θα πρέπει να τρέχει με τον ίδιο τρόπο και σε μια βάση MySQL όπως και σε μια βάση PostgreSQL. Κάθε υλοποίηση ενός συστήματος διαχείρισης σχεσιακών βάσεων δεδομένων μπορεί να διαφέρει με κάποιο άλλο παρέχοντας επιπλέον δυνατότητες, βελτιωμένα χαρακτηριστικά. Στην πράξη η μετακόμιση ενός κώδικα SQL από μια βάση σε μια διαφορετική υλοποίηση μπορεί να παρουσιάσει ασυμβατότητες ή θα πρέπει να γίνουν τροποποιήσεις στον κώδικα. Παραπάτω θα παρουσιάσουμε τις βασικές εντολές διαχείρισης μιας βάσης MySQL. Οι εντολές αυτές μπορούν να κληθούν μέσα από το περιβάλλον της PHP και οι δυναμικές ιστοσελίδες χρησιμοποιούν βάσεις δεδομένων στις οποίες αποθηκεύουν και ανακτούν το περιεχόμενο της ιστοσελίδας η οποία δημιουργείται δυναμικά στο χρήστη πελάτη.
Πρώτα βήματα
[επεξεργασία]Θα ξεκινήσουμε τις βασικές εντολές SQL μέσα από το περιβάλλον εργασίας σε επίπεδο γραμμής εντολών της MySQL.
Σύνδεση με την MySQL
[επεξεργασία]mysql --user=root --password
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 48 Server version: 5.5.22-0ubuntu1 (Ubuntu) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Εμφάνιση βάσεων
[επεξεργασία]mysql> show databases;
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | phpmyadmin | | test | +--------------------+ 5 rows in set (0.00 sec) mysql>
Επιλογή βάσης
[επεξεργασία]mysql> use mysql;
Database changed
Εμφάνιση πινάκων βάσης
[επεξεργασία]mysql> show tables;
+---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | host | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 24 rows in set (0.20 sec) mysql>
Εμφάνιση στοιχείων πίνακα βάσης
[επεξεργασία]mysql> SELECT * FROM user;
Προσέξετε ότι στην παραπάνω εντολή έχουν χρησιμοποιηθεί κεφαλαία γράμματα για τις εντολές SQL SELECT και FROM και πεζά γράμματα στην μεταβλή-πίνακα user. Γενικά οι προγραμματιστές επιλέγουν τα κεφαλαία γράμματα στις εντολές SQL (παρόλο που μπορούν να χρησιμοποιήσουν και πεζά) ώστε να ξεχωρίζει το μέρος των εντολών SQL και να είναι πιο ευανάγνωστη η εντολή.
mysql> SELECT Host, User, Password FROM user;
+-----------+------------------+-------------------------------------------+ | Host | User | Password | +-----------+------------------+-------------------------------------------+ | localhost | root | *87822912B07B4A6C506742BF35D15BF7435B83DB | | ubuntu | root | *87822912B07B4A6C506742BF35D15BF7435B83DB | | 127.0.0.1 | root | *87822912B07B4A6C506742BF35D15BF7435B83DB | | ::1 | root | *87822912B07B4A6C506742BF35D15BF7435B83DB | | localhost | | | | ubuntu | | | | localhost | debian-sys-maint | *3137856C8E9698B2F739054B67C4AA6D2F58B5C6 | | localhost | phpmyadmin | *87822912B07B4A6C506742BF35D15BF7435B83DB | +-----------+------------------+-------------------------------------------+ 8 rows in set (0.00 sec) mysql>
Προσθήκη χρήση με δικαιώματα διαχειριστή στην βάση
[επεξεργασία]mysql> GRANT ALL PRIVILEGES ON *.* TO 'userxx'@'localhost' IDENTIFIED by 'password';
Παραπομπές
[επεξεργασία]