BCD29008 Banco de dados

Documentos relacionados
Comandos de Manipulação

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

BANCO DE DADOS. Vinícius Pádua

Banco de Dados. Prof. Antonio

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

O que são Bancos de Dados?

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

Linguagem de Consulta Estruturada SQL- DML

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Page 1. Prof. Constantino Jacob

EXEMPLOS DE COMANDOS NO SQL SERVER

SQL. Prof. Márcio Bueno.

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

Structured Query Language (SQL)

BANCO DE DADOS CONCEITOS BÁSICOS

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

SQL Structured Query Language

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Definida pelo American National Standard Institute (ANSI) em 1986

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Banco de Dados. Maurício Edgar Stivanello

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

SQL. Autor: Renata Viegas

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

EXERCÍCIOS PRÁTICOS. Banco de Dados

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Linguagem de Consulta Estruturada (SQL)

Structured Query Language (SQL) Aula Prática

Gerenciamento de um Sistema de

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

SQL (Structured Query Language)

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

ADMINISTRAÇÃO DE BANCO DE DADOS

SQL (Linguagem de Consulta Estruturada)

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL (Structured Query Language)

SQL (Structured Query Language)

SQL. Hélder Antero Amaral Nunes

A linguagem SQL

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

SQL DDL. Frederico D. Bortoloti

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Disciplina de Banco de Dados Parte V

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Linguagem SQL Sub-linguagem DDL

Núcleo de Pós Graduação Pitágoras

Fundamentos do Sistema Gerenciador de Banco de Dados

Linguagem SQL. Comandos Básicos

Linguagem de Consulta - SQL

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Considere as Relações Funcionários (F) e Dependentes (D), com o seguinte esquema simplificado:

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL (Structured Query Language)

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

SQL - Criação de Tabelas

Prof.: Clayton Maciel Costa

Introdução ao SQL. O que é SQL?

Linguagem SQL Parte I

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

Introdução a Sistemas de Bancos de Dados

Introdução ao SQL. Aécio Costa

Principais Comandos SQL Usados no MySql

Engenharia de Computação / Engenharia de Produção. Banco de Dados Prof. Maria das Graças da Silva Teixeira

Linguagem de Consulta - SQL

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)

SQL (STRUCTUREDQUERY LANGUAGE)

Curso PHP Aula 08. Bruno Falcão

SQL (STRUCTUREDQUERY LANGUAGE)

Linguagem SQL (Parte I)

Modelagem de banco de dados com MySQL Workbench

Introdução à linguagem SQL

Prof. Carlos Majer Aplicações Corporativas UNICID

SQL: Definição de tabelas, Modificações à Base de Dados

Banco de Dados II. Introdução Revisão - normalização -modelagem - sql básico

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

Banco de Dados. Structured Query Language SQL. Prof. Walteno Martins Parreira Jr 1.

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Introdução a SQL. Prof. Anderson Cavalcanti UFRN-CT-DCA

Banco de Dados I SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

Programação SQL. Introdução

Transcrição:

BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017 1/16

Modelo relacional restrição de integridade Revisão Integridade de domínio Valor de um campo deve respeitar a definição de valores permitidos Integridade de vazio Indica se os valores de uma coluna podem ou não ser vazios (NULL) Integridade de chave Valores das chaves primárias devem ser únicos Integridade referencial Valores que aparecem uma chave estrangeira devem aparecer na chave primária da tabela referenciada 2/16

Structured Query Language SQL Desenvolvida dentro da IBM na década de 70, sendo hoje a mais usada em SGBD relacional Baseada em álgebra relacional, permite: definição e controle de acesso aos dados; manipulação de dados Existem padrões ANSI e ISO, porém um código SQL geralmente não é portável e pequenos ajustes são necessários para cada SGBD SQL-86, SQL-89, SQL-92 SQL:1999, SQL:2003, SQL:2008, SQL:2011 3/16

Linguagem SQL consiste de Data Definition Language DDL Especificação do esquema relacional Cria, altera, exclui tabelas Data Manipulation Language DML Consulta, insere, modifica e exclui tuplas das tabelas Integridade Com a DDL se especifica restrições de integridade Atualizações que violam as restrições de integridade são proibidas Definição de visões (view) Uma relação virtual criada a partir de uma ou mais relações Controle de transação Para especificar início e término de uma transação A linguagem não é sensível a caixa (alta ou baixa) Ex: CREATE, create 4/16

Data Definition Language DDL Linguagem para especificação do esquema ou estrutura do banco de dados Compilador gera um conjunto de tabelas em um conjunto de arquivos denominados dicionário de dados A DDL permite a especificação de: Tabelas Domínio dos valores permitidos para cada atributo Restrições de integridade Índices, controle de acesso, estrutura física das tabelas no disco 5/16

Data Definition Language DDL Linguagem para especificação do esquema ou estrutura do banco de dados Compilador gera um conjunto de tabelas em um conjunto de arquivos denominados dicionário de dados A DDL permite a especificação de: Tabelas Domínio dos valores permitidos para cada atributo Restrições de integridade Índices, controle de acesso, estrutura física das tabelas no disco Os próximos exemplos são válidos para o MySQL 5.7 5/16

Alguns tipos de domínio Tipo Descrição CHAR(M) Cadeia de caracteres de tamanho fixo. 0 M 255 VARCHAR(M) Cadeia de caracteres de tamanho variável. 0 M 65.535. UTF-8 requer 3 bytes por caracter, então tamanho máximo de 21.844 BINARY(M) Equivalente ao CHAR, porém armazena string de forma binária ao invés de caracteres SMALLINT(M) Inteiro de 32.768 a 32.767 INT(M) Inteiro de 2.147.483.648 a 2.147.483.648 BIGINT(M) Inteiro de 9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 FLOAT(M,D) Real sendo M o total de dígitos para a parte inteira e D o total de digital para a parte decimal DOUBLE(M,D) Float com o dobro de precisão BOOLEAN Tipo booleano (TRUE ou FALSE) 6/16

Criando tabelas https://dev.mysql.com/doc/refman/5.7/en/create-table.html Esquema de uma tabela nome da tabela, atributos e seus tipos de domínio 1 CREATE TABLE Aluno( 2 matricula INT, 3 nome VARCHAR(80), 4 email VARCHAR(80)); 7/16

Criando tabelas https://dev.mysql.com/doc/refman/5.7/en/create-table.html Esquema de uma tabela nome da tabela, atributos e seus tipos de domínio 1 CREATE TABLE Aluno( 2 matricula INT, 3 nome VARCHAR(80), 4 email VARCHAR(80)); Campo matrícula como chave primária e seu valor incrementado automaticamente para cada nova tupla inserida na tabela 5 CREATE TABLE Aluno( 6 matricula INT NOT NULL AUTO_INCREMENT, 7 nome VARCHAR(80), 8 email VARCHAR(80), 9 PRIMARY KEY (matricula)); 7/16

Criando tabelas Nome das colunas não precisam fazer referência ao nome da tabela Ex: nomealuno, emailaluno Para a chave primária é desejado que faça referência ao nome da tabela, pois esse campo poderá ser chave estrangeira em outra tabela Ex: matriculaaluno 8/16

Apagando e alterando tabelas Apagando 10 DROP TABLE Aluno; Alterando 11 ALTER TABLE Aluno ADD COLUMN tel INT; 12 13 ALTER TABLE Aluno CHANGE COLUMN tel telefone VARCHAR(40); 14 15 ALTER TABLE Aluno MODIFY COLUMN telefone VARCHAR(25); 16 17 ALTER TABLE Aluno DROP COLUMN telefone; 9/16

Data Manipulation Language DML Permite acessar ou manipular dados no banco de dados https://dev.mysql.com/doc/refman/5.7/en/non-typed-operators.html Operador Descrição AND, && E lógico OR, OU lógico NOT,! Negação!=, <> Diferente >, >= Maior, maior ou igual <, <= Menor, menor ou igual = Atribuição para as instruções SET e UPDATE; igualdade para os demais contextos := Atribuição LIKE Busca por padrão IS [NOT] NULL Se [não] é NULO BETWEEN...AND... Valor dentro de uma faixa 10/16

Data Manipulation Language DML Permite acessar ou manipular dados no banco de dados Inserindo 18 INSERT INTO Aluno (nome, email, telefone) 19 VALUES ('Joao', 'j@email.co.br', '48-1234'); Apagando todas as linhas da tabela 20 DELETE FROM Aluno; Atualizando valores de todas as linhas da tabela 21 UPDATE Aluno SET curso := 'Telecomunicaç~oes'; 11/16

SELECT consulta SQL (query) Resultado de uma consulta SQL é uma tabela 22 SELECT A1, A2,..., An 23 FROM T1, T2,..., Tn 24 WHERE P A Atributo T Tabela P predicado da consulta Recuperando todas as colunas e linhas uma tabela 25 SELECT * FROM Aluno; Recuperando as colunas nome e email de todas as linhas 26 SELECT nome, email FROM Aluno; Recuperando todas disciplinas cursadas por um aluno e removendo duplicatas 27 SELECT DISTINCT disciplina FROM Aluno; 12/16

SELECT Recuperando todos os dados de todos os alunos do curso de Telecomunicações e que moram em São José 28 SELECT * FROM Aluno 29 WHERE curso = 'Telecomunicaç~oes' AND cidade = 'S~ao José'; Todos funcionários com salário maior que R$ 1.000,00 30 SELECT * FROM Funcionarios 31 WHERE salario > 1000; Usando operadores aritméticos 32 SELECT 5 * 2 AS resultado; 33 34 SELECT horaextra * valorhora * 2 as valorhe FROM funcionario; 13/16

SELECT Ordenando o resultado 35 SELECT * FROM Aluno 36 ORDER BY nome, matricula; Buscando por padrões em cadeias de caracteres % qualquer substring qualquer caracter 37 SELECT * FROM Aluno WHERE nome LIKE 'Jo~ao%'; 38 39 SELECT * FROM Aluno WHERE nome LIKE '%Silva%'; 40 41 SELECT * FROM Aluno WHERE nome LIKE 'Jo_o %'; 14/16

SELECT Funções de agregação Valor médio (AVG), mínimo (MIN), máximo (MAX), soma (SUM), total (COUNT) Com exceção do COUNT, todos os demais ignoram tuplas que tenham o valor NULL nos atributos agregados 42 SELECT COUNT(*) as totalalunos FROM Aluno; 43 44 SELECT AVG(salario) from Funcionario; GROUP BY Obtendo salário médio dos funcionários por departamento 45 SELECT departamento, AVG(salario) from Funcionario 46 GROUP BY departamento; Atributos na instrução SELECT que estejam fora das funções de agregação devem obrigatoriamente aparecer na lista do GROUP BY 15/16

SELECT Obtendo nomes dos departamentos cujo salário médio de seus funcionários seja maior que 1000 47 SELECT departamento, AVG(salario) from Funcionario 48 GROUP BY departamento 49 HAVING AVG(salario) > 1000; Retornando no máximo as 100 primeiras linhas 50 SELECT nome FROM Aluno LIMIT 100; 51 SELECT nome FROM Aluno LIMIT 0,100; Retornando no máximo 20 linhas a partir da linha 100 52 SELECT nome FROM Aluno LIMIT 100,20; 16/16