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), dentre outras definições envolvendo a linguagem SQL.

Home » Tecnologia

As linguagens de programação e as tecnologias da Informação podem ser bastante complicadas, especialmente para pessoas que estão iniciando nesse segmento. Os termos são muito técnicos e existe uma variedade enorme de definições, comandos, expressões e diversos outros itens.

Visando simplificar um pouco, resolvi mostrar em linguagem simples e acessível algumas informações sobre a linguagem SQL e para isso farei em formato de perguntas e respostas, como pode ser visto abaixo.

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). Eles manipulam ou trabalham com os dados em si.

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

Não lidam com os dados diretamente, mas prepara o ambiente para o uso deles.

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. Embora seja possível encontrar em muitos cenários os comandos escritos em letras maiúsculas e os complementos dos comandos em letras minúsculas.

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 ou escritos em uma única linha. 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.

É evidente que fica muito mais fácil de ler e empreender o código se ele for escrito em várias linhas, respeitando a devida sintaxe do comando, mas para efeito de execução, tanto faz.

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. Quando você tem um único comando, pode-se executar sem o ponto-e-vírgula, já que neste caso após encerrar este comando não há mais nada a fazer. Mas quando há vários comandos é necessário incluir o ponto-e-vírgula para encerrar cada um deles.

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?

Sim. Subconsulta é uma consulta dentro de outra consulta e é usada quando se deseja um refinamento bem maior da consulta. Deve-se tomar certo cuidado, pois em alguns casos, pode se tornar a execução demorada. 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.


VEJA TAMBÉM:

CANAL NO YOUTUBE

INSCREVA-SE:



Sistemas Web

Playlist de SQL

Youtube Youtube Youtube
© 2021 - Utilidade Pública: Tecnologia, Educação e Cidadania.