Buscar

Linguagem de Programação de Banco de Dados

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Linguagem de Programação de Banco de Dados
- Criando Tabelas
O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma na linguagem SQL padrão:
CREATE TABLE <tabela>
(<descrição das colunas>);
(<descrição das chaves>);
Em que: 
· <tabela> é o nome da tabela a ser criada.
· <descrição das colunas> é uma lista de colunas (campos) e seus respectivos tipos de dados. O tipo de dado é determinado quando a tabela é criada e não pode ser alterado posteriormente.
Os tipos de dados existentes são:
	Para Dados
	Tipos
	Caracteres
	Char(n), varchar(n), nvarchar(n), nchar(n)
	Numérico exato
	Decimal(p,e) ou numeric(p,e)
	Numérico aproximado
	Float, real
	Numérico inteiro
	Int, smallint, tinyint
	Monetário
	Money, smallmoney
	Data e hora
	Datetime, smalldatetime, date, time
	Binário
	Binary(n), nbinary(n)
	Texto e imagem
	Text, image, ntext
	outros
	Bit, timestamp
· Para dados contendo caracteres:
Char(n), será armazenado um número fico de caracteres. Por exemplo, uma coluna do tipo char (30) tem sempre 30 caracteres. Se forem informados menos, o restante será completado com espaços.
varchar(n) armazena uma quantidade de variável de caracteres até o máximo informado.
Os tipos nchar(n) e nvarchar(n) armazenam dados Unicode, de comprimento fico ou variável, e usam o conjunto de caracteres UNICODE UCS-2.
Text é usado para colunas com dados “memo”, ou seja, com texto de tamanho variável
Ntext armazena dados Unicode do tamanho variável.
Datetime armazena valores contento a data e hora, com precisão de 1/300 de segundos, entre 1° de janeiro de 1753 e 31 de dezembro de 9999. 
Smalldatetime armazena datas e horas de 1° de janeiro de 1900 até 6 de junho de 2076 com precisão de 1 minuto.
· Numéricos:
Decimal (9,2) permite guardar sete dígitos entes do ponto decimal e dois após, num total de nove, assim o maior valor possível é 9999999,99.
Os tipos numéricos inexatos, float e real, armazenam dados numéricos, mas nem sempre mantêm a precisão suficiente para armazenar corretamente números de vários dígitos.
Money é usado para valores monetários, ocupando 8 bytes em disco e permitindo valores entre + e – 922 trilhões. 
Smallmoney permite valores de + e – 214 mil e ocupa 4 bytes em disco.
Int permite armazenar até +/-2.147.483.647
Smallint permite +/-32767, permitindo números não negativos de 0 a 255.
Os tipos “numéricos exatos”, decimal e numeric, permitem armazenar dados exatos sem perdas devido a arredondamento. Ao usar esses tipos, você pode especificar uma precisão, que indica quantos dígitos podem ser usados no total de uma escala, que indica quantos dígitos podem ser usados à direita do ponto.
binary(n) e nbinary(n) são usados para dados que o Microsoft SQL Server 2088 não interpreta
bit armazena valor 1 ou 0. 
Uma coluna do tipo timestamp não pode ser alterada pelo usuário. Ela é definida automaticamente com a data e hora atual quando a linha é inserida ou atualizada.
· Alguns campos podem receber o valor NULL (nulo) e o campo definido como chave primária, além de não poder receber nulo (NOT NULL), deve ser um campo UNIQUE (sem repetições – chave primária)
· <descrição das chaves> é a lista de colunas tratadas como chave estrangeira.
CREATE TABLE cliente (
Codigo_cliente SMALLINT NOT NULL UNIQUE,
Nome_cliente CHAR (20),
Endereco CHAR (30),
Cidade CHAR (15)
);
CREATE TABLE pedido (
numero_pedido INT NOT NULL UNIQUE,
prazo_de_entrega SMALLINT NOT NULL,
código_cliente SMALLINT NOT NULL,
FOREIGN KEY (codigo_cliente) REFERENCES cliente
);
- Alteração da Estrutura das Tabelas
Para alterar uma tabela, utiliza-se o comando ALTER TABLE.
Adicionar uma chave primária (PRIMARY KEY) é feito com a inclusão de uma restrição na tabela, uma constraint, e a sua sintaxe é:
ALTER TABLE cliente ADD CONSTRAINT PK_Cliente PRIMARY KEY (codigo_cliente)
Adicionar uma chave estrangeira (FOREIGN KEY/REFERENCES) também se realiza com a inclusão de uma restrição na tabela, uma constraint, e a sua sintaxe é:
ALTER TABLE pedido 
ADD CONSTRAINT FK_Pedido
FOREIGN KEY (codigo_cliente) REFERENCES Cliente (codigo_cliente)
Para acrescentar colunas a uma tabela, a sintaxe é:
ALTER TABLE produto ADD tipo_produto char (20) NULL;
ALTER TABLE produto ADD tipo_produto char (20) NOT NULL;
E da mesma forma podemos agora retirar esta coluna da tabela:
ALTER TABLE produto DROP COLUMN tipo_produto
No caso de a tabela possuir uma coluna que tem uma constraint associada, você deve primeiro eliminar a constraint para depois realizar a alteração de eliminar a coluna.
ALTER TABLE pedido DROP CONSTRAINT FK_Pedido;
ALTER TABLE pedido DROP COLUMN codigo_cliente;
- Criação de Ações em Cascata
ON DELETE CASCADE e ON UPDATE CASCADE
A utilização de uma clausula ON DELETE CASCADE em uma declaração de constraint de FOREIGN KEY especifica que se houver uma tentativa de apagar uma linha com uma chave primaria referenciada por chaves estrangeiras em linhas existentes em outras tabelas, também serão apagadas todas as linhas que contêm essas chaves estrangeiras.
 ALTER TABLE pedido ADD CONSTRAINT FK_Pedido
