20 Perguntas e respostas sobre a linguagem SQL para Banco de Dados

O que significa SQL? A linguagem SQL é a mesma em todos os bancos de dados? Quais as diferenças entre DML e DDL, Para que serve a PK (chave primária) e FK(chave estrangeira)?

 

1 – O que significa SQL?

SQL significa Structure Query Language ou Linguagem de Consulta em Banco de Dados. Ela é usada para acesso a banco de dados relacionais como SQL Server, MySQL, Oracle, Postgree, entre outros.

2 – A linguagem SQL é a mesma em todos os bancos de dados?

Não. O SQL foi padronizado pela ANSI, contudo as empresas de banco de dados tem autonomia sobre seus bancos e uma versão adaptada para cada banco é comum encontramos. Mas boa parte dos comandos funcionam da mesma forma.

3 – É possível usar SQL em todos os bancos?

Em tese sim. Todos os bancos relacionais a usam, mas há outras formas de armazenar dados sem o uso de um software de banco relacional. Neste caso não se aplicaria.

4 – O que é DML?

DML é Data Manipulation Language, ou Linguagem de Manipulação de Dados. Faz parte os comandos usados para inserir (INSERT INTO), atualizar (UPDATE), excluir (DELETE) e realizar consultas ao banco (SELECT).

5 – O que é DDL?

DDL é Data Definition Language, ou Linguagem de Definição de Dados. Faz parte os comandos usados para criar objetos no banco (CREATE), modificar as estruturas de um objeto (ALTER) e apagar objetos (DROP).

6 – Os comandos SQL precisam ser escritos em letras maiúsculas?

Não, mas frequentemente encontramos exemplos assim. O motivo é pedagógico e não técnico.

7 – Comandos SQL podem ser escritos em uma única linha ou precisa ser separado em várias linhas?

Pode ser colocado em várias linhas. O que finaliza um comando em SQL é o ponto-e-vírgula, portanto não importante se ele está escrito em uma única linha ou em várias linhas.

8 – Para que serve o ponto-e-vírgula no final das linhas?

Como dito acima, serve para terminar um comando ou instrução SQL.

9 – Para que serve a PK (chave primária) e FK(chave estrangeira)?

Uma PK – Primary Key ou chave primária serve para identificar uma entidade ou seja, permitir que o objeto seja identificado de forma única. Para isso, quando um campo é marcado como PK o banco não permitirá que valores suplicados sejam gravados ali.

Já a FK – Foreign Key ou chave estrangeira serve para identificar um objeto que está sendo usado ou referenciado em outra tabela. Este é o princípio de banco de dados relacionais. Uma chave estrangeira só poderá ser estrangeira se ela for primária em outra tabela e a partir deste relacionamento o banco faz o gerenciamento, inclusive impedindo que uma chave primária seja alterada ou removida caso ela tenha referência com uma chave estrangeira.

10 – É possível fazer uma subconsulta?

É uma consulta dentro de outra consulta. Veja um exemplo:

SELECT produto, quantidade, (SELECT sum(valor) from pedidos where idProduto=produtos.idProduto) as total
FROM produtos

11 – O que são funções de grupo?

São funções usadas para realizar agrupamento de valores em uma consulta. Sempre que uma função de grupo for usada, deverá também ser usado o GROUP BY conforme modelo abaixo.

SELECT produto, sum(valor)  as total 
FROM produtos
GROUP BY produto

Algumas funções:

  • SUM – Soma valores de um campo
  • AVG – Realiza a média aritmética dos valores de um campo
  • COUNT – Conta a quantidade de registros

12 – O que são operadores lógicos?

O uso de um operador lógico faz com que duas condições tenham de produzir um resultado único. Uma linha só poderá ser retornada se o resultado global da condição for verdadeiro.

A tabela abaixo mostra os operadores lógicos disponíveis em SQL:

  • AND Retorna TRUE se ambas as condições forem verdadeiras
  • OR Retorna TRUE se uma das condições for verdadeira
  • NOT Retorna TRUE se a condição seguinte for falsa

No exemplo abaixo uma linha será retornada se o empregado for do estado de SP e o seu salário maior que 2200.

SELECT nome, salario, cidade, estado 
FROM empregados 
WHERE estado=’SP’ and salario > 2200

13 – O que são operadores matemáticos?

São os operadores tradicionais da matemática que podem ser usados em expressões SQL para trabalhar com valores matemáticos. São eles:

  • +(somar)
  • -(subtrair)
  • *(multiplicar)
  • /(dividir)

14 – O que são operadores de comparação?

Os operadores de comparação são usados em condições que comparam uma expressão a outro valor ou expressão. A tabela abaixo mostra os operadores:

  • = Igual a
  • > Maior que
  • >= Maior ou igual a que
  • < Menor que
  • <= Menor ou igual a que
  • <> Diferente de
Exemplo:
SELECT idEmpregado, nome, salario 
FROM empregados 
WHERE idEmpregado=8

No exemplo acima, usamos o igual para criar um filtro na cláusula where, este filtro diz que os dados retornados deverão ser do código de empregado IGUAL a 8.

15 – Como fazer consulta em duas ou mais tabelas ao mesmo tempo?

Para isso é necessário usar o operador JOIN (junção). Os operadores de JOIN podem ser:

  • CROSS JOIN
  • INNER JOIN
  • LEFT JOIN
  • RIGHT JOIN
  • FULL OUTER JOIN

Exemplo de INNER JOIN:

SELECT nome, modelo, cor, ano
FROM  marcas INNER JOIN  carros 
ON carros.idMarca = marcas.idMarca

16 – O que é stored procedure?

Stored procedures ou procedimentos armazenados são instruções SQL que podem ser gravadas no banco e chamadas a qualquer momento.  Elas são úteis quando uma instrução SQL é usada com muita frequência ou para a padronização do acesso ao banco. Uma SP pode ser acessada por um aplicativo externo.

17 – O que são visões?

View ou visão é uma tabela virtual no banco de dados. Em uma view poderemos combinar dados de uma ou mais tabelas, inserir dados ou fazer outras operações DML. Uma view não armazena os dados em si, ou seja, ela sempre ficará dependente da tabela real.

Exemplo de criação de uma view:

CREATE VIEW fiat as
SELECT * FROM carros WHERE marca=’fiat’

18 – Consulta muito elaborada pode comprometer o desempenho do banco?

Sim. Se for mal elaborada ela poderá trazer problemas para o bom funcionamento do banco. Quando se usa diversas tabelas em uma mesma consulta usando os operadores JOIN é necessário ter bastante cuidado e observar a lógica do banco, relacionamento entre as tabelas, tamanho das mesmas, entre outras coisas. Mas o fator que mais compromete o banco é uma modelagem de dados mal feita.

19 – O que é SQL Injection?

São instruções SQL que são enviadas ao banco de dados por um invasor SOS sistema com a finalidade de provocar algum dano. Existem situações, especialmente em sistemas web onde as informações que são recebidas do usuário, como formulário e parâmetros da URL podem vir acompanhadas de códigos SQL colocados pelo próprio usuário ou invasor. Nesses casos a recomendação e tratar as entradas de dados e eliminar esses códigos maliciosos antes de enviar as instruções para o banco.

20 – Qual a importância de aprender SQL?

Eu a considero muito importante, pois seu uso não se limita a um banco específico, logo, conhecer bem SQL significa muito para quem quer trabalhar doretamente com banco de dados e para desenvolvedores de sistemas e web.

 

Fonte: http://www.luis.blog.br/20-perguntas-e-respostas-sobre-a-linguagem-sql-para-banco-de-dados.aspx

CATEGORIES:

Database

Tags:

No responses yet

    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *