hg S’enregistrer Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie

Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie  forum informatique Tunisie Index du Forum

hg Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Rechercher Rechercher Membres Membres Groupes Groupes Profil Profil Se connecter pour vérifier ses messages privés Messages Privés Connexion Connexion


 Forum de l'excellence et l'excellence en innovation 
Pour participer à notre Forum, vous devez
 
inscrire sur notre forum a partir d'ici
 
  NB :
Les membres ''zéro messages'' seront supprimés automatiquement après un nombre de jours donné !!!!
             
   
 
  
forum d'aide informatique : internet, réseau, programmation informatique ...
INSTRUCTIONS SQL
 
 
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Base de données -> Langage SQL
hg Sujet précédent :: Sujet suivant   hd
Auteur Message
KARIMOS
Administrateur

Hors ligne

Inscrit le: 02 Nov 2008
Messages: 1 710
Masculin
Point(s): 5 479
Moyenne de points: 0

Posté le: Sam 14 Nov - 19:59 (2009)    Sujet du message: INSTRUCTIONS SQL Répondre en citant

PublicitéSupprimer les publicités ?
La commande INSERT

Pour mettre des valeurs dans une table on utilise le INSERT INTO ...
Notez le nombre de valeurs doit correspondre exactement au nombre de colonnes dans la table et le type de donnée doit correspondre exactement au type de colonne.
Si on doit omettre une valeur pour une colonne, on utilise l'identificateur NULL
Citation:

INSERT INTO nom_table VALUES (valeur1, valeur2, ...)

Eg: INSERT INTO competence VALUES ('A111', 'COBOL', 15);

INSERT INTO competence VALUES ('B2222', 'SQL', NULL);


On peut aussi mettre des valeurs dans seulement certaines colonnes de la table:

Citation:

INSERT INTO competence(empid, experience) VALUES ('A111', 15);


Notez bien: chaque INSERT ajoute une ligne à la table; vous ne pouvez pas changer le contenu d'une ligne avec un INSERT.



La commande UPDATE

Pour changer les données il faut faire un UPDATE ...
UPDATE nom_table SET colonne1 = valeur1, colonne2=valeur2
WHERE condition

Eg: UPDATE employe SET salaire=25000
      WHERE numemp = 'A1111';

Eg: UPDATE employe SET salaire = salaire * 1.1
      WHERE departement = 22;



La commande DELETE

Le DELETE ... sert à supprimer des lignes dans la table; notez que chaque DELETE enlève une ligne au complet; vous ne pouvez pas enlever seulement une colonne sauf en faisant un UPDATE.

DELETE FROM nom_table WHERE condition

Eg: DELETE FROM projets
      WHERE p_datefin < date();


 
Revenir en haut
RELAX_58


Hors ligne

Inscrit le: 21 Nov 2009
Messages: 3
Point(s): 3
Moyenne de points: 0

Posté le: Lun 23 Nov - 22:55 (2009)    Sujet du message: INSTRUCTIONS SQL Répondre en citant

Les instructions du langage SQL Interactif (Structured Query Language) se répartissent en trois familles fonctionnellement distinctes :

 

- Le LDD (Langage de Définition des Données)

 

CREATE, DROP et ALTER

 

Ces instructions vont permettre la description de la structure de la base de données.

 

- Le LMD (Langage de Manipulation des Données)

 

INSERT, UPDATE, DELETE et SELECT

 

Ces instructions vont permettre l’insertion, la modification, la suppression et la consultation des données de la base de données.

 

- Le LCD (Langage de Contrôle des Données)

 

GRANT et REVOKE

 

Ces instructions vont permettre la gestion des privilèges d’accès aux données.

 

 


1. Langage de Définition des Données

 

Après avoir défini la structure de la base de données, en construisant le MCD puis en faisant le modèle relationnel correspondant, il va falloir décrire la structure de la base de données sur une machine disposant d’un SGBDR.

Cette opération se fera grâce aux commandes du LDD.

 

1.1. La commande CREATE TABLE

 

Nous allons décrire la structure de la base de données EMPLBOIS à l’aide d’instructions CREATE TABLE.

 

CREATE TABLE SERVICES (

SRVNO SMALLINT  NOT NULL,

SRVNOM VARCHAR(30),

PRIMARY KEY (SRVNO));

 

