Vous êtes sur la page 1sur 5

SQL: Comandos UPDATE, DELETE e Vises

Para a aula de hoje onde exploraremos os comandos update e delete, e veremos como criar vises (views). Criar o novo usurio aula4 com a senha aula4 e conceder os grants de connect create table e create view. Vamos ainda dar connect, dar-lhe cota infinita na tablespace users.
Comando para conectar-se ao banco de dados: se CONN SYSTEM/ALUNOS Comandos para criar o usurio, definir a tablespace default, conceder cota ilimitada nesta tablespace e rio, destravar o usurio: CREATE USER aula4 IDENTIFIED BY aula4 DEFAULT TABLESPACE users QUOTA UNLIMITED ON users ACCOUNT UNLOCK; Comandos para conceder o direito ao usurio de criar tabelas vises e conectar-se ao banco. tabelas, GRANT CREATE TABLE TO aula4; GRANT CREATE VIEW TO aula4; GRANT CONNECT TO aula4;

Criar para o novo usurio a tabela ALUNOS.


Comando para conectar-se com o novo usurio: CONN aula4/aula4 Comando para criar a tabela ALUNOS: CREATE TABLE alunos (ra NUMBER(3) NOT NULL, nome VARCHAR2(20) NOT NULL, situacao VARCHAR2(1), CONSTRAINT pk_alunos PRIMARY KEY(ra) );

SQL: Comandos UPDATE, DELETE e Vises

Comando para criar uma constraint de verificao. (A criao desta constraint far com que a coluna SITUAO da tabela ALUNOS receba somente os valores A de Aprovado ou R de Reprovado. ALTER TABLE alunos ADD CONSTRAINT check_situacao CHECK(situacao = 'A' OR situacao = 'R'); situacao

Inserir novos registros na tabela EMPREGADOS.


Comandos para inserir novos registros: cl A forma abaixo a mais completa do comando INSERT, pois so mencionados todos os campos tanto na clusula insert quanto na clusula values. INSERT INTO alunos (ra, nome, situacao) VALUES (1, 'Amilcar Assis', 'A'); Na forma abaixo o nome dos campos na clusula INSERT foram omitidos, pois todos os valores da tabela esto sendo inseridos. INSERT INTO alunos VALUES (2, 'Beatriz Assis', 'A'); Perceba na forma abaixo que a ordem dos campos na tabela no precisa ser seguida. seg INSERT INTO alunos (situacao, nome, ra) VALUES ('R', 'Mario Assis', 3); Execute o comando COMMIT para gravar os inserts executados.

Selecione todos os registros da tabela ALUNOS


SELECT * FROM alunos;

SQL: Comandos UPDATE, DELETE e Vises

Insira outros sete registros na tabela ALUNOS e responda as seguintes perguntas: O que acontece se voc inserir 2 registros com o mesmo valor para o atributo RA? O que acontece se voc inserir um registro em que o atributo SITUACAO seja diferente de A ou R. Comando UPDATE O comando UPDATE utilizado para alterar um valor em uma tabela e tem a seguinte sintaxe: UPDATE <NOME_DA_TABELA> SET <NOME_DO_CAMPO> = <NOVO_VALOR> WHERE <LINHAS_QUE_DEVEM_SER_ALTERADAS>; Vamos alterar a situao do aluno Mario Assis RA 3 de reprovado para aprovado.
UPDATE alunos SET situacao = A;

Exemplo: Selecione todas as linhas da tabela:


SELECT * FROM alunos;

Observe que todos os registros da tabela ALUNOS est com a situao = A, independente do valor anterior ao comando, ou seja, o comando s UPDATE alterou todas as linhas da tabela e no era isso que queramos, vamos alterar agora somente o registro que queremos, antes disso, execute o comando ROLLBACK para desfazer os updates executados por engano.
ROLLBACK; UPDATE alunos SET situacao = A WHERE RA = 3;

SQL: Comandos UPDATE, DELETE e Vises

Selecione todas as linhas da tabela para verificar se a alterao agora ocorreu corretamente. No se esquea do comando COMMI COMMIT. Comando DELETE O comando DELETE utilizado para excluir registros de uma tabela e sua sintaxe a seguinte: DELETE FROM <NOME_DA_TABELA> WHERE <LINHAS_QUE_DEVEM_SER_DELETADAS DELETADAS>;
DELETE FROM alunos WHERE RA = 3;

Selecione os dados da tabela para verificar a excluso do registro. Experimente executar o comando DELETE sem a clusula WHERE. O que acontece? No se esquea do comando ROLLBACK. Criando vises. As vises servem para que voc simplifique ou esconda dados de uma tabela para dar acesso a estes dados a outros usurios. Vamos criar duas vises para a tabela ALUNOS, uma em que apaream somente os alunos de RA pares e outra somente os alunos aprovados. CREATE OR REPLACE VIEW alunos_pares (registro, aluno) AS SELECT ra, nome from alunos WHERE MOD(ra,2) = 0;

SQL: Comandos UPDATE, DELETE e Vises

Observe que a viso acima criada alterou o nome original dos campos e no incluiu todos (o campo situao foi suprimido). Selecione os registros da viso: SELECT * FROM alunos_pares; Crie a viso alunos_aprovados: CREATE OR REPLACE VIEW alunos_aprovados (registro, aluno, status) AS SELECT ra, nome, situacao from alunos WHERE situacao = 'A' ORDER BY ra; Experimente inserir, alterar e excluir alunos da tabela e em seguida consulte as vises criadas.

Vous aimerez peut-être aussi