segunda-feira, 28 de novembro de 2011

Comando 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.

A sigla SQL significa Structured Query Language, ou Linguagem de Consulta Estruturada. SQL apresenta uma série de comandos que permitem à definição dos dados (chamada DDL – Data Definition Language), que é composta, entre outros, pelos comandos CREATE, que é destinado a criação do Banco de Dados, das Tabelas que o compõe, além das relações existentes entre as tabelas. Ela é dividida em:

DML - Linguagem de Manipulação de Dados - Primeiro há os elementos da DML (Data Manipulation Language). 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.

CREATE cria um objeto (uma Tabela, por exemplo) dentro da base de dados.
DROP apaga um objeto do banco de dados.

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.

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.

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.

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): Armazenam 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): Armazenam 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 é usada para selecionar um subconjunto de tuplas de uma relação as quais devem satisfazer uma condição de seleção.

SELECT {A1, A2,..., AN | * } FROM R1, R2, ...,RN WHERE P

EQUIVALE A

ΠA1, A2,..., AN (ΣP (R1 X R2 X...X RN))

ONDE CADA AI REPRESENTA UM ATRIBUTO E CADA RI É UMA RELAÇÃO.


Caso a cláusula where seja omitida, o predicado P é verdadeiro. A lista A1, A2,..., An de atributos pode ser substituída por um asterisco (*) para selecionar todos os atributos de todas as relações presentes na cláusula from.

4) O que é uma visão (view) em SQL? Explique suas propriedades, utilidades e os comandos para a sua manipulação.

Uma visão(view) é qualquer relação que não faz parte do modelo lógico do banco de dados, mas é visível ao usuário. Sua propriedade da visão é composta com linhas e colunas como se fosse uma tabela real, a utilidade esta ligada ao aumento de segurança obtendo assim uma visão limitada e controlada dos dados que podem ser obtidos e a performance que utilizada consulta otimizada.

5) Os 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?

São procedimentos executados no servidor, ele serve como dispensamento de banco de dados eles permitem encapsular tarefas repetitivas aceita parâmetros de entrada e retorno um valor de status o que acaba reduzindo o trafego na rede e melhorando a performance.

Comandos utilizados:

Create procedure busca
@nomedebusca varchar(50)
as
select nome1,nome2
from nome_da tabela
where nome = @nomebusca

6) Os que são gatilhos (TRIGGERS)? Para que servem, quais as vantagens na sua utilização, como funcionam e como criá-los?

Os Gatilhos ou TRIGGERS são maneiras para executar um programa quando o evento associado ocorrer, ela mantém a consistência dos dados ou então propaga as alterações de dados de uma tabela para outras, sua vantagem é que quando ocorrer alguma alteração na tabela ele é disparado e deixa gravadas todas as informações do usuário que fez a alteração, eles são criados e funcionam da seguinte forma:

CREATE TRIGGER nome_do_gatilho ON dono.nome_da_tabela
FOR INSERT (ou UPDATE OU DELETE)
As
Código da execução

Nenhum comentário:

Postar um comentário