SQL
De drev
Sommaire
Les types
TYPE peut prendre les valeurs suivantes :
- BOOLEAN
- TINYINT
- TEXT
- VARCHAR
- CHAR
- DATE
LIMIT
Limite le nombre de résultat.
Se place à la fin de la requête
exemple:
SELECT * FROM articles WHERE name LIKE "%new" LIMIT 10;
On peut aussi utiliser deux arguments :
Par exemple, afficher les résultat entre le 5ième et 15ième rang.
SELECT * FROM articles WHERE name LIKE "%new" LIMIT 5,15;
Opérations sur la structure
Utiliser une base de données
USE <database_name>;
Créer une base de données
CREATE DATABASE <database_name>;
Créer une table
CREATE TABLE tablename ( column_name_1 TYPE(999) NOT NULL AUTO_INCREMENT, column_name_2 TYPE(999) NOT NULL, PRIMARY KEY (column_name1) );
ou
CREATE TABLE tablename ( column_name_1 TYPE(999) NOT NULL AUTO_INCREMENT PRIMARY KEY, column_name_2 TYPE(999) NOT NULL, )
Renommer une table
RENAME TABLE nom_de_table TO nouveau_nom_de_table[, nom_de_table2 TO nouveau_nom_de_table2,...]
Renommer un champ
ALTER TABLE tablename CHANGE old_column_name new_column_name VARCHAR( 35 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
Ajouter un ou plusieurs champs
ALTER TABLE `tablename` ADD `column_name_1` TYPE(999) NOT NULL DEFAULT '0', ADD `column_name_2` TYPE(999) NOT NULL DEFAULT '0';
Modifier un champ
ALTER TABLE table_name MODIFY column_name datatype
Supprimer un champ
ALTER TABLE table_name DROP COLUMN column_name
Décrire une table
SHOW COLUMNS from <table_name>;
Filtre sur les noms de columns
SHOW COLUMNS from TABLE_NAME WHERE Field LIKE "i%"
Opérations sur les données
Recherche
SELECT * from <table_name>;
Les noms de champs sont séparés par des virgules
SELECT a, b, c from <table_name>;
WHERE
SELECT <nom_champs> FROM <nom_table> WHERE <condition>
exemple :
SELECT content FROM articles WHERE id = '42';
LIKE
Le charactere 'Jocker' est %
exemple: tous les champs de articles dont le nom contient ia
SELECT * FROM articles WHERE name LIKE "%ia%";
HAVING
Condition après in GROUP BY
Insertion de données
Insertion simple
INSERT INTO table_name VALUES ('A', 'B', 'C');
Insertion multiple
INSERT INTO table_name VALUES ('A', 1), ('B', 2), ('C', 3);
Insertion depuis une autre table
INSERT INTO Store_Information (store_name, Sales, Date) SELECT store_name, Sales, Date FROM Sales_Information WHERE Year(Date) = 1998
Mise à jour
UPDATE <table_name> SET <field_name> = "new_value" WHERE id=42;
Index
Un index est un catalogue pour accelerer la recherche.
... INDEX (column_name1)
Clé primaire composée
Dans un PRIMARY KEY, écrire la liste des champs
PRIMARY KEY (column_name1, column_name2)
Jointure
inner join
Se place avant une clause WHERE
INNER JOIN left_table ON <CONDITION>
Manipulation de chaînes
Remplacer ou supprimer des caractères
Exemple : supprimer les espaces et les deux points d'un champ.
UPDATE TABLE_NAME SET `hour` = REPLACE (`hour`, ' ', ''); UPDATE TABLE_NAMESET `hour` = REPLACE (`hour`, ':', '');
Référence
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html