Introdução - Slides – Jarley Nóbrega

Introdução O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)...

7 downloads 281 Views 798KB Size
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 Char(n) ou character Varchar(n) ou Character varying int ou integer Smallint Numeric(p,d)

real, double precision Float(n) Date Time

Descrição String de tamanho fixo n String de tamanho variável com tamanho máximo n Número inteiro Inteiro pequeno 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 Ponto flutuante e ponto flutuante de precisão dupla Ponto flutuante com precisão definida pelo usuário Data: aaaa/mm/dd 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 -p -h  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