O acrônimo CRUD é utilizado frequentemente para definir as quatro operações básicas de um banco de dados. Seu significado é C(reate)R(etrieve)U(pdate)D(elete), ou melhor , são os comandos: INSERT, SELECT, UPDATE e DELETE.
Tais comandos estão presentes na linguagem SQL(Structured Query Language) que é uma linguagem declarativa. A linguagem SQL é subdividida em 3 partes: DML, DDL e DCL. Os comandos acimas citados estão presentes na subdivisão DML(Data Manipulation Language) e, inicialmente, será o foco da postagem.
Notas.:
- Todos os componentes que estiverem entre colchetes, [], são opcionais em todos os comandos.
- Será levado em conta uma tabela chamada Pessoa, a mesma não obedecerá nenhum regra de normalização, é apenas a nível conceitual. A cada comando será assumido que seus valores voltaram ao estado original.
- A tabela acima citada possuem os seguintes campos: idPessoa, nome, salario, endereco e dtNascimento.
SELECT
O comando SELECT, sem dúvida, é o comando mais utilizado em qualquer sistema de banco de dados relacional. Através dele consegui-se manipular grandes massas de dados a nível de consulta. Além de serem muito importantes em instruções mais avançadas da linguagem, e.g., views.
Sintaxe:
SELECT campo1, campo2, ..., campoN, *
FROM tabela1, tabela2, ..., tabelaN
[WHERE condição]
[GROUPY BY ...]
[HAVING ...]
[ORDER BY ...]
Consultas básicas
Ao executar a forma mais simples de executar uma consulta SQL é não informando nenhum dos campos opcionais apresentados em sua sintaxe. Ao executar um SELECT desta maneira, o mesmo retornará todas as informações contidas em uma tabela. Por exemplo.
Instrução
SELECT * FROM Pessoa
Saída
Outra forma básica, e essa bem mais utilizada, é informando apenas a claúsula WHERE que se responsabiliza por trazer apenas os dados que satisfaçam a condição informada. Imaginem que seja necessário realizar uma consulta com todos os aniversariantes de uma data qualquer. Esta seria uma boa empregabilidade da claúsula WHERE.
Instrução
SELECT * FROM Pessoa
WHERE dtNascimento = '20050831'
ou
SELECT nome, endereco FROM Pessoa
WHERE dtNascimento =INSERT '20050831'
Saída
Consultas elaboradas
Existem ainda a possibilidade de ordernação dos resultados obtidos. Isto é posibilitado pela claúsula ORDER BY. Suponha que um dado relatório precise apresentar os salários de uma empresa de todos os funcionários que recebem salários igual ou superior a 1000 em orderm decrescente.
Instrução
SELECT nome, salario FROM Pessoa
WHERE salario >= 1000
ORDER BY salario DESC
Saída
Pode-se ainda ordernar por vários campos e com a expressão DESC que ordena do menor para maior.
SELECT nome, salario FROM Pessoa
WHERE salario >= 1000
ORDER BY salario ASC, nome DESC
Falta ainda apresentar detalhes das claúsulas GROUP BY e HAVING, que estão intimamente ligadas. Como o nome sugere a claúsula GROUP BY serve para agrupar todos os campos informados como retorno em um consulta(SELECT). Já a claúsula HAVING é utilizada para restringir grupos obtidos pela claúsula GROUP BY.
Nota.: Todos os campos informados para serem retornados devem, obrigatoriamente, aparecer na claúsula GROUP BY. Caso não utilizem a técnica de Projeção não há porque utilizar esta opção, visto que, sempre haverá pelo menos um campo diferente, e.g., a CHAVE PRIMÁRIA. Há posibilidade de inserir na projeção do resultado funções agregadas como: SUM, COUNT, MIN, etc. Mais estas serão abordadas em uma postagem sobre funções agregadas.Exemplo.
SELECT * FROM PESSOA
GROUP BY idPessoa, nome, salario, endereco, dtNascimento
HAVING salario >= 1000
Os registros retornados são os mesmos contidos no SELECT utilizado com ORDER BY.
INSERT
O comando INSERT serve para inserir um registro em alguma tabela de um banco de dados. Todos os campos não nulos devem ser informados os demais são de caráter facultativo.
O comando INSERT serve para inserir um registro em alguma tabela de um banco de dados. Todos os campos não nulos devem ser informados os demais são de caráter facultativo.
Sintaxe:
INSERT INTO
(campo1, campo2, ..., campoN)
VALUES(valor1, valor2, ..., valorN)
Por exemplo pode-se inserir o nome do leitor na tabela utilizada para exemplificação.
Instrução
INSERT INTO Pessoa(idPessoa, nome, salario, endereco, dtNascimento)
VALUES(1000, 'MEU NOME', 100000, 'MEU ENDERECO', '2009-02-28')
UPDATE
O comando UPDATE serve para realizar a alteração de algum registro já inserido em alguma tabela de um banco de dados.
Sintaxe
UPDATE
SET campo1 = valor1, campo2 = valor2, ..., campoN = valorN
[WHERE condição]
Imaginem que os valores inseridos em o salário e a data de nascimento errados. Para corrigí-los é simples, execute a instrução.
Instrução
UPDATE Pessoa SET dtNascimento = '2009-02-01', salario = 5000
WHERE NOME = 'MEU NOME'
DELETE
O comando DELETE apaga um determinado registro em uma dada tabela. Existe uma variação desde comando denominado DELETE CASCADE que funciona da seguinte forma:
DELETE FROM
[WHERE condição]
Para tomar um exemplo e deixar a tabela no estado original é necessário apagar o registro inserido.
Instrução
DELETE FROM Pessoa
WHERE nome = 'MEU NOME'
Conclusão
Foram apresentados os recursos básicos sintáticos de todos os métodos CRUD. Posteriormente, serão apresentados alguns recursos mais abragentes sobre todos os comandos apresentados. Simplesmente com estes comandos já é possível coletar alguma informação em uma base de dados.
José Mauro da Silva Sandy
Referências
Suponha que existam duas tabelas, Pessoa e Telefone. A tabela Telefone recebe como chave estrangeira a chave primária da tabela Pessoa, logo não existe possibilidade de excluir uma dada pessoa que tenha um telefone vinculado na tabela Telefone(dependências entre tabelas). Para realizar esse exclusão pode-se utilizar o DELETE CASCADE que assim que a pessoa for removida todos os seus telefones também serão apagados.Sintaxe
DELETE FROM
[WHERE condição]
Para tomar um exemplo e deixar a tabela no estado original é necessário apagar o registro inserido.
Instrução
DELETE FROM Pessoa
WHERE nome = 'MEU NOME'
Conclusão
Foram apresentados os recursos básicos sintáticos de todos os métodos CRUD. Posteriormente, serão apresentados alguns recursos mais abragentes sobre todos os comandos apresentados. Simplesmente com estes comandos já é possível coletar alguma informação em uma base de dados.
José Mauro da Silva Sandy
Referências
- DAMAS, Luís - SQL, Structured Query Languange / Luís Damas ; tradução Elvira Maria Antunes Uchôa. Rio de Janeiro : LTC, 2007.
- CEP - Código Endereçamento Postal - Descrição de como é formato o CEP no país e uma pequena implementação de busca.
- String em Python - Utilização de Strings em Python
0 comentários:
Postar um comentário