CREATE TABLE PROJETS (

PROJNO INT  NOT NULL,

PROJLIB CHAR(11)  NOT NULL UNIQUE,

SRVNO SMALLINT  NOT NULL,

PRIMARY KEY (PROJNO),

FOREIGN KEY (SRVNO) REFERENCES SERVICES  ON UPDATE CASCADE);

 

CREATE TABLE EMPLOYES (

EMPNO SMALLINT  NOT NULL,

EMPNOM VARCHAR(30),

EMPPREN VARCHAR(30),

EMPSEXE CHAR(1)  CHECK(EMPSEXE IN (‘M’,’F’)),

EMPSALAIRE DEC(8, 2),

EMPPRIME DEC(6, 2)  DEFAULT 0  CHECK(EMPPPRIME < EMPSALAIRE/2),

SRVNO SMALLINT  NOT NULL,

PRIMARY KEY (EMPNO),

FOREIGN KEY (SRVNO) REFERENCES SERVICES ON UPDATE CASCADE);

 

CREATE TABLE INTERVENIR (

PROJNO INT  NOT NULL,

EMPNO SMALLINT  NOT NULL,

NBHEURES SMALLINT  NOT NULL DEFAULT 8,

PRIMARY KEY (PROJNO, EMPNO),

FOREIGN KEY (EMPNO) REFERENCES EMPLOYES ON UPDATE CASCADE,

FOREIGN KEY (PROJNO) REFERENCES PROJETS ON UPDATE CASCADE);

 


1.2. LES CONTRAINTES DECLARATIVES

 

Ces contraintes définies dans les CREATE TABLE vont être automatiquement vérifiées par le SGBD à chaque manipulation des données.

Ces contraintes déclaratives sont de trois types :

 

1.2.1. Les contraintes de domaine

 

Ces contraintes portent sur les attributs de la base de données. Elles sont décrites directement après son type et sa longueur.

 

- NOT NULL

 

Permet d’imposer qu’une valeur soit donnée à l’attribut lors de l’insertion d’une nouvelle ligne ou d’une modification.

 

- DEFAULT

 

Permet de donner une valeur par défaut à l’attribut.

 

- CHECK

 

Permet de spécifier une contrainte qui doit être vérifiée par l’attribut à tout moment dans chacune des lignes de la table.

On peut utiliser IN, BETWEEN, =, <, ...

 

- UNIQUE

 

Permet de préciser que l’attribut est une clé candidate.

 

1.2.2. Les contraintes d’intégrité d’entité

 

Chaque table doit avoir une clé primaire. PRIMARY KEY permet de définir la clé primaire qui doit être NOT NULL.

 

1.2.3. Les contraintes d’intégrité référentielle

 

Elles concrétisent un concept important de l’approche relationnelle. En effet, l’intégrité référentielle précise le lien entre deux tables.

Le FOREIGN KEY ... REFERENCES va permettre de créer le lien entre une clé étrangère et la clé primaire avec laquelle elle est liée.

 

Voyons quelles sont les conséquences du FOREIGN KEY (SRVNO) REFERENCES SERVICES ON UPDATE CASCADE défini lors de la création de la table EMPLOYES.

 

Lorsque l’on tentera d’ajouter ou de modifier une valeur de SRVNO dans la table EMPLOYES, si cette valeur n’existe pas dans la table SERVICES alors le système refusera la mise à jour et l’indiquera par un message d’erreur.

 

Si l’on modifie une valeur de SRVNO dans la table SERVICES, le ON UPDATE CASCADE va entrainer la mise à jour automatique des valeurs correspondantes de SRVNO dans la table EMPLOYES.

Etant donné que l’on n’a pas défini de ON DELETE ..., celui-ci est par défaut à NO ACTION. Il sera donc impossible de supprimer un service s’il y a des employés affectés à ce service.

 

1.3. La commande DROP TABLE

 

Cette commande permet de supprimer la description d’une table de la base de données :

 

DROP TABLE nomtable

 

1.4. La commande ALTER TABLE

 

Cette commande permet de modifier la structure de la base de données :

 

ALTER TABLE nomtable    ADD ....

                                               MODIFY ...

                                               DROP ...

 

2. Langage de Manipulation des Données

 

2.1. INSERT

 

Cette commande permet de créer de nouvelle lignes dans une table.

 

