Introdução à Engenharia da Computação Banco de Dados Professor Machado 1
Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens: Entrada repetida da mesma informação; Inconsistência de dados. 2
Definições Banco de dados = Conjunto de dados integrados que tem por objetivo atender a uma comunidade de usuários Produção Vendas Compras Banco de Dados Produtos... Sistemas integrados com dados compartilhados Vantagens: Compartilhamento; Consistência e integridade. 3
Tabelas Uma tabela em um banco de dados relacional é formada por linhas (registros) e colunas (campos). O número e a ordem das colunas são fixos. Cada coluna possui um nome. O número de linhas é variável, refletindo a quantidade de dados armazenados. Chave primária (Primary key, PK) identifica cada registro de forma única. 4
SQL Structured Query Language (Linguagem de Consulta Estruturada). Modelo relacional - 1970. Transações de processamento. Consultas, administração de dados, integridade e recuperação. Linguagem padrão para Banco de Dados. Operações relacionais. Incluindo diferença, divisão, interseção, junção, produto cartesiano, projeção e união. 5
DML, DDL, DCL Linguagem de Manipulação de Dados (DML): Linguagem que tem como função, pesquisa (select), atualização (update), exclusão de registros (delete), para manipulação de tabelas. Linguagem de Definição de Dados (DDL): Linguagem que tem como função, entre outras, criar tabelas, índices e visões (create), alterar elementos estruturais do banco (alter), e excluir estes elementos (drop). Linguagem de Controle de Dados (DCL): O objetivo principal é a segurança, que se dedica especificamente aos comandos conceder (grant) e revogar (revoke). 6
INSERT Insere dados (registros) nas tabelas INSERT INTO tabela (campo1, campo2) VALUES (valor1, valor2) Ex: INSERT INTO Filme (codigo, titulo, ano) VALUES ( R001, A Lagoa Azul, 1985) INSERE O FILME COM CÓDIGO R001, TITULO A LAGOA AZUL E ANO 1985 NA TABELA FILME *usar aspas nos valores quando o campo é do formato texto, quando é número não usar aspas 7
SELECT Realiza consulta nos dados (registros) das tabelas SELECT campo1, campo2 FROM tabela WHERE condição ORDER BY campo * a cláusula WHERE é opcional, se não for utilizada não existe condição, portanto o comando será aplicado sobre todos os registros da tabela * a cláusula ORDER BY é opcional, ela diz por qual campo os resultados devem voltar ordenados * se a consulta deve trazer todos os campos da tabela, ao invés de listá-los é possível usar um * no lugar da lista de campos 8
SELECT Ex: SELECT * FROM Filme LISTA TODOS OS CAMPOS DE TODOS OS REGISTROS DA TABELA FILME SELECT codigo, titulo FROM Filme ORDER BY titulo LISTA CODIGO E TITULO DE TODOS OS REGISTROS DA TABELA FILME, TRÁS ELES ORDENADOS PELO TITULO SELECT codigo, titulo FROM Filme WHERE ano > 2000 LISTA CODIGO E TITULO DOS REGISTROS DA TABELA FILME QUE POSSUEM ANO MAIOR QUE 2000 9
SELECT SELECT * FROM Filme WHERE titulo = A Lagoa Azul ORDER BY ano LISTA TODOS OS CAMPOS DOS REGISTROS DA TABELA FILME QUE POSSUEM TITULO A LAGOA AZUL, TRÁS ELES ORDENADOS PELO ANO SELECT * FROM Filme WHERE titulo LIKE %Lagoa% LISTA TODOS OS CAMPOS DOS REGISTROS DA TABELA FILME QUE POSSUEM A PALAVRA LAGOA NO TITULO *usar o LIKE quando se deseja buscar em uma parte do campo, se usar o = o valor do campo tem que ser exatamente igual o valor utilizado na busca 10
SELECT SELECT COUNT(*) FROM tabela WHERE condição * condição é opcional, se não for utilizada retornará quantos registros tem na tabela, se for utilizada retornará quantos registros tem na tabela que atendem à condição Ex: SELECT COUNT(*) FROM Filme LISTA QUANTOS REGISTROS TEM NA TABELA FILME SELECT COUNT(*) FROM Filme WHERE ano > 2000 LISTA QUANTOS REGISTROS TEM NA TABELA FILME QUE POSSUEM ANO MAIOR QUE 2000 11
UPDATE Atualiza (altera) os dados (registros) da tabela UPDATE tabela SET campo1 = valor1, campo2 = valor2 WHERE condição * condição funciona da mesma forma que no SELECT, também é opcional, mas cuidado: se não for colocada o UPDATE atua sobre todos os registros da tabela Ex: UPDATE Filme SET titulo = The Blue Lagoon, ano = 1980 WHERE codigo = R001 ATUALIZA TABELA FILME, MUDANDO O TITULO PARA THE BLUE LAGOON E ANO PARA 1980 NO REGISTRO QUE POSSUI CODIGO R001 12
DELETE Remove dados (registros) das tabelas DELETE FROM tabela WHERE condição * condição funciona da mesma forma que no SELECT, também é opcional, mas cuidado: se não for colocada o DELETE atua sobre todos os registros da tabela (remove todos os registros) Ex: DELETE FROM Filme WHERE codigo = R001 REMOVE O REGISTRO QUE POSSUI CODIGO R001 DA TABELA FILME DELETE FROM Filme REMOVE TODOS OS REGISTROS DA TABELA FILME 13
CREATE TABLE Cria tabelas no banco de dados CREATE TABLE tabela (campo1 tipodocampo1 PRIMARY KEY, campo2 tipodocampo2,...) Ex: CREATE TABLE Filme (codigo varchar(10) PRIMARY KEY, titulo varchar (50), ano integer) CRIA A TABELA FILME COM OS CAMPOS CODIGO DO TIPO VARCHAR(10), TITULO DO TIPO VARCHAR(50) E ANO DO TIPO INTEGER COM O CAMPO CODIGO COMO CHAVE PRIMÁRIA 14
ALTER TABLE Altera tabelas do banco de dados: ALTER TABLE tabela ADD COLUMN campo tipodocampo ALTER TABLE tabela ALTER COLUMN campo tipodocampo ALTER TABLE tabela DROP COLUMN campo Ex: ALTER TABLE Filme ADD COLUMN distribuidora varchar(30) ALTERA A TABELA FILME ADICIONANDO O CAMPO DISTRIBUIDORA DO TIPO TEXTO(30) 15
DROP TABLE Remove tabelas do banco de dados DROP TABLE tabela Ex: DROP TABLE Filme REMOVE A TABELA FILME 16
MySQL Abrir XAMPP Control Panel Iniciar servidor do MySQL Abrir prompt de comandos ( cmd ) > C: > cd \xampp\mysql\bin > mysql -u root 17
MySQL Alguns comandos específicos: CREATE DATABASE banco; SHOW DATABASES; USE banco; SHOW TABLES; DESCRIBE tabela; 18