Αστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια Ανενεργά
 

Μπορούμε να δημιουργήσουμε μια βάση δεδομένων mysql τοπικά στο pc μας κατεβάζοντας το σχετικό αρχείο ή μέσω κάποιου πακέτου xamp. Επειδή χρειαζόμαστε μια βάση δεδομένων για την υποστήριξη των ηλεκτρονικών που κάνουν επισκευές μπορούμε να δημιουργήσουμε τη βάση πάνω σε κάποιο διαδικτυακό εξυπηρετητή στη δικιά μας περίπτωση πάνω σε εξυπηρετητή του πανελληνίου σχολικού δικτύου.

Η δημιουργία της βάσης των πινάκων και των πεδίων μπορεί να γίνει με τη βοήθεια εξειδικευμένου προγράμματος phpMyAdmin ή με την χρήση εντολών.

Οι εντολές αυτές ενσωματώθηκαν σε αρχείο με κατάληξη .php το οποίο συγκεκριμένο αρχείο ανέβηκε σε συγκεκριμένο φάκελο στον οποίο θα βρίσκονται όλα τα αρχεία που θα χρειαστούμε για την υλοποίηση της βάσης σε αρχεία της php.

Στις παρακάτω εντολές όπως και σε άλλες γλώσσες υπάρχουν λέξεις κλειδιά, που έχουν συγκεκριμένη σημασία για την mysql.

mysql >create database dbname;

η εντολή αυτή πληκτρολογημένη σε command line δημιουργεί μια βάση με το όνομα dbname σαφώς μέσα σε αυτή έπεται αργότερα δημιουγία πινάκων και πεδίων.

Η εντολή GRANT χρησιμοποιείται για να δημιουργήσει χρήστες και να τους δώσει δικαιώματα . Η γενική μορφή της είναι :
GRANT privileges [ columns ]
ON dbname
TO user_name [ IDENTIFIED BY ‘password’]
[WITH GRANT OPTION]

Δικαιώματα για χρήστες

Δικαίωμα Εφαρμόζονται σε Περιγραφή
SELECT Πίνακες ,στήλες Επιτρέπει στους χρήστες να επιλέγουν γραμμές από
πίνακες
INSERT Πίνακες ,στήλες Επιτρέπει στους χρήστες να εισάγουν νέες γραμμές σε
πίνακα
UPDATE Πίνακες ,στήλες Επιτρέπει στους χρήστες να τροποποιούν τιμές σε
υπάρχουσες τιμές πινάκων
DELETE Πίνακες Επιτρέπει στους χρήστες να διαγράφουν υπάρχουσες
τιμές πινάκων
INDEX Πίνακες Επιτρέπει στους χρήστες να δημιουργούν και να
διαγράφουν ευρετήρια σε συγκεκριμένου πίνακα
ALTER Πίνακες Επιτρέπει στους χρήστες να αλλάζουν την δομή
υπαρχόντων πινάκων
CREATE Βάσεις δεδομένων , πίνακες Επιτρέπει στους χρήστες να δημιουργούν νέες βάσεις
δεδομένων ή πίνακες
DROP Βάσεις δεδομένων , πίνακες Επιτρέπει στους χρήστες να διαγράφουν βάσεις
δεδομένων ή πίνακες

 

Τι σημαίνουν οι συνηθισμένες πια λέξεις κλειδιά
Το NOT_NULL σημαίνει ότι όλες οι γραμμές του πίνακα πρέπει να έχουνε τιμές σε αυτήν την ιδιότητα. Αν δε καθοριστεί , το πεδίο μπορεί να είναι κενό NULL.
Το auto_increment είναι μια ειδική λειτουργία της MySQL , που μπορούμε να χρησιμοποιούμε σε ακέραιες στήλες. Σημαίνει ότι αν αφήσουμε αυτό το πεδίο κενό όταν εισάγουμε γραμμές στον πίνακα η MySQL θα δημιουργήσει αυτόματα ένα
μοναδικό αναγνωριστικό συγκεκριμένα μπορεί να αριθμεί αυτόματα στο συγκεκριμένο πεδίο π.χ 1 2 3 4 5 6 ...
Το primary_key μετά από ένα όνομα στήλης καθορίζει ότι αυτή η στήλη είναι το πρωτεύον κλειδί του πίνακα. Τα στοιχεία αυτής της στήλης θα πρέπει να είναι
μοναδικά.

Αριθμητικοί τύποι
Ακέραιοι τύποι δεδομένων

Τύπος Εύρος Εύρος σε Byte Περιγραφή
TINYINT -127…128 ή 0...255 1 Πολλοί μικροί ακέραιοι
SMALLINT -32768…32767 ή 0..65535 2 Μικροί ακέραιοι
MEDIUMINT -8388608…8388607 3 Μεσαίου μεγέθους
ακέραιοι
INT -231 .. 231 4 Κανονικοί ακέραιοι
INTEGER -231 .. 231 4 Συνώνυμο για το
ΙΝΤ
BEGINT -263..263 8 Μεγάλοι ακέραιοι

Όταν ορίζουμε τους τύπους δεδομένων που θέλουμε να αποθηκεύσουμε στη βάση θα πρέπει με τις λέξεις κλειδιά να καθορίσουμε αν πρόκειτε για ακέραιο ή δεκαδικό αριθμό ή για χαρακτήρα ή άλλοτε θα πρέπει να καθορίσουμε το μήκος (αριθμό) των γραμμάτων.



Τύπου κινητής υποδιαστολής

Τύπος Εύρος σε Byte
FLOAT(precision) διαφέρει
FLOAT[M,D] 4
DOUBLE[M,D] 8
DOUBLE
PRECISION[M,D]
 
REAL[M,D]  
DECIMAL[M,D]  
NUMERIC[M,D]  
   

Τύποι κανονικών συμβολοσειρών

Τύπος Εύρος Περιγραφή
CHAR(M) 1 έως 255 χαρακτήρες Σταθερού μήκους συμβολοσειράς
μήκους Μ
VARCHAR(M) 1 έως 255 χαρακτήρες Μεταβλητού μήκους συμβολοσειράς
μήκους Μ

Όπως έχουμε ξαναπεί η δημιουργία πινάκων γίνεται μια φορά είται από το phpMyAdmin είται με εντολές που θα τις δούμε πιο κάτω όμως πρέπει να βάλεται το χαρτί κάτω από πριν και να σχεδιάσεται τους πίινακες και τα πεδία που πρέπει να ενσωματωθούν  στην βάση δεδομένων.

Τα σχόλια της php φαίνονται πράσινα

Τα σχόλια της html φαίνονται καφέ ανοικτό

Λέξεις κλειδιά με μπλέ

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<!-- Εδώ ξεκινάει απλός κώδικας HTML και έτσι αναγκαζόμαστε να αλλάξουμε και -->
<!-- την σήμανση των σχολίων από σχόλια PHP σε σχόλια HTML.                  -->
<head>
<!-- Το τμήμα head της σελίδας που περιέχει τον τίτλο της και την          -->
<!-- απαραίτητη δήλωση κωδικοσελίδας.                -->
<title>MySql Connect</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<!-- Το κύριο τμήμα της σελίδας ξεκινά εδώ. Το κυρίως σώμα -->
<?php

//Αρχίζει κώδικας σε script php
//σύνδεση με MySQL
 echo "connecting to MySQL...<br>";
 // Συνδεση με την Mysql που εχει την database σύμφωνα με τους κωδικούς που υπάρχουν μέσα στο αρχείο db_config.php
 Require "db_config.php";
 $conn = mysql_connect($db_host, $db_user, $db_password) or die(mysql_error());

// Αν η mysql βρίσκεται τοπικά δίνουμε την πιο κάτω εντολή 

//$conn= mysql_connect("localhost","root","") or die(mysql_error());

 echo "connected to MySQL <br>";
 //*************************************************
 // Δημιουργούμε μια database με όνομα που βρίσκεται μέσα στη μεταβλητή $db_name
 // προς το παρόν αναιρούμε τις επόμενες εντολές διότι μπορούμε να το κάνουμε και μέσω του λογισμικού phpmyadmin
 $sql = 'CREATE DATABASE $db_name';
// εδώ ζηταμε να εκτελεστεί η εντολή $sql που αν εκτελεστει θα δημιουργίσει μια βάση δεδομένων μέσω ερώτησης με την εντολή if

if (mysql_query($sql, $conn)) {
 echo "Database $db_name created successfully<br>";
 } else {
 echo 'Error creating database: ' . mysql_error() . "<br>";}

 

// Προσπάθεια σύνδεσης με database

 mysql_select_db($db_name, $conn);


 //$sql = 'USE $db_name';
 //if (mysql_query($sql, $conn)) {
 //echo "Database $db_name selected <br>";
 //} else {
// echo 'Error selecting database: ' . mysql_error() . "<br>";
 //}
 //**********************************************
 // δημιουργία του πίνακα pass στην βάση $db_name
 $sql = 'CREATE TABLE pass(                    //ο πίνακας pass έχει 3 πεδία
 id int not null primary key auto_increment, // το πρώτο πεδίο id
 username varchar (10),                             // το δεύτερο πεδίο username
 password varchar (10)                              // το τρίτο πεδίο password
 );';
 if (mysql_query($sql, $conn)) {
 echo "table pass created successfully <br>";
 } else {
 echo 'Error creating table: ' . mysql_error() . "<br>";
 }
 //Βάζουμε αρχικές τιμές στον πίνακα
 $sql = "INSERT INTO pass VALUES(1,'admin','xxxxx')";
 if (mysql_query($sql, $conn)) {
 echo "password values inserted successfully <br>";
 } else {
 echo 'Error insertind password values: ' . mysql_error() . "<br>";
 }
 //***********************************************

 // δημιουργία του πίνακα των εταιρειών company στην βάση $db_name
 $sql = 'CREATE TABLE company(                                //ο πίνακας company έχει 2 πεδία
 id_company int not null primary key auto_increment,     // πρώτο πεδίο id_company
 company_name varchar (50));';                                     //δεύτερο πεδίο company_name
 if (mysql_query($sql, $conn)) {
 echo "table company created successfully <br>";
 } else {
 echo 'Error creating table: ' . mysql_error() . "<br>";
 }
 //Βάζουμε αρχικές τιμές στον πίνακα
 $sql = "INSERT INTO company VALUES('','')";
 if (mysql_query($sql, $conn)) {
 echo "company_names inserted successfully <br>";
 } else {
 echo 'Error insertind company_names: ' . mysql_error() . "<br>";
 }
 //*************************************************
 // δημιουργία του πίνακα vlaves στην βάση $db_name
  $sql = 'CREATE TABLE vlaves(                                 //ο πίνακας vlaves έχει 6 πεδία
 id_vlaves int not null primary key auto_increment,
 id_kind int,
 id_company int,
 id_model int,
 symptom varchar (255),
 notes text
 );';
 if (mysql_query($sql, $conn)) {
 echo "table vlaves created successfully <br>";
 } else {
 echo 'Error creating table: ' . mysql_error() . "<br>";
 }


 //*************************************************
 // δημιουργία του πίνακα των μοντέλων model στην βάση $db_name
 $sql = 'CREATE TABLE model(
 id_model int not null primary key auto_increment,
 model_name varchar (50));';
 if (mysql_query($sql, $conn)) {
 echo "table model created successfully <br>";
 } else {
 echo 'Error creating table: ' . mysql_error() . "<br>";
 }
 //Βάζουμε αρχικές τιμές στον πίνακα
 $sql = "INSERT INTO model VALUES('','')";
 if (mysql_query($sql, $conn)) {
 echo "model_names inserted successfully <br>";
 } else {
 echo 'Error insertind model_names: ' . mysql_error() . "<br>";
 }


 //************************************************* 
 // δημιουργία του πίνακα των κατηγοριών των ειδών kind στην βάση $db_name
 $sql = 'CREATE TABLE kind(
 id_kind int not null primary key auto_increment,
 kind_name varchar (50));';
 if (mysql_query($sql, $conn)) {
 echo "table kind created successfully <br>";
 } else {
 echo 'Error creating table: ' . mysql_error() . "<br>";
 }
 //Βάζουμε αρχικές τιμές στον πίνακα
 $sql = "INSERT INTO kind VALUES('','')";
 if (mysql_query($sql, $conn)) {
 echo "model_names inserted successfully <br>";
 } else {
 echo 'Error insertind model_names: ' . mysql_error() . "<br>";
 }


 //*************************************************
 echo "</font>";
 //διαγραφή ολόκληρης της βάσης δεδομένων απενεργοποιημένες εντολές
 /*
 $sql = 'DROP DATABASE $db_name;';
 if (mysql_query($sql, $conn)) {
 echo "$db_name removed successfully <br>";
 } else {
 echo 'Error removing: ' . mysql_error() . "<br>";
 }
 */

//Τελείωσε ο κώδικας της php
 ?>

<!-- Τελείωσε το σώμα της ιστοσελίδας -->
 </body>

<!-- Τελείωσε ο κώδικας της html -->
 </html>

Όλο αυτόν κώδικα τον δίνουμε μια φορά να εκτελεστεί γιατί αφορά την δομή της βάσης δεδομένων. Σε επόμενα άρθρα θα δούμε πως θα εισάγουμε δεδομένα.

Προσθήκη νέου σχολίου


Κωδικός ασφαλείας
Ανανέωση