Your SlideShare is downloading. ×
0
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sql básico - Teoria e prática: Um grande resumo

5,225

Published on

Workshop ministrado na empresa Hipcom Informática. Apanhado geral sobre SQL.

Workshop ministrado na empresa Hipcom Informática. Apanhado geral sobre SQL.

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,225
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
788
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. SQL Básico: Teoria e Prática Um grande resumo...
  • 2. Um pouco de história
  • 3. Características básicas
  • 4. Características básicas ● Exemplo de tabela ● Um banco de dados é um conjunto de tabelas. ● Representa aspectos da vida real. Nome RA Nota Bonifácio Cubas 125159 9,5 Ana Cintra 125148 8,0
  • 5. Modelos lógicos ● São modelos de dados ● É uma representação teórica de como será a implementação do banco de dados ● Deve ser independente de tecnologia Image: FreeDigitalPhotos.net
  • 6. Modelos lógicos ● Informações concisas e necessárias para o negócio ● Identifica redundâncias ● Identifica dados não utilizados ● Permite estabelecer regras de integridade de dados Image: FreeDigitalPhotos.net
  • 7. Modelos lógicos Image: FreeDigitalPhotos.net Aluno Matrícula Nome Endereço Data Nascimento ● Um modelo é formado por: ○ Entidades ○ Atributos Atributo identificador (Chave Primária)
  • 8. Modelos lógicos Image: FreeDigitalPhotos.net Aluno: #Matrícula Nome Endereço Data Nascimento Outra maneira de representar
  • 9. Relacionamentos ● Diagramas de entidas ○ Utilizaremos a metodologia DER: Diagrama Entidade-Relacionamento ○ DER representa a associação de cada entidade através de relacionamentos Entidade 1 Entidade 2Relacionamento
  • 10. Relacionamentos ● DER Entidade 1 Entidade 2Um ou muitos Entidade 3 Um e somente um Um ou muitos Um ou nenhum Exemplo de relacionamento
  • 11. Exemplos ● Exemplo: Cliente ○ Uma empresa controla os seguintes dados de seus clientes: ■ Código ■ Nome ■ Endereço ■ Telefone Cliente: #Código Nome Endereço Telefone
  • 12. Exemplos ● Exemplo: Cliente ○ A empresa vende diversos produtos a seus clientes: ■ Cada cliente pode comprar quantos produtos precisar ■ Cada pedido de venda pode ser composto por vários produtos Pedido: #Código Cliente Data Valor Detalhe Pedido: #Código Pedido #Código Produto Quantidade Valor Produto: #Código Descrição Valor
  • 13. Exemplos ● DER: Exemplo Cliente Cliente Pedido N Produto 1 1 1 Faz Detalhe Pedido Forma NN Compõe
  • 14. Modelos Físicos ● São modelos de dados ● É uma representação teórica de como será a implementação do banco de dados ● Deve levar em conta as limitações do SGBD Image: FreeDigitalPhotos.net
  • 15. Modelos Físicos ● Modelo lógico lhe permite a visão de negócio. O conceito a ser trabalho. ● O modelo físico lhe permite projetar a implementação do banco de dados. ● O modelo físico pode ser ligeiramente diferente do modelo lógico (melhorado). ● Requer conhecimento técnico. Image: FreeDigitalPhotos.net
  • 16. Modelos Físicos ● Modelo lógico : Entidades e atributos. ● O modelo físico : Tabelas e campo. ● Modelo lógico : Atributo identificador. ● O modelo físico : Chave primária. ● Modelo físico: ○ Chave estrangeira ○ Cardinalidade ○ Tipo de campo
  • 17. Modelos Físicos ● Tipos de campos ○ Char(N) ○ Varchar(N) ○ Numeric(N,P) ○ Integer ○ Date ○ Time ○ TimeStamp N = Tamanho P = Precisão decimal
  • 18. Modelos Físicos
  • 19. O SQL ● A linguagem SQL (Structured Query Language – Linguagem de Consulta Estruturada) é uma linguagem declarativa utilizada por Sistemas Gerenciadores de Bancos de Dados Relacionais como: Oracle, SQL Server, MySQL, PostgreSQL, Firebird, e outros. ● Devido à sua ampla utilização por diversos SGBDs, surgiram vários dialetos para os comandos, que geraram a necessidade de criação de um padrão para a linguagem. Essa tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987. Em 1992, foi realização uma revisão da linguagem que recebeu o nome de SQL-92.
  • 20. O SQL ● Em 1999 e 2003, ocorreram novas revisões. Na revisão de 1999, foram adicionados padrões para expressões regulares, consultas recursivas, triggers e algumas características de orientação a objeto. Na revisão de 2003, foram introduzidas características relacionadas a XML, sequências padronizadas e colunas com valores de auto- numeração. ● Uma dificuldade encontrada na utilização da linguagem SQL por parte dos desenvolvedores ou administradores de bancos de dados é a diferença entre os comandos nos diversos SGBDs, mesmo após a definição dos padrões. Porém, as diferenças não são grandes.
  • 21. O SQL - Tipos de linguagens ● DDL (Data Definition Language – Linguagem de Definição de Dados). ○ Os comandos DDL são usados para definir a estrutura do banco de dados, organizando em tabelas que são compostas por campos (colunas). Comandos que compõem a DDL: CREATE, ALTER, DROP.
  • 22. O SQL - Tipos de linguagens ● DML (Data Manipulation Language – Linguagem de Manipulação de Dados). ○ Os comandos DML permitem realizar operações de inserção, alteração, exclusão e seleção sobre os registros (linhas) das tabelas. Comandos que compõem a DML: INSERT, UPDATE, DELETE e SELECT. ○ Alguns autores definem que o comando SELECT faz parte de uma subdivisão chamada DQL (Data Query Language – Linguagem de Consulta de Dados).
  • 23. O SQL - Tipos de linguagens ● DCL (Data Control Language – Linguagem de Controle de Dados). Os comandos DCL são usados para gerenciar usuários e permissões de acesso ao Sistema Gerenciador de Banco de Dados. Comandos que compõem a DCL: GRANT e REVOKE. ● Alguns autores ainda definem uma subdivisão da linguagem SQL chamada DTL (Data Transaction Languagem – Linguagem de Transação de Dados). Uma transação pode ser compreendida como um conjunto de comandos que é executado de forma atômica, ou seja, ou todos os comandos são executados com sucesso ou nenhum dos resultados obtidos poreles será mantido no banco de dados.
  • 24. O SQL - Comandos DDL CREATE TABLE <nome_da_tabela> ( <nome_do_campo> <tipo_do_campo> <opções>, <nome_do_campo> <tipo_do_campo> <opções>, ... PRIMARY KEY(<nome_do_campo>) INDEX <nome_do_índice>(<nome_do_campo>), FOREIGN KEY(<nome_do_campo>) REFERENCES <nome_da_tabela_origem>(<nome_do_campo_origem>) ON DELETE <opção_de_referencia> ON UPDATE <opção_de_referencia>, ); ● <nome_da_tabela>: Nome da tabela a ser criada, não pode haver espaços e acentuações. ● <nome_do_campo>: Nome do campo da tabela, não pode haver espaços e acentuações. ● <tipo_do_campo>: Tipo do campo. Existem tipos padrões, porém existem tipos de campos específicos de cada SGBD. ● <opções>: Padronização do campo (valor padrão, auto incremento, limite numérico, etc...). ● Chave primária: Deve constar o nome do campo (se forma mais de um, separar por vírgula) que compões a chave primária. Caso a tabela não contenha uma chave primária, basta suprimir essa linha. ● Índices: Deve constar o nome do índice e o nome do campo (se forma mais de um campo, separar por vírgula) que compões o índice. Caso a tabela não contenha uma chave primária, basta suprimir essa linha. A tabela pode conter quantos índices forem necessários. ● Chave estrangeira: Deve constar o nome do campo que compões a chave, o nome da tabela de origem e o nome do campo da tabela de origem . Caso a tabela não contenha uma chave primária, basta suprimir essa linha. A opção de referência define o comportamento entre os registros da tabela (Se apagar na tabela-pai, apaga na tabela-filho, por exemplo).
  • 25. O SQL - Comandos DDL CREATE DATABASE Este comando é utilizado para criar um banco de dados. Exemplo: CREATE DATABASE loja; USE Sempre que for necessário manipular as tabelas de um banco de dados no SGBD MySQL, será necessário selecionar o banco de dados que se deseja manipular. Para isso, deve ser utilizado o comando USE. Exemplo: USE loja; CREATE TABLE Cria uma tabela de dados. Sintaxe: CREATE TABLE <nome_da_tabela> (definição dos campos); Exemplo: CREATE TABLE clientes( cpf integer unsigned not null, nome varchar(100) not null, data_nascimento date not null, sexo char(1) default ‘M’, salario decimal(10,2) default 0, profissao varchar(30), primary key(cpf) ); Cláusula DEFAULT A cláusula DEFAULT permite definir um valor padrão para um campo, que será utilizado caso não seja informado nenhum valor para esse campo na inserção de um registro na tabela. Exemplo: sexo char(1) default ‘M’, No exemplo acima, caso o campo “sexo” da tabela não seja preenchido com um valor durante a inserção de um registro, será assumido o valor ‘M’ para o campo. Para campos do tipo NUMÉRICO, o valor DEFAULT é escrito sem aspas. Exemplo: salario decimal(10,2) default 0,
  • 26. O SQL - Comandos DDL CONSTRAINTS (limitações, restrições) ● NOT NULL: define que um campo da tabela é obrigatório (deve receber um valor na inserção de um registro); ● PRIMARY KEY: define que um campo ou conjunto de campos para garantir a identidade de cada registro. Quando um campo é definido como chave primária, seu valor não pode se repetir em registros diferentes. Cada tabela só pode ter uma única chave primária. ○ CHAVE PRIMÁRIA SIMPLES: composta por um único campo. Exemplo: se for definido que em um sistema de hotéis não podem existir dois clientes com o mesmo CPF, portanto este campo deverá ser definido como CHAVE PRIMÁRIA. ○ CHAVE PRIMÁRIA COMPOSTA: formada por dois ou mais campos. Exemplo: se for definido em um sistema de Agências bancárias que não podem existir duas contas com o mesmo número da mesma agência, então esses dois campos formarão uma CHAVE PRIMÁRIA COMPOSTA, pois a combinação deles não pode se repetir. Criação de uma chave primária composta CREATE TABLE contas( numero integer not null, saldo integer default 0, agencia_numero integer not null, primary key(numero,agencia_numero) ); Ou CREATE TABLE contas( numero integer not null, saldo integer default 0, agencia_numero integer not null, constraint pk_conta primary key (numero, agencia_numero) ); Sintaxe: Criação de uma chave primária simples CREATE TABLE contas( numero integer not null primary key, saldo integer default 0, agencia_numero integer not null ); Ou CREATE TABLE contas( numero integer not null, saldo integer default 0, agencia_numero integer not null, primary key(numero) );
  • 27. O SQL - Comandos DDL CONSTRAINTS ● FOREIGN KEY: Uma chave estrangeira é definida quando se deseja relacionar tabelas do banco de dados. Sintaxe: CREATE TABLE contas( numero integer not null, saldo integer default 0, agencia_numero integer not null, primary key(numero,agencia_numero), foreign key(agencia_numero) references agencias(numero) ); Ou CREATE TABLE contas( numero integer not null, saldo integer default 0, agencia_numero integer not null, primary key(numero,agencia_numero), constraint fk_contaagencia foreign key(agencia_numero) references agencias(numero) );
  • 28. O SQL - Comandos DDL CONSTRAINTS ● UNIQUE: Uma constraint UNIQUE definie que o valor de um campo ou de uma sequência de campos não pode se repetir em registros da mesma tabela. Essa constraint é criada de forma implícita quando é definida uma chave primária para uma tabela. Como só é possível ter uma chave primária por tabela, a utilização de constraints UNIQUE é uma solução quando se deseja restringir valores repetidos em outros campos. Exemplo: CREATE TABLE clientes( cpf integer not null, nome varchar(100) not null, data_nascimento date not null, sexo char(1) default ‘M’, salario decimal(10,2) default 0, profissao varchar(30), rg integer not null, estado char(2) not null, primary key(cpf), constraint un_rgestado unique(rg,estado) );
  • 29. O SQL - Comandos DDL DROP TABLE O comando DROP TABLE é usado para apagar uma tabela do Banco de dados. Sintaxe: DROP TABLE <nome_da_tabela>; ALTER TABLE Para não se apagar uma tabela e recriá-la, é possível fazer alterações em sua estrutura por meio do comando ALTER TABLE. Isso é importante pois a execução do comando DROP TABLE apaga (obviamente) todos os registros da tabela, já a execução do comando ALTER TABLE não exclui nenhum registro. Adicionar um campo Sintaxe: ALTER TABLE <nome_da_tabela> ADD <nome_do_campo> <tipo_de_dado> <atributos> Exemplo: ALTER TABLE clientes ADD endereco varchar(90) not null; Alterar o tipo de dado de um campo Sintaxe: ALTER TABLE <nome_da_tabela> MODIFY <nome_do_campo> <tipo_de_dado> Exemplo: ALTER TABLE clientes MODIFY endereco varchar(200); Renomear um campo e modificar o tipo Sintaxe: ALTER TABLE <nome_da_tabela> CHANGE COLUMN <nome_do_campo novo_nome> <tipo>;
  • 30. O SQL - Comandos DDL ALTER TABLE Exemplo para mudar apenas o nome (o tipo do campo é mantido): ALTER TABLE clientes CHANGE COLUMN data_nascimento datanasc date; Exemplo para mudar o nome e o tipo do campo: ALTER TABLE clientes CHANGE COLUMN data_nascimento datahoranasc datetime; Renomear uma tabela Sintaxe: ALTER TABLE <nome_da_tabela> RENAME TO <novo_nome_da_tabela> Exemplo: ALTER TABLE clientes RENAME TO pessoas_fisicas Apagar um campo Sintaxe: ALTER TABLE <nome_da_tabela> DROP COLUMN <nome_do_campo> Exemplo: ALTER TABLE clientes DROP COLUMN endereco;
  • 31. O SQL - Comandos DDL ALTER TABLE Adicionar uma PRIMARY KEY Sintaxe: ALTER TABLE <nome_da_tabela> ADD CONSTRAINT <nome_da_constraint> PRIMARY KEY(campo1[,campo2,campo3,..., campoN]) Exemplo: ALTER TABLE clientes ADD CONSTRAINT pk_cpf PRIMARY KEY(cpf) Apagar uma PRIMARY KEY Sintaxe: ALTER TABLE <nome_da_tabela> DROP PRIMARY KEY Ou ALTER TABLE <nome_da_tabela> DROP CONSTRAINT <nome_da_constraint_da_primary_key> Exemplo: ALTER TABLE clientes DROP PRIMARY KEY; Ou ALTER TABLE clientes DROP CONSTRAINT pk_cpf;
  • 32. O SQL - Comandos DDL ALTER TABLE Adicionar uma FOREIGN KEY Sintaxe: ALTER TABLE <nome_da_tabela> ADD CONSTRAINT <nome_da_constraint> FOREIGN KEY(campo1[,campo2, campo3,...,campoN]) REFERENCES <nome_da_tabela>(campo1[,campo2,campo3,...,campoN]); Exemplo: ALTER TABLE contas ADD CONSTRAINT fk_contaagencia FOREIGN KEY(agencia_numero) REFERENCES agencias (numero); Adicionar uma constraint UNIQUE Sintaxe: ALTER TABLE <nome_da_tabela> ADD CONSTRAINT <nome_da_constraint> UNIQUE(campo1[,campo2,campo3,..., campoN]) Exemplo: ALTER TABLE clientes ADD CONSTRAINT un_rgestado UNIQUE(rg,estado) Apagar uma CONSTRAINT qualquer Sintaxe: ALTER TABLE <nome_da_tabela> DROP CONSTRAINT <nome_da_constraint> Exemplo: ALTER TABLE contas DROP CONSTRAINT fk_contaagencia Comando SHOW TABLES Para visualizar todas as tabelas em um banco de dados, utilize o comando SHOW TABLES. Exemplo: SHOW TABLES; Comando DESC Para visualizar a estrutura de uma tabela, utilize o comando DESC (ou DESCRIBE). Exemplo: DESC clientes;
  • 33. O SQL - Exemplo prático
  • 34. O SQL - Exemplo prático
  • 35. O SQL - Exemplo prático CREATE TABLE LIVRO ( idLIVRO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, EXEMPLAR VARCHAR(20) NULL, ISBN NUMERIC(20) NULL, TITULO VARCHAR(200) NULL, AUTORES VARCHAR(500) NULL, PRIMARY KEY(idLIVRO) ); CREATE TABLE INSCRICAO ( idINSCRICAO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, NOME VARCHAR(100) NULL, ENDERECO VARCHAR(500) NULL, TELEFONE VARCHAR(15) NULL, DATA_INSCRICAO DATE NULL, PRIMARY KEY(idINSCRICAO) ); CREATE TABLE RESERVA ( idRESERVA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, LIVRO_idLIVRO INTEGER UNSIGNED NOT NULL, INSCRICAO_idINSCRICAO INTEGER UNSIGNED NOT NULL, DATA_RESERVA DATE NULL, PRIMARY KEY(idRESERVA), INDEX RESERVA_FKIndex1(INSCRICAO_idINSCRICAO), INDEX RESERVA_FKIndex2(LIVRO_idLIVRO), FOREIGN KEY(INSCRICAO_idINSCRICAO) REFERENCES INSCRICAO(idINSCRICAO) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(LIVRO_idLIVRO) REFERENCES LIVRO(idLIVRO) ON DELETE NO ACTION ON UPDATE NO ACTION ); CREATE TABLE REQUISICAO ( idREQUISICAO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, INSCRICAO_idINSCRICAO INTEGER UNSIGNED NOT NULL, LIVRO_idLIVRO INTEGER UNSIGNED NOT NULL, DATA_REQUISICAO DATE NULL, DATA_ENTREGA DATE NULL, PRIMARY KEY(idREQUISICAO), INDEX REQUISICAO_FKIndex1(INSCRICAO_idINSCRICAO), INDEX REQUISICAO_FKIndex2(LIVRO_idLIVRO), FOREIGN KEY(INSCRICAO_idINSCRICAO) REFERENCES INSCRICAO(idINSCRICAO) ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY(LIVRO_idLIVRO) REFERENCES LIVRO(idLIVRO) ON DELETE NO ACTION ON UPDATE NO ACTION );
  • 36. O SQL - Manipulando os dados ● A subdivisão da linguagem SQL denominada DML (Data Manipulation Language) é composta pelos seguintes comandos: ○ INSERT: Inclui registro na tabela. ○ UPDATE: Atualiza registros já existentes na tabela. ○ DELETE: Exclui registros da tabela. ○ SELECT: Recupera registros armazenados na tabela (uma ou mais, simultâneamente).
  • 37. O SQL - Exemplo prático ● INSERT Sintaxe: INSERT INTO <nome_da_tabela> (<campo1,campo2, campo3,...,campoN>) VALUES (<valor1, valor2, valor3, ..., valorN>); ● Exemplo: INSERT INTO livro (EXEMPLAR, ISBN, TITULO, AUTORES) VALUES ('1', 98012345678, ’Meu Livro’, 'José da Silva'); ● Observações: 1) Valores do tipo TEXTO devem ser envolvidos por aspas simples ( ‘ ); 2) Valores do tipo numéricos (INTEGER, NUMERIC, DECIMAL, etc..) não são envolvidos por aspas simples e devem utilizar o ponto decimal para separação das casas decimais no lugar na vírgula. Ex.: 3.25
  • 38. O SQL - Exemplo prático ● Outra sintaxe do comando INSERT permite ocultar os campos e escrever somente os valores que serão inseridos. Exemplo: INSERT INTO livro VALUES ('1', 98012345678, ’Meu Livro’, 'José da Silva'); ● É possível usar o INSERT para múltiplos registros. Exemplo: INSERT INTO livro_backup SELECT * FROM livro; ● Observações: Para a execução do comando acima é necessário que os tipos de dados dos campos da tabela cidades_backup estejam na mesma ordem dos tipos de dados dos campos da tabela cidades.
  • 39. O SQL - Exemplo prático ● UPDATE Sintaxe: UPDATE <nome_da_tabela> SET <campo1 = valor1>, <campo2 = valor2>, <campo3 = valor3>, ..., <campoN = valorN> [ WHERE condições] ● Exemplo: UPDATE livro SET titulo = ‘O Alienista’; ● O comando UPDATE acima altera o campo titulo de todas os livros para ‘O Alienista’.
  • 40. O SQL - Exemplo prático ● Para restringir a alteração dos registros a um subconjunto deles, é utilizada a cláusula WHERE, que permite processar uma ou mais condições. ● Exemplo: UPDATE livro SET titulo = ‘O Alienista’, Autor = ‘Machado de Assis’ WHERE isbn = 98012345678;
  • 41. O SQL - Exemplo prático ● DELETE Sintaxe: DELETE FROM <nome_da_tabela> [WHERE condições]; ● Exemplo: DELETE FROM livro; ● O comando acima exclui todos os registros da tabela livro. Para excluir apenas um subconjunto dos registros, é necessário utilizar a cláusula WHERE. Exemplo: DELETE FROM livro WHERE isbn = 98012345678;
  • 42. O SQL - Exemplo prático ● SELECT Sintaxe: SELECT <campo1>, <campo2>, ..., <campoN> FROM <tabela1>, <tabela2>, ..., <tabelaN> [ JOIN <tabela> ON condições] [ WHERE condições ] [ORDER BY <campos>]; ● Exemplos: Exibir todos os campos de uma tabela SELECT * FROM livro; Exibir um campo de uma tabela SELECT titulo FROM livro; Exibir mais de um campo de uma tabela SELECT titulo, autor FROM livro;
  • 43. O SQL - Exemplo prático ● SELECT Apelidando campos SELECT titulo as nome_livro, isbn as isbn_livro FROM livro; Apelidando tabelas SELECT titulo, isbn FROM livro as acervo; Selecionando campos a partir do nome da tabela SELECT livro.titulo, livro.isbn FROM livro; Selecionando campos a partir do apelido da tabela SELECT acervo.titulo, acervo.isbn FROM livro as acervo;
  • 44. O SQL - Exemplo prático ● Cláusula WHERE ● Igual: = UPDATE livro SET autor = ‘Machado de Assis’ WHERE isbn = 98012345678; ● Diferente: <> UPDATE INSCRICAO SET endereco = ‘Rua dos Bobos 0’ WHERE idINSCRICAO <> 1; ● Maior: > SELECT * FROM INSCRICAO WHERE DATA_INSCRICAO > '2006/07/26'; ● Menor: < SELECT * FROM INSCRICAO WHERE DATA_INSCRICAO < '2006/07/26'; ● Maior ou igual: >= SELECT * FROM INSCRICAO WHERE DATA_INSCRICAO >= '2006/07/26'; ● Menor ou igual: <= SELECT * FROM INSCRICAO WHERE DATA_INSCRICAO <= '2006/07/26'; ● IN: Comparação de igualdade com múltiplos valores SELECT * FROM INSCRICAO WHERE nome IN ('José','Maria','Silveira');
  • 45. O SQL - Exemplo prático ● Cláusula WHERE ● LIKE: Comparação de partes do texto SELECT * FROM INSCRICAO WHERE nome LIKE ‘a%’; Seleciona todos o inscritos cujos nomes iniciam pela letra “a”. SELECT * FROM INSCRICAO WHERE nome LIKE ‘%o’; Seleciona todos os inscritos cujos nomes terminam pela letra “o”. SELECT * FROM INSCRICAO WHERE nome LIKE ‘%a%’; Seleciona todos os inscritos cujos nomes possuem a letra “a” em qualquer posição (início, meio ou fim).
  • 46. O SQL - Exemplo prático ● Cláusula WHERE ● Soma: + UPDATE funcionarios SET salario = salario + 10; Acrescenta R$ 10,00 ao salário dos funcionários. ● Subtração: - UPDATE funcionarios SET salario = salario – 5 WHERE salario > 1000; Subtrai R$ 5,00 do salário dos funcionários que ganham mais de R$ 1000,00. ● Multiplicação: * UPDATE funcionarios SET salario = salario*1.1; Aumenta o salário dos funcionários em 10%. ● Divisão: / UPDATE funcionarios SET salario = salario + salario*(10/100); Aumenta o salário dos funcionários em 10%. ● IS: Operador especial para comparação de igualdade. Este operador é usado para comparação com o valor NULL. SELECT nome FROM funcionarios WHERE celular IS NULL.
  • 47. O SQL - Exemplo prático ● Cláusula WHERE ● AND SELECT * FROM INSCRICAO WHERE nome LIKE ‘a%’ AND DATA_INSCRICAO <= ‘1980/01/01’; Seleciona todos os inscritos cujos nomes iniciam pela letra “a” e cujas datas de inscrição são anteriores a 01/01/1980. ● OR SELECT * FROM livro WHERE isbn='987123' OR isbn ='987456'; Seleciona os livros cujos os ISBN sejam 987123 ou 987456. ● Multiplicação: * UPDATE funcionarios SET salario = salario*1.1; Aumenta o salário dos funcionários em 10%. ● NOT SELECT nome FROM funcionarios WHERE NOT(salario < 1000); Seleciona o nome dos funcionários que não possuem salário menor que 1000.
  • 48. O SQL - Exemplo prático ● Junção de tabelas ● Usando a cláusula WHERE SELECT * FROM REQUISICAO , LIVRO WHERE REQUISICAO.LIVRO_idLIVRO = LIVRO.idLIVRO; Para a junção de tabelas, sempre devem ser escritas as condições entre os campos que estão relacionados nas tabelas. Geralmente, essas condições envolvem os campos que são chaves estrangeiras de uma tabela e os que são chaves primárias da outra, porém nada impede de serem feitas condições entre campos que não são chaves. ● Usando a cláusula JOIN SELECT * FROM LIVRO INNER JOIN requisicao ON REQUISICAO. LIVRO_idLIVRO = LIVRO.idLIVRO; A cláusula INNER JOIN define que serão selecionados somente os registros de uma tabela que possuem relação com os registros da outra tabela.
  • 49. O SQL - Exemplo prático ● Junção de tabelas ● Usando a cláusula LEFT JOIN SELECT requisicao.data_requisicao, inscricao.nome FROM inscricao LEFT JOIN requisicao ON requisicao.INSCRICAO_idINSCRICAO = inscricao. idINSCRICAO; Para interpretar o LEFT JOIN, faz-se a pergunta: qual tabela está à esquerda do JOIN? No comando acima, a tabela que está à esquerda da cláusula JOIN é a tabela inscricao. Portanto, serão selecionados todos os registros da tabela inscricao estando ou não relacionados com a tabela requisicao pelo camp o de chave primária. ● Usando a cláusula RIGHT JOIN SELECT requisicao.data_requisicao, inscricao.nome FROM inscricao RIGHT JOIN requisicao ON requisicao.INSCRICAO_idINSCRICAO = inscricao. idINSCRICAO; Para interpretar o RIGHT JOIN, faz-se a pergunta: qual tabela está à direita do JOIN? A tabela requisicao. Portanto, serão selecionados todos os registros da tabela requisicao que estão ou não relacionados com os registros da tabela inscricao.
  • 50. O SQL - Exemplo prático ● Cláusula ORDER BY Sintaxe: SELECT ... ORDER BY <campo1>, <campo2>, <campoN> ... [desc|asc] ● Exemplos: Seleciona os livros cujos títulos iniciam pela letra “a” e ordena a lista primeiramente pelo autor e, em seguida, pelos títulos dos livros. SELECT * FROM livro WHERE titulo LIKE ‘a%’ ORDER BY autor, titulo; Seleciona todos os livros ordenando decrescentemente pelo título e, se houver repetição de valores, obedece à ordem crescente do autor. SELECT * FROM livro ORDER BY titulo DESC, autor; Seleciona todos os livros ordenando crescentemente pelo título e, se houver repetição de valores, obedece à ordem decrescente do nome do autor. SELECT * FROM livro ORDER BY titulo, autor DESC;
  • 51. Concluindo ● É importante possuir uma documentação mínima sobre o banco de dados para poder se localizar e fazer a manutenção do mesmo. ● Conhecer pelo menos um tipo de modelo de banco de dados facilita a interatividade entre ferramentas e a comunicação com os profissionais envolvidos com o sistema. ● Decorar comandos não é o importante. O importante é saber o funcionamento!

×