Reivax

SQL(2) : LDD et Wamp

14 posts in this topic

Voici la deuxième partie du tutoriel sur le SQL. Dans cette partie nous allons installer Wamp pour tester et pratiquer un peu de MySQL et ensuite je vous montrerai quelques requêtes qui nous permettrons de créer des tables ! J'irai parfois assez rapidement sur la création de table car il est généralement possible de générer très facilement sans SQL les tables et autres objets.

1) Installation de WampServer.

WampServer est un ensemble de logiciel qui contient entre autre un serveur Apache, PhpMyadmin et une base de donnée MySQL. L'installation de celui ci nous permettra de tester nos requêtes et de créer nos différentes tables grâce à phpmyadmin. Il existe d'autre requêteur bien plus pratique que phpmyadmin mais celui ci est l'un des plus utilisés pour le net. (Sinon vous avez par exemple Toad, mais celui ci est payant pour les bases Oracles (gratuit pour Mysql normalement mais je n'aime pas trop !)).

Pour télécharger Wampserver, rien de plus simple : allez sur l'adresse suivante : http://www.wampserver.com/

Il faut installer la version correspondant à votre windows.

Pour ceux qui n'ont pas windows il existe d'autre installation comme Xamp, Mamp etc. Je ne vous les détaillerai pas car je ne les connais pas du tout ! La suite du tuto sera valide pour n'importe quel système d'exploitation. En effet le SQL n'est pas dépendant de votre OS.

Une fois Wampserver installé, il faudra le lancer et aller dans phpmyadmin comme indiqué dans la capture d'écran suivante :

Wamp001.jpg

Lorsque vous aurez cliquer sur phpmyadmin, votre navigateur préféré s'ouvrira (Pas IE s'il vous plaît !) avec l'interface de phpmyadmin. Vous avez alors accès à un ensemble de base de donné MySQL.

2)Création de la DataBase

Dans phpmyadmin, vous pouvez créer une nouvelle Database en cliquant sur SQL et en entrant la requête suivante :

CREATE DATABASE FACTURATION;

Nous avons donc lancé une opération de création (CREATE) d'une base de donnée (DATABASE) et nous avons nommé notre nouvelle database facturation.

Si nous voulions supprimer cette base il faudrait rentrer :

DROP DATABASE FACTURATION;

Cependant il est fort probable que la dernière requête ne passe pas pour des raisons de droit. De toute manière nous ne voulons pas détruire la base. La différence entre cette requête et la précédente est que nous ne faisons pas une création mais une suppression (DROP).

3)Création de la table facture.

Pour créer une table nous allons faire de nouveau un CREATE mais d'une TABLE. Il faudra que nous définissions la clé primaire, le format des champs, leurs noms et si la valeur NULL est possible.

CREATE TABLE Client
( IdClient INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
 Name VARCHAR(50) NOT NULL
);

La table que nous créons contient donc deux champs. Le champ IdClient est un nombre entier (INTEGER), qui s'autoincrémente (AUTO_INCREMENT), qui n'accepte pas la valeur NULL (NOT NULL) et est clé primaire (PRIMARY_KEY). Le seconde champ est le champ Name, qui est une chaîne de caractères (VARCHAR) de 50 caractères et qui n'accepte pas la valeur NULL (NOT NULL).

Si vous deviez ajouter d'autres champs il suffirait d'ajouter d'autre champ avec leurs caractéristiques, les champs étant séparés par des virgules.

Les principaux formats de champ possibles sont les suivants :

  • INTEGER : nombre entier
  • VARCHAR : chaîne de caractère, il prend entre parenthèse le nombre de caractère maximum.
  • DATE : une date.
  • DECIMAL : un nombre décimal avec entre parenthèse le nombre de chiffre total puis le nombre de chiffre après la virgule.

Pour avoir une liste plus complète, vous pouvez aller consulter la documentation suivante : http://dev.mysql.com/doc/refman/5.6/en/data-types.html.

Pour supprimer la table nous pourrions utiliser la commande suivante :

DROP TABLE Client;

4) Création d'un index

Avant de créer un index, nous allons créer une table sans index avec le code suivant :

CREATE TABLE Facture
(
	IdFacture Integer NOT NULL,
	IdClient Integer NOT NULL,
	Descr Varchar(254) NOT NULL
);

Comme avant nous allons créer un index mais cette fois ci avec une deuxième requête CREATE mais cette fois ci d'un objet INDEX. Nous allons créer un index sur IdClient pour faire une recherche plus efficace sur ce champ.

CREATE INDEX Idx_A_facture
ON facture (IdClient);

Nous avons donc créer (CREATE) un index (INDEX) nommé Idx_A_facture sur la table facture et la colonne IdClient. Nous aurions pu ajouter d'autre colonne à l'index en ajoutant d'autre colonne après IdClient séparé par des virgules.

5/Modification d'une table

