TLBD II Instruções SQL
Os comandos SQL podem dividir-se em três grandes categorias: DML - Data Manipulation Language - trabalha com linhas; DDL - Data Definition Language - trabalha com objetos; DCL - Data Control Language - trabalha com utilizadores. Comando Descrição Grupo de Comandos SELECT Utilizado para extrair dados da base de dados DML INSERT Introduzir novos registros DML UPDATE Alterar registros já existentes DML DELETE Apagar registros já existentes DML CREATE Criar objetos da base de dados (tabelas, índices, vistas) DDL ALTER Alterar objetos da base de dados (tabelas, índices, vistas) DDL DROP Apagar objetos da base de dados (tabelas, índices, vistas) DDL GRANT Conceder acesso à base de dados e aos seus objetos DCL REVOKE Retirar acesso à base de dados e aos seus objetos DCL DML, DDL, DCL.
Sintaxe padrão: SELECT tabela.campo FROM banco.tabela; b Instrução SELECT
Utilizando alias (AS) e CONCAT: SELECT CONCAT(p_nome, nome,, u_nome) as n_completo FROM minha_tabela ORDER BY n_completo; OBS: Como AS é opcional, pode ocorrer um problema se você esquecer a vírgula entre duas expressões SELECT: O MySQL interpretará o segundo como um nome de alias. Por exemplo, na seguinte instrução, columnb é tratada como um nome de alias: SELECT columna columnb FROM mytable; Não é permitido utilizar um apelido de coluna em uma cláusula WHERE. alias
Quando estiver utilizando mais de uma tabela em um SELECT você pode usar o alias para encurtar nomes de tabelas que serão utilizadas para identificação de campos. Exemplo: SELECT t1.nome, t2.salario FROM funcionarios i AS t1, info AS t2 WHERE t1.nome = t2.nome; alias
Colunas selecionadas para saída podem ser referidas em cláusulas ORDER BY e GROUP BY usando nomes de colunas, alias de colunas ou posições de colunas: Nomes: SELECT college, region, seed FROM tournament ORDER BY region, seed; Alias: SELECT college, region AS r, seed AS s FROM tournament ORDER BY r, s; Posições: SELECT college, region, seed FROM tournament ORDER BY 2, 3; ORDER BY
Para ordenar inversamente, adicione a palavra-chave DESC (descendente) ao nome da coluna na cláusula ORDER BY na qual você está ordenando. A ordem padrão é ascedente; ela pode ser especificada explicitamente usando a palavra-chave ASC. ORDER BY
A cláusula HAVING pode se referir a qualquer coluna ou alias definido na expressão SELECT. Ele é aplicado no final, pouco antes dos itens serem enviados ao cliente, sem otimização. LIMIT é aplicada depois de HAVING. Exemplo: SELECT usuario, MAX(salario) AS soma FROM usuarios GROUP BY usuario HAVING soma > 10; HAVING e GROUP BY
As opções DISTINCT, DISTINCTROW e ALL especificam quando registros duplicados devem ser retornados. O padrão é (ALL), todos os registros coincidentes id são retornados. DISTINCT e DISTINCTROW são sinônimos e especificam que registros duplicados d no conjunto de resultados devem ser removidos. DISTINCT ou DISTINCTROW
SELECT [DISTINCT] {*, coluna [pseudônimo],...} FROM tabela WHERE condição(ões) GROUP BY coluna(s) HAVING condição(ões) ORDER BY {coluna, expr} [ASC DESC] LIMIT inicio, quantidade; SELECT - seleciona pelo menos uma coluna. A sua ordem de execução segue a sequências das cláusulas apresentadas acima; Pseudônimo ou apelidos -usado como nome alternativo ti em colunas do select; * - designa todas as colunas; DISTINCT - utilizado para eliminar linhas duplicadas (se as houver); FROM tabela - designa a tabela de onde provêm as colunas; WHERE condição - limita a consulta às linhas que satisfazem a condição; GROUP BY - recebe as linhas selecionadas anteriormente (com ou sem WHERE) e agrupa por coluna. Se forem indicadas várias colunas usa a segunda para desempatar a primeira (faz quebra); HAVING - só utilizada quando há GROUP BY. Permite excluir grupos formados por GROUP BY; ORDER BY - recebe as linhas selecionadas anteriormente e ordena por uma ou mais colunas. Sempre a ultima cláusula; ASC - ordem crescente de ordenação; é a opção por omissão; DESC - ordem decrescente de ordenação; LIMIT determina o número de registros que serão apresentados a partir de uma linha. RESUMO