32

Introduçãoslides.jarley.com/bd/bd-06-introducao-sql-parte-I.pdf · SQL para a definição de tabelas, ... programação de uso geral como Java, Cobol, C, Pascal, C#, ... Tipos de

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

Tipos de Dados em SQL

Tipo Boolean:

lógica de três valores (TRUE, FALSE e UNKNOWN)

Tipos de Dados em SQL

Tipos em SQL:1999

Collection (Array)

User-defined types

References

...

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

Criando uma base de dados

Exibindo as bases do servidor

MySQL Server

Removendo uma base de dados

Criando a 1ª tabela na base livraria

MySQL Server

Selecionando uma tabela para edição/consulta

Excluindo uma tabela

MySQL Server

Alterando a estrutura de uma tabela

Adicionando uma coluna na tabela

Removendo uma coluna

MySQL Server

Incluindo a primeira linha na tabela Livro

Consultando o conteúdo da tabela

MySQL Server

Removendo uma linha na tabela Livro

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

Exercício de Fixação

Removendo um registro na tabela Livro

DELETE FROM Livro WHERE id =2;

Consulte a tabela acima para visualizar as linhas