Curso EFA de técnico de Informática e Sistemas

Slides:



Advertisements
Apresentações semelhantes
Aula – Comandos SQL no MYSQL Prof. Francisco Olivar Junior
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Banco de Dados Prof. Antonio.
Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
SQL Renata Viegas.
SQL Avançado Continuação
SQL Structured Query Language (continuação)
Prof.: Bruno Rafael de Oliveira Rodrigues
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
Elaini Simoni Angelotti
Banco de Dados SQL TRIGGERS (Gatilhos)
Visões Marilde Santos.
Maurício Edgar Stivanello
SGBD.
Operadores Especiais da SQL
Introdução à Engenharia da Computação
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
Operação de União “JOIN”
SQL Structured Query Language
12 Horas Instrutor: Antonio Itamar Júnior
Banco de dados Profª Kelly Medeiros.
SQL Server 2012 Tipos de Dados e Tabelas
SQL Álvaro Vinícius de Souza Coêlho
Cronograma Formato do Comando SELECT – 1ª Seção Uso de Funções (DATE_FORMAT, DAY, MONTH, NOW, CONCAT, FORMAT, COUNT, AVG, MAX, MIN e FORMAT) AS DISTINCT.
BANCO DE DADOS UNIVERSIDADE ESTADUAL DE SANTA CRUZ
Design Patterns / Acesso ao banco de dados (java.sql)
(Linguagem de Consulta Estruturada)
Banco de Dados Aplicado ao Desenvolvimento de Software
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Flávio Dantas.
Desenvolvendo um script SQL
Linguagem SQL.
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
VIEW - VISÕES Professor Esp. Diego André Sant’Ana
Banco de dados.
Linguagem de Definição de Dados
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
Baseado no material do Professor Raul Paradeda
REVISÃO Comandos SQL - DML SELECT * FROM ?.
Definições de Esquemas, Restrições básicas e buscas
VII- Álgebra Relacional
Linguagem de Manipulação de Dados. 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Banco de dados O que é MySQL Criar bando de dados
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
Treinamento SQL Server
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
Banco de Dados I I Comandos SQL
NOTA DE AULA SQL.
Linguagem SQL Prof. Juliano.
SQL Structured Query Language Linguagem de Consulta Estruturada
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
1 Structured Query Language (SQL) 4 SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
Banco de Dados Maria Augusta (Magu).
VBA – Visual Basic para Aplicativos
Linguagem de definição de dados - SQL
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
1 Programação de Banco de Dados José Antônio da Cunha George Azevedo da Silva.
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
José Antônio da Cunha 2/6/2016 José Antônio - CEFET-RN 1 Disciplina: Banco de Dados.
Normalização (4FN) Na literatura aparecem outras formas normais, como a forma normal de Boyce/Codd, a 4FN e a 5FN. Destas a única que tem importância na.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Curso EFA de técnico de Informática e Sistemas EDUCAÇÃO E FORMAÇÃO DE ADULTOS Curso EFA – Sec. Turma C - 2012 / 2013 Ano letivo 2012-2013 Docente: Ana Batista

Exemplos de comandos Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create table – para criar a estrutura de uma tabela; Alter table – modificar a estrutura de uma tabela; Drop table – eliminar uma tabela; Drop database – eliminar uma BD. Docente: Ana Batista

Exemplos de comandos Atualizar e consultar uma BD: Insert – inserir dados numa tabela; Update – atualizar ou alterar dados; Delete – apagar dados; Select – efetuar consultas ou pesquisas a uma base de dados. Docente: Ana Batista

Exemplos de comandos Controlar o acesso e o funcionamento seguros de uma BD: grant – permite atribuir ou definir os direitos dos utilizadores de uma BD; revoke – retira os direitos atribuídos; Lock table – bloqueia uma tabela de forma a impedir que outros utilizadores a alterem; Unlock table – desbloqueia tabela bloqueada; Start transation – inicia uma transação/operação controlada numa BD. Docente: Ana Batista

Comandos para criar e eliminar uma BD Criação de uma BD Create database Vendas Objetivo: iniciar a criação de uma bd com o nome Vendas. Docente: Ana Batista

Comandos para criar e eliminar uma BD Eliminar uma BD em SQL Drop database Vendas Objetivo: elimina a bd com o nome Vendas, de forma irrecuperável (a não ser que tenham sido feitas cópias de segurança). NOTA: Só os utilizadores do sistema que tenham o estatuto de superutilizador ou a quem tenham sido atribuídos todos os direitos sobre a base de dados, é que podem efetuar este tipo de operação. Docente: Ana Batista

Criar uma tabela - sintaxe Create table nome_tabela (definição_campo1 … Definição campo_n); Cria uma tabela com um dado nome. Dentro dos parêntesis é indicada a estrutura dos campos que se pretende para a tabela. Docente: Ana Batista

Assim… Definição_campo1 corresponde a: Nome_campo tipo_dados [not null] [default valor] [primary key] [references…] Docente: Ana Batista

Ou seja… Para cada campo da tabela indicam-se obrigatoriamente: Nome do campo Tipo de dados do campo Para além destes elementos obrigatórios, podem ainda ser indicados outros elementos opcionais. Docente: Ana Batista

NOTA: os parêntesis retos servem apenas para indicar os elementos opcionais; se estes elementos forem indicados, são escritos sem os parêntesis retos. Docente: Ana Batista

Elementos opcionais Not null – serve para indicar que o campo não pode conter valores nulos Default valor – permite indicar um valor por defeito para o campo. Por exemplo: default 10 (o campo assume este valor se não for indicado outro) Docente: Ana Batista

Elementos opcionais Primary key – indica que o campo é ou faz parte da chave primária da tabela. References – inicia a indicação que o campo funciona como chave estrangeira. Deve ser escrito: References nome_tabela (nome_campo) , ou seja, a seguir à palavra References é escrito o nome da tabela e o nome do campo (dentro parêntesis curvos) a que o campo faz referência como chave estrangeira. Docente: Ana Batista

Principais tipos de dados em SQL Descrição Char (n) Caracter ou string – de comprimento indicado até um máximo de 255. VarChar (n) Semelhante ao anterior, mas neste caso, Var significa tamanho variável em relação ao espaço realmente ocupado, consoante o dado inserido. text Texto até um máximo de 65535. smallint Números inteiros de tamanho reduzido Docente: Ana Batista

Principais tipos de dados em SQL Descrição Int ou integer Números inteiros de tamanho médio bigint Números inteiros de tamanho grande Numeric (m,d) ou decimal (M,d) Valor numérico que é guardado como uma string formada por digitos decimais, em que m representa o n.º digitos e d as casas decimais Float (m,d) Valor numérico que é guardado com o formato floating point (virgula flutuante) Docente: Ana Batista

Principais tipos de dados em SQL Descrição Double Semelhante ao anterior Date No mysql o formato padrão é “yyyy-mm-dd” – ano, mês, dia time Formato da hora: “hh:mm:ss” Docente: Ana Batista

Exemplo de um Modelo físico de uma base de dados Clientes CodCLi Cliente Morada Produtos CodProd Preco Encomendas Nenc CodCli Quant Docente: Ana Batista

Exemplificação da criação de tabelas Create table Clientes (CodCli Int auto_increment primary key, Cliente Varchar(20), morada varchar (30)); CodCli Cliente Morada Docente: Ana Batista

Explicação A tabela Clientes é composta por 3 campos: CodCli - int Cliente - varchar Morada – varchar Docente: Ana Batista

Campo Codcli Código do cliente é definido como int, isto é número inteiro, além disso é auto_increment, ou seja, o sistema incrementa o n.º do código sempre que é inserido um novo registo nesta tabela. É indicado como primary key, pois é a chave primária da tabela clientes. Docente: Ana Batista

Campo Cliente Definido como varchar(20), o campo cliente aceita até um máximo de 20 carateres. Docente: Ana Batista

Campo Morada Definido como varchar(30), o campo morada aceita até um máximo de 30 carateres. Docente: Ana Batista

Exemplificação da criação de tabelas Create table Produtos (Codprod Int auto_increment primary key, Produto Varchar(20), preco numeric (10,2)); CodProd Produto preco Docente: Ana Batista

Tabela Produtos É semelhante à tabela Clientes, o que muda é o campo Preco. NOTA: não se deve escrever preço, porque os nomes tabelas, campos em SQL só podem conter os carateres do alfabeto inglês, onde não há acentos nem caracteres especiais como o ç. Docente: Ana Batista

Campo Preco O campo preço é do tipo numérico, não inteiro, mas com casas decimais, aconselhável para pôr por exemplo, valores monetários. Docente: Ana Batista

Tabela Encomendas Create table Encomendas (Nenc Int Auto_increment primary key, CodCli Int references Clientes (CodCli), CodProd Int references Produtos (CodProd), Quant Int); Docente: Ana Batista

Campo NEnc O campo Nenc (nº da encomenda) é definido como inteiro, incrementado, e chave primária da tabela encomendas. Docente: Ana Batista

Campo Quant O campo Quant (quantidade) é definido como inteiro. Docente: Ana Batista

Parte especial da tabela encomendas… Reside nos campos codCli e CodProd que são chaves estrangeiras, por se referirem a campos que são chaves primárias em outras tabelas. Esses campos vão fazer referência aos mesmos campos nas tabelas de origem (Clientes e produtos). Docente: Ana Batista

Eliminar e alterar a estrutura de uma tabela Para eliminar uma tabela, o comando sql é drop table nome_tabela Ex: drop table Encomendas Docente: Ana Batista

Eliminar e alterar a estrutura de uma tabela Para alterar uma tabela, o comando sql é alter table que contém 3 variantes: add, modify e drop. Ex: alter table nome_tabela {Add (novo_campo tipo_dados) | modify (nome_campo tipo_dados) | drop (nome_campo)}; Docente: Ana Batista

O facto de as 3 opções, add, modify e drop serem incluídas dentro de chavetas {} significa que só uma delas pode ser usada em cada instrução. Docente: Ana Batista

Adiciona um novo campo à tabela xxx Alter table xxx Add novo_campo Modify campo Drop campo Adiciona um novo campo à tabela xxx Modifica um novo campo na tabela xxx Elimina um novo campo na tabela xxx Docente: Ana Batista

Exemplo 1 Alter table Clientes Add telefone integer; Acrescenta na tabela clientes, um novo campo com o nome Telefone e do tipo inteiro. Docente: Ana Batista

Exemplo 2 Alter table Clientes Modify telefone char (9); Modifica na tabela clientes, o campo Telefone passando a ser do tipo char com 9 carateres. Docente: Ana Batista

Exemplo 3 Alter table Clientes drop telefone; Modifica a tabela clientes, eliminando o campo telefone. Docente: Ana Batista

Atualizar dados numa tabela Quando se fala em atualizar uma base de dados, tal compreende 3 tipos de operações: Inserir Apagar alterar Docente: Ana Batista

Inserir dados numa tabela Insert into nome_tabela (lista de campos) {values (valores) | select instrução}; Inserir dados na tabela indicada, especificando esses dados a seguir à palavra values ou obtendo-os através de uma instrução select. Docente: Ana Batista

NOTA Após a indicação do nome tabela, podemos indicar opcionalmente os nomes dos campos, onde queremos inserir os dados. Se os campos não forem indicados, supõe-se que vamos inserir dados em todos os campos da tabela. Docente: Ana Batista

Exemplo 1 Insert into Clientes (Cliente, morada) values (“Aníbal”, “Lisboa”), (“Belmiro”, “Braga”), (“Casimiro”, “Coimbra”); Docente: Ana Batista

Tabela clientes CodCli Cliente Morada 1 Anibal lisboa 2 Belmiro Braga 3 Casimiro Coimbra Docente: Ana Batista

Exemplo 2 Insert into Produtos values (null, “portátil”, 400), (null, “berbequim”, 50), (null, “ms office”, 150); Docente: Ana Batista

Tabela produtos CodProd Produto preço 1 Portátil 400 2 Berbequim 50 3 Ms office 150 Docente: Ana Batista

No exemplo anterior, como não indicámos os campos onde queríamos inserir dados, temos de atribuir valores para todos os campos da tabela. Null significa que o 1º campo da tabela era auto increment (codprod) e não podemos mexer, por isso a forma é indicar o valor null. Docente: Ana Batista

Exemplo 3 Insert into Encomendas values (null, 1,1,10), (null, 2,1,2), (null, 3,2,5), (null, 1,3,1); Docente: Ana Batista

Tabela encomendas NEnc Cod Cli CodProd Quant 1 10 2 3 5 4 Na tabela encomendas, o primeiro campo é Nenc é do tipo auto_increment, o que impede de atribuir valores, por isso indicamos o null para todos os dados correspondentes a esse código. Quanto aos campos CodCli e CodProd como são chaves estrangeiras, pois referem-se a chaves primárias de outras tabelas, isto obriga a que os valores inseridos devam existir nas tabelas iniciais, por forma a respeitar a integridade referencial. Docente: Ana Batista

Apagar registos e alterar dados O comando delete apaga registos (linhas) por inteiro numa tabela. Delete from nome_tabela [where condição]; Docente: Ana Batista

Objetivo Apagar todos os registos na tabela indicada, podendo apagar toda a tabela (se não for especificada uma condição) ou apenas o(s) registos que correspondam à condição indicada. Se a cláusula Where condição não for indicada, serão apagados todos os registos (todos os dados) da tabela. Se Where condição for indicada, serão apagados os registos que respeitem a condição indicada. Docente: Ana Batista

Exemplo 1 Delete from produtos; Efeito: todos os dados da tabela produtos serão apagados. Docente: Ana Batista

Exemplo 2 Delete from Produtos Where produto=“Ms office”; Efeito: apaga na tabela produtos os registos (linhas) em que o campo produto é igual a ms office. Docente: Ana Batista

Comando update A alteração, modificação ou atualização de dados em SQL, faz-se com o comando update. Docente: Ana Batista

Sintaxe - update Update nome_tabela Set campo1=expressão1 [, campo2=expressão2], [, …] [where condição]; Alterar dados na tabela indicada, no(s) campo(s) indicado(s), podendo essa alteração abranger todos os dados de determinado campo ou apenas o que correspondem a uma condição indicada. Docente: Ana Batista

A expressão set campo1=expressão1 indica a modificação a efetuar. É possível efetuar a vários campos na mesma instrução, daí os parêntesis retos que se seguem. Docente: Ana Batista

Cláusula where A cláusula Where condição é opcional – isto implica o seguinte: Se a cláusula where condição não for usada, as alterações indicadas nas expressões campo1=expressão1 afetarão todos os dados do campo indicado em set. Docente: Ana Batista

Se a cláusula where condição for usada, as alterações indicadas afetarão apenas os registos que respeitem a condição especificada. Docente: Ana Batista

Exemplo 1 Update Produtos Set Preco =Preco*1.05; Esta instrução altera a tabela produtos, no campo preço, para o resultado da expressão preco*1.05, ou seja, produz um aumento de 5% em todos os preços da tabela produtos. Docente: Ana Batista

Exemplo 2 Update Produtos Set preco=250 Where produto =“portátil”; Neste caso, a alteração do preço para 250, incide apenas sobre o produto que tem o nome de portátil, uma vez que foi isso que foi indicado na cláusula where. Docente: Ana Batista

Comando Select É o comando que permite efetuar consultas a uma BD relacional com SQL. A sintaxe do comando select é, nas suas versões mais complexas, muito extensa, com muitas opções e pode revestir-se de alguma complexidade. Docente: Ana Batista

Sintaxe - select Select lista_campos From tabela(s) [where condição] [group by lista_campos] [having condição] [order by lista_campos] Efetuar consultas à tabela(s) indicada, baseadas em critérios de filtragem, agrupamentos e/ou ordenação. Docente: Ana Batista

Exemplos Select * from produtos; Vai consultar todos os dados da tabela produtos. Docente: Ana Batista

Select produto, preco From produtos; Vai apresentar os campos produto e preço da tabela produtos. Docente: Ana Batista

Operadores usados na cláusula where Operadores de comparação: = igualdade < menor que > Maior que <= menor ou igual >= maior ou igual <> Diferente de Docente: Ana Batista

Outros operadores de comparação: Between – compreendido entre In – dentro de Like – semelhante a Is (not) null – é (não é) valor nulo Docente: Ana Batista

Operadores lógicos: And – e Or – ou Not - não Docente: Ana Batista

Exemplos Select * From produtos Where preco>=200 and preco<=400; Where preco between 200 and 400; Docente: Ana Batista

Select * From produtos Where preco= 100 or preco=200; Where preco in (100, 200); Docente: Ana Batista

Select * From produtos Where produto like “P%”; Vai buscar todos os dados de produtos, cujo nome de produto comece com a letra P. Docente: Ana Batista

Select * From produtos Where produto like “%office”; Vai buscar tds os dados de Produtos, cujo produto tenha a palavra office no seu nome. Docente: Ana Batista

Select * From produtos Order by preco desc; Vai buscar todos os dados da tabela produtos ordenando o preço por ordem descendente. Docente: Ana Batista

Select * From produtos Where preco>200 Order by produto; Ordena por ordem alfabética crescente, os produtos cujos preços são maiores que 200. Docente: Ana Batista

Funções de cálculos e agregações Função Significado Count Devolve o nº de linhas/registos encontrados Sum Devolve a soma de todos os valores encontrados no campo indicado Avg Devolve a média Max Devolve o maior valor Min Devolve o menor valor Docente: Ana Batista

Tabela Produtos CodPro Produto Preco 1 Portátil 400 5 200 3 Ms Office 150 4 Impressora 100 6 50 2 Berbequim Docente: Ana Batista

Função Contar Select count (*) As Total From Produtos; Vai contar quantas linhas existem na tabela Produtos e devolve o resultado através do campo total. Total 6 Docente: Ana Batista

Exemplo Select count (distinct preco) From produtos; Devolve o número de preços distintos no campo preço, neste caso, o resultado seria 5; o preço 50 só é contado uma vez. Docente: Ana Batista

Funções Sum e Avg - exemplo Select avg(preco) as Media From produtos; O resultado será a média do preço dos produtos. Docente: Ana Batista

Select Sum(preco) From produtos Where produto like “portátil”; O resultado será a soma dos preços dos produtos correspondentes a portáteis. Resultado: 600 Docente: Ana Batista

Funções max e min Select max(preco) From produtos; Seleciona o maior valor encontrado. Docente: Ana Batista

Select min(preco) From produtos Where produto like “impressora”; O resultado será o menor valor encontrado, tendo em conta os produtos de nome impressora. Docente: Ana Batista

Claúsulas group by e having A claúsula Group by é usada para agrupar dados que contenham características semelhantes. Normalmente, é usada em conjugação com as funções de agregação (count, sum, avg, max e min), para obter cálculos por grupos. Docente: Ana Batista

Exemplo 1 Select produto, count(*) From produtos Group by produto; Vamos obter uma listagem com os nomes dos diferentes produtos e com a indicação de quantos registos de cada produto existem. Docente: Ana Batista

Resultado do exemplo anterior: Produto Count(*) Berbequim 1 Impressora 2 Ms Office Portátil Docente: Ana Batista

Exemplo 2 Select produto, max(preco) From produtos Group by produto; Iremos obter o preço mais elevado dentro de cada grupo de produtos com o mesmo nome. Docente: Ana Batista

Quando se utiliza a cláusula group by, também podemos acrescentar a cláusula having. A cláusula having aplica-se aos grupos de registos, agrupados com group by, apresentando apenas qs que correspondem à condição indicada com having. Docente: Ana Batista

Exemplo 3 Select produto, max(preco) From produtos Group by produto Having max(preco) > 100; Aqui iremos obter o preço mais elevado de cada grupo de produtos com o mesmo nome, mas queremos obter os grupos de produtos que têm um preço máximo superior a 100. Docente: Ana Batista

Resultado do exemplo 3 Produto Max(preco) Ms Office 150 Portátil 400 Docente: Ana Batista

Mais exemplos de comandos… Select * From clientes, encomendas; Vai buscar todos os dados, das 2 tabelas. Docente: Ana Batista

Select. From clientes, encomendas Where clientes. codcli=encomendas Select * From clientes, encomendas Where clientes.codcli=encomendas.cod.cli; Esta igualdade na cláusula where vai fazer com que sejam apresentados os dados dos clientes, com os dados das encomendas, mas apenas daqueles em que os valores dos campos codcli coincidem nas 2 tabelas. Docente: Ana Batista

Expressão inner join O exemplo anterior pode ser substituído pela expressão inner join na cláusula from (deixando ser necessário utilizar a cláusula where). Select * From clientes inner join encomendas on Clientes.codcli=encomendas.codcli; Docente: Ana Batista