Os tipos CHAR e VARCHAR so usados para armazenam informaes textuais (letras, nmeros, caracteres especiais, etc). A diferena entre os dois tipos que CHAR sempre recupera a string armazenada com espaos direita, mesmo que no utilize todo o espao definido pelo campo. J o tipo VARCHAR recupera as strings sem espaos, ou seja, com o mesmo tamanho que foram inseridas. O uso de campos CHAR recomendado quando os valores tm seu tamanho determinado previamente, como por exemplo para armazenar CEPs ou siglas de UFs.
INTEGER e SMALLINT
O tipo INTEGER armazena valores inteiros com sinal; ocupa 4 bytes e permite uma faixa de valores entre -2.147.483.648 at 2.147.483.647. O tipo SMALLINT tambm armazena inteiros com sinal, mas ocupa 16 bits no decimais com sinal ocupando 2 bytes, permitindo um faixa de -32.768 at 32.767.
O tipo BOOLEAN est disponvel apenas no InterBase 7.x. Permite os valores true, false e Unknown. Provavelmente este tipo estar implementado na prxima verso do FireBird (posterior a 1.5). Enquanto isso no acontece, deve-se trabalhar com o tipo CHAR(1) e armazenar T indicando true e F para indicar false ou usar o tipo INTEGER tratando 1 como true e 0 como false.
DOUBLE PRECISION
possvel afirmar que o tipo DOUBLE PRECISION um FLOAT duplo. armazenado em 8 bytes o que permite uma faixa maior de valores e 2.225 x 10-308 at 1.797 x 10308.
O armazenamento de arquivos BLOB pode facilitar a administrao de dados, muitas as vezes, dependendo da informao ou do arquivo a ser armazenado, melhor armazenar no banco de dados apenas um path indicando o caminho externo do arquivo. Mantendo a informao ou o arquivo fora do banco de dados diminuir o seu tamanho, em contrapartida aumentar o esforo, por exemplo, na hora de fazer backups.
SGBD
Create Table
Exemplo
CREATE TABLE Jokes( ID INT NOT NULL PRIMARY KEY , JokeText VARCHAR(100), JokeDate DATE );
Regras de Integridade
CHAVE PRIMRIA No exemplo vimos a seguinte declarao na criao da tabela: PRIMARY KEY ( campo_x,...); Esta declarao diz que os campos inseridos entre os parnteses formam a chave primria da tabela. As chaves primrias funcionam como os campos que diferenciam os dados uns dos outros, e que no podem ser repetidos de nenhuma forma. Por exemplo, em nossa tabela Cliente, o cdigo do Cliente funciona como a chave-primria, ou seja, os clientes podem at ter o mesmo nome, endereo ou telefone, mas tero cdigos diferentes uns dos outros. Se dois cdigos iguais forem inseridos o SGBD retornar erro.
Regras de Integridade
CHAVE ESTRANGEIRA A chave estrangeira uma clusula que deve ser includa quando possumos mais de duas tabelas em um banco de dados. Atravs da chave estrangeira estabelecemos as relaes entre duas ou mais tabelas. A chave estrangeira desta forma referencia o campo que chave primria de outra tabela.
Insert
Insere um registro em uma determinada tabela. Sintaxe Exemplo
INSERT INTO Jokes (ID,JokeText, JokeDate) VALUES (1,Why did the chicken cross the road? To get to the other side!, 2000-04-01)
SELECT
Retorna um subconjunto de registros
um comando SELECT bsico inclui 3 clausulas
SELECT <attribute name> FROM <tables> WHERE <condition> SELECT
command
FROM
Especifica de qual ou quais tabelas sero extraidos os dados
WHERE
Especifica uma ou mais condies para fazer a seleo (OPCIONAL).
Select
Retorna um subconjunto de registros
Exemplo
SELECT ID, JokeText, JokeDate FROM Jokes SELECT JokeText, JokeDate FROM Jokes ORDER BY ID
SELEO LIMITADA
17
LIKE
Usado para comparao de partes de uma string, em conjunto com a clausula WHERE. Usa curingas (wildcards) :
18
LIKE
Lembrando que A <>a Devemos utilizar o comando UPPER para comparar tudo em maiusculas.
.
SELECT * FROM CLIENTES WHERE Upper(NOME) LIKE %RIA%
(encontra todos os nomes que tenham RIA em qualquer parte do texto)
Update
Atualiza uma tabela
Sintaxe
UPDATE nome_tabela SET nome_coluna = novo_valor WHERE condicao
Exemplo
UPDATE Jokes SET JokeDate = '1990-04-01' WHERE ID = 1
Delete
Deleta registro(s) de uma tabela Sintaxe
DELETE FROM nome_tabela WHERE condicao
Exemplo
DELETE FROM Jokes WHERE JokeText LIKE '%chicken%'
DROP
Apaga uma tabela Sintaxe
DROP TABLE nome_tabela
Exemplo
DROP TABLE Jokes
COMMIT/ROOLBACK
Utilizados para confirmar/reverter um comando SQL Sintaxe
COMMIT
O comando commit deve ser usado no FLAMEROBIN para confirmar os comandos utilizados....
23
SELECT p.nome, b.nome, sobrenome FROM cliente C, vendedor V WHERE C.nome=V.nome and Cidade=BRASILIA';
Table aliases
Lista todas as tabelas utilizadas na clausila FROM O criterio de seleo especificado na clausula WHERE Mantem clareza sobre qual tabela a coluna pertence Pode usar aliases para diminuir o comando (a tabela cliente chamada de P e vendedor de V, e so selecionados os nomes e sobrenomes dos clientes e vendedores e BRASILIA que possu em o mesmo nome)
Dialetos (1/3)
Antes de apresentar detalhes sobre os tipos de dados, importante destacar que o Firebird e o InterBase suportam trs dialetos que determinam os tipos disponveis e a maneira como so armazenados. Os dialetos foram lanados na verso 6 do InterBase para que novos tipos de dados pudessem ser oferecidos pelo servidor sem comprometer a compatibilidade com verses antigas. Os tipos de dados tem comportamento diferente de acordo com o dialeto usado.
Dialetos (2/3)
O dialeto 1 mantm compatibilidade com qualquer banco de dados criado no InterBase 6 ou anterior. O dialeto 2 deve ser utilizado apenas em testes e depurao, para identificar incompatibilidades entre tipos dos dialetos 1 e 3, mas no deve ser utilizado em ambientes de produo. O dialeto 3 o mais novo, e o recomendado, oferece tipos de dados adicionais e caractersticas especiais.
Dialetos (3/3)
Para definir o dialeto de um novo banco de dados usado o seguinte comando, ou sentena SQL:
TESTES DE SQL
27
http://www.w3schools.com/SQl/sql_tryit.asp
Plano de Aula
Comandos DDL Comandos DML Exerccio
28
Comandos DDL
Introduo ao SQL Criando o Banco de Dados
Podemos criar um banco de dados qualquer com o comando: CREATE DATABASE <nome_do_banco>; Exemplo: CREATE DATABASE FARMACIA; OBS: Aps criar o banco de dados para criar as tabelas dentor desse novo banco de dados utilize o comando: USE <nome_do_banco> Exemplo: USE FARMACIA;
Comandos DDL
Create Table Nome_da_Tabela ( campo_1 tipo_do_campo restrio_do_campo, ... campo_n tipo_do_campo restrio_do_campo, Constraint x Primary Key ( lista de campos que compem a chave primaria))
Tipos de Dados Usados Na Definio dos Campos - BigInt: inteiros de 18 dgitos. - Blob: ( binary large object ) tem tamanho varivel de at 64 Kbytes e usado para imagens, adio, vdeo. -Char(n) ou Character(n) : armazena n caracteres (mximo 32.767). -Date: armazena datas e usa 64 bits. - Decimal(preciso, escala): valores decimais de tamanho varivel. - Float: armazena valores de ponto flutuante com preciso de 7 dgitos. - Integer: valores inteiros de 32 bits. - Numeric: valores decimais de tamanho varivel. - SmallInt: valores inteiros de 16 bits. -VarChar(n): armazena n caracteres.
Comandos DDL
Introduo ao SQL - Criando Tabelas
Podemos criar uma tabela qualquer dentro de um banco de dados. A sintaxe bsica para criarmos : CREATE TABLE nome_tabela ( nome_campo_1 tipo_1, nome_campo_2 tipo_2, ... nome_campo_n tipo_n, PRIMARY KEY ( campo_x,...) );
Comandos DDL
Introduo ao SQL - Criando Tabelas
CREATE TABLE o comando usado para criao da tabela e deve ser seguida pelo nome que daremos tabela. Dentro do comando, devemos definir os nomes dos campos de acordo com a convenincia do banco de dados, e determinar o tipo de dado que poder ser includo neste campo.
PRIMARY KEY define a chave primria da tabela, isto , o campo que serve como chave da tabela e que no pode ser repetido. NOT NULL usado quando desejamos que um campo seja de preenchimento obrigatrio. Ex: CREATE TABLE nome_tabela ( nome_campo_1 tipo_1 NOT NULL, nome_campo_2 tipo_2, ... nome_campo_n tipo_n, PRIMARY KEY(campo_x,...) );
Comandos DDL
Tipos de dados definem os tipos de informao que podem ser inseridos em um campo. Abaixo os tipos suportados por um banco de dados Oracle: VARCHAR(N) : Permite a incluso de dados alfanumricos com tamanho prdefinido. O nmero de caracteres definido entre os parnteses.Limite de 4000 bytes. NUMBER(N,D) : Permite a incluso de nmeros positivos ou negativos de ponto flutuante. N corresponde ao nmero mximo de Digitos, sem considerar o ponto decimal e D o nmero mximo de casas decimais. Limite = 38 dgitos CHAR(N) : Permite a incluso de caracteres. N corresponde ao tamanho fixo do campo em bytes. Limite =2000 bytes. Se um dado ocupar menos que o definido, ser completado com espaos em branco direita DATE : Colunas do tipo DATE ocupam sempre 7 bytes internamente. A faixa de datas no Oracle 9i vai de 01-janeiro-4712 a.C at 31-dezembro-9999 d.C. Alm da data(dia, ms e ano), o tipo DATE tambm contm o horrio(hora, minuto e segundo). Para preciso de fraes de segundo, considerar o tipo de dado TIMESTAMP
Comandos DDL
Introduo ao SQL - Tipos de Dados
Exemplo: Como exemplo do uso do comando CREATE TABLE, imaginemos a necessidade de uma tabela que deva possuir os dados dos clientes de uma loja. CREATE TABLE Cliente ( Codigo INT NOT NULL, Nome VARCHAR (60) NOT NULL, Data_Nascimento DATE, Telefone CHAR (8), PRIMARY KEY (Codigo) );
Comandos DDL
Introduo ao SQL - Tipos de Dados
Neste comando, criamos uma tabela chamada Cliente. Esta tabela contm quatro campos:
O primeiro campo o Cdigo do cliente. Este campo ser utilizado como chave primria de forma que no poder se repetir nunca. Desta forma o campo deve ser sempre preenchido (NOT NULL), numrico do tipo inteiro (INT).
O campo Nome do tipo VARCHAR (60), ou seja aceita dados alfa-numricos com at 60 caracteres. No entanto se um nome for inserido com menos de 60 caracteres, o nmero de bytes consumidos pelo campo ser de acordo com o nome inserido.
O campo de Data_Nascimento do tipo DATE, ou seja, uma data, que no entanto no de preenchimento obrigatrio (por isto no foi declarado o NOT NULL). O campo Telefone foi determinado como sendo alfa-numrico com oito caracteres definidos, e mesmo que sejam utilizados menos caracteres, o nmero de bytes consumidos sero sempre os mesmos independente dos dados. Isto til para dados alfanumricos que no variam de tamanho, como o caso de UF no Brasil, cuja abreviao sempre so de dois caracteres.
A instruo PRIMARY KEY define qual dos campos ser a chave primria e no pode ser repetido, sendo o diferenciador entre os diversos clientes que sejam inseridos nesta tabela.
Regras de Integridade
Ao criarmos uma tabela dentro de um banco de dados devemos ter em mente as Regras de Integridade, que garantam a consistncia, integridade e no redundncia dos dados. Entre estas regras podemos englobar as chaves primrias, checagem e chave estrangeira.
Regras de Integridade
Checagem
Podemos inserir em uma tabela depois do campo chave primria e antes do ltimo parntese a clusula: CHECK Nome _Campo IN (valor1 , valor2, valor n); Esta clusula fora a um campo a aceitar apenas os valores especificados entre os parnteses. Isto pode ser til para definir, por exemplo, campos como sexo. Desta forma foramos as opes atravs de: CHECK Sexo IN ('M','F');
Regras de Integridade
Unco Est Contraint determina que uma coluna no poder ter 2 linhas com o mesmo valor. No Nulo Determina que a coluna tem preenchimento obrigatrio
Comandos do SGDB
DESCRIBE
Aps criarmos uma tabela, elas podem ser manipuladas de diversas formas, inserindo, alterando ou excluindo dados. Podemos visualizar a estrutura e campos de uma tabela criada utilizando o comando DESCRIBE ou DESC: DESCRIBE Nome_Tabela; Ou: DESC Nome_Tabela;
Comandos do SGDB
DESCRIBE
Aps criarmos uma tabela, elas podem ser manipuladas de diversas formas, inserindo, alterando ou excluindo dados. Podemos visualizar a estrutura e campos de uma tabela criada utilizando o comando DESCRIBE ou DESC: DESCRIBE Nome_Tabela; Ou: DESC Nome_Tabela;
Comandos DDL
O Data Definition Language parte (DDL) das tabelas de banco de dados SQL permite que seja criado, modificado ou excludo. Ns tambm podemos definir ndices (chaves), especifique as ligaes entre as tabelas, e impor restries entre as tabelas do banco de dados.
Comandos DML
SQL (Structured Query Language) uma sintaxe para a execuo de consultas. Mas a linguagem SQL inclui tambm uma sintaxe para atualizar, inserir e excluir registros. Estes comandos de consulta e atualizao, juntos, formam a linguagem de manipulao de dados (DML) parte de SQL: SELECT - extrai dados de uma tabela de banco de dados UPDATE - atualiza os dados em uma tabela de banco de dados DELETE - exclui dados de uma tabela de banco de dados INSERT INTO - insere novos dados em uma tabela de banco de dados
Comando DML
O Comando de Consulta nas tabelas :
SELECT LastName FROM Persons
Resultado:
Sintax SELECT
A instruo SELECT usado para selecionar dados de uma tabela. O resultado tabular armazenado em uma tabela de resultados (o chamado conjunto de resultados).
Syntax
Sintax SELECT
Para selecionar as colunas com o nome lastName" e FirstName", use uma instruo SELECT como este: SELECT LastName, FirstName FROM Persons
Persons
vsledok
Sintax SELECT
Selecionando todas Colunas
Para Selecionar todas colunas da tabela Persons use o simbolo *
SELECT Distinct
A palavra-chave DISTINCT usada para retornar somente valores distintos (diferentes). A instruo SELECT retorna informaes de colunas da tabela. Mas o que se s deseja selecionar elementos distintos? Com o SQL, tudo o que precisamos fazer adicionar uma palavra-chave DISTINCT para a instruo SELECT:
SELECT Distinct
Para selecionar todos valores da coluna de nome "Company" demos usar SELECT :
Sega
W3Schools Trio W3Schools
3412
2312 4678 6798
Trio
W3Schools
SELEC Distinct
Para selecionar apenas os valores diferentes de a coluna denominada "Company" usamos uma instruo SELECT DISTINCT assim
Trio
W3Schools
4678
6798
SELECT Distinct
The WHERE clause is used to specify a selection criterion. The WHERE Clause To conditionally select data from a table, a WHERE clause can be added to the SELECT statement.
Clusula WHERE
Com a clusula WHERE, os seguintes operadores podem ser usados:
Operator = <> > < >= <= BETWEEN LIKE Description Equal Not equal Greater than Less than Greater than or equal Less than or equal Between an inclusive range Search for a pattern
Nota: Em algumas verses do SQL o operador <> pode ser escrita como =!
Clusula WHERE
Para selecionar apenas as pessoas que vivem na cidade "Sandnes", que adicionar uma clusula WHERE para a instruo SELECT:
Aspas
Note que ns usamos aspas simples em torno dos valores condicional nos exemplos. SQL usa aspas simples em torno de valores de texto (a maioria dos sistemas de banco de dados tambm aceitam aspas). Valores numricos no deve ser colocada entre aspas. Para valores de texto:
Este o correto:
SELECT * FROM Persons WHERE FirstName='Tove'
Este o Errado::
SELECT * FROM Persons WHERE FirstName=Tove
Condio LIKE
A condio LIKE usado para especificar uma busca por um padro em uma coluna.
Syntax
SELECT column FROM table WHERE column LIKE pattern
A "%" sinal pode ser usado para definir wildcards (faltando letras no padro) antes e aps o padro.
Condio LIKE
A seguinte instruo SQL retornar pessoas com nomes que comeam com um 'O':
Condio LIKE
A seguinte instruo SQL retornar pessoas com primeiros nomes que contenham o padro 'la':
INSERT INTO
A instruo INSERT INTO utilizado para inserir novas linhas em uma tabela.
Syntax
INSERT INTO table_name
Voc tambm pode especificar as colunas para o qual voc deseja inserir dados: INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)
INSERT INTO
LastName Pettersen FirstName Kari Address Storgt 20 City Stavanger
SQL statement: INSERT INTO Persons VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')
INSERT INTO
LastName
Pettersen Hetland
FirstName
Kari Camilla
Address
Storgt 20 Hagabakka 24
City
Stavanger Sandnes
Especificando a coluna no SQL: INSERT INTO Persons (LastName, Address) VALUES ('Rasmussen', 'Storgt 67')
LastName
Pettersen Hetland Rasmussen
FirstName
Kari Camilla
Address
Storgt 20 Hagabakka 24 Storgt 67
City
Stavanger Sandnes
UPDATE
Syntax
UPDATE table_name SET column_name = new_value WHERE column_name = some_value
UPDATE
FirstName Fred
City Stavanger
UPDATE
FirstName Fred
City Stavanger
UPDATE Person
SET Address = 'Stien 12', City = 'Stavanger' WHERE LastName = 'Rasmussen'
LastName Nilsen Rasmussen FirstName Fred Nina Address Kirkegt 56 Stien 12 City Stavanger Stavanger
DELETE
A instruo DELETE usado para apagar linhas de uma tabela.
Syntax
DELETE FROM table_name
DELETE
LastName Nilsen Rasmussen FirstName Fred Nina Address Kirkegt 56 Stien 12 City Stavanger Stavanger
LastName Nilsen
FirstName Fred
Address Kirkegt 56
City Stavanger
Quem reclamar de nota de prova , que a prova estava dificil, que o tempo foi pouco, etc...
Perde 5 pts.