Get Started with SQL Server: 1. Consultas SELECT simples

Vocês aprenderão como consultar o Microsoft SQL Server usando a instrução SQL SELECT nesta série de lições. Depois de ler esta lição você poderá:

  • Identificar todas as tabelas em um banco de dados SSMS (SQL Server Management Studio) do SQL Server.
  • Entender como listar as colunas de uma tabela.
  • Para visualizar colunas, criar texto e resultados matemáticos e definir valores distintos, use a instrução SQL SELECT.
  • Aprenda algumas técnicas para depurar seus comandos e corrigir erros.

Importante! Por favor siga os exemplos da sua base de dados e faça-os. Se você ainda não o fez, inscreva-se no meu Guia de Introdução ao SQL Server. Você pode receber orientação sobre o download do software gratuito e do banco de dados de exemplo.

Understanding Your Database

Um simples comando de seleção consiste em duas partes. A primeira parte descreve que colunas queremos ver e a segunda parte que tabela estamos a ver. Um comando select parece:

SELECT LastName FROM Person.Person

Neste exemplo LastName é a coluna e Person a tabela. As colunas vêm depois da palavra-chave SELECT; enquanto, a tabela é precedida por FROM.

Nome da tabela

Você pode estar se perguntando porque a tabela Person é chamada de Pessoa. Pessoa na declaração acima. Isto tem a ver com a forma como os objectos estão organizados no servidor. A base de dados pode ser pensada como uma série de recipientes aninhados. Os containers são os:

  • Server/Instance – A instância do SQL Server rodando no computador.
  • Databases – Um ou mais bancos de dados criados na instância.
  • Schemas – Uma maneira de agrupar logicamente tabelas e outros objetos de banco de dados.

O nome totalmente qualificado para uma tabela é …. Então se realmente quiséssemos ser explícitos poderíamos usar algo como

SELECT LastName FROM ...

para fazer uma consulta. Felizmente, normalmente escrevemos consultas dentro do contexto de uma base de dados, por isso só precisamos de especificar o Esquema e o Nome da Tabela como so:

SELECT LastName FROM Person.Person

Mas e quanto aos parênteses ? Estes são usados se a sua tabela tiver um espaço no nome. Então

SELECT Last NameFROM Person.Person Table

daria erro

SELECT FROM Person.

Está OK. O meu conselho ? Se você conseguir nomear as suas próprias mesas, não use espaços, os parênteses são feios! Se precisar, faça como o pessoal do Oracle e use os sublinhados. Person_Table é muito mais fácil de ler que , pessoalmente eu prefiro PersonTable.

Usando o Object Explorer

Para escrever consultas você precisa saber quais tabelas e colunas estão disponíveis em suas bases de dados. Ao usar o SSMS (SQL Server Management Studio) você pode simplesmente expandir a pasta de tabelas da base de dados para listar todas as tabelas encontradas na sua base de dados. Uma vez encontrada uma tabela que você gostaria de saber mais sobre você simplesmente clique no nome da tabela para expandi-la, e depois na pasta de colunas para listar todas as colunas.

Running Queries in SSMS

Antes de chegarmos muito longe deixe-me mostrar-lhe como executar uma consulta em SSMS. Na verdade é muito fácil. Uma vez que você tenha iniciado o SQL Server Management Studio, você vai querer selecionar seu banco de dados. Depois clique no botão New Query localizado na barra de ferramentas superior. Isto mostra uma janela de consulta para a direita. Você pode digitar o que quiser nesta janela, pois é basicamente um editor de texto. Corte e cole ou digite uma instrução SQL, depois clique em Executar para executar a instrução. Os resultados são mostrados na parte inferior da janela e quaisquer mensagens, tais como erros, são mostrados no separador de mensagens.

Select Multiple Columns

Para seleccionar mais do que uma coluna, basta separá-las com uma vírgula. Por exemplo,

SELECT FirstName, LastNameFROM Person.Person

reduz tanto o primeiro nome como o último nome como resultado. Caso você queira saber, você pode misturar o caso ao escrever as consultas. Isto é

SELECT FirstName, LastNameFROM Person.Person

Trabalha tão bem como

select FirstName, LastNamefrom Person.Person

Tip! Uma convenção comum é a de capitalizar todas as palavras-chave. Alguns DBA’s sentem que é mais fácil ler comandos escritos desta forma. Pessoalmente eu não faço isso, mas para este blog eu vou tentar 🙂

Renomear as colunas SQL

Pode renomear as colunas que resultam das suas instruções seleccionadas. Para fazer isso use a instrução AS assim:

SELECT LastName as SirNameFROM Person.Person

Isso exibe o resultado como “SirName” em vez de “LastName”. Esta é uma boa funcionalidade do ponto de vista da vaidade, mas também vem a calhar quando queremos devolver um resultado de cálculo e precisamos de lhe dar um nome. Por exemplo, suponha que você queria devolver o LastName em todas as maiúsculas. Você poderia escrever

SELECT UPPER(LastName) AS SirNameFROM Customers

