SQL Flashcards
Caractéristiques SQL (5)
- Assure indépendance des données
- Langage déclaratif
- Mode interactif ou programmé
- instruction SQL = requête, résultat = table
- 3 sous-ensembles : LDD, LCD, LMD
LDD (2)
Langage de définition de données :
- CREATE TABLE table (colonne type, colonne type);
- CREATE VIEW vue AS SELECT att1, att2 FROM table WHERE… ;
LDD attributs
Typés :
- bigint, int, smallint, tinyint, boolean
- float, real, double, decimal, numeric
- char, varchar, time, interval, money, images…
LDD CI colonne (5)
Contraintes d’intégrité colonne :
- PRIMARY KEY
- NOT NULL
- UNIQUE
- REFERENCE table(attributs) ON DELETE SET null/cascade
- CHECK (condition)
Contrainte d’intégrité
Règle définissant la cohérence des données de la BDD.
LDD CI table (4)
Contraintes d’intégrité table :
- PRIMARY KEY (attributs)
- UNIQUE (attributs)
- FOREIGN KEY (attributs) REFERENCE table(attributs)
- CHECK (condition)
LDD Suppression objet
DROP TABLE table;
LDD Modification table
ALTER TABLE table DROP/MODIFY/ADD (colonne);
LCD
Langage de contrôle de données
LCD Création compte utilisateur
CREATE USER ‘utilisateur’ IDENTIFIED BY ‘mdp’;
LCD attribution de droits
GRANT droits ON table TO ‘utilisateur’;
LCD droits (6)
ALL PRIVILEGES, SELECT, INSERT, DELETE, UPDATE, ALTER
LCD suppression de droits
REVOKE droits ON table FROM ‘utilisateur’;
LMD
Langage de manipulation des données
LMD insertion
INSERT INTO table (col1, col2) VALUES (val1, val2);
LMD insertion/copiage
INSERT INTO table1 (col1, col2) SELECT FROM (col5, col7) FROM table2;
LMD Mise à jour
UPDATE table SET col=val (WHERE …);
Possibilité de faire col=col/2…
LMD Suppression
DELETE FROM table (WHERE …);
LMD Interrogation
SELECT */col1, col2 FROM table1, table2 WHERE … ;
LMD jointure naturelle
SELECT */col FROM table1 NATURAL JOIN table2 [USING(col1, col2) pour filtrer]
Avantage pas de ON, nom/domaine colonnes identiques
LMD jointure interne
SELECT * FROM table1 INNER JOIN table2 ON table1.col1 = table2.col2;
LMD jointure externe
SELECT * FROM table1 LEFT/RIGHT/FULL/OUTER JOIN table2 ON table1.col1 = table2.col2 (permet de mettre à NULL les colonnes non concordantes sans les perdre).
LMD Agrégats définition
Partitionnement d’une table en sous-tabes en fonctions des valeurs d’un ou plusieurs attributes, suivi de l’application d’une fonction de calcul à chaque attribut des sous-tables obtenues.
LMD Agrégats usage
SELECT col1, agrégat(col2) FROM table WHERE (…) GROUP BY col1 HAVING agrégat(col2)>10;
LMD Agrégats liste
AVG COUNT MAX MIN SUM VARIANCE
LMD Ordre
à la fin : ORDER BY col
LMD utilisation d’un select en condition
…WHERE col1
SQL union
SELECT col FROM tab UNION SELECT col FROM tab
SQL différence
SQL1 : SELECT col FROM tab WHERE col NOT IN (SELECT col FROM tab2);
SQL2 : SELECT col FROM tab EXCEPT SELECT col FROM tab2;
SQL intersection
SELECT col FROM tab INTERSECT SELECT col FROM tab
Condition plus grand que TOUS
SELECT col FROM tab WHERE col > ALL(SELECT col FROM tab WHERE col=val);