SQL


 Définition de SQL
SQL SQL est utilisé pour communiquer avec une base de données relationnelle. Une base de données relationnelle est une base de donnée divisée en unités logiques appelées tables.

Les systèmes de base de données relationnelles résident sur des plates-formes mainframe ou client-serveur. Bien que l'on préfère en général le système client-serveur, l'utilisation toujours d'actualité des mainframe peut certainement se justifier par les besoins d'une entreprise. Cependant elles sont nombreuses à avoir récemment abandonné leurs systèmes mainframes au profit des systèmes client-serveur. Ce changement de cap est motivé par plusieurs raisons :
ne pas se laisser dépasser par les nouvelles technologies, disposer d'une flexibilité accrue, d'une meilleure adéquation aux besoins...

 Initialiser une session SQL
CONNECT
DISCONNECT
Durant une session SQL des commandes SQL peuvent être saisies pour interroger la base de données, manipuler les données qui s'y trouvent et définir des structures comme les tables.

Avec SQL vous pouvez par exemple, si vous êtes connecté en tant que UTILISATEUR1, faire appel à la commande CONNECT pour vous connecter à la base de données en tant que UTILISATEUR2. La session SQL de UTILISATEUR1 est implicitement déconnectée.

CONNECT utilisateur@base_de_données

Votre login et password sera demandé par sécurité.

Avec DISCONNECT la session SQL prend fin.

 Principales commandes SQL
Principales
Commandes SQL
  •  DDL - Data Definition Language.
    --> Langage de définition de données
  •  DML - Data Manipulation Language.
    --> Langage de manipulation de données
  •  DQL - Data Query Language.
    --> Langage de requête de données
  •  DCL - Data Control Language.
    --> Langage de contrôle de données
  •  Commandes d'administration des données.
  •  Commandes de contrôle transactionnel.

 Définir les structures d'une base de données
DDL Le DDL est la partie de SQL qui permet de créer ou de restructurer les objets de la base, comme la création ou la suppression d'une table.
Voici les principales commandes DDL
CREATE DATABASE - CREATE TABLE - ALTER TABLE
DROP TABLE - CREATE INDEX - ALTER INDEX - DROP INDEX

 Manipuler les données
DML Voici les principales commandes DML
INSERT - UPDATE - DELETE

 Sélectionner les données
DQL Cette commande est accompagnée de nombreuses clauses et options. Elle sert à composer des requêtes avec une base de données relationnelle.

Voici la commande DQL
SELECT

 Langage de contrôle des données
DCL Les commandes de contrôle des données permettent de contrôler l'accès aux données de la base de données.
Ces commandes servent principalement à créer des objects relatifs à l'accès utilisateur ainsi qu'au contrôle de la distribution des privilèges des utilisateurs.

Voici les principales commandes DCL
ALTER PASSWORD - GRANT - REVOKE - CREATE SYNONYM

 Commandes d'administration de données
Commandes d'administration
de données
Les commandes d'administration de données permettent à l'utilisateur de réaliser des audits et des analyses d'opérations dans la base de données. Elles peuvent également servir à surveiller les performances du système.

Voici les principales commandes :
START AUDIT - STOP AUDIT

 Commandes de contrôle transactionnel
Commandes
de contrôle
transactionnel
Gérer les transactions de la base de données.
Voici les principales commandes :

COMMIT : Enregistre les transactions de la base de données
ROLLBACK : Annule les transactions de la base de données
SAVEPOINT : Crée des points ou on utilise ROLLBACK
SET TRANSACTION : Donne un nom à une transaction

 Une valeur NULL
NULL & ''
ou
NOT NULL
NULL est le terme utilisé pour représenter une valeur absente. Dans une table NULL est la valeur d'un champ vide. La valeur NULL est différente de la valeur zéro ou d'un champ contenant des espaces. On utilise NULL ou ''
'NULL' ne représente pas une valeur NULL mais c'est est une chaîne littérale qui comprend les caractères N U L L

NOT NULL rend la saisie du champ obligatoire.

NULL est la valeur par défault d'une colonne. Il n'est donc pas nécessaire de la saisir dans l'instruction CREATE TABLE

 Types de données
Données
et
Types de données

Données à longueur fixe
CHARACTER(n) n est la longueur maximale du champ défini.
Les codes postaux sont un exemple de données à longueur fixe dans la mesure où ils contiennent toujours 5 chiffres.

N'utilisez pas le type de données à longueur fixe pour les champs destinés à accueillir des valeurs à longueur variable, comme les noms. Mal employé ce type de données gaspille l'espace disponible et risque de rendre impossibles les comparaisons entre données.

Données à longueur variable
CHARACTER VARYING(n) n est la longueur maximale du champ défini.

Les types de données à longueur variable sont VARCHAR et VARCHAR2. VARCHAR est le standard ANSI et VARCHAR2 est utilisé par Oracle.

Valeurs numériques standard en SQL
BIT(n)
BIT VARYING(n)
DECIMAL(p,s)
INTEGER
NUMBER
SMALLINT
FLOAT(p)
REAL(s)
DOUBLE PRECISION(p)

p est un nombre qui détermine la longueur maximale allouée au champ défini.
s représente le nombre de chiffres à droite du séparateur décimal, comme 127,ss

Exemple d'utilisation : NUMBER(5)
Cet exemple limite la valeur maximale du champ à 99999.

Valeurs décimales
Les valeurs décimales sont des valeurs numériques utilisant un séparateur décimal, une virgule ou d'un point.
Une valeur numérique définie avec le type DECIMAL(4,2) aura une valeur maximale possible de 99.99

Valeurs entières
1, 0, -1, 99, -99, 199 sont des valeurs entières.

Valeurs décimales en virgule flottante
Le type de données REAL déclare une colonne contenant des nombres en virgule flottante de moindre précision. La simple précision va de 1 à 21 chiffres.
Le type de données DOUBLE PRECISION déclare une colonne contenant des nombres en virgule flottante à double précision. La double précision va de 22 à 53 chiffres.

Type de données FLOAT
FLOAT
FLOAT(15)
FLOAT(50)


Valeurs de date et heure
Types de données DATETIME
DATE
TIME
INTERVAL
TIMESTAMP


Différents éléments du type de données DATETIME
YEAR
MONTH
DAY
HOUR
MINUTE
SECOND


Chaînes littérales
Dans une chaîne littérale on ne spécifie pas un type de données mais une chaîne.

Exemple de chaînes littérales :
'Salut'
15658
"57940"
3.14
'25 mars 2005'


Les chaînes de caractères sont placées entre guillemets exemple pour "57940"
Ce n'est pas le cas des valeurs numériques
exemple pour 15658

Valeurs BOOLEAN
Une valeur BOOLEAN est une valeur représentant TRUE, FALSE ou NULL. Les valeurs BOOLEAN servent à effectuer des comparaisons de données. Les données sont retournées so la valeur BOOLEAN TRUE est retournée par toutes les conditions de la requête.

Exemple avec WHERE NOM='Zecharia Sitchin'

La condition est évaluée pour chaque ligne de données de la table intérrogée. Si une ligne de la table contient la valeur 'Zecharia Sitchin' pour nom, la condition retourne la valeur TRUE, ainsi que la valeur associée à l'enregistrement.

Types définis par l'utilisateur
Un type défini par l'utilisateur permet à l'utilisateur de personnaliser ses types de données en exploitant des types existants. L'instruction CREATE TYPE sert à créer un type défini par l'utilisateur.

Domaines
Un domaine est un ensemble de types de données valides pouvant être exploités.


 Gestion des objets et base de données
Un object
de base de données sert à stocker
des données.




Téléchargement
de
Easy PHP 1.8

Apache
PHP
MySQL
phpMyAdmin




Un object
de base de données sert à stocker
des données.
La table se compose de lignes et de champs contenant les données, elle utilise l'espace physique de la base de données et peut être permanente ou temporaire.

Un champ est une partie de la table à laquelle a été assigné un type de données spécifique. Les champs peuvent être définies comme NULL ou NOT NULL (saisie obligatoire).
Une ligne est un enregistrement de données dans une table.

L'INSTALLATION DE EASY PHP DEVIENT NECESSAIRE !

Créez la base de données SQL.
CREATE DATABASE

Créez la table password.
CREATE TABLE , CHAR, VARCHAR

Type de données CHAR, caractères à longueur fixe.
Type de données VARCHAR, caractères à longueur variable.

Déterminer la taille d'une table
Dans l'instruction CREATE TABLE, la clause STORAGE sert à déterminer la taille de la table initiale lors de sa création.

Modifier une table
Après sa création, il est possible de modifier une table avec la commande ALTER TABLE. On peut ajouter des colonnes avec ADD, en supprimer avec DROP.

Copier une table existante
Les champs sont identiques dans les deux tables. On peut copier tous les champs ou des champs spécifiques. On peut créer une table sur la base d'une requête avec SELECT.
SELECT FROM

Création d'une table password_TMP depuis les informations de password avec le code SQL ci-dessous.
CREATE TABLE

Supprimer une table 'test'
DROP TABLE

Contraintes d'intégrité, la clé primaire
La clé primaire identifie un ou plusieurs champs d'une table pour créer des lignes de données uniques.

Rappel de la table password que nous avons actuellement.
CREATE TABLE , CHAR, VARCHAR

Modification de password pour insérer la clé primaire.
La clé primaire dans la table password sera ID_Identités.
ALTER TABLE, PRIMARY KEY

Vous pouvez recréer une table password en une fois.
Dans le cas 1 la clé primaire est une contrainte implicite.
CREATE TABLE, PRIMARY KEY

Dans le cas 2 la clé primaire est une contrainte explicite.
CREATE TABLE, PRIMARY KEY

Contraintes uniques
Une contrainte de champ unique est comparable à une clé primaire puisque la valeur située dans cette colonne doit être unique pour chaque ligne de données de la table.
Code source SQL

Contraintes sur la clé extérieur
Code source SQL
ID_joueur est la clé extérieur de table_enfant
Cette clé référence le champ ID_joueur de la table joueur.
Cette clé assure qu'il existe une ID_joueur dans la table joueur pour chaque ID_joueur de table_enfant.
Il s'agit d'une relation parent/enfant.

Contraintes de vérification
Les contraintes de vérification servent à vérifier la validité des données saisies dans les champs de tables.

Supprimer des contraintes
Supprimer la contrainte de la clé primaire d'une table Oracle
ALTER TABLE, DROP PRIMARY KEY

 Le processus de normalisation
  Testez le langage SQL avec EasyPHP 1.8

 Le processus de normalisation
 

Découvrez le langage SQL

Prochaine modification avant le 7 avril

Visiter le site
 SQL Qualité de l'information sur ce lienQualité de l'information sur ce lienQualité de l'information sur ce lien

 Exploitation des requêtes
mysql_fetch_row
mysql_fetch_array
mysql_fetch_object
mysql_num_rows
Après l'exécution d'une requête de sélection, les données ne sont pas affichées, elles sont mises en mémoire.

Les fonctions qui retournent un enregistrement sont : mysql_fetch_row
mysql_fetch_array
mysql_fetch_object


Les exemples suivants partent d'une requête SQL :
SELECT nom, prenom, date FROM membres

mysql_fetch_row retourne un tableau.
<?
$enregistrement = mysql_fetch_row( $resultat );
// Affiche le champ - nom -
echo $enregistrement[0] . '<br>';
// Affiche le champ - prenom -
echo $enregistrement[1] . '<br>';
// Affiche le champ - date -
echo $enregistrement[2] . '<br>';
?>


mysql_fetch_array retourne un tableau associatif.
<?
$enregistrement = mysql_fetch_array( $resultat );
// Affiche le champ - prenom -
echo $enregistrement['prenom'] . '<br>';
// Affiche le champ - nom -
echo $enregistrement['nom'] . '<br>';
// Affiche le champ - date -
echo $enregistrement['date'] . '<br>';
?>


mysql_fetch_object retourne une structure (objet).
<?
$enregistrement = mysql_fetch_object( $resultat );
// Affiche le champ - date -
echo $enregistrement->date . '<br>';
// Affiche le champ - nom -
echo $enregistrement->nom . '<br>';
// Affiche le champ - prenom -
echo $enregistrement->prenom . '<br>';
?>


mysql_num_rows retourne le nombre d'enregistrements
L'ensemble des données sont affichées par une boucle.
<?
echo 'Il y a ' . mysql_num_rows( $resultat ) . ' membre(s)';
while( $enregistrement = mysql_fetch_array( $resultat ))
{
echo $enregistrement['nom'] . ' ' . $enregistrement['prenom'];
echo ' – ' . $enregistrement['date'] . '<br>' ;
}
?>

 Travaillez sur MySQL, PHP, SQL avec EasyPHP
EasyPHP
Dernière Version
Pour travailler facilement sur MySQL, avec PHP et SQL, téléchargez la dernière version de easyphp et installez la.

Maintenant il faut lancer le gestionnaire et les serveurs.
Un e apparait en bas à droite de votre écran.
Faites un clic droit et cliquez sur Administration.

Dans le dossier d'installation de easy PHP se trouve un dossier www. Faire un raccourci de ce dossier sur le bureau. Nous pouvons créer des scripts PHP dans ce dossier et y accéder avec le navigateur par l'adresse http://127.0.0.1
si le serveur easyphp est lancé!
(http://127.0.0.1 peut être remplacé par localhost)

Cliquez sur phpMyAdmin, Gestion BDD pour commencer à travailler sur la base de données MySQL à l'aide de SQL.
Visiter le site
 www.easyphp.org Qualité de l'information sur ce lienQualité de l'information sur ce lienQualité de l'information sur ce lien

 Requête
mysql_query Utilisons mysql_query la base étant déjà sélectionnée.

Quand on fait une requête de sélection, MySQL retourne les données et PHP les place en mémoire. En fin de script la mémoire est libérée et les données sont perdues.

On veut avoir des informations sur le membre 'moustique'.
<?
$requete = "SELECT * FROM membres WHERE pseudo = 'moustique' ";
$resultat = mysql_query( $requete );
?>

 Gestion des erreurs
mysql_error Si la requête n'a pas marché, c'est qu'il y a une erreur dans la syntaxe de la requête.
Il est important de pouvoir expliquer ce qui n'a pas marché.

On utilise la fonction mysql_error. Cette fonction indique généralement l'erreur.
<?
$resultat = mysql_query( $requete )
or die ( 'Erreur dans la requête : ' . $requete . '<br>Avec l\'erreur : ' . mysql_error() );
?>