Baixe o app para aproveitar ainda mais
Prévia do material em texto
Criando um Banco de DadosCriando um Banco de Dados Prof. Rogério Vassoler SQL ANSI, ISO e outrosSQL 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. MySQLMySQL • É 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 SQLTipos de dados SQL • Numéricos Inteiros – N = comprimento máximo de exibição Tipos de dados SQLTipos de dados SQL • Numéricos Flutuantes Tipos de dados SQLTipos de dados SQL • Strings Tipos de dadosTipos 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' AtributosAtributos • 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 armazenamentoBoas 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)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 dadosCriando um banco de dados • Como funciona Criando um banco de dadosCriando 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 dadosCriando 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 dadosCriando 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; NotasNotas • 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 tabelaCriando uma tabela • Como funciona Criando uma tabelaCriando 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 tabelaCriando 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 índiceCriando um índice • O que são índices? • Como funciona: Criando um índiceCriando 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 índiceCriando um índice • CREATE INDEX Nome ON TabelaEColuna • ALTER INDEX Nome Propriedade • DROP INDEX Nome Criando um índiceCriando um índice • CREATE INDEX ind_cpf ON tab_cliente(cpf) • Índice composto: • CREATE INDEX ind_busca ON tab_cliente(cpf,rg) ExemploExemplo • 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) ); ExemploExemplo • 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ícioExercício • Criar um banco de dados (banco_01): • Criar as seguintes tabelas: Exercício (Solução)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)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)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ícioExercí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)Exercício (Solução) • ALTER TABLE FUNCIONARIOS CHANGE column NOME NOME_FUNCvarchar(50) NOT NULL; • CREATE INDEX DEPARTAMENTOS ON FUNCIONARIOS(DEPARTAMENTO); • DROP TABLE SALARIOS; Obrigado e até a próxima aulaObrigado e até a próxima aula
Compartilhar