Guia Linguagem SQL (DML)

Trabalhando com a linguagem T-SQL

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (2)  (0)

Este artigo apresenta o uso da linguagem T-SQL. Serão discutidos alguns recursos que podem ser usados no desenvolvimento e manipulação na consulta a dados usando a ferramenta SQL Server.

Fique por dentro
Este artigo tem como objetivo apresentar o uso da linguagem T-SQL. Serão discutidos alguns recursos que podem ser utilizados no desenvolvimento de consultas e manipulação de dados usando a ferramenta SQL Server no banco de dados AdventureWorks2012. Veremos tipos de dados, funções de data, string, tipos de joins, operadores cross apply e outer apply, pivot e unpivot, sub consultas, windows functions, índices, níveis de isolamento, trigger, view, procedure, function, CTE, merge e alguns complementos do T-SQL. A discussão desse tema é útil para qualquer desenvolvedor Transact-SQL que queira aprimorar seus conhecimentos ou que tenha interesse em trabalhar com consultas avançadas em T-SQL. Entender como o T-SQL funciona pode ajudar a criar consultas melhores e pode facilitar a sua compreensão de como corrigir uma consulta que não está retornando os resultados desejados.

A linguagem Transact-SQL é uma extensão ao padrão SQL-92, sendo a linguagem utilizada por desenvolvedores na construção de aplicações que manipulam dados mantidos no SQL Server. Seus comandos podem ser classificados em quatro grupos, de acordo com sua função, em: DML (Linguagem de Manipulação de Dados), DDL (Linguagem de Definição de Dados), DCL (Linguagem de Controle de Dados) e DTL (Linguagem de Transação de Dados). Além dessas categorias, podemos ter também uma relacionada à consulta dos dados (DQL – Linguagem de Consulta de Dados), que possui apenas o comando SELECT. Entretanto, é mais comum encontrar esse comando como parte da DML em conjunto com os demais comandos de manipulação INSERT, UPDATE e DELETE.

DDL

Esse subconjunto apoia a criação de objetos no banco de dados, alterar a estrutura da base de dados ou deletar o banco de dados. Seus principais comandos são:

  • CREATE;
  • ALTER;
  • DROP.

DML

Esse subconjunto éutilizado para realizar consultas, inclusões, alterações e exclusões de dados. Seus principais comandos são:

  • SELECT ... FROM ... WHERE ...
  • INSERT INTO ... VALUES ...
  • UPDATE ... SET ... WHERE ...
  • DELETE FROM ... WHERE ...

DCL

Esse subconjunto da linguagem SQL é responsável por controlar os aspectos de autorização de dados e a utilização de licenças por usuários. São conhecidos como comandos DCL (Data Control Language):

  • GRANT: comando usado para fornecer acesso ou privilégios sobre os objetos de banco de dados para os usuários;
  • DENY: nega a permissão a um usuário ou grupo para realizar uma determinada operação em um objeto ou recurso;
  • REVOKE: remove a permissão GRANT ou DENY.

DTL

Esse subconjunto da linguagem SQL é responsável porgerenciar transações executadas no banco. Seus principais comandos são:

  • BEGIN TRAN (OU BEGIN TRANSACTION): marca o começo de uma transação no banco de dados que pode ser completada ou não;
  • COMMIT: efetiva e envia os dados de forma permanente para o banco de dados;
  • ROLLBACK: retorna o banco ao estado anterior, desfazendo as alterações feitas na transação.

Integridade de dados

Outro conceito essencial e presente nos SGBDs é o de integridade de dados. Ele diz respeito a uma série de restrições impostas pelos SGBDs para garantir que os dados nunca saiam de um estado consistente para um inconsistente. Existem diferentes tipos de mecanismos de integridade implementados pelos SGBDs. A integridade de entidade garante que cada linha em uma tabela é um registro exclusivamente identificável.Você pode aplicar a integridade de entidade para uma tabela especificando uma restrição PRIMARY KEY.Por exemplo, a coluna ProductID da tabela produtos é uma chave primária para a tabela.

A integridade referencial, definida através da restrição FOREIGN KEY, assegura que as relações entre tabelas permanecem preservadas ao longo do tempo. Já a integridade de domínio garante que os valores de dados dentro de um banco seguem regras definidas para valores, alcance e formato. Um banco de dados pode impor essas regras usando uma variedade de técnicas, incluindo restrições CHECK, restrições UNIQUE e restrições padrão.Essas serão as restrições apresentadas nesse artigo, mas precisamos estar cientes de que existem outras opções disponíveis para impor a integridade de domínio.

A lista a seguir fornece alguns exemplos de restrições de integridade de domínio:

  • Um nome do produto não pode ser NULL;
  • Um nome do produto deve ser exclusivo;
  • A data de uma ordem não deve ser no futuro;
  • A quantidade de produto em uma ordem deve ser maior do que zero.

Tipos de dados no SQL Server

Há diferentes tipos de dados no SQL Server: de sistema e de usuários (User-Defined Types-UDTs) ou SQL Common Language Runtime (CLR). A seguir temos uma amostra dos tipos disponíveis no SQL Server:

String:

  • CHAR;
  • VARCHAR;
  • NCHAR;
  • NVARCHAR;
  • TEXT;
  • NTEXT.

Inteiros:

  • BIT: pode assumir apenas os valores 0 ou 1. É utilizado para armazenar valores lógicos;
  • TINYINT: valores inteiros entre 0 e 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.

Tipos numéricos aproximados

  • FLOAT/DOUBLE;
  • REAL.

Data e Hora

  • DATETIME;
  • SMALLDATETIME.

IDENTITY

O comandoIDENTITYé utilizado para determinar que uma coluna da tabela será automaticamente incrementada quando um valor novo é inserido (esse campo não aceita valores nulos). Todas as tabelas possuem uma coluna ou um conjunto de colunas que identificam a linha, aprimary key.

UNIQUEIDENTIFIER

Também conhecido como GUID (Identificador global exclusivo), o tipo uniqueidentifier é armazenado como um valor binário de 16 bytes e para chamar ele você precisa usar a função NEWID (). A principal vantagem do uso de GUIDs é que eles são exclusivos em todo o espaço e tempo. A grande desvantagem de usá-los é que eles grandes, sendo um dos maiores tipos de dados do SQL Server, então usá-lo tornará o índice mais lento. Esse é um exemplo de um GUID formatado: B85E62C3-DC56-40C0-852A-49F759AC68FB. Já esse é um exemplo de um GUID binário: 0xff19966f868b11d0b42d00c04fc964ff

CONSTRAINTS

O principal objetivo de uma restrição é fazer cumprir uma regra no banco de dados, por exemplo, para garantir que os dados inseridos sejam válidos e que obedeçam às regras de negócio. Na linguagem T-SQL temos cinco constraints. A Listagem 1 apresenta um script que exemplifica o uso das cinco na mesma tabela e, na Figura 1, o resultado é exibido:

  • Primary key: define uma chave primária. É o índice primário na criação de índices em tabelas de banco de dados relacionais. Você poderá adicionar a restriçãoPRIMARY KEYdesde que ainda não exista outra restrição de chave primária na tabela;
  • Foreign key: o objetivo principal da chave estrangeira é assegurar a integridade referencial dos dados. Ela apoia a definição do relacionamento entre duas tabelas;
  • Unique: garante que valores duplicados não serão inseridos na coluna;
  • Check: impõe integridade de domínio limitando os valores aceitos por uma coluna. A verificação de restrição é usada para limitar a gama de valores que pode ser colocada em uma coluna;
  • Default: define um valor padrão caso não seja inserido nenhum valor no campo. É util" [...]

    A exibição deste artigo foi interrompida :(
    Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Ficou com alguma dúvida?