Comandos e Conceitos do SQL
1) O que significa a sigla SQL? Qual a finalidade dessa
linguagem? Como ela se divide? Quais são os comandos principais de cada
divisão? Explique-os resumidamente.
Structured Query Language, ou Linguagem de Consulta
Estruturada. Que tinha por objetivo demonstrar a viabilidade da implementação
do modelo relacional.
DML – Linguagem de Manipulação de Dados
Primeiro há os elementos da DML (Data Manipulation Language
– Linguagem de Manipulação de Dados). A DML é um subconjunto da linguagem usada
para inserir, atualizar e apagar dados.
• INSERT é usada para inserir um registro (formalmente uma
tupla) a uma tabela existente.
• UPDATE para mudar os valores de dados em uma ou mais
linhas da tabela existente.
• DELETE permite remover linhas existentes de uma tabela.
DDL – Linguagem de Definição de Dados
O segundo grupo é a DDL (Data Definition Language –
Linguagem de Definição de Dados). Uma DDL permite ao utilizador definir tabelas
novas e elementos associados. A maioria dos bancos de dados de SQL comerciais
tem extensões proprietárias no DDL.
Os comandos básicos da DDL são poucos
• CREATE cria um objeto (uma Tabela, por exemplo) dentro da
base de dados.
• DROP apaga um objeto do banco de dados.
Alguns sistemas de banco de dados usam o comando ALTER, que
permite ao usuário alterar um objeto, por exemplo, adicionando uma coluna a uma
tabela existente.
outros comandos DDL:
• ALTER TABLE
• CREATE
INDEX
• ALTER
INDEX
• DROP
INDEX
• CREATE VIEW
• DROP VIEW
DCL – Linguagem de Controle de Dados
O terceiro grupo é o DCL (Data Control Language – Linguagem
de Controle de Dados). DCL controla os aspectos de autorização de dados e
licenças de usuários para controlar quem tem acesso para ver ou manipular dados
dentro do banco de dados.
Duas palavras-chaves da DCL:
• GRANT – autoriza ao usuário executar ou setar operações.
• REVOKE – remove ou restringe a capacidade de um usuário de
executar operações.
outros comandos DCL:
• ALTER PASSWORD
• CREATE SYNONYM
DTL – Linguagem de Transação de Dados
• BEGIN WORK (ou START TRANSACTION, dependendo do dialeto
SQL) pode ser usado para marcar o começo de uma transação de banco de dados que
pode ser completada ou não.
• COMMIT envia todos os dados das mudanças permanentemente.
• ROLLBACK faz com que as mudanças nos dados existentes
desde que o último COMMIT ou ROLLBACK sejam descartadas.
COMMIT e ROLLBACK interagem com áreas de controle como
transação e locação. Ambos terminam qualquer transação aberta e liberam
qualquer cadeado ligado a dados. Na ausência de um BEGIN WORK ou uma declaração
semelhante, a semântica de SQL é dependente da implementação.
DQL – Linguagem de Consulta de Dados
Embora tenha apenas um comando, a DQL é a parte da SQL mais
utilizada. O comando SELECT permite ao usuário especificar uma consulta
(“query”) como uma descrição do resultado desejado. Esse comando é composto de
várias cláusulas e opções, possibilitando elaborar consultas das mais simples
às mais elaboradas.
2) Quais são os tipos de dados que a linguagem SQL padrão
(ANSI) suporta? Explique cada um resumidamente.
Os tipos de dados padrão do SQL apartir de 1999 são:
Tipo de Dados SQL
CHAR
VARCHAR
LONGVARCHAR
NUMERIC
DECIMAL
BIT
TINYINT
SMALLINT
INTEGER
BIGINT
REAL
FLOAT
DOUBLE
BINARY
VARBINARY
LONGVARBINARY
DATE
TIME
TIMESTAMP
BLOB
Abaixo segue uma relação dos tipos de dados básicos do SQL
Server:
TINYINT: Valores numéricos inteiros variando de 0 até 256
SMALLINT: Valores numéricos inteiros variando de –32.768 até
32.767
INT: Valores numéricos inteiros variando de -2.147.483.648
até 2.147.483.647
* BIGINT: Valores numéricos inteiros variando de
–92.23.372.036.854.775.808 até 9.223.372.036.854.775.807
BIT: Somente pode assumir os valores 0 ou 1. Utilizado para
armazenar valores lógicos.
DECIMAL(I,D) e NUMERIC(I,D): Armazenam valores numéricos
inteiros com casas decimais utilizando precisão. “I” deve ser substituído pela
quantidade de dígitos total do número e “D” deve ser substituído pela
quantidade de dígitos da parte decimal (após a vírgula). DECIMAL e NUMERIC
possuem a mesma funcionalidade, porém DECIMAL faz parte do padrão ANSI e
NUMERIC é mantido por compatibilidade. O SQL Server internamente armazena o
separador decimal como ponto (.) e o separador de milhar como vírgula (,),
idependente da configuração do Windows.
SMALLMONEY: Valores numéricos decimais variando de
-214.748,3648 até 214.748,3647
MONEY: Valores numéricos decimais variando de -922.337.203.685.477,5808
até 922.337.203.685.477,5807
REAL: Valores numéricos aproximados com precisão de ponto
flutuante, indo de -3.40E + 38 até 3.40E + 38
FLOAT: Valores numéricos aproximados com precisão de ponto
flutuante, indo de -1.79E + 308 até 1.79E + 308
SMALLDATETIME: Armazena hora e data variando de 1 de janeiro
de 1900 até 6 de junho de 2079. A precisão de hora é armazenada até os
segundos.
DATETIME: Armazena hora e data variando de 1 de janeiro de
1753 até 31 de Dezembro de 9999. A precisão de hora é armazenada até os
centésimos de segundos.
CHAR(N): Armazena N caracteres fixos (até 8.000) no formato
não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o
tamanho total especificado em N, o resto do campo é preenchido com espaços em
branco.
VARCHAR(N): Armazena N caracteres (até 8.000) no formato não
Unicode. Se a quantidade de caracteres armazenada no campo for menor que o
tamanho total especificado em N, o resto do campo não é preenchido.
TEXT: Armazena caracteres (até 2.147.483.647) no formato não
Unicode. Se a quantidade de caracteres armazenada no campo for menor que
2.147.483.647, o resto do campo não é preenchido. Procure não utilizar este
tipo de dado diretamente, pois existem funções específicas para trabalhar com
este tipo de dado.
NCHAR(N): Armazena N caracteres fixos (até 4.000) no formato
Unicode. Se a quantidade de caracteres armazenada no campo for menor que o
tamanho total especificado em N, o resto do campo é preenchido com espaços em
branco.
NVARCHAR(N): Armazena N caracteres (até 4.000) no formato
Unicode. Se a quantidade de caracteres armazenada no campo for menor que o
tamanho total especificado em N, o resto do campo não é preenchido.
NTEXT: Armazena caracteres (até 1.073.741.823) no formato
Unicode. Se a quantidade de caracteres armazenada no campo for menor que
1.073.741.823, o resto do campo não é preenchido. Procure não utilizar este
tipo de dado diretamente, pois existem funções específicas para trabalhar com
este tipo de dado.
3) Explique o comando SELECT. Sua sintaxe, características
básicas, Cláusula Where, operadores, conectores, subconsultas, funções de
agregação, cláusula order by, group by, having e compute by.
SELECT – Seleciona as colunas da consulta
FROM – Seleciona a(s) tabela(s)
WHERE – Permite criar condições para filtrar os dados
retornados na consulta
GROUP BY Agrupa dados na consulta.
HAVING Limita o resulta em uma condição estabelecida.
ORDER BY Especifica a coluna ou as colunas que serão
ordenadas na consulta
4) O que é uma visão (view) em SQL? Explique suas
propriedades, utilidades e os comandos para a sua manipulação.
Uma view é uma maneira alternativa de observação de dados de
uma ou mais entidades (tabelas), que compõem uma base de dados. Pode ser
considerada como uma tabela virtual ou uma consulta armazenada. Geralmente e
recomendável, uma view, implementada encapsulando uma instrução SELECT (busca
de dados para exposição), guarda os dados em uma tabela virtual, armazenando
também em cache, pois todas as consultas ao banco, encapsuladas ou não, ao
serem executadas, são armazenadas em cache. Por este motivo, pode ser mais
rápido ter uma consulta armazenada em forma de view, em vez de ter que
retrabalhar uma instrução.
O comando para criar uma view é o CREATE VIEW.
Exemplo:
CREATE VIEW comedias AS
SELECT *
FROM filmes
WHERE tipo = ‘Comédia’;
5) O que são procedimentos armazenados (stored procedure)?
Para que servem, o que eles permite fazer e quais comandos podemos utilizar no
seu corpo e para criá-los?
Procedimento armazenado ou Stored Procedure é uma coleção de
comandos em SQL para dispensamento de Banco de dados. Encapsula tarefas
repetitivas, aceita parâmetros de entrada e retorna um valor de status (para
indicar aceitação ou falha na execução). O procedimento armazenado pode reduzir
o tráfego na rede, melhorar a performance, criar mecanismos de segurança, etc.
Exemplo:
(MS-SQL Server)
Create
procedure busca
@nomedebusca
varchar (50)
as
select nome1, nome2
from nome_da_tabela
where nome = @nomedebusca
6) O que são gatilhos (TRIGGERS)? Para que servem, quais as
vantagens na sua utilização, como funcionam e como criá-los?
Gatilho ou trigger é um recurso de programação executado
sempre que o evento associado ocorrer.
É muito utilizada para ajudar a manter a consistência dos
dados ou para propagar alterações em um determinado dado de uma tabela para
outras. Um bom exemplo é um gatilho criado para controle de quem alterou a
tabela, nesse caso, quando a alteração for efetuada, o gatilho é “disparado” e
grava em uma tabela de histórico de alteração, o usuário e data/hora da
alteração.
Exemplo: (MS-SQL Server)
CREATE TRIGGER nome_do_gatilho ON dono.Nome_da_tabela
FOR INSERT (ou UPDATE ou DELETE)
AS
Codigo para execucao
Nenhum comentário:
Postar um comentário