Ex : INSERT INTO SERVICES VALUES ((1,’DIRECTION’), (2,’COMMERCIAL’));

 

 

2.2. UPDATE

 

Cette commande permet de modifier des valeurs dans une table.

 

Ex :     UPDATE EMPLOYES SET EMPSALAIRE = EMPSALAIRE * 1,05

            WHERE EMPPRIME < 1000;

 

 

2.3. DELETE

 

Cette commande permet de supprimer des lignes d’une table.

 

Ex : DELETE FROM INTERVENIR WHERE EMPNO = 15;

 

 


2.4. SELECT

 

Cette commande permet de formuler des requêtes pour consulter le contenu de la base de données.

 

2.4.1. Requêtes de base

 

 

* FORME GENERALE

 

SELECT         colonnes ou fonctions

FROM            tables ou vues

WHERE         conditions sur les lignes + jointures

GROUP BY  regroupement

HAVING       conditions sur les groupes

 

 

* Visualisation du contenu complet d’une table (Ex : EMPLOYES)

 

SELECT * FROM EMPLOYES;

 

 

* Projection (liste des N°, noms et sexes des employés)

 

SELECT EMPNO, EMPNOM, EMPSEXE

FROM EMPLOYES;

 

Remarque : Suppression des lignes dupliquées

 

SELECT DISTINCT EMPNOM

FROM EMPLOYES;

 

 

* Projection + sélection (liste des N°, noms et salaires des femmes)

 

SELECT EMPNO, EMPNOM, EMPSALAIRE

FROM EMPLOYES

WHERE EMPSEXE = “F”;

 

 

* Comparaison à une liste de valeurs (liste des noms, salaires et N° de services des employés affectés aux services 1, 3 ou 6)

 

SELECT EMPNOM, EMPSALAIRE, SRVNO

FROM EMPLOYES

WHERE SRVNO IN (1, 3, 6);

 

* Valeur comprise dans un intervalle (liste des N° et noms des employés ayant une prime comprise entre 500 et 1000).

 

SELECT EMPNO, EMPNOM

FROM EMPLOYES

WHERE EMPPRIME BETWEEN 500 AND 1000;

* Comparaison à un filtre (liste des N°, noms et N° de services des employés dont la première lettre du nom est D).

 

SELECT EMPNO, EMPNOM, SRVNO

FROM EMPLOYES

WHERE EMPNOM LIKE ‘D%’;

 

Remarque :     % ou * pour remplacer un nombre quelconque de caractères

                        _ ou ? pour remplacer un seul caractère.

 

 

* AND, OR

 

SELECT EMPNO, EMPNOM, EMPSALAIRE

FROM EMPLOYES

WHERE EMPSEXE = “F”

 AND (SRVNO = 1 OR SRVNO = 4)

 AND EMPSALAIRE BETWEEN 5000 AND 6200;

 

 

* Tri du résultat (liste par ordre alphabétique des employés de sexe masculin : nom, prénom et N°).

 

SELECT EMPNOM, EMPPREN, EMPNO

FROM EMPLOYES

WHERE EMPSEXE = “M”

ORDER BY EMPNOM;

 

 

* JOINTURE  (liste des N°, noms, prénoms et noms de services des employés qui gagnent plus de 10 000)

 

SELECT EMPNO, EMPNOM, EMPPREN, SRVNOM

FROM EMPLOYES, SERVICES

WHERE EMPSALAIRE > 10000

    AND EMPLOYES.SRVNO = SERVICES.SRVNO;

 

 

* Principales fonctions colonnes :

 

SUM(X)         TOTALISATION

MIN(X)          VALEUR MINIMUM

MAX(X)         VALEUR MAXIMUM

AVG(X)         VALEUR MOYENNE

COUNT(*)     COMPTAGE DU NOMBRE DE LIGNES

 

 


* GROUP BY / HAVING

 

SELECT SRVNO, AVG(EMPSALAIRE)

FROM EMPLOYES

GROUP BY SRVNO;

 

SELECT SRVNO, AVG(EMPSALAIRE)

FROM EMPLOYES

GROUP BY SRVNO

HAVING AVG(EMPSALAIRE) > 9000;

 

Remarque : Après SELECT, on doit trouver soit des fonctions soit des colonnes de groupage d'où SRVNOM dans le GROUP BY de l'exemple ci-dessous.:

 