Il est aussi possible de modifier une table. Dans l'exemple précèdent nous avons créer une table Facture mais sans clé primaire. Nous allons remédier à ce problème et ajouter un index primaire sur la table. Les index primaire dans MySQL ne sont modifiable que par la commande ALTER.

ALTER TABLE Facture
MODIFY IdFacture Integer auto_increment Not null primary key;

Cette requête nous permet de modifier (ALTER) la table (TABLE) facture et de modifier (MODIFY) le champ IdFacture en un entier (Integer), qui s'auto incrémente (AUTO_INCREMENT), n'est jamais null (not null) et est une clé primaire.

Il est aussi possible de renommer la table :

ALTER TABLE Facture RENAME Facture2;

de supprimer une colonne :

ALTER TABLE Facture DROP Descr;

Ou encore d'ajouter une colonne :

ALTER TABLE Facture ADD Descr2 VARCHAR(254);

Si vous voulez modifier un INDEX il suffit de faire les même requête que pour les tables mais en remplaçant TABLE par INDEX :).

 

Voici ce qui termine ce petit tutoriel sur les LDD (Langage de définition de donnée). Je n'ai pas présenté toutes les requêtes possibles mais vous avez les principales. Je ferai peut être un autre tuto sur ces requêtes mais plus tard quand nous aurons appris les requêtes de LMD (langage de manipulation de donnée) Select, Insert et Update ! Et peut être après l'utilisation des hints qui vous permettrons d'optimiser vos requêtes.

En résumé nous avons appris les requêtes CREATE, DROP et ALTER. Vous êtes donc capable désormais de créer des tables, database, index ainsi que de les supprimer ou encore de les modifier !

Share this post


Link to post
Share on other sites

Attention à Skype !

Skype bloque l'utilisation de wampserver car skype utilise un port qu'Apache utilise aussi ! (apparemment le port 80). Donc pour utiliser wampserver il faut soit changer le port par défaut en 8080 soit couper skype (la deuxième solution est la meilleure, skype n'a pas a bloquer ce port scrogneugneu !)

Share this post


Link to post
Share on other sites

On peut toujours désactiver l'utilisation des ports 80 et 443 par skype, pour ce faire il suffit d'aller dans Outils -> Options -> Connexion -> décocher la case "Utiliser les ports 80 et 443 pour les connexions entrantes supplémentaires" :) 

Share this post


Link to post
Share on other sites
il y a une heure, Plasminds a dit :

On peut toujours désactiver l'utilisation des ports 80 et 443 par skype, pour ce faire il suffit d'aller dans Outils -> Options -> Connexion -> décocher la case "Utiliser les ports 80 et 443 pour les connexions entrantes supplémentaires" :) 

Super, merci pour l'info :)

Share this post


Link to post
Share on other sites

Sympas comme tuto. Pour les ports tu peux facilement les changer oui, et au pire, suffis de lancer skype après avoir lancé wamp.

Par contre, par rapport au support de la base de données, y a t'il une raison à utiliser MySQL plus qu'un autre ? Ou tu l'as choisis par défaut ?

Share this post


Link to post
Share on other sites

je l'ai choisi car gratuit et facile d'accès quand on débute.

Présenter une base de donnée Oracle aurait été pas mal... Mais très difficile d'accès, et un peu inutile pour la plupart des gens. Mais cependant ce tuto est valable aussi pour oracle en grande partie (mis à part quelques différences côtés LDD). D'ailleurs je suis bien plus familier avec Oracle qu'avec Mysql ;)

Share this post


Link to post
Share on other sites

Je pensais plus à PostgreSQL, qui est utilisé en entreprise et qui je trouve est plus interessant que MySQL. Après les 2 n'ont rien à voir avec Oracle, c'est clair ^^; La gestion de plusieurs commandes SQL n'est pas fait de la même façon.

Share this post


Link to post
Share on other sites

j'avouerai ne rien connaître à postgreSQL. Après ce petit tuto donne des bases suffisantes je pense aussi bien pour Oracle, Mysql ou PostGreSQL. Même si chacune de ces bases de données possèdent quelques différences les bases sont les même.

Share this post


Link to post
Share on other sites

Je vais me refaire un petit tour de tes tutos avant de me replonger dans mes cours pour la rentrée, histoire de me rafraîchir la mémoire ^^
Merci pour tes explications :) 


Gameuse Minstery, Administratrice, Streameuse et Journaliste :angel:

Share this post


Link to post
Share on other sites

Ah oui les bases sont les mêmes tant que tu reste sur de la selection dans tes requêtes. Après l'utilité de wamp, c'est la liaison serveur local te permettant de gérer un site web à l'aide de MySQL ou PostgreSQL localement sans trop de soucis.

Par contre pour des requetes et la création d'une base de données complete et bien administrées, Oracle, MySQL et posgreSQL sont plutot différentes :P

Après c'étais sans critique, le contenu est interessant, mais PostgreSQL est souvent préféré à MySQL, bien que MySQL soit beaucoup utilisé par les étudiants ^^

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now