====== SQL, bases de données, etc ====== ===== Importer une grosse base de données ===== mysql -u {username} -p {databasename} < file_name.sql [[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]] SHOW TABLES LIKE 'yourtable'; ===== Jointures ===== http://sql.sh/cours/jointures http://sql.sh/cours/jointures/natural-join ===== Faire une colonne avec une condition ===== 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 ===== 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. 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 ===== Requêteception ===== Comment imbriquer des SELECT. 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 ===== Supprimer une ligne dans la BDD ===== [[https://www.w3schools.com/sql/sql_delete.asp|Référence]] DELETE FROM table_name WHERE condition; On peut utiliser [[https://www.w3schools.com/sql/sql_like.asp|LIKE]] comme une condition : SELECT * FROM submission WHERE title LIKE '%gladiator%' // Delete the lines DELETE FROM submission WHERE title LIKE '%gladiator%' OR title LIKE '%tournament%' ===== Fonctions liées à l'heure ===== [[http://sql.sh/fonctions/now|NOW()]] [[https://www.techonthenet.com/mysql/functions/date_add.php|DATE_ADD()]] // Récupérer le datetime d'il y a 1 heure DATE_ADD( NOW(), INTERVAL -1 HOUR ) ===== 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