26
SGBD

SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

Embed Size (px)

Citation preview

Page 1: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SGBD

Page 2: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

• Prof. Marcus Vinícius

Page 3: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

Linguagem SQL

Page 4: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

• Criando a primeira Base de Dados:

CREATE DATABASE <nome do banco>;

Page 5: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

AS SEGUINTES CONVENÇÕES SÃO UTILIZADAS NA DESCRIÇÃO DOS TIPOS DE COLUNAS:

UNSIGNED => Modificador que faz com que uma coluna aceite apenas os números positivos (sem sinal). Somente para tipos Integer.

ZEROFILL => Adiciona zeros de preenchimento à esquerda de cada número. Por exemplo: um campo INT(5) ZEROFILL exibirá o número 235 como 00235.

AUTO_INCREMENT => Tipo especial de coluna numérica que pode ser atualizada automaticamente. Quando um valor NULL (ou 0) for inserido na coluna, serão substituídos automaticamente pelo próximo número na sequência da coluna.

M => Representa o número de caracteres usado para exibir os valores da coluna.

D => Número de casas decimais em campos no formato ponto flutuante (0 a 30)

Page 6: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

TIPOS DE COLUNAS:

Page 7: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

• TINYINT(M) => Um inteiro de tamanho muito pequeno.

– Atributos: AUTO_INCREMENT, UNSIGNED, ZEROFILL

– Intervalo: Entre -128 e 127 com sinal ou entre 0 e 255 sem sinal.

• SMALLINT(M) => Um inteiro pequeno.

– Atributos: AUTO_INCREMENT, UNSIGNED, ZEROFILL

– Intervalo: Entre -32768 e 32767 com sinal ou entre 0 e 65535 sem sinal.

– Intervalo: Entre -9223372036854775808 e 9223372036854775807 com sinal e entre 0 e 18446744073709551615 sem sinal.

Page 8: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

• MEDIUMINT(M) => Um inteiro de tamanho médio.

– Atributos: AUTO_INCREMENT, UNSIGNED, ZEROFILL

– Intervalo: Entre -8388608 e 8388607 com sinal ou entre 0 e 16777215 sem sinal.

• INT(M) ou INTEGER(M) => Um inteiro de tamanho normal.

– Atributos: AUTO_INCREMENT, UNSIGNED, ZEROFILL

– Intervalo: Entre -2147483648 e 2147483647 com sinal ou entre 0 e 4294967295 sem sinal.

• BIGINT(M) => Um inteiro grande.

– Atributos: AUTO_INCREMENT, UNSIGNED, ZEROFILL

Page 9: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

• FLOAT(M,D) => Um número de ponto-flutuante com precisão simples.

– Atributos: ZEROFILL

– Intervalo: Entre -3.402823466E+38 e -1.175494351E-38, 0 (zero) e entre 1.175494351E-38 e 3.402823466E+38.

• DATE => Uma data no formato “YYYY-MM-DD”.

– Intervalo: Entre ‘1000-01-01’ e ‘9999-12-31’.

• DATETIME => Uma combinação de data e hora no formato “YYYY-MM-DD HH:MM:SS”.

– Intervalo: Entre “1000-01-01 00:00:00” e “9999-12-31 23:59:59”.

• TIMESTAMP(M) => Um timestamp (combinação de data e hora corrente) no formato YYYYMMDDhhmmss.

– Intervalo: Entre 19700101000000 e algum dia do ano 2037.

Page 10: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

•TIME => Um horário no formato “HH:MM:SS”.

•YEAR => Um ano, no formato YYYY.

•CHAR(M) => Um string de caracteres de tamanho fixo (0 a 255 caracteres).

•VARCHAR(M) => Um string de caracteres de tamanho variável (0 a 65.535 caracteres).

•Obs.: Estes não são todos os tipos de colunas disponíveis; são apenas os mais comuns utilizados no dia a dia. Para uma referência completa, verificar a bibliografia básica.

Page 11: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem– Tipos de Restrições ou Constraints

• Constraint = é dar um nome conhecido a uma restrição/regra.

• As regras podem ser definidas nos comandos CREATE ou ALTER TABLE. O objetivo é definir valores válidos para os comandos INSERT, UPDATE.

– NULL ou NOT NULL

– UNIQUE = valor único dentro da coluna

– PRIMARY KEY = Chave primária

– FOREIGN KEY = Chave estrangeira

– CHECK = faz uma validação antes de gravar o valor

– DEFAULT = valor padrão a ser gravado

– COMPUTED BY = campo calculado

Page 12: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem

• CREATE TABLE - Cria uma nova tabela com seus campos e define as restrições de campo.

CREATE TABLE nome_tabela (

campo1 tipo (tamanho) restrição,

campo2 tipo (tamanho) restrição,

campon tipo (tamanho) restrição

);

Page 13: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

EXEMPLO:

CREATE TABLE empregado (

id INT AUTO_INCREMENT,

nome VARCHAR(15) NOT NULL,

endereco VARCHAR(50),

sexo CHAR(1) CHECK(SEXO = ‘M’ OR SEXO = ‘F’),

salario FLOAT(7,2),

PRIMARY KEY(id)

);

Page 14: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

• MANIPULAÇÃO DE TABELAS:

• DROP

– DROP TABLE nome_tabela;

• Limpar Conteúdo da Tabela

– TRUNCATE TABLE nome_tabela;

Page 15: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

ALTER TABLE

• ALTER TABLE produto ADD descricao varchar(100);

• ALTER TABLE dependente ADD constraint FOREIGN KEY(cpfe) REFERENCES empregado(cpf);

• ALTER TABLE produto CHANGE nome nome_prod CHAR(75);

• ALTER TABLE produto DROP COLUMN descricao;

• Renomear Tabela:

– ALTER TABLE nome_tabela RENAME TO novonome_tabela;

Page 16: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem

INSERT = insere registros na tabela:

INSERT INTO <table> (coluna_1, coluna_2, ...coluna_n) VALUES (valor_1, valor_2, ...valor_n);

ou

INSERT INTO <table> VALUES (valor_1, valor_2, ...valor_n);

Page 17: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem

UPDATE = atualiza registros

UPDATE <table> SET campo = novo_valor

WHERE campo = antigo_valor;

Obs.: Cláusula WHERE indica uma condição para a realização da operação.

Page 18: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem

DELETE = exclui registros

DELETE FROM <table> WHERE campo = valor;

Page 19: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem

• Seleção de Colunas

• Sentença do Comando SELECT

• Uma pesquisa Simples deve conter:

• A cláusula SELECT – seleciona colunas envolvidas

• A cláusula FROM – especifica as tabelas envolvidas

• Uma pesquisa Complexa deve conter:

• A cláusula SELECT – seleciona colunas envolvidas

• A cláusula FROM – especifica as tabelas envolvidas

• A cláusula WHERE – restringe linhas selecionadas

Page 20: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem

• Principais opções de Sintaxe– * Seleciona todas as colunas das tabelas envolvidasSELECT *FROM cliente;

– DISTINCT – retorna somente uma cópia da linha que contem informação duplicada

SELECT DISTINCT *FROM cliente;

Page 21: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem

• Principais opções de Sintaxe– GROUP BY – função de grupo• HAVING – restringe os grupos de cada linha

retomada pelo GROUP BYSELECT cidade_cliFROM clienteGROUP BY cidade_cliHAVING COUNT (cidade_cli) >=3;

– ORDER BY – ordena as linhas retomadas por um comando, na ordem ASC ou DESC.SELECT cidade_cli, endereco

FROM clienteORDER BY codigo_cli DESC;

Page 22: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem (DML)

• Operadores de Comparação= igual!=, ^= e <> diferença> Maior< Menor>= Maior Igual<= Menor Igual

IN – Verifica se uma expressão existe em um dos membros especificados entre parênteses:

SELECT *FROM empregadoWHERE nome IN ( ‘JOSE’, ‘MARIA’);

NOT IN - valida como falso o exemplo anterior

Page 23: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem (DML)• Operadores de Comparação

• BETWEEN – valida expressões entre valoresSELECT nome FROM cliente WHERE salario BETWEEN 350 and

500;

• NOT BETWEEN – Nega a expressão anterior• LIKE – Compara duas strings de caracteres e verifica se elas possuem

algo em comum:

SELECT nome FROM cliente WHERE nome LIKE ‘A%’;SELECT nome FROM cliente WHERE nome LIKE ‘%A’;SELECT nome FROM cliente WHERE nome LIKE ‘%A%’;

• NOT LIKE – Negação da anterior.

• IS NULL – testar uma condição se ela é nula :

UPDATE cliente SET nome = ‘jose’ WHERE nome IS NULL;• IS NOT NULL – testar uma condição se ela não é nula

Page 24: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem (DML)

• Operadores Lógicos

– AND – satisfaz todas as comparações SELECT ... WHERE (x > z) AND (y = 2)

– OR – satisfaz uma das comparações SELECT ... WHERE (x > z) OR (y = 2)

– NOT – nega uma comparação SELECT ... WHERE not (x > z)

Page 25: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem (DML)

OUTROS OPERADORES:

– COUNT( ) – Retorna o número de linhas/registro SELECT COUNT(cod_dpto) FROM empregado;

– SUM( ) – retorna a soma dos valores de um campo;SELECT SUM(idade) FROM empregado;

– AVG( ) – retorna a media de valores de um campo; SELECT AVG(salario) FROM empregado;

– MIN( ), MAX( ) – retorna o valor mínimo ou máximo de um campo.SELECT MIN(salario), MAX(salario) FROM empregado;

Page 26: SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;

SQL - Linguagem (DML)

• OUTROS OPERADORES

– UPPER( ) – converte para maiúsculo o conteúdo de um campo

– LOWER( ) – converte para minúsculo o conteúdo de um campo

– APELIDO PARA COLUNAS E TABELASSELECT nome as n, idade as ida FROM cliente c, cidade ci