Baixe o app para aproveitar ainda mais
Prévia do material em texto
Implementação de Banco de Dados Cassio Diego cassiodiego.com/bd 1 Conteúdo: Aula 3 UNIDADE 2: LINGUAGEM SQL 1. Linguagens de Definição de Dados (DDL) 1.1. Criação de tabela: CREATE 1.2. Alteração de Tabela: ALTER 1.3. Exclusão da Tabela: DROP 2. Linguagem de Manipulação de Dados (DML) 2.1. Inserção de dados: INSERT 2.2. Atualização de registros: UPDATE 2.3. Exclusão de Registros: DELETE 2 Sistema gerenciador de banco de dados CONCEITO DE SGBD É um programa de computador responsável pelo gerenciamento de bases de dados. • Os SGBDs executam SQL. • Em bancos de dados relacionais a interface com a a aplicação é constituida por APIs ou drivers de conexão. 3 Sistema gerenciador de banco de dados LISTA COM ALGUNS SGBDs • Oracle; oracle.com • MySQL; mysql.com • Microsoft SQL Server; microsoft.com/pt-br/server-cloud/products/sql-server/ • PostgreSQL; postgresql.org 4 Sistema gerenciador de banco de dados LISTA COM ALGUNS SGBDs (CONTINUAÇÃO) • Microsoft Access; products.office.com/pt-br/access • SQLite; sqlite.org • Firebird; firebirdsql.org 5 Linguagem SQL O QUE É SQL? Linguagem padrão para banco de dados relacionais; • Em meados de 1980, a American National Standars Institute (ANSI) começou a trabalhar no primeiro padrão de SQL; 6 Linguagem SQL ANSI-SQL • SQL 1 ou ANSI 1986 • SQL 1989 • SQL 2 ou SQL 1992 • SQL 3 ou SQL 1999 • SQL 2003 • SQL 2006 • SQL 2008 7 Linguagem SQL CLASSE DE INSTRUÇÕES SQL • Linguagens de Definição de Dados (DDL) - Instruções de esquema SQL com papel de definir estruturas de dados armazenadas em um banco de dados. Ex.: CREATE, ALTER, DROP • Linguagem de Manipulação de Dados (DML) - Instruções de dados SQL com papel de manipular estruturas de dados previamente definidas com as instruções de esquema. Ex.: INSERT, UPDATE, DELETE, SELECT (DQL para alguns autores) 8 DATA DEFINITION LANGUAGE DATA MANIPULATION LANGUAGE Linguagem SQL CLASSE DE INSTRUÇÕES SQL • Linguagem de Controle de Dados (DCL) - Controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados. Ex.: GRANT, REVOKE • Linguagem de Transação de Dados (DTL). - Instruções de transação SQL usadas para iniciar, encerrar e desfazer transações. EX.: COMMIT, ROLLBACK 9 DATA CONTROL LANGUAGE DATA TRANSACTION LANGUAGE MySQL FORMAS DE INSTALAÇÃO • MySQL dev.mysql.com/downloads/mysql/ • Wamp www.wampserver.com/en/#download-wrapper • Xampp www.apachefriends.org/download.html • Mamp www.mamp.info/en/downloads/ 10 MySQL UTILIZANDO A FERRAMENTA DE LINHA DE CÓDIGO • Criar variável de ambiente para o executável; • No Linux ou Mac, criar um alias para o executável; • Vamos utilizar a palavra mysql para chamar o executável 11 MySQL INSTALANDO O MYSQL NO WINDOWS A ORDEM DAS OPÇÕES PODE VARIAR DE ACORDO COM A VERSÃO • Na janela Wizard clique em Next; • Escolha a opção Typical e aperte em Next. • Clique em Install; • A caixa de diálogo do MySQL Entreprise será exibida, clique em Next duas vezes; • Quando a instalação for concluída, marque a opção “Configure the MySQL Server Now” antes de clicar em Finish; • Depois da instalação concluída, abrirá uma tela de configuração. Clique em Next e selecione as opções “Install as a Windows Service” e “Include Bin Directory in Windows PATH” depois clique em Next; • Selecione a opção “Modify Security Settings” e insira uma senha para o usuário root (anote a senha para usar depois). Clique em Next e depois em Execute. * dev.mysql.com/doc/refman/5.7/en/windows-installation.html 12 MySQL INSTALANDO O MYSQL NO DEBIAN/UBUNTU* Certifique-se que a sua lista de repositórios está atualizada, entre no terminal como root e digite: • apt-get update • apt-get install mysql-server • apt-get install mysql-client O nome do pacote pode variar de acordo com a versão. * dev.mysql.com/doc/refman/5.7/en/linux-installation-debian.html 13 MySQL INSTALANDO O MYSQL NO MAC OS X* • Baixe e abra o arquivo .dmg • Execute o arquivo .pkg dentro do .dmg • Clique em Continue; • Concorde com os termos apertando em Agree; • Aperte em Install; • Escolha “Install for all users on this computer” e aperte em Continue; • Marque "MySQL Server", "Preference Pane", “Startup Item e aperte Install”; • Aperte em Close para concluir; • Abra o System Preferences, clique no ícone do MySQL e aperte em “Start MySQL Server” * dev.mysql.com/doc/refman/5.7/en/osx-installation-pkg.html 14 MySQL CRIANDO O PRIMEIRO BANCO DE DADOS • Faça o login no MySQL como root: mysql -u root -p • Crie um banco de dados para exemplo: create database bancoteste; • Crie um usuário com privilégios totais sobre o banco de dados: grant all privileges on bancoteste.* to 'usuarioteste'@'localhost' identified by 'senha'; • Saia da ferramenta MySQL: quit; • Faça login no MySQL com o usuário: mysql -u usuarioteste -p; • Conecte-se no banco de dados: use bancoteste; 15 MySQL TIPOS DE DADOS • Dados do tipo caractere; - char(tamanho), varchar(tamanho) • Dados do tipo caractere; - tinytext, text, mediumtext, longtext • Dados numéricos; - tinyint, smallint, mediumint, int, bigint, float, double • Dados temporais; - date, datetime, timestamp, year, time 16 MySQL TIPOS DE DADOS TEMPORAIS 17 Tipo Formato Padrão Valores Permitidos Date AAAA-MM-DD 1000-01-01 a 9999-12-31 Datetime AAAA-MM-DD HH:MI:SS 1000-01-01 00:00:00 a 9999-12-31 23:59:59 Timestamp AAAA-MM-DD HH:MI:SS 1000-01-01 00:00:00 a 2037-12-31 23:59:59 Time AAAA 1901 a 2155 Year HHH:MI:SS -838:59:59 a 838:59:59 MySQL 18 Linguagem de definição de dados (DDL) CRIAR TABELAS • Projeto; • Refinamento; • Construindo instruções do esquema SQL. 19 Linguagem de definição de dados (DDL) EXEMPLO PARA CRIAÇÃO DE TABELAS 20 Coluna Tipo Valores Permitidos id smallint(unsigned) nome_cargo varchar(60) * nome das colunas sem acentuação Linguagem de definição de dados (DDL) CRIANDO TABELAS 21 CREATE TABLE cargos (id SMALLINT UNSIGNED, nome_cargo VARCHAR(60), CONSTRAINT pk_cargos PRIMARY KEY (id) ); Linguagem de definição de dados (DDL) EXEMPLO PARA CRIAÇÃO DE TABELAS 22 Coluna Tipo Valores Permitidos id smallint(unsigned) primeiro_nome varchar(60) ultimo_nome varchar(60) sexo char(1) M, F aniversario date endereco varchar(30) cidade varchar(20) estado varchar(20) pais varchar(20) cep varchar(9) * nome das colunas sem acentuação Linguagem de definição de dados (DDL) CRIANDO TABELAS 23 CREATE TABLE pessoas (id SMALLINT UNSIGNED, primeiro_nome VARCHAR(60), ultimo_nome VARCHAR(60), sexo CHAR(1), aniversario DATE, endereco VARCHAR(30), cidade VARCHAR(20), estado VARCHAR(20), pais VARCHAR(20), cep VARCHAR(9), cargo_id SMALLINT UNSIGNED NOT NULL, CONSTRAINT pk_pessoas PRIMARY KEY (id), CONSTRAINT fk_pessoas_cargos FOREIGN KEY (cargo_id) REFERENCES cargos (id) ); Linguagem de definição de dados (DDL) RESTRIÇÕES NA HORA DE CRIAR TABELAS 24 sexo CHAR(1) CHECK (sexo IN ('M', 'F')), sexo ENUM ('M', 'F'), ou Linguagem de definição de dados (DDL) AJUSTANDO COM RESTRIÇÕES 25 CREATE TABLE pessoas (id SMALLINT UNSIGNED, primeiro_nome VARCHAR(60), ultimo_nome VARCHAR(60), sexo ENUM ('M', 'F'), aniversario DATE, endereco VARCHAR(30), cidade VARCHAR(20), estado VARCHAR(20), pais VARCHAR(20),cep VARCHAR(9), cargo_id SMALLINT UNSIGNED NOT NULL, CONSTRAINT pk_pessoas PRIMARY KEY (id), CONSTRAINT fk_pessoas_cargos FOREIGN KEY (cargo_id) REFERENCES cargos (id) ); Linguagem de definição de dados (DDL) AJUSTANDO COM RESTRIÇÕES 26 mysql> CREATE TABLE pessoas -> (id SMALLINT UNSIGNED, -> primeiro_nome VARCHAR(60), -> ultimo_nome VARCHAR(60), -> sexo ENUM ('M', 'F'), -> aniversario DATE, -> endereco VARCHAR(30), -> cidade VARCHAR(20), -> estado VARCHAR(20), -> pais VARCHAR(20), -> cep VARCHAR(9), -> cargo_id SMALLINT UNSIGNED NOT NULL, -> CONSTRAINT pk_pessoas PRIMARY KEY (id) -> CONSTRAINT fk_pessoas_cargos FOREIGN KEY (cargo_id) REFERENCES cargos (id) -> ); Query OK, 0 rows affected (0.17 sec) mysql> DESC pessoas; 11 rows in set (0.00 sec) mysql> Linguagem de definição de dados (DDL) COMO DELETAR TABELAS 27 Linguagem de definição de dados (DDL) ALTERAR TABELAS 28 Linguagem de definição de dados (DDL) EXERCÍCIO PARA ALTERAR TABELAS • Altere a tabela cargos colocando o id como AUTO_INCREMENT. 29 Linguagem de definição de dados (DDL) EXERCÍCIO PARA ALTERAR TABELAS • Altere a tabela cargos colocando o id como AUTO_INCREMENT. 30 ALTER TABLE cargos MODIFY id SMALLINT UNSIGNED AUTO_INCREMENT; Linguagem de manipulação de dados (DML) INSERIR REGISTROS 31 Linguagem de manipulação de dados (DML) EDITAR REGISTROS 32 Linguagem de manipulação de dados (DML) DELETAR REGISTROS 33 Próxima aula... UNIDADE 2: LINGUAGEM SQL (CONTINUAÇÃO) 3. Comando SELECT 3.1. Sintaxe básica 3.2. Consultas com operadores lógicos e de comparação 3.3. Comandos com expressões 3.4. Utilização das cláusulas ORDER BY e DISTINCT 3.5. Funções de Grupo, cláusulas GROUP BY e HAVING 34 Bibliografia Básica • SILBERSCHATZ, Abraham; KORTH, Henry F; SUDARSHAN, S. A. Sistema de banco de dados. 5ª ed. Rio de Janeiro: Campus, 2006. • ELMASRI, R.; NAVATHE, S., Sistemas de Banco de Dados. Pearson Education do Brasil, 4ª.Ed 2005. • RAMALHO, Jose Antonio Alves. SQL a linguagem dos bancos de dados. São Paulo: BERKELEY BRASIL, 1999. 35 Bibliografia Complementar • DATE, C.J. Introdução a sistemas de banco de dados. 8ª ed. Rio de Janeiro: Campus, 2004. • DAMAS Luis SQL- Structured query language 6ª. Ed. Editora LTC 2007 • GILLENSON, M, MILLER, F. Introdução a Gerência de Banco de Dados. Editora LTC 1a. Edição 2009 • PRICE.Jason Oracle Database 11g SQL Editora Artmed 1a. Edição 2008 • KLINE,Daniel; KLINE , Kevin Sql - O Guia Essencial - Manual de Referencia Profissional. Editora Alta Books 1 2010 36 Materiais cassiodiego.com/bd 37 Contato Oficial cassiodiego@gmail.com 38
Compartilhar