0% ont trouvé ce document utile (0 vote)
258 vues31 pages

Presentation SQL

Ce document présente les principales commandes du langage SQL pour la définition, la manipulation et le contrôle des données dans une base de données relationnelle.

Transféré par

Samir Barbouche
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
258 vues31 pages

Presentation SQL

Ce document présente les principales commandes du langage SQL pour la définition, la manipulation et le contrôle des données dans une base de données relationnelle.

Transféré par

Samir Barbouche
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

Prsentation du langage SQL

La base exemple

Langage SQL

DDL - Langage de dfinition des donnes

CREATE TABLE, ALTER TABLE, DROP TABLE, TRUNCATE TABLE

DML - Langage de manipulation des donnes


SELECT, INSERT, UPDATE, DELETE

DCL - Langage de contrle des donnes


CREATE USER, GRANT SELECT.

Langage SQL

DDL - Langage de dfinition des donnes


CREATE TABLE: Cration dune nouvelle table
ALTER TABLE: la mise jour dune table existante
DROP TABLE: la suppression dune table existante
TRUNCATE TABLE: Mettre zro une table existante

Langage SQL

DML - Langage de manipulation des donnes

SELECT: affiche le contenu de lensemble des colonnes choisie


INSERT: Insrer des donnes dans la table
UPDATE : mise jour des lignes
DELETE : suppression des lignes

Langage SQL

DCL - Langage de contrle des donnes


CREATE USER: cration dun utilisateur pour le serveur
GRANT SELECT: accorder des droits aux utilisateurs

Commande Create table

CREATE TABLE <NOM DE LA TABLE>(


[id] [int] IDENTITY (1,1),
[ATTRIBUT 1] [type ] NOT NULL,
[ATTRIBUT 2] [type ] NULL,

[ATTRIBUT n] [type ] NULL


)

Commande Create table

CREATE TABLE Etudiant (


[id] [int] IDENTITY (1,1),
[nom] [type ] NOT NULL,
[prenom] [nvarchar(50) ] NULL,
[classe] [nvarchar (50)] NULL,
[module] [nvarchar (50)] NULL,
[moyenne] [nvarchar (50)] NULL,

[ATTRIBUT n] [type ] NULL


)

Commande SELECT
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] )
]]
* | expression [ AS nom_d_affichage ] [, ...]
FROM lments_from [, ...]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ ORDER BY expression [ ASC | DESC | USING
oprateur ] [, ...] ]

Commande SELECT
SELECT * FROM fonds

SELECT nom_fonds, isin FROM fonds ORDER BY


nom_fonds DESC

Commande SELECT oprateur


DISTINCT
SELECT devise, nom_inst FROM instruments

SELECT DISTINCT devise FROM instruments

Commande SELECT oprateur AS


SELECT nom_inst AS libell, toto as
nouvelle_colonne FROM instruments

Commande SELECT oprateur


COUNT()
SELECT count(*) FROM prix

SELECT count(distinct id_inst) FROM prix

Commande SELECT Fonctions


dagrgats
SUM (COLONNE)
SUM distinct (COLONNE)
Max (COLONNE)
Min (COLONNE)
AVG (COLONNE)
AVG distinct (COLONNE)

Clause WHERE
Oprateurs de
comparaison

= <> < <= > >=

Connecteurs logiques

{OR | AND}

Oprateur de ngation

NOT

Oprateurs
mathmatiques

+-*/

Comparaison logique

IS [NOT] {TRUE | FALSE | UNKNOWN}

Comparaison avec
valeur

IS [NOT] NULL

Intervalle

valeur BETWEEN borne_bas AND


borne_haut

Comparaison partielle

valeur LIKE motif [ESCAPE


echappement]

Comparaison une liste valeur [NOT] IN (liste)

Clause WHERE
SELECT * FROM instruments WHERE devise =
EUR

SELECT * FROM prix WHERE id_inst = 134 AND datobs


BETWEEN CAST('19280825' as datetime) and
CAST('19280828' as datetime)

Clause WHERE
SELECT * FROM instruments WHERE devise IN
(EUR,USD)

SELECT * FROM instruments WHERE nom_inst


LIKE '%T%'

SELECT sur plusieurs tables


On veut trouver la liste des grants associs aux
fonds
Table
FONDS

Table
GERANTS

Plusieurs mthodes possibles : Produit cartsien,


Jointure interne, Jointure Externe

SELECT sur plusieurs tables


Produit cartsien
SELECT nom_gerant, nom_fonds
FROM fonds, gerants

SELECT sur plusieurs tables


Jointure interne
SELECT g.nom_gerant, f.nom_fonds
FROM fonds f, gerants g
WHERE f.id_fonds = [Link]

Clause GROUP BY

SELECT id_inst, MIN(datobs) as datemin


FROM prix
GROUP BY id_inst

Clause Having

SELECT id_inst, MIN(datobs) as datemin


FROM prix
GROUP BY id_inst
Having <condition>

Les sous-requtes
SELECT nom_inst, prix
FROM instruments i, prix p,
(SELECT id_inst, MAX(datobs) as
datemax
FROM prix GROUP BY id_inst) d
WHERE i.id_inst = d.id_inst
AND [Link] = [Link]
AND p.id_inst = i.id_inst

Les sous-requtes
SELECT nom_inst, prix
FROM instruments i, prix p
WHERE i.id_inst = p.id_inst
and [Link] = ( SELECT MAX(datobs)
FROM prix q
WHERE q.id_inst = p.id_inst )

Commande INSERT
INSERT INTO table [ ( colonne [, ...] ) ]
{ DEFAULT VALUES | VALUES ( { expression |
DEFAULT } [, ...] ) [, ...] | requte }
[ RETURNING * | expression_sortie [ AS
nom_sortie ] [, ...] ]

Commande INSERT

INSERT INTO prix ( prix, id_inst, datobs )


VALUES (432.15, 1,
convert(datetime,20080926,112))

Oracle : INSERT INTO prix ( prix, id_inst, datobs )


VALUES (432.15, 1, to_date(20080926,yyyymmdd))

Commande INSERT
INSERT INTO prix ( id_inst, datobs, prix )
SELECT 9, [Link], [Link]
FROM prix S
WHERE S.id_inst = 1
AND [Link] < cast('20080831' as datetime)

Commande UPDATE
UPDATE [ ONLY ] table [ [ AS ] alias ]
SET { colonne = { expression | DEFAULT } |
( colonne [, ...] ) = ( { expression |
DEFAULT } [, ...] ) } [, ...]
[ FROM liste_from ]
[ WHERE condition ]

Commande UPDATE

Avant :

UPDATE devises
SET nom_devise = US Dollar
WHERE iso = USD

Aprs :

Commande UPDATE

Avant :

UPDATE instruments
SET nom_inst = nom_inst + '-' + d.nom_devise
FROM devises d
WHERE devise = [Link]

Aprs :

Commande DELETE
DELETE FROM [ ONLY ] table [ [ AS ] alias ]
[ USING liste_using ]
[ WHERE condition ]
[ RETURNING * | expression_sortie [ AS
output_name ] [, ...] ]

Vous aimerez peut-être aussi