Buscar

BD - Aula03 - Criando um Banco de Dados

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Criando um Banco de Dados
Prof. Rogério Vassoler
SQL ANSI, ISO e outros
SQL (Structured Query Language)
Linguagem declarativa, detalha a forma do resultado;
Criado no início dos anos 70, em laboratórios da IBM;
Novos dialetos surgiram, derivando e evoluindo o SQL.
Necessidade de padronização 
American National Standards Institute (ANSI) em 1986;
International Organization for Standardization (ISO) em 1987;
Revisto pela primeira vez em 1992 originando o padrão SQL-92;
Outras revisões:
SQL:1999 incorporou características de expressões regulares, queries recursivas e triggers;
SQL:2003 incorporou características de XML, sequências.
Bancos de dados criam e evoluem suas próprias derivações do SQL.
MySQL
É um sistema gerenciador de banco de dados relacional de código aberto, usado na maioria das aplicações gratuitas para gerir suas bases de dados;
Utiliza a linguagem SQL comum a maioria dos bancos de dados relacionais.
O sistema foi desenvolvido pela MySQL AB e publicado, originalmente em maio de 1995. Posteriormente, a empresa foi comprada pela SUN Microsystems.
Em janeiro de 2010, através de uma transação bilionária, a SUN foi vendida para Oracle Corporation.
O software é livre com código aberto, mas a Oracle tornou o acesso de desenvolvedores mais restrito.
Tipos de dados SQL
Numéricos Inteiros
N = comprimento máximo de exibição
Tipos de dados SQL
Numéricos Flutuantes
Tipos de dados SQL
Strings
Tipos de dados
Listas customizadas
A principal característica do tipo ENUM é permitir a criação de uma lista enumerada, sendo cada registro um par index-value. O uso do tipo ENUM deve ser feito em parâmetros onde há pouca ou nenhuma alteração durante a existência da aplicação - por exemplo, sexo, onde os valores fixos de entrada são Masculino ou Feminino.
Exemplo:
‘Resposta' ENUM('bad', 'good', 'excellent') NULL DEFAULT 'good'
Atributos
NULL / Not NULL
Permite ou não valores nulos.
Unsigned / Signed 
Permite ou não números negativos.
Auto-increment
Sequências, contadores.
Constraint 
É o nome que se dá a uma regra aplicada a um atributo. 
Por exemplo, se você cria uma Constraint definindo ela como Primary Key (primária), então você criou uma regra que não permite os dados se repetirem. 
Mesmo caso é se você cria uma Foreign (chave estrangeira), a sua regra na Constraint é que ela esteja relacionada ao um outro campo
Boas práticas de armazenamento
Espaço em disco
Quanto menor o tipo de dado, menos espaço ele ocupará.
Processamento e busca 
Quanto menor o tipo de dado, mais rápido é o processamento.
Maus usos dos tipos de dados
Armazenar dados numéricos em colunas string;
Armazenar dados numéricos em campos maiores que o necessário;
Criar campos de string maiores do que o necessário.
Bom usos dos tipos de dados
Escolher o menor tipo de dados possível para armazenar suas informações;
Pergunta: Qual o menor e maior valor que o campo poderá receber?
DDL (Data Definition Language)
Linguagem de Definição de Dados
CREATE: Cria uma estrutura
ALTER: Altera uma estrutura
DROP: Exclui uma estrutura
Criando um banco de dados
Como funciona
Criando um banco de dados
O comando CREATE DATABASE serve para criar um novo banco de dados.
O nome do banco deve ser inserido após a digitação do comando de criação e se existir um banco com o mesmo nome, o comand line exibirá um erro, acusando que o banco já existe.
Criando um banco de dados
CREATE DATABASE Nome
Nomes sem espaços e sem caracteres especiais.
ALTER DATABASE Nome Propriedade
DROP DATABASE Nome
Exclusão é definitiva e irreversível.
Criando um banco de dados
Criação do Banco de Dados
CREATE DATABASE nome_do_banco;
Exibir todos os banco de dados
SHOW DATABASES;
Utilizar um banco de dados específico
USE nome_do_banco;
Notas
Não esqueça de sempre terminar o comando com um ‘;’ (ponto e vírgula), ou ele não funcionará;
Tenha em mente o limite de 64 caracteres para nomes de bancos de dados;
Para evitar problemas ao mover dados entre servidores de diferentes sistemas operacionais use apenas letras minúsculas, alfanuméricas e underscores nos nomes dos bancos e das tabelas;
E, sim, você pode escrever tudo em letras minúsculas – tanto os comandos, como as variáveis. O cliente MySQL não é sensível à caixa das letras. 
Criando uma tabela
Como funciona
Criando uma tabela
CREATE TABLE é o comando para criação da tabela e deve ser seguida pelo nome que daremos à tabela.
Devemos definir os nomes dos campos de acordo com a necessidade da tabela.
Determinar os atributos e os tipos dos campos a serem inseridos.
Por exemplo: Inteiro, real, caracter, etc...
Criando uma tabela
CREATE TABLE Nome (Campos)
Sintaxe de descrição de campo:
TipoDeDado Nome Atributos
Atributos:
Null, Zerofill, Unsigned, Auto-increment, Chave
ALTER TABLE Nome Propriedade
DROP TABLE Nome
Exclusão é definitiva e irreversível
Criando um índice
O que são índices?
Como funciona:
Criando um índice
Um índice no banco de dados, serve para organizar os dados e agilizar na pesquisa/consulta dos dados armazenados na tabela.
Normalmente a criação de índex no banco de dados segue o padrão ANSI, isso significa que o mesmo comando utilizado para um determinado SGBD, pode ser usado em outro.
Para um melhor resultado de performance, o ideal é utilizar campos chaves ou que sejam de pesquisa.
Criando um índice
CREATE INDEX Nome ON TabelaEColuna
ALTER INDEX Nome Propriedade
DROP INDEX Nome
Criando um índice
CREATE INDEX ind_cpf ON tab_cliente(cpf)
Índice composto:
CREATE INDEX ind_busca ON tab_cliente(cpf,rg)
Exemplo
Criando Base de Dados:
CREATE DATABASE EXEMPLO_SQL
Criando Tabela:
CREATE TABLE CLIENTES (
ID int NOT NULL auto_increment, 
NOME varchar(45) NOT NULL,
ENDERECO varchar(45) NOT NULL,
PRIMARY KEY (ID) );
Exemplo
Criando Tabela com chave estrangeira:
CREATE TABLE CLIENTES (
ID int NOT NULL auto_increment, 
NOME varchar (45) NOT NULL,
ENDERECO varchar (45) NOT NULL,
PRODUTO_ID int unsigned default NULL, 
PRIMARY KEY (ID), 
CONSTRAINT FK_PRODUTOS_CLIENTES FOREIGN KEY (PRODUTO_ID) REFERENCES PRODUTOS(ID) );
Exercício
Criar um banco de dados (banco_01):
Criar as seguintes tabelas:
Exercício (Solução)
Criar um banco de dados (banco_01):
CREATE DATABASE BANCO_01; 
Criando as tabelas: 
CREATE TABLE FUNCIONARIOS (
ID int unsigned NOT NULL auto_increment, 
NOME varchar(45) NOT NULL,
SALARIO double NOT NULL default '0',
DEPARTAMENTO varchar(45) NOT NULL,
PRIMARY KEY (ID) );
Exercício (Solução)
Criando as tabelas: 
CREATE TABLE VEICULOS (
ID int unsigned NOT NULL auto_increment, 
FUNCIONARIO_ID int unsigned default NULL,
VEICULO varchar (45) NOT NULL default '',
PLACA varchar(7) NOT NULL default '',
PRIMARY KEY (ID),
CONSTRAINT FK_VEICULOS_FUNCIONARIOS FOREIGN KEY (FUNCIONARIO_ID) REFERENCES FUNCIONARIOS(ID) );
Exercício (Solução)
Criando as tabelas: 
CREATE TABLE SALARIOS (
ID int unsigned NOT NULL auto_increment,
DESCRICAO varchar(45) NOT NULL, 
INICIO double NOT NULL,
FIM double NOT NULL,
PRIMARY KEY (ID) );
Exercício
Tabela FUNCIONARIOS
Alterar o campo NOME para NOME_FUNC e seu tamanho de 45 para 50
Criar um índice para o campo departamento
Excluir a tabela SALARIOS
Exercício (Solução)
ALTER TABLE FUNCIONARIOS CHANGE column NOME NOME_FUNC varchar(50) NOT NULL;
CREATE INDEX DEPARTAMENTOS ON FUNCIONARIOS(DEPARTAMENTO);
DROP TABLE SALARIOS;
Obrigado e até a próxima aula

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando