SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;
Transcript of SGBD. Prof. Marcus Vinícius Linguagem SQL Criando a primeira Base de Dados: CREATE DATABASE ;
SGBD
• Prof. Marcus Vinícius
Linguagem SQL
• Criando a primeira Base de Dados:
CREATE DATABASE <nome do banco>;
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)
TIPOS DE COLUNAS:
• 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.
• 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
• 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.
•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.
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
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
);
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)
);
• MANIPULAÇÃO DE TABELAS:
• DROP
– DROP TABLE nome_tabela;
• Limpar Conteúdo da Tabela
– TRUNCATE TABLE nome_tabela;
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;
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);
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.
SQL - Linguagem
DELETE = exclui registros
DELETE FROM <table> WHERE campo = valor;
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
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;
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;
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
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
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)
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;
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