A seguir serão descritas de forma resumida as principais instrução para manipulação de dados no MySQL.
Instrução CALL
Essa instrução serve para chamar um procedure previamente definido com uma chamada CREATE PROCEDURE. A sintaxe para chamar essa instrução é:
CALL sp_name([parameter[,...]]) CALL sp_name[()]
Para refrescar a memória, a seguir temos um exemplo de como criar procedure no MySQL.
CREATE PROCEDURE p (OUT ver_param VARCHAR(25), INOUT incr_param INT) BEGIN # Set value of OUT parameter SELECT VERSION() INTO ver_param; # Increment value of INOUT parameter SET incr_param = incr_param + 1; END;
E agora um exemplo de como chamar uma instrução CALL.
mysql> SET @increment = 10; mysql> CALL p(@version, @increment); mysql> SELECT @version, @increment; +--------------+------------+ | @version | @increment | +--------------+------------+ | 5.5.3-m3-log | 11 | +--------------+------------+
Instrução DELETE
Essa instrução remove colunas de uma tabela específica. A sintaxe da instrução DELETE é:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [PARTITION (partition_name,...)] [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]
A seguir temos exemplo de como chamar essa instrução:
DELETE FROM somelog WHERE user = 'jcole' ORDER BY timestamp_column LIMIT 1;
Instrução INSERT
A instrução insert serve para inserir valores nas tabelas do banco de Dados. Um exemplo de uso pode ser visto a seguir:
INSERT INTO tabela [(campo1[, campo2[, ...]])] VALUES (valo1[, valor2[, ...]])
Instrução REPLACE
Essa instrução funciona exatamente igual à instrução INSERT, exceto se já existir uma tupla (objeto logico) na tabela com o valor da Chave Primária (PRIMARY KEY) igual ao valor da tupla que está sendo inserida. Nesse caso, a tupla antiga é removida antes que a nova seja inserida.
Instrução SELECT
Essa instrução serve para retornar dados de uma ou mais tabelas. A sintaxe da instrução é:
SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [FROM table_references [PARTITION partition_list] [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [INTO OUTFILE 'file_name' [CHARACTER SET charset_name] export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]] [FOR UPDATE | LOCK IN SHARE MODE]]
Um exemplo básico de como usar essa instrução é:
SELECT coluna1, coluna2 FROM minhaTabela;
Uma tabela referenciada pode ser "apelidada" usando a opção AS, como se pode ver abaixo, em que a tabela employee é "apelidada" pra t1, e a tabela info apelidada para t2:
SELECT t1.name, t2.salary FROM employee AS t1, info AS t2 WHERE t1.name = t2.name;
Pode-se ordenar os resultados utilizando o nome das colunas, ou também o índice com a cláusula ORDER BY, como exemplificado a seguir:
SELECT college, region, seed FROM tournament ORDER BY region, seed; SELECT college, region AS r, seed AS s FROM tournament ORDER BY r, s; SELECT college, region, seed FROM tournament ORDER BY 2, 3;
Pode-se usar a cláusula HAVING para poder agregar dados, onde a cláusula WHERE não cabe, como se pode ver abaixo:
SELECT user, MAX(salary) FROM users GROUP BY user HAVING MAX(salary) > 10;
A cláusula LIMIT pode ser usada para limitar a quantidade de valores retornados, como exemplificado a seguir:
SELECT * FROM tbl LIMIT 5,10; # Retorna as linhas 6-15
Para retornar apenas os resultados a partir de um determinado índice (ou ordem, offset), pode-se colocar um valor muito grande no segundo argumento da cláusula LIMIT, como no seguinte exemplo:
SELECT * FROM tbl LIMIT 95,18446744073709551615; # Retorna todos, a partir do 96
Utilizando apenas um argumento para a cláusula LIMIT, é possível retornar apenas os primeros resultados.
SELECT * FROM tbl LIMIT 5; # Retrieve first 5 rows
Instrução UPDATE
Atualiza dados em uma ou mais tabelas. A sintaxe da instrução é:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]
A seguir temos um exemplo de uso da instrução UPDATE:
UPDATE items,month SET items.price=month.price WHERE items.id=month.id;
http://dev.mysql.com/doc/refman/5.6/en/sql-syntax-data-manipulation.html