UPPER é conhecido como uma função. O SQL Server tem muitas funções que você pode usar para realizar muitos tipos de cálculos. Vamos analisar todos eles mais tarde, mas por enquanto, saiba que você pode juntar várias funções para criar uma expressão complexa para produzir os dados como você precisa fazer.

Expressões de Coluna Complexa

Nossa tabela de funcionários contém campos separados para o primeiro nome e sobrenome. Suponhamos que o departamento de RH precise ver um nome completo em maiúsculas. Como você faria isso? Simples! Você poderia escrever

Esta afirmação pode parecer complicada, mas assim que a quebrarmos, você verá que é apenas composta de um monte de elementos simples.

  • Como você acabou de aprender, UPPER é usado para retornar a maiúscula de uma coluna.
  • O + diz a SQL para combinar dois valores juntos.

Tudo entre aspas simples (‘) é literalmente exibido como está. No nosso caso, o ‘ ‘ significa a saída de um único espaço. Se você ler a nossa expressão, em inglês, ela deverá ser lida como “Take the uppercase of the FirstName combine it with a space and then add the uppercase of LastName to it”

Do Math with SQL!

You can also get SQL to do math tricks for you. Pode fazer uma aritmética bem complicada se você permitir que ele o faça. Por hoje, vou mostrar como multiplicar dois números, mas você pode adicionar, subtrair ou dividir com a mesma facilidade. Mais tarde, vamos torná-lo mais envolvido para que você possa reviver os seus dias de Álgebra II 🙂 Aqui estão alguns operadores matemáticos comuns que você pode usar em SQL:

  • * Multiplique
  • / Dividir
  • + Adicionar
  • – Subtrair

Utilizaremos a tabela OrderDetails e calcularemos o preço total multiplicando o preço unitário pela quantidade.

SELECT UnitPrice, OrderQty, UnitPrice * OrderQty AS TotalFROM Purchasing.PurchaseOrderDetail

O bit ” UnitPrice * OrderQty” diz para multiplicar UnitPrice por Quantidade.

Be Distinct and Debug

Até agora temos usado o comando select para recuperar todos os registos de uma tabela, independentemente de alguns valores se repetirem ou não. Se você desejar, você pode usar a palavra-chave DISTINCT para remover duplicatas dos seus resultados. Por exemplo, se você quiser apenas retornar uma lista única de títulos de empregados, você usaria esta instrução SQL:

SELECT DISTINCT JobTitleFROM HumanResources.Employee

A instrução DISTINCT também funciona em mais de uma coluna. Se você quisesse, você poderia obter uma lista distinta de títulos de empregos e gêneros digitando

SELECT DISTINCT JobTitle, GenderFROM HumanResources.Employee

!Trivia: A palavra-chave ALL é a contraparte do DISTINCT e é o comportamento padrão. É por isso que nós não a escrevemos em nossas declarações.

Finding and Correcting Errors

Mais cedo ou mais tarde você vai digitar errado uma declaração seleta na linha de comando e o computador vai gritar para você – “Syntax Error!” ou “Invalid Column Name” O que fazer? Basta lembrar que o comando select é composto de duas partes principais: a parte SELECT e a parte FROM. Em geral, a base de dados procura primeiro ver se estas palavras-chave estão presentes, e se não estiverem, dispara um erro de sintaxe.

Esta é apenas uma frase extravagante para “você escreveu mal uma palavra-chave ou está fora de ordem” (por exemplo, você tem o Distinct before Select como em DISTINCT SELECT). Uma vez que as palavras-chave são verificadas, a declaração é inspecionada para ter certeza de que você especificou uma tabela. Assim que a tabela for conhecida, ela pode verificar as colunas. Então a ordem é verificar primeiro as palavras-chave, depois as tabelas, e por último as colunas corretas. Sempre que um erro for exibido, leia-o cuidadosamente. É possível que você tenha escrito algo errado. O computador irá dizer-lhe o que escreveu mal entre aspas; é o seu trabalho encontrar e corrigir o erro de ortografia.

SQL Select Exercises

É importante praticar! Use a base de dados de exemplo para responder a estas questões.

  1. Como pode encontrar todos os nomes das tabelas na base de dados AdventureWorks2012?
  2. Quais são as duas formas de obter os nomes de todas as colunas na Pessoa.Tabela Pessoa?
  3. Selecione JobTitle e BirthDate para todos os empregados.
  4. Qual seria o Preço Unitário de cada item da BuyOrderDetail se houvesse uma meia venda?

Respostas estão Aqui

Congratulações! Você acabou de aprender como usar o comando select para consultar uma base de dados. Mais tutoriais devem ser seguidos, e neles vamos mergulhar em algumas das áreas que hoje brilhamos, tais como operadores matemáticos e funções. Lembre-se! Quero lembrar a todos que se tiverem outras perguntas que queiram que sejam respondidas, então postem um comentário ou tweet me. Estou aqui para vos ajudar.

Deixe uma resposta

O seu endereço de email não será publicado.