Baixe o app para aproveitar ainda mais
Prévia do material em texto
Au l a 5 – S Q L B á s i c a Prof. Anderson Luis Schvindt Bittencourt B DI – SQ L Introdução A Linguagem SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional. O SQL foi desenvolvido originalmente no início dos anos 70 nos laboratórios da IBM em San Jose, dentro do projeto System R, que tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional proposto por E. F. Codd. O nome original da linguagem era SEQUEL, acrônimo para "Structured English Query Language" (Linguagem de Consulta Estruturada em Inglês), vindo daí o fato de até hoje a sigla em inglês ser comumente pronunciada "síquel" ao invés de "és-kiú-él", letra a letra. No entanto, em português, a pronúncia mais corrente é a letra a letra: "esse-quê-ele". A linguagem SQL é um grande padrão de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Ela é um linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem. Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram vários dialetos desenvolvidos por outros desenvolvedores. Essa expansão levou à necessidade de criação e adaptação de um padrão para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987. O acesso a informações em sistemas de processamento de dados que não utilizam Sistemas Gerenciadores de Bancos de Dados (SGBDs) é feito pelo acesso sequencial a um ou mais arquivos. Cabe ao desenvolvedor criar mecanismos de recuperação da informação. Com a utilização de um SGBD, porém, o acesso fica diferente: pede-se as informações ao gerenciador de banco de dados e elas são devolvidas por ele. O processo pode ser comparado a uma compra em uma loja de departamentos e uma compra em uma loja de autopeças, que normalmente funcionam por processos diferentes. No primeiro caso, o cliente dirige-se à loja, procura por todas as seções, encontra o produto desejado e efetua a compra. No segundo, o cliente pede ao balconista o item desejado que lhe faz a entrega do mesmo. No caso da compra em loja de departamentos, o trabalho é todo do cliente, sendo este responsável inclusive pelas especificações necessárias (fazer a escolha certa). Já na loja de autopeças, o balconista assume toda a responsabilidade pela entrega da mercadoria desejada. B DI – SQ L A Linguagem SQL DDL – Data Definition Language - CREATE Criando bancos de dados:O SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-92.Foi revisto novamente em 1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente. O SQL:1999 usa expressões regulares de emparelhamento, queries recursivas e gatilhos (triggers). Também foi feita uma adição controversa de tipos não-escalados e algumas características de orientação a objeto. O SQL:2003 introduz características relacionadas ao XML, seqüências padronizadas e colunas com valores de auto-incremento (inclusive colunas-identidade). O SQL, embora padronizado pela ANSI e ISO, possui muitas variações e extensões produzidas pelos diferentes fabricantes de sistemas gerenciadores de bases de dados. Tipicamente a linguagem pode ser migrada de plataforma para plataforma sem mudanças estruturais principais. Outra aproximação é permitir para código de idioma procedural ser embutido e interagir com o banco de dados. Por exemplo, o Oracle e outros incluem Java na base de dados, enquanto o PostgreSQL permite que funções sejam escritas em Perl, Tcl, ou C, entre outras linguagens. A linguagem SQL pode ser dividida em grandes grupos, conforme classificação a seguir: DDL – Data Definition Language A DDL, ou Data Definition Language (Linguagem de Definição de Dados), permite ao usuário definir objetos em um banco de dados, tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias no DDL. Os comandos básicos da DDL são: ü CREATE: cria um objeto (uma Tabela, por exemplo) dentro da base de dados. ü DROP: apaga um objeto do banco de dados. ü ALTER: permite ao usuário alterar alguma característica do objeto, como por exemplo seu nome. create database <NOMEBD>; Onde NOMEBD = nome do banco que queremos criar OBS: Não é necessário digitar <> para executar o comando OBS2: O ponto e vírgula indica o final do comando Exemplo: create database meu_banco; Onde meu_banco = nome do banco de dados a ser criado Criando tabelas: create table <NOMETABELA> ( campo tipodado [not null] [primary key], campo2 tipodado ); Onde: NOMETABELA = nome da tabela que queremos criar Campo = nome do campo que queremos criar Tipodado = tipo do dado que queremos criar (ex: integer, vachar, char) OBS: comandos entre [] são opcionais Exemplo: create table uf ( siglauf char(2) not null primary key, nomeuf char(25 )); Onde: uf = nome do banco de dados a ser criado siglauf, nomeuf = nome dos campos char(2), char(25) = tipo dos campos B DI – SQ L DDL – Data Definition Language - DROP DDL – Data Definition Language - ALTER Alterando tabelas. Exemplo:Removendo banco de dados: alter table <NOMETABELA> add <NOMECAMPO> <TIPODADO>; alter table <NOMETABELA> drop <NOMECAMPO>; Onde: NOMETABELA = nome da tabela que queremos alterar NOMECAMPO = nome do campo da tabela TIPODADO = tipo do dado do campo OBS: Existem sintaxes diferentes para o comando ALTER TABLE dependendo do SGBD utilizado. Consulte sempre o manual do SGBD para verificar a sintaxe correta. Exemplo: alter table cidade add siglauf char(2); No exemplo acima o campo siglauf, do tipo char e tamanho 2, foi adicionado na tabela cidade. create table cidade ( idcidade int not null, nomecidade char(25) ); Constraints em SQL são as restrições de tabela. Exemplo: NOT NULL drop database <NOMEBANCO>; Onde: NOMEBANCO = nome do banco de dados que queremos remover OBS: Não é necessário digitar <> para executar o comando Exemplo: drop database meu_banco; Onde: meu_banco = nome do banco de dados a ser removido Removendo tabelas: drop table <NOMETABELA>; Onde: NOMETABELA = nome da tabela que queremos remover OBS: Não é necessário digitar <> para executar o comando Exemplo: drop table minha_tabela; Onde: minha_tabela = nome da tabela a ser removida DDL – Data Definition Language - CONSTRAINTS Neste caso o not null indica que o campo idcidade não pode ser nulo. B DI – SQ L DDL – Data Definition Language – CONSTRAINTS – CHAVE PRIMÁRIA DDL – Data Definition Language – CONSTRAINTS – CHAVE ESTRANGEIRA Chave primária – Primary Key Sintaxe: create table cidade ( idcidade int not null, nomecidade char(25), siglauf char(2), constraint pk_idcidade primary key (idcidade), constraint fk_siglauf foreign key (siglauf) references uf (sigla) ); constraint nome_constraint primary key (campo); Onde: nome_constraint = nome dado a restrição campo = campo ou campos (separados por vírgula) que será (ão) chave primária Exemplo: PRIMARY KEY create table cidade ( idcidade int not null, nomecidade char(25), constraint pk_idcidade primary key (idcidade) ); Chave estrangeira – Foreign Key Sintaxe: constraint nome_constraint foreign key (campo) references tab_relac (PK_tabela_relacionada); Onde: nome_constraint = nome dado a restrição campo = campo ou campos (separados por vírgula) que será (ão) chave estrangeiratab_relac = tabela que se relaciona com a tabela em que é criada a chave estrangeira PK_tabela_relacionada = chave primária da tabela relacionada Exemplo: FOREIGN KEY B DI – SQ L DML – Data Manipulation Language DML – Data Manipulation Language - DELETE A DML - Data Manipulation Language - Linguagem de Manipulação de Dados - é um subconjunto da linguagem usada para selecionar, inserir, atualizar e apagar dados. Alguns autores não consideram o SELECT como um comando de DML, uma vez que a manipulação dos dados não altera a sua estrutura em si. SELECT: comando que permite ao usuário especificar uma query – ou consulta - como uma descrição do resultado desejado. A questão não especifica como os resultados deveriam ser localizados. INSERT: é usado para somar ou inserir uma fila (formalmente uma tupla) a uma tabela existente. UPDATE: para mudar ou alterar os valores de dados em uma fila de tabela existente. DELETE: permite remover filas existentes de uma tabela. update <NOMETABELA> set CAMPO = VALOR where CONDIÇÃO; Exclui registros em uma tabela. Sintaxe: insert into uf (siglauf, nomeuf) values (‘df’, ‘distrito federal’); OBS: para campos numéricos, não é necessário inserir o valor entre aspas simples. DML – Data Manipulation Language - INSERT Insere registros em uma tabela. Sintaxe: insert into <NOMETABELA> (<CAMPO1>, <CAMPO2>, <CAMPO3>) values (VALOR1, VALOR2, VALOR3); Onde: NOMETABELA = Nome da tabela que desejamos inserir o dados CAMPO = nome dos campos VALOR = valor para os respectivos campos Exemplo: DML – Data Manipulation Language - UPDATE Atualiza registros em uma tabela. Sintaxe: Onde: NOMETABELA = nome da tabela que queremos atualizar o registro Exemplo: update uf set nomeuf = ‘Rio de Janeiro’ where siglauf = ‘rj’; delete from <NOMETABELA> where CONDIÇÃO; Onde: NOMETABELA = nome da tabela que queremos excluir os registros Exemplo: delete from uf where siglauf = 'RS'; B DI – SQ L DQL – Data Query Language Embora tenha apenas um comando a DQL é a parte da SQL mais utilizada. O comando SELECT é composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples as mais elaboradas. Sintaxe: select nome from pessoa; Onde: Campo1, campo2: campos da tabela Tabela: nome da tabela que se deseja fazer a consulta Exemplo: select campo1, campo2 ... from tabela where condição order by campo; Onde: nome = campo da tabela pessoa = nome da tabela DQL – Data Query Language - Cláusulas Cláusulas As cláusulas são condições de modificação utilizadas para definir os dados que deseja selecionar ou modificar em uma consulta. FROM: Utilizada para especificar a tabela que se vai selecionar os registros. WHERE: Utilizada para especificar as condições que devem reunir os registros que serão selecionados. GROUP BY: Utilizada para separar os registros selecionados em grupos específicos. HAVING: Utilizada para expressar a condição que deve satisfazer cada grupo. ORDER BY: Utilizada para ordenar os registros selecionados com uma ordem especifico. select nome_funcionario, sexo_funcionario from funcionario; Obs: pode-se usar o caracter especial * para substituir todos os campos da tabela em uma consulta. Exemplo: select * from funcionario; B DI – SQ L SQL – Operadores Lógicos AND: E lógico. Avalia as condições e devolve um valor verdadeiro caso ambos seja corretos. OR: OU lógico. Avalia as condições e devolve um valor verdadeiro se algum seja correto. NOT: Negação lógica. Devolve o valor contrário da expressão. < Menor que > Maior que <> Diferente de <= Menor ou Igual que >= Maior ou Igual que = Igual que BETWEEN Utilizado para especificar um intervalo de valores. LIKE Utilizado na comparação de um modelo e para especificar registros de um banco de dados."Like" + extensão % vai significar buscar todos resultados com o mesmo início da extensão. DCL – Data Control Language A DCL (Data Control Language - Linguagem de Controle de Dados) controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados. Duas palavras-chaves da DCL: ü GRANT: autoriza ao usuário executar operações. ü REVOKE: remove ou restringe a capacidade de um usuário de executar operações. Outros comandos DCL: ü ALTER PASSWORD ü CREATE SYNONYM SQL – Operadores de Comparação As funções de soma se usam dentro de uma cláusula SELECT em grupos de registros para devolver um único valor que se aplica a um grupo de registros. AVG Utiliza para calcular a media dos valores de um campo determinado. COUNT Utilizada para devolver o número de registros da seleção. SUM Utilizada para devolver a soma de todos os valores de um campo determinado. MAX Utilizada para devolver o valor mais alto de um campo especificado. MIN Utilizada para devolver o valor mais baixo de um campo especificado. SQL – Funções de soma DTL – Data Transaction Language BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL): pode ser usado para marcar o começo de uma transação de banco de dados que pode ser completada ou não. COMMIT: envia todos os dados das mudanças permanentemente. ROLLBACK: faz com que as mudanças nos dados existentes desde que o último COMMIT ou ROLLBACK sejam descartadas. COMMIT e ROLLBACK interagem com áreas de controle como transação e locação. Ambos terminam qualquer transação aberta e liberam qualquer cadeado ligado a dados. Na ausência de um BEGIN WORK ou uma declaração semelhante, a semântica de SQL é dependente da implementação.
Compartilhar