Baixe o app para aproveitar ainda mais
Prévia do material em texto
AULA 03 SQL PARTE 1 – CREATE TABLE E DML Nesta aula, você irá: 1.Conhecer a linguagem SQL; 2.Aprender a instalar e configurar um SGBD; 3.Aprender a criar tabelas; 4.Manipular dados. Instalação e configuração do SGBD Oracle 10G Express Visando tornar nossas aulas de SQL as mais práticas possíveis, utilizaremos o Oracle 10G Express. Para isso, é importante que você faça o download do SGBD e realize sua instalação no computador que irá utilizar ˘˘para seu estudo. A parte inicial de nossa aula será, então, dedicada a essa tarefa. Mãos a obra. IMPLEMENTAÇÃO DE BANCO DE DADOS 1 Download Oracle IMPLEMENTAÇÃO DE BANCO DE DADOS 2 IMPLEMENTAÇÃO DE BANCO DE DADOS 3 IMPLEMENTAÇÃO DE BANCO DE DADOS 4 IMPLEMENTAÇÃO DE BANCO DE DADOS 5 IMPLEMENTAÇÃO DE BANCO DE DADOS 6 IMPLEMENTAÇÃO DE BANCO DE DADOS 7 IMPLEMENTAÇÃO DE BANCO DE DADOS 8 Testando o Oracle (No NICIAR do WINDOWS) IMPLEMENTAÇÃO DE BANCO DE DADOS 9 IMPLEMENTAÇÃO DE BANCO DE DADOS 10 Criando Usuário – Via Comando IMPLEMENTAÇÃO DE BANCO DE DADOS 11 Digite o comando: GRANT CONNECT, RESOURCE TO AULABD DEPOIS CLIQUE EM EXECUTAR Criando Usuário – Via Interface IMPLEMENTAÇÃO DE BANCO DE DADOS 12 IMPLEMENTAÇÃO DE BANCO DE DADOS 13 IMPLEMENTAÇÃO DE BANCO DE DADOS 14 A LINGUAQEM SQL COMO PADRÃO Agora que já instalamos e criamos o usuário AULABD, vamos começar nosso estudo da Linguagem SQL. SQL quer dizer Structured Query Language e é o padrão mundial de acesso às bases de dados relacionais. Partes da SQL ✴DDL Create, Alter, Drop, Rename, Truncate Permitem a criação e definição de objetos como tabelas, views e outros objetos no banco de dados. IMPLEMENTAÇÃO DE BANCO DE DADOS 15 ✴DRL Select É o comando mais comum do SQL. U t i l i z a d o a m p l a m e n t e p a r a recuperação dos dados de uma base. ✴DML Insert, Delete, Update Comandos de manipulação dos dados. Usados nas aplicações que mantêm a base de informações com inserções, atualizações e deleções de dados. ✴DCL Grant, Revoke São utilizados para atribuir ou remover direitos de acesso a objetos do banco de dados e suas estruturas. ✴Controle de Transções Commit, Rollback, Savepoint Faz parte do padrão SQL a efetivação total, parcial ou o abandono de uma transação através da utilização destes comandos. IMPLEMENTAÇÃO DE BANCO DE DADOS 16 Criação de Tabelas Iniciaremos nosso Estudo pelo Comando de Criação de Tabelas A tabela é a forma básica de armazenamento de informações em um sistema gerenciador de banco de dados relacional e, por isso, deve conter um conjunto de elementos, alguns opcionais, na sua composição e que são: NOME IMPLEMENTAÇÃO DE BANCO DE DADOS 17 COLUNAS DICA A recomendação de encurtar os nomes de colunas se faz necessária, mas não obrigatória, para facilitar o trabalho do analisador de comandos SQL do RDBMS (parser). Quanto maiores os nomes das colunas, mais demorada é a etapa de aná l i se do comando , po rém, devemos ter o cuidado para não IMPLEMENTAÇÃO DE BANCO DE DADOS 18 tirarmos o significado claro da coluna na tabela. TIPOS DE DADOS Cada coluna de uma tabela, tem que ter um tipo de dado definido e único, obedecendo a lista de tipos definidos pelo RDBMS. No Oracle existe uma diversidade bastante grande de tipos e alguns são descritos na tabela abaixo: IMPLEMENTAÇÃO DE BANCO DE DADOS 19 RESTRIÇÕES (CONSTRAINS) Criando a tabela DEPARTAMENTO Antes de conhecermos melhor os comandos desta aula, vamos analisar uma tabela: Tabela Coluna Tipo Tamanho Observação Departa mento ID numérico 5 C h a v e Primária Departa mento NOME caracter 40 obrigatório IMPLEMENTAÇÃO DE BANCO DE DADOS 20 A análise da tabela nos mostra o seguinte: - a tabela possui duas colunas ( ID e Nome); - a coluna ID é um número inteiro de 5 dígitos, logo seu tipo deve ser number(5); - a coluna ID é a chave primária, logo deve receber a constraint Primary Key; - a coluna Nome é alfanumérica de 40 caracteres, logo seu tipo deve ser varchar2(40); - a coluna Nome é de preenchimento obrigatório, logo deve receber a constraint Not Null . Dessa forma, o comando para criar a tabela acima poderia ser parecido com: CRIAÇÃO DA TABELA DEPARTAMENTO CREATE TABLE DEPARTAMENTO ( ID N U M B E R ( 7 ) P R I M A R Y K E Y, N O M E VARCHAR2(40) NOT NULL) Para facilitar a visualização dos comandos, podemos identá- los , já que espaços, tabulações e ENTER não são considerados em um comando SQL: CREATE TABLE DEPARTAMENTO ( ID NUMBER(7) PRIMARY KEY, NOME VARCHAR2(40) NOT NULL) IMPLEMENTAÇÃO DE BANCO DE DADOS 21 Observe a restrição Primary Key que indica que a coluna codigo_cargo é a Chave Primária da tabela e Not Null, indicando que a coluna Nome é de preenchimento obrigatório. Vamos, então, criar a tabela Departamento no Oracle. Primeiro, vamos fazer login com o Usuário AULABD: Na tela inicial, clique em Sql e na Seguinte em Comandos Sql IMPLEMENTAÇÃO DE BANCO DE DADOS 22 Estamos, então, na tela de execução de comandos SQL; digite o comando de Criação da Tabela e Clique em Executar. Após e execução, irá aparecer uma mensagem, informando que o comando foi executado e a tabela criada. P o d e m o s v e r a e s t r u t u r a da t a b e l a Departamento através do comando Describe. (o comando pode ser escrito de forma abreviada como DESC) IMPLEMENTAÇÃO DE BANCO DE DADOS 23 Observe que a coluna ID está com o valor 1, em Chave Primária, identificando que ela possui esta restrição. Note, ainda, que tanto a coluna NOME, como ID, estão sem marcação em anulável, NOME porque tem a restrição NOT NULL e ID por ser chave primária. ACRESCENTANDO COLUNAS EM TABELAS Podemos acrescentar colunas em tabela já criada com comando Alter Table. Sintaxe: alter table <nome tabela> add <nome_coluna> <tipo da coluna> <constrain> EXEMPLO ALTER TABLE DEPARTAMENTO ADD descricao VARCHAR (30) NOT NULL; Vamos conferir como ficou a estrutura da tabela. Dê o comando DESCRIBE DEPARTAMENTO. Observe que a tabela possui agora 3 colunas : ID,NOME e DESCRIÇÃO. IMPLEMENTAÇÃO DE BANCO DE DADOS 24 ALTERANDO TABELAS O comando ALTER TABLE permite, além de criar novas colunas, podermos alterar constraints já existentes em colunas de nossas tabelas. Por exemplo, para tornarmos o campo DESCRIÇÂO, da tabela Departamento, não obrigatório, podemos utilizar a cláusula MODIFY, conforme abaixo: ALTER TABLE DEPARTAMENTO MODIFY DESCRICAO NULL Vamos executar o comando: para isso, digite-o no Oracle e clique em executar. IMPLEMENTAÇÃO DE BANCO DE DADOS 25 Observe a mensagem, informando que a tabela foi alterada Vamos conferir como ficou a estrutura da tabela. Dê o comando DESCRIBE DEPARTAMENTO. Observe que a tabela possui agora 3 colunas : ID,NOME e DESCRIÇÃO. ELIMINANDO COLUNAS DE TABELAS Com o Oracle é possível eliminar colunas de tabelas, inclusive aquelas referenciadas por constraints e índices, até mesmo chaves primárias, únicas e estrangeiras. É verdade que cuidados em nível de aplicação devem ser tomados por parte dos desenvolvedores e DBAs, IMPLEMENTAÇÃO DE BANCO DE DADOS 26 p o r é m , o p r o d u t o i m p l e m e n t a e s t a funcionalidade. Ao eliminarmos uma coluna, suas restrições, caso existam, também são removidas do dicionário de dados. Sintaxe alter table <nome_tabela> drop column <nome_coluna>; Onde: <nome_tabela> é o nome da tabela a qual será eliminada a coluna. <nome coluna> é o nome da coluna que será eliminada. Por exemplo, se desejarmos eliminar a coluna descrição da tabela Departamento, daria o seguinte comando: ALTER TABLE DEPARTAMENTO DROP COLUMN DESCRICAO Vamos executar o comando, para isso, digite-o no Oracle e clique em executar. Observe a mensagem informando que a tabela foi alterada. IMPLEMENTAÇÃO DE BANCO DE DADOS 27 Vamos conferir como ficou a estrutura da tabela. Dê o comando DESCRIBE DEPARTAMENTO. Observe que a tabela possui agora apenas 2 colunas : ID e NOME IMPLEMENTAÇÃO DE BANCO DE DADOS 28 MAIS CONSTRAINTS Até agora utilizamos apenas as constraints NOT NULL e PRIMARY KEY, vejamos agora as Constraints UNIQUE e FOREIGN KEY. CAMPOS ÚNICOS Esta constraint determina que uma coluna não pode ter valor repetido; não significando, entretanto, que deva possuir valor, ou seja, que tenho preenchimento obrigatório. Isso significa que podemos ter mais uma linha nula em uma coluna única. Para estabelecer essa restrição, estabelecemos UNIQUE como restrição da coluna, por exemplo: CPF char(11) UNIQUE, R E F O R Ç A N D O A I N T E G R I D A D E REFERENCIAL COM CHAVE ESTRANGEIRA Os relacionamentos entre tabelas são criados, gerando-se chaves estrangeiras (foreign key – FK) nas tabelas FILHO que referenciam colunas chaves nas tabelas PAI. Para estabelecer essa restrição, acrescentamos REFERENCES definição da coluna como exemplo: IMPLEMENTAÇÃO DE BANCO DE DADOS 29 I D _ D E P T O n u m b e r ( 7 ) R e f e r e n c e s Departamento(ID), Onde: Id_depto é o nome da coluna. Number(7) o tipo da coluna. References identifica a restrição de chave estrangeira. Departamento é o nome da tabela para onde aponta a chave estrangeira. (ID) é coluna da tabela departamento apontada pela chave estrangeira. Vejamos um exemplo de criação de Tabela utilizando estas restrições. Observe o comando, de sua análise podemos observar que: • A coluna ID é sua chave primaria; • As colunas ULT_NOME e PRIM_NOME são de preenchimento obrigatório; • A coluna CPF é única; • A coluna ID_DEPTO é uma chave estrangeira para a tabela departamento; • A coluna ID_GERENTE é uma chave estrangeira para a própria tabela empregado, IMPLEMENTAÇÃO DE BANCO DE DADOS 30 que se originou de uma autorelacionamento na modelagem conceitual. CREATE TABLE EMPREGADO (ID NUMBER(7) PRIMARY KEY, ULT_NOME VARCHAR(20) NOT NULL, PRIM_NOME VARCHAR(20) NOT NULL, CARGO VARCHAR(30), SALARIO NUMBER(7,2), DT_ADMISSAO DATE, CPF CHAR(11) UNIQUE, ID_DEPTO NUMBER(7) REFERENCES DEPARTAMENTO(ID), ID_GERENTE NUMBER(7) REFERENCES EMPREGADO(ID)) Vamos conferir como ficou a estrutura da tabela. De o comando DESCRIBE EMPREGADO. IMPLEMENTAÇÃO DE BANCO DE DADOS 31 CONSTRAINT DE COLUNAS E TABELAS As constraints podem ser definidas junto com a coluna. ou separadamente (no final do comando create table ou com o comando alter table). As constraints not null só podem ser definidas junto com a definição da coluna. As constraints de tabela são util izadas principalmente para criar constraints compostas. onde duas ou mais colunas fazem parte da constraint. como por exemplo, chaves primárias compostas. Vejamos um exemplo: A tabela Turmas possui uma chave primary composta pelas colunas CODIGO_TURMA e CODIGO_CURSO. O comando para sua criação é: CREATE TABLE TURMAS (CODIGO_TURMA NUMBER(6), CODIGO_CURSO NUMBER(3), CODIGO_FUNCIONARIO NUMBER(6), DATA_INICIO DATE, IMPLEMENTAÇÃO DE BANCO DE DADOS 32 DATA_FIM DATE , SALA NUMBER(2), P R I M A R Y K E Y ( C O D I G O _ T U R M A , CODIGO_CURSO) ); Execute o comando no ORACLE. Observe a mensagem de tabela criada. Vamos conferir como ficou a estrutura da tabela. Dê o comando DESCRIBE TURMAS. Observe, particularmente, a indicação de que a tabela possui uma chave primária composta p e l a s c o l u n a s C O D I G O _ T U R M A e CODIGO_CURSO. DETALHE IMPLEMENTAÇÃO DE BANCO DE DADOS 33 INCLUINDO UMA FOREIGN KEY NUMA TABELA EXISTENTE Também podemos incluir a constraint de Foreign Key após a criação da tabela, para tal, basta especificar a adição da constraint no comando ALTER TABLE. Para exemplificar, vamos primeiro criar a tabela CLIENTE, utilizando o comando abaixo:CREATE TABLE CLIENTE ( ID NUMBER(7) PRIMARY KEY, NOME VARCHAR2(40) NOT NULL, VENDEDOR NUMBER(7)) IMPLEMENTAÇÃO DE BANCO DE DADOS 34 A tabela foi criada, mas a coluna Vendedor deveria ser uma chave estrangeira para a tabela Empregado na coluna ID, podemos dar o seguinte comando de ALTER TABLE: ALTER TABLE CLIENTE ADD FOREIGN KEY (VENDEDOR) REFERENCES EMPREGADO(ID) Onde: CLIENTE – é a tabela a ser alterada ADD FOREIGN KEY – é a restrição a ser acrescida (VENDEDOR) é a coluna que recebera a constraint REFERENCES EMPREGADO(ID) indica a tabela e coluna referenciadas pela chave estrangeira. RENOMEANDO TABELAS É possível trocar o nome de uma tabela através do comando RENAME. Sua sintaxe é bem simples, conforme mostrada abaixo: Renomeando a Tabela TURMAS. RENAME TURMAS TO NOVATURMA. Execute o comando no ORACLE. IMPLEMENTAÇÃO DE BANCO DE DADOS 35 Observe a mensagem de INSTRUÇÃO PROCESSADA. ELIMINANDO TABELAS Para eliminarmos uma tabela já existente, basta executarmos o comando DROP TABLE. Veja o exemplo: Eliminando a tabela NOVATURMA DROP TABLE NOVATURMA IMPLEMENTAÇÃO DE BANCO DE DADOS 36 Execute o comando no ORACLE Observe a mensagem de TABELA ELIMINADA. Vamos conferir como ficou a estrutura da tabela NOVATURMA. Dê o comando DESCRIBE NOVATURMA. Observe a mensagem dizendo que o objeto não pode ser encontrado. Isso aconteceu, porque a tabela foi eliminada do banco de dados. Se você aplicar este comando em uma tabela que possua filhos, como por exemplo, a tabela Departamento irá gerar um erro ( veja figura). O erro ocorre porque essa tabela é referenciada por uma foreign key de outra tabela, que ficaria inconsistente caso esta fosse removida; o banco de dados, muito acertadamente, não permite este comando DROP TABLE. Caso seja realmente necessário eliminar essa tabela, posso solicitar que todas as constraints a ela vinculadas sejam eliminadas também, para isso acrescentamos CASCADE CONSTRAINTS ao comando. IMPLEMENTAÇÃO DE BANCO DE DADOS 37 MANIPULANDO DADOS Agora que já aprendemos a criar, alterar e eliminar tabelas iremos estudar os comandos de manipulação de dados que permitam que façamos a inclusão, alteremos ou eliminemos linhas das tabelas. Esses comandos são: INSERT" DELETE" UPDATE COMANDO INSERT - INSERINDO LINHAS O comando INSERT insere linhas em uma tabela. A forma mais simples do comando IMPLEMENTAÇÃO DE BANCO DE DADOS 38 INSERT insere somente uma linha , dados os valores conforme a sintaxe abaixo: insert into " <nome_tabela> (coluna1, coluna2, ..., colunan) values (valor1, valor2, ..., valorn) INSERT SEM REFERENCIAR COLUNAS INSERT INTO DEPARTAMENTO VALUES ( 10, ‘Financeiro’) IMPLEMENTAÇÃO DE BANCO DE DADOS 39 INSERT REFERECIANDO COLUNAS INSERT INTO DEPARTAMENTO (ID,NOME) VALUES ( 20, ‘Vendas’) CONFERINDO INSERÇÃO SELECT * FROM DEPARTAMENTO IMPLEMENTAÇÃO DE BANCO DE DADOS 40 Comando Update Para alterarmos dados já existentes em nossas tabelas utilizaremos o comando UPDATE. Veja a sintaxe do comando abaixo: UPDATE [schema. ] nome_tabela SET coluna1 = expressão I subquery [, colunan = ... ] WHERE condição ATUALIZANDO LINHAS Vejamos um exemplo que ira alterar o ID de todos os Departamentos somando 100 a eles. UPDATE DEPARTAMENTO SET ID = ID + 100 Execute o comando no ORACLE Observe a mensagem de que as duas linhas da tabela foram atualizadas. IMPLEMENTAÇÃO DE BANCO DE DADOS 41 Conferindo Inserção IMPLEMENTAÇÃO DE BANCO DE DADOS 42 Update Com Condição UPDATE DEPARTAMENTO SET ID = ID + 1000 WHERE ID = 110 Conferindo Update SELECT * FROM DEPARTAMENTO Podemos atualizar apenas algumas linhas, para isso, iremos estabelecer uma condição na cláusula where que a linha a ser atualizada deve atender. Por exemplo, se desejamos somar 1000 apenas ao ID do departamento 110, devemos dar o seguinte comando: IMPLEMENTAÇÃO DE BANCO DE DADOS 43 UPDATE DEPARTAMENTO SET ID = ID + 1000 WHERE ID = 110 Execute o comando no ORACLE. Observe a mensagem de que uma linha foi atualizada. Comando Delete Para excluirmos linhas em uma tabela utilizamos o comando DELETE. Veja a sintaxe do comando abaixo: DELETE [FROM] [schema.]nome_tabela WHERE condição IMPLEMENTAÇÃO DE BANCO DE DADOS 44 IMPLEMENTAÇÃO DE BANCO DE DADOS 45 REGISTRO DE PARTICIPAÇÃO 1. O comando que exclui linhas de uma tabela é: 1) Update " " 4) Alter 2) Delete " " 5) Drop 3) Insert 2. O comando que atualiza linhas é o comando: 1) Update "" " 4) Alter 2) Delete "" " 5) Drop 3) Insert 3. O comando que insere linhas é o comando: 1) Update "" " 4) Alter 2) Delete "" " 5) Drop 3) Insert 4. O comando que me permite incluir uma nova coluna em um tabela é o comando: 1) Update " " 4) Alter 2) Delete "" " 5) Drop 3) Insert IMPLEMENTAÇÃO DE BANCO DE DADOS 46
Compartilhar