Skip to content

Instantly share code, notes, and snippets.

@import-benjamin
Last active June 8, 2020 07:09
Show Gist options
  • Save import-benjamin/ba664cfdc60481e7b21044f92577322b to your computer and use it in GitHub Desktop.
Save import-benjamin/ba664cfdc60481e7b21044f92577322b to your computer and use it in GitHub Desktop.
Somes tips in sql

VIEW ALL ATTRIBUTES FROM A TABLE

tip to question : Afficher les caractéristiques de tous les employés tip to q : Afficher les caractéristiques des départements

SELECT * FROM <TABLE_NAME>

VIEW ONE ATTRIBUTE FROM A TABLE

tip to q : Afficher la liste des travaux possibles

SELECT <ATTR> FROM <TABLE_NAME>

VIEW DISTINCT VALUE OF ONE ATTRIBUTE FROM A TABLE

tip to q : Afficher la liste des travaux possibles sans doublons

SELECT <ATTR> FROM <TABLE_NAME> DISTINCT

VIEW ATTRIBUTES FROM SPECIFIC ENTRIES MATCHING ONE CONDITION IN A TABLE

tip to q : Afficher les caractéristiques des employés travaillant à Grenoble tip to q : Afficher les caractéristiques des directeurs des départements 20 et 30

SELECT * FROM <TABLE_NAME> WHERE <ATTR>=<VALUE> 

where <ATTR>=<VALUE> is a boolean condition required to match query. this condition can be :

  • intervalle : <ATTR> BETWEEN <A> AND <B>
  • texte : <ATTR> LIKE 'D%'
  • ensemble de valeurs : <ATTR> IN (<A>, <B>, <C>, ...)
  • test de nullité : <ATTR> IS NULL

e.g.: SELECT * FROM EMPLOYES WHERE departement IN (20, 30)

VIEW ATTRIBUTES FROM SPECIFIC ENTRIES MATCHING TWO CONDITIONS IN A TABLE

tip to q : Caractéristiques des employés qui ne sont pas directeurs et qui ont été embauchés en 2004

SELECT * FROM <TABLE_NAME> WHERE <A>!=<VALUE> AND <B>=<VALUE>

VIEW ATTRIBUTES FROM SPECIFIC ENTRIES WITH VALUES MATCHING PATTERN IN A TABLE

tip to q : Caractéristiques des employés ayant un 'T' ou un 'U' dans leur nom

SELECT * FROM <TABLE_NAME> WHERE <ATTR> LIKE <REGEX>

e.g. if you want to match all employees with name starting by a T or a U: SELECT * FROM <TABLE_NAME> WHERE name ~* "(t|u)%"

or if you want to match all employees with the char t or u in their name : SELECT * FROM <TABLE_NAME> WHERE name ~* "(t|u)"

WIP

VIEW ATTRIBUTES FROM SPEFIFIC ENTRIES MATCHING ADVANCED REGEX FROM TABLE

tip to q : Caractéristiques des employés ayant deux 'E' dans leur nom

VIEW ATTRIBUTES FROM ENTRIES WHERE ATTRIBUTE IS NOT NULL FROM TABLE

tip to q : Caractéristiques des employés ayant une commission afféctée
tip to q : Liste des numéros et nom des employés n'ayant pas de subordonné

SELECT * FROM <TABLE_NAME> WHERE <ATTR> IS NOT NULL

VIEW ATTRIBUTES SORTED FROM TABLE

tip to q : Caractéristiques des employés triées par : numéro de département croissant, ordre alphabétique des travaux et ancienneté croissante (les derniers embauchés d'abord).
tip to q : Noms, numéros des employés et nom de leur supérieur triés suivant les noms des supérieurs puis suivant les noms des employés

SELECT * FROM <TABLE_NAME> ORDER BY <ATTR1> <ATTR2> <ATTR2> ... <ASC|DESC>

VIEW ATTRIBUTES FROM TABLE SORTED BY ATTR

tip to q : Nombre d'employés (nombre, département) de chaque département ordonnée par département tip to q : Nombre d'employés (travail,nombre) pour chaque travail, ordonnée par travail

SELECT <ATTR1> <ATTR2> <ATTR3> ... FROM <TABLE_NAME> ORDER BY <ATTR> <ASC|DESC>

VIEW SPECIFIC ATTRIBUTES FROM A TABLE

tip to q : Noms, numéros des employés et nom de leur supérieur

SELECT <ATTR1> <ATTR2> <ATTR3> ... FROM <TABLE_NAME>

WITH CONDITIONS

tip to q : Noms, dates d'embauche et numéros des employés embauchés avant leur supérieur, avec le nom, la date et le numéro du supérieur

VIEW MIN/MAX OF ATTRIBUTE FROM TABLE

tip to q : Salaire minimum, maximum pour chaque travail (travail,min, max)

SELECT <MIN|MAX>(<ATTR>) FROM <TABLE_NAME>

VIEW ATTRIBUTE MATCHING SUBQUERY CONDITION

tip to q : Liste des employés du département Recherche embauchés le même jour que quelqu'un du département Commercial tip to q : Liste des employés ne travaillant pas dans le même département que leur supérieur
tip to q : Liste des employés embauchés avant tous les employés du département 10
tip to q : Nom et date d'embauche des employés embauchés avant le 1 er mai 2000
tip to q : Nom et date d'embauche des employés embauchés avant BLAKE
tip to q : Liste des employés embauchés le même jour que FAURE
tip to q : Liste des employés ayant le même supérieur que LENOIR
tip to q : Liste des employés ayant même travail et même supérieur que TURNER

SELECT a.<ATTR>, a.<ATTR>, b.<ATTR>
FROM <TABLE_NAME> a, <TABLE_NAME> b
WHERE a.<ATTR> = b.<ATTR> AND b.<ATTR> >
(SELECT <ATTR>
FROM <TABLE_NAME>
WHERE <ATTR> =  <VALUE>);

VIEW MEAN ATTRIBUTE FROM TABLE

tip to q : Donner le salaire moyen (en tenant compte des commissions)

SELECT AVG(<ATTR>) FROM <TABLE_NAME>

VIEW ATTRIBUTE OF MIN(ANOTHER_ATTRIBUTE) FROM TABLE

tip to q : Donner le travail ayant le salaire moyen le plus bas

SELECT <ATTR> FROM <TABLE_NAME> WHERE <ATTR1>= (SELECT MIN(<ATTR1>) FROM <TABLE_NAME>);

CREATE NEW TABLE

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
   ....
);

when using a primary key :

CREATE TABLE Persons (
    ID int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

and when using a foreign key :

CREATE TABLE Orders (
    OrderID int NOT NULL PRIMARY KEY,
    OrderNumber int NOT NULL,
    PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
); 

EDIT EXISTING TABLE

ALTER TABLE table_name
ALTER COLUMN column_name datatype; 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment