2008.1. A linguagem SQL



Documentos relacionados
SQL. Autor: Renata Viegas

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

A linguagem SQL

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

PHP INTEGRAÇÃO COM MYSQL PARTE 1

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

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

Banco de Dados I Introdução SQL

SQL - Criação de Tabelas

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

SQL (Structured Query Language)

SQL (Structured Query Language)

SQL (Structured Query Language)

Comandos DDL. id_modulo = id_m odulo

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

1. Domínio dos Atributos

Structured Query Language (SQL) Aula Prática

Linguagem de Consulta - SQL

SQL DDL. Frederico D. Bortoloti

A linguagem SQL

Programação SQL. Introdução

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

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

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

SQL (STRUCTUREDQUERY LANGUAGE)

Structured Query Language (SQL)

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

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

Linguagem SQL Sub-linguagem DDL

Comandos de Manipulação

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

SQL (STRUCTUREDQUERY LANGUAGE)

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

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

SQL Structured Query Language

Banco de Dados. Módulo 7 - Modelo Relacional. Definição do Esquema Relacional em SQL. modulo07.prz 1 10/09/01

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

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

Prof. Carlos Majer Aplicações Corporativas UNICID

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

Introdução à linguagem SQL


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

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

Integridade dos Dados

Introdução ao SQL. Aécio Costa

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

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

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

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

O que são Bancos de Dados?

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

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

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

Linguagem SQL (Parte II)

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

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Linguagem SQL (Parte I)

4.6. SQL - Structured Query Language

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Structured Query Language (SQL)

Disciplina: Unidade V: Prof.: Período:

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

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

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

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS)

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Linguagem SQL Parte I

Linguagem SQL. Comandos Básicos

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

SQL. Prof. Márcio Bueno.

SQL (Structured Query Language)

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

Banco de Dados. Prof. Antonio

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

Principais Comandos SQL Usados no MySql

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

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

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

BANCO DE DADOS CONCEITOS BÁSICOS

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr

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

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

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

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

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

ADMINISTRAÇÃO DE BANCO DE DADOS

Profº Aldo Rocha. Banco de Dados

Exercícios de Lógica Exercícios de Fixação 08

SQL. Hélder Antero Amaral Nunes

Tarefa Orientada 15 Manipulação de dados

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

Linguagem de Consulta Estruturada (SQL)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

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

Transcrição:

SQL 2008.1

A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão recebeu o nome de SEQUEL - Structured English Query Language

A linguagem SQL 2008.1 Órgãos como ANSI e ISO adotaram a SQL como o padrão oficial de linguagem em ambiente relacional. O ANSI publicou as padronizações SQL ANSI-89 e ANSI-92. Revisões da SQL: SQL99 (SQL 3)

A linguagem SQL É uma linguagem usada em SGBDs para: Definir estruturas de dados (Ex: criar tabelas) Modificar dados no BD (Ex: inserir e alterar dados) Especificar restrições de segurança (Ex: privilégios de acesso) Realizar consultas Não é uma linguagem case-sensitive

A linguagem SQL 2008.1 Definição de Dados: através da DDL possibilita a definição da estrutura e organização dos dados Manipulação de Dados: através da DML possibilita a manipulação dos dados armazenados, compreendendo inclusão, consulta, alteração e eliminação.. Controle de Acesso: protege os dados de manipulações não autorizadas, através de comandos de autorização de acesso. Integridade dos Dados: define as regras de integridade dos dados contra corrupções, inconsistências e falhas do sistema. Controle de Transações: inclui comandos que controlam a especificação do início e do fim das transações.

A linguagem SQL 2008.1 Independência de fabricante: está incorporada em quase todos os SGBDs em seu padrão ANSI, com as extensões proprietárias de cada fabricante. Portabilidade entre computadores: pode ser usada desde um PC até um mainframe. Redução de custos com treinamento: as aplicações podem migrar de ambiente com custo reduzido em treinamento. Facilidade no entendimento: oferece um rápido entendimento, com comandos escritos em um inglês estruturado de alto nível. Múltiplas visões de dados: possibilita levar diferentes visões dos dados a diferentes usuários.

A linguagem SQL Em todos os exemplos a seguir, será utilizado o exemplo de uma locadora de DVD Tabela Clientes (CodC, nome, cpf, data_nasc, sexo, salario) Tabela Dvd (CodD, titulo, genero, duracao, situacao) Tabela Locacoes (CodC, CodD, data) Observação: os nomes das tabelas e dos atributos não podem conter acentos ou espaços em branco

Criando Tabelas 2008.1 O nome de uma tabela em um banco de dados deverá ser único para cada proprietário; Cada coluna deverá ser criada através da especificação do seu nome, tipo e tamanho do dado que irá armazenar O nome de uma coluna deverá ser único dentro de cada tabela podendo, entretanto, existir colunas com o mesmo nome em tabelas diferentes. Uma tabela representa uma entidade do banco de dados onde cada linha equivale a uma ocorrência e cada coluna equivale a um atributo dessa entidade.

Criando Tabelas - Sintaxe CREATE TABLE tabela( atributo1 tipo1, atributo2 tipo2,..., restrições de integridade )

Criando Tabelas ) CREATE TABLE clientes( CodC int not null, nome varchar(80) not null, cpf char(12) not null, data_nasc date, sexo char(1), salario numeric (9,2), PRIMARY KEY (CodC), UNIQUE (cpf), CHECK (sexo in ('M','F')), CHECK (salario > 0) obs: campos Null não se submetem a regra...

Clientes: Criando o generator (autoincremento): CREATE GENERATOR gen_clientes_codc ; Atribuindo o valor inicial (Zero): SET GENERATOR gen_clientes_codc TO 0; Criando Tabelas Criando o trigger (Gatilho) CREATE TRIGGER gera_id_clientes FOR clientes ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CodC IS NULL) THEN BEGIN NEW.CodC = GEN_ID(gen_clientes_codc, 1); END END;

Criando Tabelas Not null indica que o atributo deverá ser obrigatoriamente informado pelo usuário na hora de inserir dados na tabela. (Todos os campos, por default, aceitam valores nulos) Varchar (tamanho) tipo de String com tamanho de armazenamento variável, de acordo com os valores inseridos pelo usuário (o tamanho indicado na criação da tabela é a quantidade máxima de caracteres que poderão ser armazenados no campo)

Criando Tabelas Char (tamanho) tipo de String com tamanho de armazenamento fixo, de acordo com a quantidade de caracteres definidos na criação da tabela Date tipo data no formato ano-mes-dia (Obs: no SQL- Server, o tipo é datetime) Numeric(n,d) tipo numérico que aceita valores reais (n indica o total de números e d indica a quantidade de decimais) Primary Key restrição de integridade que define a chave primária da tabela (se a chave for composta, os nomes devem ser separados por vírgulas)

Criando Tabelas 2008.1 Unique restrição de integridade que indica que um campo não poderá receber valores repetidos na tabela (ou seja, dois registros não podem ter o mesmo valor para esse campo) Check restrição de integridade que indica condições para o preenchimento de um campo In (conjunto de valores) indica que o valor de um determinado atributo deve estar presente no conjunto de valores definido, para que os dados possam ser inseridos na tabela

Criando Tabelas CREATE TABLE dvd ( CodD int not null, titulo varchar(40) not null, genero varchar(15), duracao time, situacao varchar(12), PRIMARY KEY (CodD), CHECK (situacao in ('Alugada','Disponivel')) ) obs: campos Null não se submetem a regra...

DVD: Criando o generator (autoincremento): CREATE GENERATOR gen_dvd_codc ; Atribuindo o valor inicial (Zero): SET GENERATOR gen_dvd_codc TO 0; Criando o trigger (Gatilho) CREATE TRIGGER gera_id_dvd FOR dvd ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CodD IS NULL) THEN BEGIN NEW.CodD = GEN_ID(gen_dvd_codc, 1); END END; Criando Tabelas

Criando Tabelas 2008.1 Time tipo tempo no formato hora:minuto:segundo (Obs: no SQL-Server, o tipo é datetime) Default indica um valor que será armazenado no atributo caso não seja informado outro valor pelo usuário

Criando Tabelas CREATE TABLE locacoes ( CodL int not null primary key, data date, CodC integer references clientes(codc), CODD integer references DVD(CodD) )

Locações: Criando o generator (autoincremento): CREATE GENERATOR gen_locacoes_codl ; Atribuindo o valor inicial (Zero): SET GENERATOR gen_locacoes_codl TO 0; Criando Tabelas Criando o trigger (Gatilho) CREATE TRIGGER gera_id_locacoes FOR locacoes ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CodL IS NULL) THEN BEGIN NEW.CodL = GEN_ID(gen_locacoes_codL, 1); END END;

Criando Tabelas 2008.1 FOREIGN KEY restrição de integridade que define uma chave estrangeira para a tabela Obs: Para que um atributo seja chave estrangeira de uma tabela, é necessário que ele seja chave primária da tabela referenciada O nome do campo na tabela que terá a chave estrangeira não precisa ser o mesmo do campo na tabela referenciada (Exemplo: o campo CodD em locacoes poderia ser substituído por CodDvd), mas deve ser do mesmo tipo

Comandos SQL - Inserção Inserção de dados nas tabelas INSERT INTO tabela(atributo1,atributo2,...) VALUES(valor1,valor2,...) Ou INSERT INTO tabela VALUES(valor1,valor2,...)

Comandos SQL - Inserção A lista de atributos é usada para indicar que campos da tabela devem ser preenchidos, e com que valores. Se não for incluída, o BD tentará preencher todos os campos da tabela na seqüência em que foram criados. Portanto, a lista é obrigatória quando alguns campos não forem preenchidos, ou quando a ordem dos valores estiver alterada.

Comandos SQL - Inserção 2008.1 Ex: INSERT INTO dvd VALUES ( X-Men, Ação ) Seria um comando incorreto pois não há como saber a que atributos se referem os valores. O correto seria INSERT INTO dvd (titulo,genero) VALUES ( X-Men, Ação ). Os campos não informados seriam preenchidos com Null (se não tiverem sido definidos como not null), ou com valores default definidos na criação da tabela.

Comandos SQL - Inserção 2008.1 Campos definidos como IDENTITY não podem assumir valores informados pelo usuário, e não precisam ser incluídos na lista de atributos da tabela. Os valores desse campo vão sendo incrementados automaticamente e não são reaproveitados (Ex: mesmo que o DVD de código 5 seja excluído do banco, nenhum outro DVD receberá esse código ) No SQL Server, o valor inicial de campos IDENTITY é 1 e o incremento tem valor 1.

Comandos SQL - Inserção Valores do tipo char, varchar, date e time (ou datetime no SQL-Server) devem ser representados entre apóstrofos (aspas simples ). No SQL-Server, o formato padrão para datas é YYYY-MM-DD (ano-mes-dia) e para horas é HH:MM:SS (hora-minutosegundo) As casas decimais dos números devem ser separadas por pontos, em vez de vírgulas Valores do tipo varchar podem conter acentos e espaços em branco

Comandos SQL - Atualização Atualização de dados nas tabelas UPDATE tabela SET atributo = valor WHERE condicao

Comandos SQL - Atualização Mudar o salário do cliente com código 1 para 1400 UPDATE clientes SET salario = 1400 WHERE CodC = 1 Mudar a situação do DVD de código 1 para alugada UPDATE dvd SET situacao = alugada WHERE CodD = 1

Comandos SQL - Atualização A cláusula WHERE é opcional no comando UPDATE. Se não for informada, a atualização será realizada em toda a tabela Ex: O comando abaixo muda o preço de todos os DVDs cadastrados para 2.20 UPDATE dvd SET preco = 2.20

Comandos SQL - Exclusão Exclusão de dados das tabelas DELETE FROM tabela WHERE condição

Comandos SQL - Exclusão 2008.1 Apagar cadastros de todos os clientes do sexo masculino DELETE FROM clientes WHERE sexo = M Apagar cadastros de todos os DVDs de terror DELETE FROM dvd WHERE genero = terror

Comandos SQL - Exclusão A cláusula WHERE é opcional no comando DELETE. Se não for informada, a exclusão será realizada em toda a tabela Ex: O comando abaixo exclui todas as locacoes cadastradas DELETE FROM locacoes O comando DELETE exclui os dados, mas não exclui a tabela do BD. Para excluir a tabela inteira (dados e estrutura), o comando é: DROP TABLE tabela DROP TABLE locacoes

Comandos SQL Alteração de Tabelas Alteração de tabelas para inclusão ou exclusão de campos Inclusão ALTER TABLE tabela ADD atributo tipo restrição_integridade Exclusão ALTER TABLE tabela DROP COLUMN atributo

Comandos SQL Alteração de Tabelas Inclusão do campo ano na tabela DVD ALTER TABLE dvd ADD ano int Exclusão do campo sexo da tabela Clientes ALTER TABLE clientes DROP COLUMN sexo