FOREIGN KEY (codigo_cliente) REFERENCES cliente (codigo_cliente)
ON DELETE CASCADE;
A opção de ON UPDATE CASCADE impede que sejam feitas mudanças na chave referenciada caso existam linhas referenciando o valor desta.
ALTER TABLE Pedido ADD CONSTRAINT FK_Pedido
FOREIGN KEY (Codigo_cliente) REFERENCES Cliente (codigo_cliente)
ON DELETE CASCADE
ON UPDATE CASCADE;
Podemos utilizar as duas clausulas juntas sem problemas.
- Extração de Dados de uma Tabela: SELECT
Uma das operações mais comuns, realizadas com um banco de dados, é examinar (selecionar) as informações armazenadas. Essas operações são realizadas pelo comando SELECT.
O comando SELECT tem palavras-chave em um comando básico:
· SELECT: especifica as colunas da tabela que queremos selecionar.
· FROM: especifica as tabelas.
· WHERE: especifica a condição de seleção das linhas.
SELECT <nome(s) da(s) coluna(s)> FROM <tabela>
SELECT * FROM <tabela>
Manipulação de Dados Numéricos: podem ser usados em qualquer coluna numérica, incluindo coluna de tipo de dado int, smallint, tinyint, float, real, Money, smallmoney
SELECT nome_vendedor, salario_fixo = (salario_fixo * 2) FROM vendedores
A cláusula WHERE: em um comando SELECT especifica quais linhas queremos obter baseada em condições de seleção.
SELECT <nome(s) da(s) coluna(s)> FROM <tabela> WHERE <condições de seleção>
SELECT nome_cliente, endereço 
FROM cliente 
WHERE (CEP >= ‘30077000’ AND CEP <= ‘300790000’) 
OR cidade = ‘São Paulo’
· Operadores BETWEEN e NOT BETWEEN: propicia a pesquisa por uma determinada coluna e selecionando as linhas cujo valor da coluna esteja dentro de uma faixa determinada de valores, sem a necessidade dos operadores >=, <= e AND. Tanto VALOR1 quanto VALOR2 precisam ser do mesmo tipo de dado da coluna.
SELECT código_produto, descrição_produto
FROM produto 
WHERE valor_unitario BETWEEN 0.32 and 2.00
· Operadores Baseados em String de Caracteres LIKE e NOT LIKE: só trabalham com colunas que sejam do tipo CHAR. Elas têm praticamente o mesmo funcionamento que os operadores = e <>, porém o poder desses operadores está na utilização dos símbolos (%) e (_) que podem fazer o papel de “curinga”.
SELECT <nome da coluna> LIKE <valor>;
SELECT <nome da coluna> NOT LIKE <valor>;
	%
	Substitui uma palavra
	_
	Substitui um caractere
