Résumé des commandes SQL sous Oracle
1. Création et gestion des tables
CREATE TABLE nom_table (
colonne1 TYPE [CONSTRAINT],
colonne2 TYPE,
...
);
DROP TABLE nom_table;
ALTER TABLE nom_table ADD (nouvelle_col TYPE);
ALTER TABLE nom_table DROP COLUMN colonne;
ALTER TABLE nom_table RENAME COLUMN ancienne TO nouvelle;
2. Contraintes d’intégrité
PRIMARY KEY (clé primaire)
FOREIGN KEY (colonne) REFERENCES autre_table(colonne)
UNIQUE (colonne)
CHECK (condition)
NOT NULL
3. Manipulation des données (DML)
INSERT INTO nom_table (col1, col2, ...) VALUES (val1, val2, ...);
UPDATE nom_table
SET col1 = val1, col2 = val2
WHERE condition;
DELETE FROM nom_table
WHERE condition;
4. Sélection des données (DQL)
SELECT col1, col2 FROM nom_table;
SELECT col1 AS alias1 FROM nom_table;
SELECT DISTINCT col1 FROM nom_table;
SELECT * FROM nom_table ORDER BY col1 [ASC|DESC];
SELECT * FROM nom_table
WHERE col1 = val
AND col2 > 100
OR col3 LIKE '%txt%';
5. Jointures
SELECT a.col1, b.col2
FROM tableA a
JOIN tableB b ON [Link] = [Link];
SELECT a.col1, b.col2
FROM tableA a, tableB b
WHERE [Link] = [Link](+);
SELECT a.col1, b.col2
FROM tableA a
LEFT JOIN tableB b ON [Link] = [Link];
6. Fonctions d’agrégation
SELECT COUNT(*), MAX(salaire), MIN(salaire), AVG(salaire), SUM(salaire)
FROM employes;
SELECT dept_id, AVG(salaire)
FROM employes
GROUP BY dept_id;
SELECT dept_id, AVG(salaire)
FROM employes
GROUP BY dept_id
HAVING AVG(salaire) > 3000;
7. Sous-requêtes
SELECT nom
FROM employes
WHERE salaire > (SELECT AVG(salaire) FROM employes);
SELECT dept_id, moyenne
FROM (SELECT dept_id, AVG(salaire) AS moyenne FROM employes GROUP BY dept_id);
8. Gestion des vues
CREATE VIEW vue_employes AS
SELECT nom, salaire FROM employes WHERE salaire > 3000;
DROP VIEW vue_employes;
9. Gestion des transactions
COMMIT;
ROLLBACK;
SAVEPOINT nom;
10. Séquences et index
CREATE SEQUENCE seq_emp START WITH 1 INCREMENT BY 1;
INSERT INTO employes VALUES (seq_emp.NEXTVAL, 'Ali', 2000);
CREATE INDEX idx_nom ON employes(nom);