Anotações importantes relativa a disciplina "Linguagens SQL e NoSQL,
MBA em Análise de Dados com BI e Big Data" (EAD Unicsul) - Publicado em agosto/2020.
Para os exemplos e as práticas serão utilizadas as tabelas EMP e DEPT (ambiente default Oracle), que contêm, respectivamente, informações sobre os funcionários e sobre os departamentos de uma empresa e, para que não exista necessidade de armazenar os dados sobre o nome do departamento e a localização dos mesmos para cada registro de funcionários, elas são relacionadas por meio dos campos DEPTNO – que na tabela EMP é chave estrangeira e na tabela DEPT é chave primária.
INSERT INTO tabela [(coluna [, coluna...])] VALUES (valor [,valor...]);
Para verificar a ordem default das colunas de uma tabela e o tipo de dado esperado, utilize a instrução describe.
SQL> DESCRIBE dept Name Null? Type -------- -------- ------- DEPTNO NUMBER(2) NOT NULL DNAME VARCHAR2(14) LOC VARCHAR2(13)
Exemplos:
SQL> INSERT INTO dept (DEPTNO, DNAME, LOC) 2 VALUES (70, ‘PRODUCAO’, ‘MARILIA’);
Neste caso, não existe a necessidade de indicar as colunas que irão receber as inserções, pois estão sendo inseridos valores para todas as colunas, então o mesmo exemplo poderia ser resolvido assim:
SQL> INSERT INTO dept 2 VALUES (70, ‘PRODUCAO’, ‘MARILIA’);
Também é possível a inserção implícita de nulos, isto é, pode-se deixar de informar uma coluna na inserção de dados, para a qual será atribuído nulo.
SQL> INSERT INTO dept (deptno, dname ) 2 VALUES (60, ‘MIS’);
A tabela dept contém as coluna: deptno, dname e loc; no entanto, no exemplo anterior estão sendo inseridos valores apenas às colunas deptno e dname – nesse caso, a coluna loc irá conter NULL.
SQL> INSERT INTO dept 2 VALUES (70, ‘FINANCE’, NULL);
Já neste outro exemplo, o nulo para a coluna loc está sendo explicitado. Note que a lista de colunas é omitida pois estão sendo mencionados os dados para todas as colunas. A palavra NULL poderia ser substituida por aspas simples (70, ‘FINANCE’, ‘’). Para inserção de datas, a deverá ser informada de acordo com a configuração do sistema, como no exemplo a seguir:
SQL> INSERT INTO emp 2 VALUES (2296,’AROMANO’,’SALESMAN’,7782, ‘03/02/97’, 3 1300, NULL, 10);
UPDATE tabela SET coluna = valor [, coluna = valor, ...] [WHERE condição];
Alterando o código do departamento para 20 do funcionário com código 7782:
SQL> UPDATE emp 2 SET deptno = 20 3 WHERE empno = 7782;
DELETE [FROM]tabela [WHERE condição];
Exemplo:
SQL> DELETE FROM dept 2 WHERE dname = ‘PRODUCAO’;
Todas as linhas na tabela serão removidas se a cláusula WHERE for omitida
.Uma transação é um conjunto de operações DML que são realizadas para concluir uma determinada tarefa. Quando não ocorrem falhas no processamento das operações de uma transação, ela pode ser efetivada (salva); nesse caso, as modificações são refletidas fisicamente no banco de dados.
As instruções responsáveis pelo controle das transações são o commit e o rollback. A emissão de um commit confirma as transações, isto é, efetiva as manipulações de dados realizadas nas tabelas. A emissão de um rollback descarta as transações que ainda não tenham sido confirmadas (comitadas).
Exemplo usando commit: atualizar a tabela EMP e definir o número de departamento para o funcionário 7782 (Clark) como 10 e depois confirmar a alteração.
SQL> UPDATE emp 2 SET deptno =10 3 WHERE empno=7782; SQL> COMMIT;
É importante lembrar que após a emissão do comando COMMIT não há mais como reverter a operação feita anteriormente.
Exemplo usando rollback: remover todas as linhas da tabela employee.
SQL> Delete 2 From employee; 14 rows deleted SQL> ROLLBACK;