SELECT SRVNO, SRVNOM, AVG(EMPSALAIRE)

FROM EMPLOYES

GROUP BY SRVNO, SRVNOM

HAVING AVG(EMPSALAIRE) > 9000;

 

 

2.4.2. SELECT IMBRIQUE . (limité au cas où le SELECT imbriqué rend une seule valeur)

 

* Liste des noms et salaires des employés dont le salaire est supérieur à celui du salarié N° 11

 

SELECT EMPNOM, EMPSALAIRE

FROM EMPLOYES

WHERE EMPSALAIRE >   (SELECT EMPSALAIRE

                                               FROM EMPLOYES

                                               WHERE EMPNO = 11);

 

* Liste des N° et moyennes des salaires des services dont la moyenne des salaires est inférieure à la moyenne des salaires de la société.

 

SELECT SRVNO, AVG(EMPSALAIRE)

FROM EMPLOYES

GROUP BY SRVNO

HAVING AVG(EMPSALAIRE) <             (SELECT AVG(EMPSALAIRE)

                                                           FROM EMPLOYES);

 

 


3. Langage de Contrôle des Données

 

Les commandes GRANT et REVOKE vont permettre l’octroi ou le retrait de privilèges à un ou plusieurs utilisateurs sur un élément de la base de données. Cela suppose que l’on soit dans un système avec Log des utilisateurs.

 

Ex1 : Permettre à l’utilisateur DUPONT de consulter la table EMPLOYES et mettre à jour uniquement les attributs EMPSALAIRE et EMPPRIME

 

            GRANT SELECT, UPDATE(EMPSALAIRE, EMPPRIME) ON EMPLOYES TO DUPONT;

 

Ex2 : Retirer le droit de suppression dans la table EMPLOYES à tout le monde

 

            REVOKE DELETE ON EMPLOYES FROM PUBLIC;

 

Ex3 : Donner tous les droits sur la table PROJETS à CHEFTON

 

            GRANT ALL ON PROJETS TO CHEFTON;


 
Revenir en haut
ammouna01


Hors ligne

Inscrit le: 27 Fév 2010
Messages: 13
Point(s): 13
Moyenne de points: 0

Posté le: Mar 16 Mar - 17:37 (2010)    Sujet du message: INSTRUCTIONS SQL Répondre en citant

 Merci c'est une bonne résumé  Okay
je peux ajouter quelques remarques pour ceux qui veulent utiliser Easy PHP:
==> pour garantir le respect de contraintes ( clé primaire, clé étrangère...)
1. CREATE TABLE SERVICES (

SRVNO SMALLINT  NOT NULL PRIMARY KEY,

SRVNOM VARCHAR(30),

)TYPE=INNODB;
--> on doit indiquer  NOT NULL même si on a une remarque :"avec l'option PRIMARY KEY NOT NULL sera facultative"
-->pour appliquer l'intégrité référentielle on doit ajouter TYPE=INNODB 
--> pour indiquer une clé étrangère on doit utiliser contrainte de table ou on peut l'ajouter avec la commande ALTER TABLE
 constraint nom_cont FOREIGN KEY (col_etrangère) REFERENCES table_mère(col_primaire)
--> le ; est facultatif si on veut exécuter une seule requête à la fois


 
Revenir en haut
sayhi065


Hors ligne

Inscrit le: 19 Juil 2010
Messages: 2
Masculin
Point(s): 2
Moyenne de points: 0

Posté le: Lun 19 Juil - 12:44 (2010)    Sujet du message: INSTRUCTIONS SQL Répondre en citant

merci beacoup Okay

 
Revenir en haut
r.nsiri
recent membre
recent membre

Hors ligne

Inscrit le: 09 Jan 2009
Messages: 262
Masculin
Point(s): 304
Moyenne de points: 0

Posté le: Mer 18 Aoû - 13:09 (2010)    Sujet du message: INSTRUCTIONS SQL Répondre en citant


_________________
Cordialement


 
Revenir en haut
Contenu Sponsorisé






Posté le: Aujourd’hui à 18:59 (2016)    Sujet du message: INSTRUCTIONS SQL

 
Revenir en haut
Montrer les messages depuis:   
bg bd
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Base de données -> Langage SQL Toutes les heures sont au format GMT + 1 Heure
 
Page 1 sur 1

 
Sauter vers:  
Index | créer forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation