Programação em Banco de Dados. Dailton Trevisan prof@tontrevisan.com.br



Documentos relacionados
Structured Query Language (SQL)

Programação em Banco de Dados. Dailton Trevisan

AULA 7 FUNÇÕES AGREGADAS. Funções Agregadas

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

Linguagem SQL (Parte I)

Operação de União JOIN

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

Introdução ao SQL Avançado

Pedro F. Carvalho OCP Oracle g LINGUAGEM SQL. São José do Rio Preto

Linguagem SQL Parte I

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

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

SQL. Autor: Renata Viegas

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados

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

A linguagem SQL

Prof. Carlos Majer Aplicações Corporativas UNICID

Treinamento em PHP. Aula 7. Ari Stopassola Junior

MYSQL BÁSICO. 12 Horas Instrutor: Antonio Itamar Júnior

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

DML - SELECT Agrupando Dados

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

Linguagem de Consulta Estruturada SQL- DML

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

Comandos DDL. id_modulo = id_m odulo

EXEMPLOS DE COMANDOS NO SQL SERVER

1. Domínio dos Atributos

Curso PHP Aula 08. Bruno Falcão

Principais Comandos SQL Usados no MySql

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

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

Programação SQL. Introdução

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

Treinamento sobre SQL

Nome: n.º WEB Série 2B 2C 2D 2E Barueri, 17/08/2009 2ª Postagem Disciplina: Gerenciamento e Estrutura de Banco de Dados Professor: Márcio

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Prof.: Clayton Maciel Costa

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

EXERCÍCIOS PRÁTICOS. Banco de Dados

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

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

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

LABORATÓRIO DE BANCO DE DADOS

Comandos de Manipulação

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura

Banco de Dados. Prof. Antonio

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

Banco de Dados com PHP

SQL Structured Query Language

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

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

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião

Notas sobre o MySQL: Resumo dos comandos no MySQL linha de comandos:

Prof.: Clayton Maciel Costa

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

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Bases de Dados. DML Data Manipulation Language Parte 1

Linguagem SQL Sub-linguagem DDL

INTRODUÇÃO BANCO DE DADOS(MYSQL) E PHP

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

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

PROGRAMA. Objectivos Gerais :

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

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

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

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Tarefa Orientada 13 Agrupamento e sumário de dados

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

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

NOME SEXO CPF NASCIMENTO SALARIO

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

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

SQL DML. Frederico D. Bortoloti

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Banco de Dados. Maurício Edgar Stivanello

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Revisão / Exercícios. Prof. Márcio Bueno. {bd2tarde,bd2noited}@marciobueno.com

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Á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:

Linguagem de Consulta - SQL

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )


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

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

ADMINISTRAÇÃO DE BANCO DE DADOS

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

4.6. SQL - Structured Query Language

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

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I

Registro de Usuários MT Última Atualização 25/04/2012

Linguagem de Consulta Estruturada (SQL)

Fundamentos do Sistema Gerenciador de Banco de Dados

DML. SQL (Select) Verificando estrutura da tabela

Transcrição:

Programação em Banco de Dados Dailton Trevisan prof@tontrevisan.com.br

PLANO DE ENSINO E APRENDIZAGEM

Plano de Ensino e Aprendizagem Objetivos Aplicação da linguagem SQL através de comandos de inserção, alteração, consulta. Aplicação de Stored Procedures e Triggers. Conhecimentos de segurança e integridade de dados e tópicos avançadas em Ementa banco de dados. Linguagem de Consulta (SQL): comandos de inserção, alteração, consulta e estrutura. Stored Procedures e Triggers. Processamento e otimização de consulta. Gerenciamento de transações. Controle de concorrência. Recuperação de falhas. Segurança e integridade de dados. Análise comparativa dos SGBDs

Plano de Ensino e Aprendizagem Conteúdo Programático C 1. Linguagem de Consulta (SQL): comandos de inserção, alteração, consulta e estrutura. Funções de agregação Extensões da linguagem Stored Procedures e Triggers. 2. Processamento e otimização de consulta Controle de concorrência: Problemas de concorrência Bloqueio Seriabilidade Níveis de isolamento Recursos de SQL 3. Recuperação de falhas: Gerenciamento de transações

Plano de Ensino e Aprendizagem

Vamos praticar... Apague os seguintes dados da tabela tbclientes : Todos os clientes do estado de MG DELETE FROM tbclientes WHERE UF = 'MG'; Clientes com faturamento maior ou igual a R$50.000,00 DELETE FROM tbclientes WHERE FATURAMENTO >= 'R$50.000,00'; OBS: NESSE MOMENTO IGNORAR DATATYPE. Apagar o cliente Miami DELETE FROM tbclientes WHERE ID = 3;

Vamos praticar... O restaurante Di Treviso, te contratou para dar manutenções no banco de dados de cardápio, e precisa que voce faça o seguinte trabalho: 1-) Inserir novo prato, "Risoto Tomate Seco", que contem ingredientes "Arroz arbóreo, Vinho, Tomate Seco" ao preço de R$ 27,90 com margem de 20% de lucro. 2-) Inserir novo prato, "Risoto de Camarão", que contem ingredientes "Arroz branco, camarão, pimentão verde" ao preço de R$ 36,90 com margem de 5% de lucro. 3-) Incluir o ingrediente básico "Azeitona" ao "Pasta al pesto brasileiro". 4-) Alterar o preço para R$31,25 e margem para 35% do prato "Pasta al pesto brasileiro". 5-) Apagar o Prato Pasta Peito de Chester.

Vamos praticar...

FUNÇÕES SQL

A linguagem SQL possui uma série de funções. Com o uso delas podemos facilitar o trabalho de manipular dados, caracteres, numeros, datas, conversão de tipos, etc.

Funções Numéricas de Estatística AVG(), COUNT(), MAX(), MIN(), SUM() Produzem um único resultado

AVG() retorna o valor médio de uma coluna numérica. Sintaxe: SELECT AVG(coluna) FROM tabela;

AVG() Exemplos: SELECT AVG(preco) AS precomedio FROM tbprodutos; SELECT nomeproduto, preco FROM tbprodutos WHERE preco > (SELECT AVG(preco) FROM tbprodutos);

AVG() Exemplos: SELECT nomealuno, notafinal FROM tbalunos WHERE notafinal > (SELECT AVG(notaFinal) FROM tbalunos); SELECT AVG(DISTINCT salario) AS mediasalarial FROM tbempregados WHERE salario > 678;

AVG() Exemplos: SELECT AVG(vendas * 0.10) AS [comissao de Vendas] FROM tbpedidos;

A função COUNT() retorna o número de linhas/registros que corresponde a um determinado critério. Sintaxe: SELECT COUNT(coluna) FROM tabela;

COUNT() Exemplos: SELECT COUNT(*) AS numerodepedidos FROM tbpedidos; SELECT COUNT(nomeCliente) AS TotalPedidosErika FROM tbpedidos WHERE nomecliente='erika';

COUNT() Exemplos: SELECT COUNT(DISTINCT CustomerID) AS numerodeclientes FROM tbpedidos; SELECT COUNT(*) FROM (SELECT DISTINCT idcliente FROM tbpedidos WHERE datapedido >= '01/01/2013') AS total;

A função MAX() retorna o maior valor de uma determinada coluna. Sintaxe: SELECT MAX(coluna) FROM tabela;

MAX() Exemplos: SELECT MAX(tempoGasto) FROM tbonibusviagens;

MAX() Exemplos: SELECT MAX(salario) AS "Maior Salário da Empresa" FROM tbfuncionarios; SELECT MAX(preco) AS MaiorPreço FROM tbprodutos WHERE tipoproduto = 'Cerveja';

A função MIN() retorna o maior valor de uma determinada coluna. Sintaxe: SELECT MIN(coluna) FROM tabela;

MIN() Exemplos: SELECT nomeatleta, sexoatleta FROM tbatletas WHERE categoria = '400 metros rasos' AND cronometragem = (SELECT MIN(cronometragem) FROM tbatletas);

A função SUM() retorna a SOMA de uma coluna numérica. Sintaxe: SELECT SUM(coluna) FROM tabela;

SUM() Exemplos: SELECT SUM(salario) as "Total dos Salários" FROM tbfuncionarios WHERE salario > 678;

SUM() Exemplos: SELECT SUM(lucroBruto - Despesa) AS lucroliquido FROM TbBoschTransacoes;

A função GREATEST() do ORACLE retorna o maior valor de uma LISTA. Sintaxe: SELECT GREATEST(VALOR1, VALOR2, VALOR3,...);

GREATEST() Exemplos: SELECT GREATEST(2,3,1); GREATEST(2, 5, 12, 3) Retornará 3 GREATEST('maça', 'laranja', 'banana') GREATEST('banana', 'banani', 'banane') Retornará 'laranja' Retornará 'banani'

A função LEAST() do ORACLE retorna o menor valor de uma LISTA. Sintaxe: SELECT GREATEST(VALOR1, VALOR2, VALOR3,...);

Funções de Manipulação de Caracteres UCASE(), LCASE(), MID(), LEN(), ROUND(), NOW(), FORMAT() Estas funções aceitam como argumento(s) caracteres e devolvem caracteres ou valores numérico

As funções UCASE() e LCASE() convertem o valor de um campo em maiúsculo e minúsculo respectivamente. Sintaxe: SELECT UCASE(coluna) FROM tabela; SELECT LCASE(coluna) FROM tabela; Obs: No SQLServer o nome da função é UPPER e LOWER.

A função INITCAP() impõe uma letra maiúscula na primeira letra de cada palavra e minúsculas nas restantes. Sintaxe: SELECT INITCAP(coluna) FROM tabela;

INITCAP() Exemplos:

A função CONCAT() devolve a concatenação de string1 com string2. É uma alternativa aos operadores e + dos SGBD s. Sintaxe: SELECT CONCAT(coluna1,coluna2) FROM tabela;

CONCAT() Exemplos:

A função SUBSTRING é utilizada para obter uma parte dos dados. MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) Alguns outros SGBD s: MID( ) Sintaxe: SELECT SUBSTR(coluna,inicio[,tamanho]) FROM tabela;

SUBSTR() Exemplos: SELECT SUBSTR(cidade,1,3) AS cidadeabreviada FROM tbclientes WHERE cidade = 'Los Angeles' or cidade = 'San Diego';

SUBSTR() Exemplos: SELECT (sobrenome + ',' + SPACE(1) + SUBSTRING(nome, 1, 1) + '.') AS nomeautor FROM tbpublicacoes ORDER BY sobrenome, nome;

A função LEN é utilizada para obter o tamanho (comprimento) de uma string. MySQL: LENGTH ( ) Oracle: LENGTH ( ) SQL Server: LEN ( ) Sintaxe: SELECT LEN(coluna) FROM tabela;

LEN() Exemplos: SELECT nomeproduto FROM tbprodutos WHERE LEN(nomeProduto) < 20;

A função REPLACE() atualiza uma cadeia de caracteres. Sintaxe: REPLACE(str1, str2, str3); REPLACE(coluna, antigo, novo)

REPLACE() Exemplos: SELECT REPLACE (estado, 'San', 'São') FROM tbestados; UPDATE tbclientes SET endereco = REPLACE(endereco,'Street','Rua') ;

Função de Exibição de Data NOW(), SYSDATE() OBS: No próximo material veremos funções de MANIPULAÇÃO / OPERAÇÃO de datas

A função NOW() retorna a data e hora atual configurada no servidor do banco. MySQL: SYSDATE ( ) Oracle: SYSDATE ( ) SQL Server: NOW ( ) e GETDATE( ) Sintaxe: SELECT NOW() AS datahoraagora;

NOW() Exemplos: SELECT titulonoticia, corponoticia, datapublicacao FROM tbnoticias WHERE dataexpiracao < NOW();

Vamos Praticar... Crie apenas uma seleção que atenda os requisitos abaixo: SELECIONAR - Tamanho de caracteres de cada produto (LEN) e apelide como "nprodutoscaracteres" - Apenas metade (50%) do nome do produto (SUBSTR) em caixa alta (UCASE). Utilize o LEN. Apelide de NomeDoProduto. - data e hora atual (NOW) e apelide de "DataAgora" QUANDO - Categoria for "Celular" ou "SmartPhone" ou "Mobile". ORDENADO ASCENDENTEMENTE POR - Categoria - Nome do Produto

7 Mobile Samsung 4GDUOS Vamos Praticar... Products productid Category ProductName Price 400.99 2 CellPhone Nokia Ti3gs 1890 6 Laptop HP i7 2tb 610.99

Vamos Praticar... Ainda utilizando a tabela modelo Products, crie as seleções que atenda os requisitos abaixo: 1- Mostre o total de registros da tabela Products de somente valores (price) distintos. Apelide o total. 2- Mostre a soma do preço de todos os produtos, que o preço seja maior que o preço médio e menor que o produto mais caro.

Banco de Dados Sintaxe básica de CRIAÇÃO de uma tabela: CREATE TABLE nome_da_tabela ( nome_campo tipo_dado [[NOT] NULL], nome_campo1 tipo_dado [[NOT] NULL], nome_campo2 tipo_dado [[NOT] NULL], nome_campo3 tipo_dado [[NOT] NULL],... );

Banco de Dados TINYINT: Valores numéricos inteiros variando de 0 até 256 SMALLINT: Valores numéricos inteiros variando de 32.768 até 32.767 BIGINT: Valores numéricos inteiros variando de 92.23.372.036.854.775.808 até 9.223.372.036.854.775.807 BIT: Somente pode assumir os valores 0 ou 1. Utilizado para armazenar valores lógicos. DECIMAL(I,D) e NUMERIC(I,D): Armazenam valores numéricos inteiros com casas decimais utilizando precisão. I deve ser substituído pela quantidade de dígitos total do número e D deve ser substituído pela quantidade de dígitos da parte decimal (após a vírgula). DECIMAL e NUMERIC possuem a mesma funcionalidade, porém DECIMAL faz parte do padrão ANSI e NUMERIC é mantido por compatibilidade. Por exemplo, DECIMAL(8,2) armazena valores numéricos decimais variando de 999999,99 até 999999,99 SMALLMONEY: Valores numéricos decimais variando de -214.748,3648 até 214.748,3647 MONEY: Valores numéricos decimais variando de -922.337.203.685.477,5808 até 922.337.203.685.477,5807 REAL: Valores numéricos aproximados com precisão de ponto flutuante, indo de -3.40E + 38 até 3.40E + 38 FLOAT: Valores numéricos aproximados com precisão de ponto flutuante, indo de -1.79E + 308 até 1.79E + 308 SMALLDATETIME: Armazena hora e data variando de 1 de janeiro de 1900 até 6 de junho de 2079. A precisão de hora é armazenada até os segundos. CHAR(N): Armazena N caracteres fixos (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido com espaços em branco. VARCHAR(N): Armazena N caracteres (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido. TEXT: Armazena caracteres (até 2.147.483.647) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que 2.147.483.647, o resto do campo não é preenchido. Procure não utilizar este tipo de dado diretamente, pois existem funções específicas para trabalhar com este tipo de dado. NCHAR(N): Armazena N caracteres fixos (até 4.000) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido com espaços em branco.

Banco de Dados Antes de criar uma nova tabela, temos que entender quais tipo de dados podemos inserir nela. INT: Valores numéricos inteiros variando de -2.147.483.648 até 2.147.483.647 NVARCHAR(N): Armazena N caracteres (até 4.000) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido. NTEXT: Armazena caracteres (até 1.073.741.823) no formato Unicode. Se a quantidade de caracteres armazenada no campo for menor que 1.073.741.823, o resto do campo não é preenchido. DATETIME: Armazena hora e data variando de 1 de janeiro de 1753 até 31 de Dezembro de 9999. A precisão de hora é armazenada até os centésimos de segundos.

Banco de Dados Inicialmente vamos utilizar os seguintes datatypes: - VARCHAR(255) - INT() - DOUBLE(tamanho,digitos) - TEXT ou NTEXT - DATE() - DATETIME()

Banco de Dados Exemplo prático de CRIAÇÃO de uma tabela: CREATE TABLE tbfornecedores ( codigo INT NOT NULL, nome VARCHAR(30) NOT NULL, datanasc DATETIME NULL, descricao TEXT NULL )

Banco de Dados Como criar uma tabela a partir de outra tabela copiando valores? SINTAXE: CREATE TABLE new_table AS (SELECT * FROM old_table); EXEMPLO: CREATE TABLE suppliers AS (SELECT id, address, city, state, zipcode FROM companies WHERE id > 1000);

Vamos praticar... Crie uma tabela para um sistema simples de Acesso, com login e senha.

Vamos praticar... Você foi contratado para criar um sistema de cadastro de clientes. O contratante deseja saber quais são seus clientes e qual área de atuação. Quer poder enviar mala direta por correio e email marketing, e deseja saber quais foram as ultimas compras, caso tenha sido realizada. Crie uma tabela que atenda as especificações do contratante. Após isso inclua 3 clientes manualmente para testar se a tabela foi criada corretamente.