Introdução

Concluído

A linguagem SQL

SQL quer dizer Structured Query Language. O SQL é usado para se comunicar com um banco de dados relacional. As instruções SQL são usadas para executar tarefas como atualizar dados em um banco de dados ou recuperar dados de um banco de dados. Por exemplo, a instrução SQL SELECT é usada para consultar o banco de dados e retornar um conjunto de linhas de dados. Alguns sistemas comuns de gerenciamento de banco de dados relacional que usam o SQL incluem Microsoft SQL Server, MySQL, PostgreSQL, MariaDB e Oracle.

Existe um padrão de linguagem SQL definido pelo American National Standards Institute (ANSI). Cada fornecedor adiciona suas próprias variações e extensões.

A SQL SELECT query retrieves a table of data from a database

Neste módulo, você aprenderá a:

  • Entender o que é o SQL e como ele é usado
  • Identificar objetos de banco de dados em esquemas
  • Compreender os tipos de instrução SQL
  • Usar a instrução SELECT para consultar tabelas em um banco de dados.
  • Trabalhar com tipos de dados
  • Lidar com NULLs

Transact-SQL

Instruções SQL básicas, como SELECT, INSERT, UPDATEe DELETE, estão disponíveis independentemente do sistema de banco de dados relacional com o qual você está trabalhando. Ainda que instruções SQL sejam parte do padrão SQL ANSI, muitos sistema de gerenciamento de banco de dados também têm suas próprias extensões. Essas extensões fornecem funcionalidades que não são abrangidas pelo SQL Standard e incluem áreas como gerenciamento de segurança e programação. Sistemas de banco de dados da Microsoft, como SQL Server, Banco de Dados SQL do Azure, Azure Synapse Analytics e outros usam um dialeto do SQL chamado Transact-SQL ou T-SQL. O T-SQL inclui extensões de linguagem para escrever procedimentos e funções armazenados - que consistem em código de aplicativo armazenado no banco de dados - e para gerenciar contas de usuário.

SQL é uma linguagem declarativa

As linguagens de programação podem ser categorizadas como de procedimento ou declarativas. As linguagens de procedimento permitem que você defina uma sequência de instruções que o computador segue para executar uma tarefa. Linguagens declarativas permitem que você descreva a saída que deseja e deixe para o mecanismo de execução os detalhes das etapas necessárias para produzir a saída.

O SQL dá um certo suporte a sintaxe de procedimento, mas consultar dados com o SQL geralmente segue a semântica declarativa. Você usa o SQL para descrever os resultados que deseja e o processador de consultas do mecanismo de banco de dados desenvolve um plano de consulta para recuperá-lo. O processador de consultas usa estatísticas sobre os dados no banco de dados e nos índices definidos nas tabelas para criar um bom plano de consulta.

Dados relacionais

O SQL é usado com mais frequência (embora nem sempre) para consultar dados em bancos de dados relacionais. Um banco de dados relacional é aquele em que os dados foram organizados em várias tabelas (tecnicamente conhecidas como relações),cada uma representando um tipo específico de entidade (como um cliente, um produto ou um pedido de vendas). Os atributos dessas entidades (por exemplo, o nome de um cliente, o preço de um produto ou a data do pedido de uma ordem de venda) são definidos como as colunas ou atributos da tabela e cada linha na tabela representa uma instância do tipo de entidade (por exemplo, um cliente, produto ou ordem de vendas específico).

As tabelas no banco de dados estão relacionadas umas às outras usando colunas de chave que identificam exclusivamente a entidade específica representada. Uma chave primária é definida para cada tabela e uma referência a essa chave é definida como uma chave estrangeira em qualquer tabela relacionada. É mais fácil entender isso examinando um exemplo.

A relational database containing four tables

O diagrama mostra um banco de dados relacional que contém quatro tabelas:

  • Cliente
  • SalesOrderHeader
  • SalesOrderDetail
  • Product

Cada cliente é identificado por um campo CustomerID exclusivo – esse campo é a chave primária para a tabela Customer. A tabela SalesOrderHeader tem uma chave primária chamada OrderID para identificar cada pedido e também inclui uma chave estrangeira CustomerID que faz referência à chave primária na tabela Customer, para identificar que cliente está associado a cada pedido. Os dados sobre os itens individuais em um pedido são armazenados na tabela SalesOrderDetail, que tem uma chave primária composta que combina o OrderID na tabela SalesOrderHeader com um valor LineItemNo. A combinação desses valores identifica exclusivamente um item de linha. O campo OrderID também é usado como chave estrangeira para indicar a qual ordem o item de linha pertence, um campo ProductID é usado como chave estrangeira para a chave primária ProductID da tabela Product, para indicar qual produto foi pedido.

Processamento baseado em conjunto

A teoria do conjunto é uma das bases matemáticas do modelo relacional de gerenciamento de dados e é fundamental para o trabalho com bancos de dados relacionais. Embora você possa ser capaz de escrever consultas no T-SQL sem uma compreensão detalhada de conjuntos, você pode, eventualmente, ter dificuldades para escrever alguns dos tipos de instruções mais complexos que podem ser necessários para o desempenho ideal.

Sem se aprofundar na matemática da teoria de conjunto, você pode considerar um conjunto como "uma coleção de objetos definidos e distintos considerados como um todo". Em termos aplicados a bancos de dados do SQL Server, você pode considerar um conjunto como uma coleção de objetos distintos contendo zero ou mais membros do mesmo tipo. Por exemplo, a tabela Customer representa um conjunto: especificamente, o conjunto de todos os clientes. Você verá que os resultados de uma instrução SELECT também formam um conjunto.

Conforme você aprende mais sobre instruções de consulta T-SQL, é importante sempre pensar no conjunto inteiro, e não nos membros individuais. Essa mentalidade preparará você melhor para escrever códigos baseados em conjuntos, em vez de pensar em uma linha por vez. Trabalhar com conjuntos requer pensar em termos de operações que ocorrem "todas de uma vez" em vez de uma de cada vez.

Uma característica importante a ser notada sobre a teoria dos conjuntos é que não há nenhuma especificação sobre qualquer ordenação dos membros de um conjunto. Essa falta de ordem se aplica a tabelas de bancos de dados relacionais. Não há nenhum conceito de primeira linha, segunda linha ou última linha. Os elementos podem ser acessados (e recuperados) em qualquer ordem. Se precisar retornar resultados em uma determinada ordem, especifique isso explicitamente, usando uma cláusula ORDER BY em sua consulta SELECT.