· Operadores Baseados em Listas IN e NOT IN: pesquisam registros que estão ou não no conjunto de <valores> fornecido. Eles minimizam o uso dos operadores =, <>, AND e OR.
WHERE <nome da coluna> IN <valores>;
WHERE <nome da coluna> NOT IN <valores>;
· Operadores Baseados em Valores Desconhecidos: IS NULL e IS NOT NULL - A utilização do valor nulo é muito problemática, pois cada implementação da linguagem pode adotar qualquer representação para o valor nulo.
WHERE <nome da coluna> IS NULL;
WHERE <nome da coluna> IS NOT NULL;
- Ordenação dos Dados Selecionados
A SQL prevê a cláusula ORDER BY para realizar a ordenação dos dados 
SELECT <nome da coluna> FROM <tabela> WHERE <condições>
ORDER BY <nome
das colunas> [ASC/DESC] ou ORDER BY <número da coluna>
· Utilização de Funções de Agregação sobre Conjuntos
· Busca de Máximos e Mínimos (MAX, MIN)
· Totalização dos Valores de Colunas (SUM)
· Cálculo de Médias (AVG)
· Contagem dos Registros (COUNT)
- Utilização da Cláusula DISTINCT
A cláusula DISTINCT, aplicada em uma consulta, foi criada para não permitir que certas redundâncias causem problemas.
A cláusula DISTINCT elimina repetições.
SELECT DISTINCT unidade_produto FROM produto
OBS: com a utilização de DISTINCT não se classificam os dados de saída
- Agrupamento de Informações Selecionadas (GROUP BY e HAVING)
A cláusula organiza o sumário de dados em grupos, produzindo informações sumarizada para os grupos definidos na tabela objeto de seleção.
A cláusula HAVING realiza as restrições das linhas resultantes da mesma forma que a cláusula WHERE faz em um SELECT
SELECT <nome da coluna> FROM <tabela> WHERE <condições> 
GROUP BY <nome das colunas> HAVING <condições>
- Recuperação de Dados de Várias Tabelas (JOINS)
· O Conceito de qualificadores de nome: os qualificadores de nome são utilizados em uma consulta para efetivar a junção (JOIN) entre tabelas.
SELECT <nome da tabela.nome da coluna [nome da tabela.nome da coluna... ..]>
FROM <nome da tabela [TIPO DE JOIN] nome da tabela ON condição de pesquisa
WHERE [condição de pesquisa...]
Quando usamos INNER JOIN como tipo de join, são incluídas somente as linhas que satisfazerem a condição do join.
Quando usamos CROSS JOIN, incluímos cada uma das combinações de todas as linhas entre as tabelas.
Quando usamos OUTER JOIN, incluímos as linhas que satisfazem a condição de join e as linhas restantes de uma das tabelas join.
· Um OUTER JOIN somente pode ser realizado entre duas tabelas, não mais que duas tabelas.
- Inserir, Modificar e Apagar Registros
· Adição
INSERT INTO <nome da tabela> (<nome das colunas>) VALUES (<valores>)
· Adição de Registros com um SELECT
INSER INTO <nome da tabela> (<nome das colunas>) 
SELECT <nome das colunas> FROM <nome da tabela> WHERE <condição>
· Atualização de um Registro – UPDATE
UPDATE <nome da tabela> SET <nome das colunas> = valor WHERE <condições>
· Apagar Registros da Tabela 
DELETE FROM <nome da tabela> WHERE <condições>

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando