Outils pour utilisateurs

Outils du site


webdev:sql:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
webdev:sql:start [09/11/2017 15:26]
dolo
webdev:sql:start [27/07/2021 19:35]
dolo [Supprimer une ligne dans la BDD]
Ligne 1: Ligne 1:
 +====== SQL, bases de données, etc ======
  
 +===== Importer une grosse base de données =====
 +<Code>mysql -u {username} -p {databasename} < file_name.sql</Code>
 +
 +[[http://stackoverflow.com/questions/6163694/how-do-you-use-mysqls-source-command-to-import-large-files-in-windows]]
 +
 +===== Requête pour savoir si une table existe =====
 +[[http://stackoverflow.com/questions/167576/check-if-table-exists-in-sql-server|!SO Bof]] [[http://stackoverflow.com/questions/8829102/mysql-check-if-table-exists-without-using-select-from|!SO OK]]
 +
 +<Code>SHOW TABLES LIKE 'yourtable';</Code>
 +
 +===== Jointures =====
 +http://sql.sh/cours/jointures http://sql.sh/cours/jointures/natural-join
 +
 +===== Faire une colonne avec une condition =====
 +<Code | 1 si groupe 4, sinon 0>
 +SELECT zed_customer.id_customer,
 +             CASE WHEN zed_customer_group.id_group = 4 
 +                     THEN 1 
 +                     ELSE 0 
 +             END AS profil_valide
 +FROM zed_customer
 +LEFT JOIN zed_customer_group ON zed_customer.id_customer = zed_customer_group.id_customer
 +</Code>
 +
 +===== Ne remonter que le plus grand ou la dernière date d'un champ =====
 +Sachant qu'il y a des multiples entrées par id_customer mais ne veut que le dernier. On s'aide de [[http://sql.sh/cours/group-by|GROUP BY]] pour ça.
 +<Code>
 +SELECT zed_customer.id_customer, MAX(zed_projet_acces.dossier_investissement) AS dossier_investissement, MAX(zed_projet_acces.documents) AS documents
 +FROM zed_customer
 +LEFT JOIN zed_projet_acces ON zed_customer.id_customer = zed_projet_acces.id_customer
 +GROUP BY zed_customer.id_customer
 +</Code>
 +
 +===== Requêteception =====
 +Comment imbriquer des SELECT. 
 +<Code>
 +SELECT a.id_customer, a.id_parrain, b.nb_filleuils
 +FROM zed_customer AS a
 +LEFT OUTER JOIN (SELECT id_parrain, COUNT(id_parrain) AS nb_filleuils
 +FROM zed_customer
 +GROUP BY id_parrain)
 +AS b ON a.id_customer = b.id_parrain
 +GROUP BY a.id_customer
 +</Code>
 +
 +===== Supprimer une ligne dans la BDD =====
 +[[https://www.w3schools.com/sql/sql_delete.asp|Référence]]
 +
 +<Code>
 +DELETE FROM table_name
 +WHERE condition;
 +</Code>
 +
 +On peut utiliser [[https://www.w3schools.com/sql/sql_like.asp|LIKE]] comme une condition :
 +
 +<Code>
 +SELECT * FROM submission WHERE title LIKE '%gladiator%'
 +</Code>
 +===== Fonctions liées à l'heure =====
 +[[http://sql.sh/fonctions/now|NOW()]] [[https://www.techonthenet.com/mysql/functions/date_add.php|DATE_ADD()]]
 +<code linenums>
 +// Récupérer le datetime d'il y a 1 heure
 +DATE_ADD( NOW(), INTERVAL -1 HOUR )
 +</code>
 +
 +===== LIMIT & OFFSET =====
 +[[https://www.petefreitag.com/item/451.cfm|Sauce]]\\
 +**LIMIT :** limite le nombre de résultat total\\
 +**OFFSET :** nombre d'entrée à sauter dans les résultats
webdev/sql/start.txt · Dernière modification: 27/07/2021 19:41 de dolo