Upload
dinhdien
View
229
Download
0
Embed Size (px)
Citation preview
Introdução
O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language).
O padrão SQL define precisamente uma interface SQL para a definição de tabelas, para as operações sobre as mesmas (seleção, projeção, junção, e outras) e para a definição de regras de integridade de bancos de dados.
Introdução
Um SGBD possui duas linguagens:
DDL: Linguagem de Definição de Dados. Usada para definir os esquemas, atributos, visões, regras de integridade, índices, etc.
DML: Linguagem de Manipulação de Dados. Usada para se ter acesso aos dados armazenados no BD.
Introdução
SQL (Structured Query Language): desenvolvida pela IBM (70) como parte do sistema System R. A SQL foi inicialmente chamada de SEQUEL
É a linguagem de consulta padrão para os SGBDR's
Já existem padrões propostos: ANSI-SQL(SQL-89), SQL-92 e padrões mais recentes: SQL:1999 e SQL:2003.
Introdução
A linguagem SQL tem diversas partes:
Linguagem de Definição de Dados (DDL): fornece comandos para definições de esquemas de relação, criação/remoção de tabelas, criação de índices e modificação de esquemas.
Linguagem de Manipulação de Dados (DML): inclui uma linguagem de consulta baseada na álgebra relacional e cálculo relacional de tupla. Compreende comandos para inserir, consultar, remover e modificar tuplas num BD.
Introdução
▫ Linguagem de Manipulação de Dados Embutida: designada para acessar o BD dentro de linguagens de programação de uso geral como Java, Cobol, C, Pascal, C#, Delphi, Fortran, SQL-J entre outros.
▫ Definição de Visões: a SQL DDL inclui comandos para definição de visões.
▫ Autorização: a SQL DDL inclui comandos para especificação de direitos de acesso às relações/visões.
Introdução
▫ Integridade: SQL possui comandos para verificação de restrições de integridade complexas. O padrão ANSI(86) limitou estas restrições. Porém, novos padrões tipo SQL-99 incorporam várias formas de expressar restrições de integridade (Assertivas e Triggers).
▫ Controle de Transação: algumas implementações de SQL permitem fazer tratamento de controle de concorrência e tolerância à falhas (locks explícitos, commit, rollback).
Tipos de Dados em SQL Tipos de Domínios em SQL-92
Tipo Descrição
Char(n) ou character String de tamanho fixo n
Varchar(n) ou
Character varying
String de tamanho variável com
tamanho máximo n
int ou integer Número inteiro
Smallint Inteiro pequeno
Numeric(p,d) Número ponto fixo xom precisão
definida pelo usuário. Com p
indicando o número de dígitos e d
indicando dos p dígitos os que
estão à direita do ponto decimal
real,
double precision
Ponto flutuante e ponto flutuante
de precisão dupla
Float(n) Ponto flutuante com precisão
definida pelo usuário
Date Data: aaaa/mm/dd
Time Hora: hh:mm:ss
Tipos de Dados em SQL
Tipos em SQL:1999
Numéricos exatos: INTEGER (INT) e SMALLINT para representar inteiros NUMERIC(p,s): tem uma precisão e uma escala(número de dígitos na parte
fracionária). A escala não pode ser maior que a precisão. Muito usado para representar dinheiro
DECIMAL: também tem precisão e escala. A precisão é fornecida pela implementação (SGBD).
Numéricos aproximados: REAL: ponto flutuante de precisão simples DOUBLE: ponto flutuante com precisão dupla FLOAT(p): permite especificar a precisão que se quer. Usado para
tranportar (portability) aplicações
Tipos de Dados em SQL
Tipos em SQL:1999
Character CHARACTER(x) (CHAR): representa um string de tamanho x. Se x for
omitido então é equivalente a CHAR(1). Se um string a ser armazenado é menor do que x, então o restante é preenchido com brancos.
CHARACTER VARYING(x) (VARCHAR): representa um string de tamanho x. Armazena exatamente o tamanho do string (tam <= x) sem preencher o resto com brancos. Neste caso x é obrigatório.
CHARACTER LARGE OBJECT (CLOB): armazena strings longos. Usado para armazenar documentos.
OBS.: Existem os National character data types: NCHAR, NVARCHAR, NCLOB que permitem implementar internacionalização
Tipos de Dados em SQL
Tipos em SQL:1999
Bit string e Binary Strings (BLOB)
BIT(X): permite armazenar uma quantidade x de bits
BIT VARING(X) (VARBIT): permite armazenar uma quantidade variável de bits até o tamanho X
BINARY LARGE OBJECT (BLOB): para armazenar grande quantidades de bytes como fotos, vídeo, áudio, gráficos, mapas, etc.
Tipos de Dados em SQL
Tipos em SQL:1999
DATETIMES DATE: armazena ano (4 digitos), mês (2 digitos) e dia(2
digitos).
TIME: armazena hora(2digitos), minuto(2 digitos) e segundo(2digitos, podendo ter frações 0 a 61.9999)
TIMESTAMP: DATE + TIME
TIME WITH TIME ZONE: igual a time + UTC offset
TIMESTAMP WITH TIME ZONE: igual a TIMESTAMP + UTC offset
MySQL Server
Servidor de banco de dados open source
Atualmente mantido pela Oracle
Site do produto: http://www.mysql.com/
Página de downloads: http://www.mysql.com/downloads/mysql/
MySQL Server
Usando os recursos da DML
Abrir o terminal do seu S.O.
Conexão com o servidor:
mysql –u<usuário> -p<senha> -h<host>
OU Usar o MySQL Workbench
MySQL Server
Alterando a estrutura de uma tabela
Adicionando uma coluna na tabela
Removendo uma coluna
MySQL Server
Criando algumas restrições na tabela
Os campos não podem ser nulos
O valor da coluna título deve ser único para todas as linhas
Exercício de Fixação
Se conecte ao servidor e apague a base de dados livraria
DROP DATABASE livraria ;
Crie uma nova base da dados chamada livraria
CREATE DATABASE livraria ;
Informe ao SGBD que você deseja usar a base livraria
USE livraria ;
Exercício de Fixação
Crie uma tabela chamada Editora
CREATE TABLE Editora (
id BIGINT NOT NULL AUTO_INCREMENT ,
nome VARCHAR (255) NOT NULL ,
email VARCHAR (255) NOT NULL ,
)
ENGINE = InnoDB ;
Exercício de Fixação
Crie uma tabela chamada Livro
CREATE TABLE Livro (
id BIGINT NOT NULL AUTO_INCREMENT ,
titulo VARCHAR (255) NOT NULL ,
preco DOUBLE NOT NULL ,
)
ENGINE = InnoDB ;
Exercício de Fixação
Adicione linhas na tabela Editora
INSERT INTO Editora (nome , email ) VALUES (’Oreilly ’, ’ oreilly@email . com ’);
INSERT INTO Editora (nome , email ) VALUES (’Wrox ’, ’wrox@email . com ’);
INSERT INTO Editora (nome , email ) VALUES (’Apress ’, ’ apress@email . com ’);
Exercício de Fixação
Adicione linhas na tabela Livro
INSERT INTO Livro ( titulo , preco ) VALUES (’Aprendendo C#’, 89.90) ;
INSERT INTO Livro ( titulo , preco ) VALUES (’Introdução ao JSF 2’, 122.90) ;
INSERT INTO Livro ( titulo , preco ) VALUES (’JSF 2 Avançado ’, 149.90) ;
Exercício de Fixação
Consulte as linhas da tabela Editora
SELECT * FROM Editora ;
Consulte as linhas da tabela Livro
SELECT * FROM Livro ;
Exercício de Fixação
Alterando um registro na tabela Livro
UPDATE Livro SET preco =92.9 WHERE id =1;
Alterando um registro na tabela Editora
UPDATE Editora SET nome =’ OReilly ’ WHERE id =1;
Consulte as tabelas para visualizar os valores alterados