MySQL/Manipulation de données
INSERT.
La syntaxe est la suivante :
 INSERT INTO TableName (Column1, Column2, Column3)
 VALUES (value1, value2, value3)
Ce qui effectue les opérations suivantes : codice_1.
Insérer un enregistrement (les valeurs sont insérées dans l'ordre où les colonnes apparaissent dans la base) :
INSERT INTO TableName
VALUES (value1, value2, value3)
-- Deux lignes :
INSERT INTO TableName
VALUES (value1, value2, value3), (value4, value5, value6)
INSERT INTO antiques VALUES (21, 01, 'Ottoman', 200.00);
INSERT INTO antiques (buyerid, sellerid, item) VALUES (01, 21, 'Ottoman');
-- Copier ceux d'une autre table :
INSERT INTO table1(field1, field2)
SELECT field1, field2
FROM table2
-- Copier une ligne :
INSERT INTO World_Events SELECT * FROM National_Events
Astuces de performances :
UPDATE.
 UPDATE table SET field1 = newvalue1, field2 = newvalue2 WHERE criteria ORDER BY field LIMIT n
Exemples :
 UPDATE owner SET ownerfirstname = 'John'
 WHERE ownerid = (SELECT buyerid FROM antiques WHERE item = 'Bookcase');
 UPDATE antiques SET price = 500.00 WHERE item = 'Chair';
 UPDATE order SET discount=discount * 1.05
 UPDATE tbl1 JOIN tbl2 ON tbl1.ID = tbl2.ID
 SET tbl1.col1 = tbl1.col1 + 1
 WHERE tbl2.status='Active'
 UPDATE tbl SET names = REPLACE(names, 'aaa', 'zzz')
 UPDATE products_categories AS pc
 INNER JOIN products AS p ON pc.prod_id = p.id
 SET pc.prod_sequential_id = p.sequential_id
 UPDATE table_name SET col_name =
 REPLACE(col_name, 'host.domain.com', 'host2.domain.com')
 UPDATE posts SET deleted=True
 ORDER BY date LIMIT 1
Avec codice_6 il est possible de classer les enregistrements avant l'insertion, voire même sur un nombre donné de lignes (avec codice_7).
Astuces de performances :
REPLACE.
codice_14 fonctionne depuis MySQL 5.5, en remplaçant un enregistrement par un autre, exactement comme codice_15 + codice_5, sauf que si l'ancien enregistrement a la même valeur que le nouveau en tant que codice_17 ou codice_18, l'ancien est supprimé avant l'insertion du nouveau.
IGNORE.
Pour éviter qu'une insertion soit interdite par une contrainte d'intégrité (ex : clé primaire en double), le mot codice_19 (dans "INSERT IGNORE" ou "REPLACE IGNORE") affiche juste des avertissements si une insertion est ignorée. 
Avant MySQL 4.0.1, codice_20 opérait implicitement en mode codice_19 : en ignorant les enregistrements qui causeraient des erreurs de valeur de clé dupliquée.
DELETE et TRUNCATE.
 DELETE [QUICK] FROM `table1`
 TRUNCATE [TABLE] `table1`
Quelques précisions :
 DELETE FROM `antiques`
 WHERE item = 'Ottoman'
 ORDER BY `id`
 LIMIT 1
Il est possible de classer les lignes avant leur suppression, tout en en choisissant le nombre.
Pour supprimer des enregistrements de plusieurs tables ("multi-table delete" ou "cross table delete") :
DELETE t1, t2
FROM t1
LEFT JOIN t2
WHERE t1.id=t2.id AND t1.value > 1;
-- Synonyme :
DELETE FROM t1, t2
USING t1
 LEFT JOIN t2
 ON t1.id = t2.id
WHERE t1.value > 1;
Toutefois dans les version inférieures à la 4 (et étonnamment constaté comme fausse alerte par PhpMyAdmin sur des versions ultérieures), les jointures sont interdites dans les suppressions, et on doit alors utiliser le codice_23 :
DELETE t1, t2
FROM table1 t1, table2 t2
WHERE t1.id=t2.id AND t1.value > 1;