Cette page comprend une liste de requêtes SQL étudié pendant la licence ASRALL. Pour plus de renseignements, vous trouverez de l'aide sur w3schools.
SELECT nom, prenom FROM T1 WHERE identifiant = 25;
SELECT nom_client, SUM(argent) FROM client GROUP BY nom_client HAVING SUM(argent) > 40
SELECT prenom||' '||nom AS personne FROM utilisateurs;
SELECT DISTINCT * FROM utilisateurs_lambda, utilisateurs_avancer;
SELECT * FROM utilisateurs WHERE ages IN (18, 20, 22);
SELECT * FROM utilisateurs LIKE "_o%";
Retourne :
lorent, loriane
SELECT * FROM utilisateurs ORDER BY age DESC
SELECT * FROM utilisateurs WHERE age BETWEEN 20 AND 25;
SELECT "Vous êtes "||nom||" "||prenom FROM utilisateurs;
CREATE TABLE T1 (C1 DATE, C2 INT, C3 VARCHAR(10));
DROP TABLE T1 CASCADE;
L'option CASCADE est facultative mais sa présence signifie que les objets qui dépendent de la table (vues, par exemple) seront automatiquement supprimés.
DELETE FROM ma_table WHERE ma_collone IS NULL;
INSERT INTO T1(C1,C2,C3) VALUES (1, 'chaine2', 'chaine2'),(2, 'chaine3',chaine3');
UPDATE T1 SET C1="valeur à maj" WHERE C1='mon_utilisateur_par_ex';
CREATE DATABASE ma_bdd;
DROP DATABASE ma_bdd;
CREATE TABLE nouvelle_table AS SELECT * FROM table_cible;
SELECT col1 FROM t1 UNION SELECT col1 FROM t2;
SELECT col1 FROM t1 INTERSECT SELECT col1 FROM t2;
SELECT col1 FROM t1 EXCEPT SELECT col1 FROM t2;
SELECT * FROM T1 INNER JOIN T2 ON T1.id = T2.id; /* Identique à : */ SELECT * FROM T1,T2 WHERE T1.id = T2.id;
SELECT * FROM T1 FULL JOIN T2 ON T1.id = T2.id
SELECT * FROM t1 CROSS JOIN t2; /* Identique à : */ SELECT * FROM t1,t2;
SELECT * FROM T1 LEFT JOIN T2 T1.id = T2.id; /* T1 = table de gauche */ /* T2 = table de droite */
Si les collones de l'ensemble de droite sont absents dans la table de gauche alors leurs contenues seront renseigné par la valeur NULL.
SELECT * FROM T1 RIGHT JOIN T2 T1.id = T2.id; /* T1 = table de gauche */ /* T2 = table de droite */
Si les collones de l'ensemble de droite sont absents dans la table de gauche alors leurs contenues seront renseigné par la valeur NULL.
CREATE USER mon_utilisateur WITH PASSWORD 'mon_utilisateur';
DROP USER mon_utilisateur;
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
DROP USER ‘newuser’@‘localhost’;
GRANT ALL PRIVILEGES ON DATABASE ma_bdd TO mon_utilisateur;
Liste des droits applicable présenté à cette page
GRANT SELECT, INSERT, UPDATE (ma_collone1, ma_collone2) ON ma_table TO mon_utilisateur;
ou
GRANT ALL PRIVILEGES ON TABLE ma_table TO mon_utilisateur;
CREATE ROLE mon_role CREATEDB CREATEROLE NOLOGIN;
D'autres rôles sont présenté ici
GRANT mon_role TO utilisateur, utilisateur2;
REVOKE mon_role TO utilisateur;
DROP ROLE mon_role
ALTER USER 'binome' WITH PASSWORD 'nouveau_password';
ALTER TABLE ma_table ADD CONSTRAINT mon_label_cle_primaire PRIMARY KEY (ma_collone_C1);
ALTER TABLE ma_table ADD CONSTRAINT mon_label2_cle_etrangere FOREIGN KEY (ma_collone_C1bis) REFERENCES ma_table(ma_collone);
ALTER TABLE T1 ADD C6 VARCHAR(50);
ALTER TABLE T1 DROP C6;
ALTER TABLE ma_table ADD CONSTRAINT mon_label UNIQUE (ma_collone);
ALTER TABLE ma_table ALTER COLUMN ma_collone SET NOT NULL;
ALTER TABLE ma_table ALTER COLUMN ma_collone CHECK(ma_collone > 0);
CREATE VIEW ma_vue AS SELECT * FROM ma_table;
GRANT SELECT ON ma_vue TO mon_groupe;
SHOW FULL TABLES IN ma_table WHERE TABLE_TYPE LIKE 'VIEW';
CREATE RULE ma_regle AS ON INSERT TO ma_table DO INSERT INTO ma_table2 VALUES (now(), 'INSERT', NEW.col1, NEW.col2);
SELECT * FROM pg_rules WHERE tablename='ma_table';
Par défaut les commits sont automatique, ci-dessous on les gères manuellement :
\pset AUTOCOMMIT off; BEGIN; UPDATE T1 SET C1=2; COMMIT; -- END; Fonctionne également.
\SET AUTOCOMMIT off; BEGIN; UPDATE T1 SET C1=2; SELECT * FROM T1;
Affiche : C1=2
SAVEPOINT r0; UPDATE t1 SET C1=4; SELECT * FROM T1;
Affiche : C1=4
ROLLBACK TO SAVEPOINT r0; SELECT * FROM T1;
Affiche : C1=2;
COMMIT;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
INSERT INTO ma_table (ma_collone) (SELECT round(random()*10) FROM generate_series(1,10000000));