Módulo 2: Criando tipos de dados e tabelas Visão geral do módulo Criando tipos de dados Criando tabelas Criando tabelas particionadas Lição 1: Criando tipos de dados O que são tipos de dados fornecidos pelo sistema? Usando tipos de dados fornecidos pelo sistema O que são tipos de dados de alias? Prática: Criando tipos de dados O que são tipos de dados fornecidos pelo sistema? Categoria Números inteiros Exatos Numéricos Aproximados Monetários int, bigint, smallint, tinyint decimal, numeric float, real money, smallmoney datetime, smalldatetime Data e hora Caractere Tipos de dados não-Unicode char, varchar, varchar(max), text Unicode nchar, nvarchar, nvarchar(max), ntext Binários binary, varbinary, varbinary(max) Imagem image Identificador global uniqueidentifier XML xml Especiais bit, cursor, timestamp, sysname, table, sql_variant Usando tipos de dados fornecidos pelo sistema Tipos de dados numéricos exatos e aproximados Exatos – decimal, numeric Aproximados – float, real Tipos de dados de caracteres Fixos – nchar Variáveis – nvarchar Dados de data e hora Datas e horas – datetime, smalldatetime Versão de linha – timestamp Valores de dados grandes Tipo de objetos grandes – text, image Especificador max – varchar(max), nvarchar(max), varbinary(max) O que são tipos de dados de alias? Baseados em tipos fornecidos pelo sistema Usados para elementos de dados comuns com um formato específico Criados usando a instrução CREATE TYPE CREATE TYPE dbo.StateCode FROM char(2) NULL Prática: Criando tipos de dados Nesta prática, você irá: Criar um tipo de dados usando o SQL Server Management Studio Criar um tipo de dados usando Transact-SQL Lição 2: Criando tabelas Como o SQL Server organiza dados em linhas Como o SQL Server organiza valores de dados grandes Considerações para a criação de tabelas Gerando Scripts do Transact-SQL Prática: Criando tabelas Como o SQL Server organiza dados em linhas Data Cabeçalho Dados fixos NB VB Dados variáveis 4 Bytes Bloco de nulos 2 Bytes 10111001 Número de colunas Bit de nulidade por coluna (primeiras 8 colunas) … Mais bits de coluna conforme necessário Bloco de variáveis 2 Bytes 2 Bytes Número de colunas de tamanho variável … Ponteiro adicional por coluna variável Ponteiro para final do primeiro dado da coluna variável Como o SQL Server organiza valores de dados grandes Tipos de valores grandes fora da linha opção ON Linha de dados nvarchar(max) [ < 8K] nvarchar(max) [ > 8K] Tipos de valores grandes fora da linha opção OFF Linha de dados nvarchar(max) [ < 8K] nvarchar(max) [ > 8K] Considerações para a criação de tabelas Agrupamento de colunas Nulidade da coluna Tipos de coluna especiais Colunas computadas Colunas de identidade colunas de carimbo de hora colunas de identificador exclusivo CREATE TABLE Sales.CustomerOrders (OrderID int IDENTITY NOT NULL, OrderDate datetime NOT NULL, CustomerID int NOT NULL, Notes nvarchar(200) NULL) Gerando Scripts do Transact-SQL Object Explorer 1 Conecte-se a uma instância do SQL Server Database Engine 2 Expanda Object Explorer e localize o objeto com o botão direito do mouse e depois clique 3 Clique em Script <object type> as Generate Scripts Wizard Clique com o botão direito do mouse em um banco de 1 dados, aponte para Tarefas e clique em Generate Scripts 2 Siga as etapas fornecidas pelo assistente Prática: Criando tabelas Nesta prática, você irá: Criar uma tabela usando o SQL Server Management Studio Criar uma tabela usando Transact-SQL Gerar um script do Transact-SQL Lição 3: Criando tabelas particionadas O que são tabelas particionadas? O que são funções de partição? O que é um esquema de partição? Demonstração: Criando uma tabela particionada Quais operações podem ser executadas em dados particionados? O que são tabelas particionadas? Os dados são particionados horizontalmente por intervalo < 2003 2003 -- 2004 2004 -- 2005 Sales.Orders > 2005 O que são funções de partição? As funções de partição definem os limites da partição Podem ser atribuídos valores limite a LEFT ou RIGHT < 2003 2003 -- 2004 2004 -- 2005 > 2005 CREATE PARTITION FUNCTION pf_OrderDate (datetime) AS RANGE RIGHT FOR VALUES ('01/01/2003', '01/01/2004', 01/01/2005') O que é um esquema de partição? Um esquema de partição atribui partições a grupos de arquivos O “próximo” grupo de arquivos também pode ser definido < 2003 2003 -- 2004 2004 -- 2005 CREATE PARTITION SCHEME ps_OrderDate AS PARTITION pf_OrderDate TO (fg1, fg2, fg3, fg4, fg5) > 2005 Demonstração: Criando uma tabela particionada Nesta demonstração, você verá como: Criar uma função de partição Criar um esquema de partição Criar uma tabela particionada Exibir o comportamento da tabela particionada Quais operações podem ser executadas em dados particionados? ALTERNAR: Troca uma tabela ou partição preenchida por uma tabela ou partição vazia MESCLAR: Combina duas partições adjacentes em uma única partição DIVIDIR: Insere um limite em uma partição existente para criar uma nova partição ALTERNAR < 2003 MESCLAR DIVIDIR 2003 -- 2004 2004 -- 2005 2005 -- 2006 > 2006 Laboratório: Criando tipos de dados e tabelas Exercício 1: Criando tipos de dados Exercício 2: Criando tabelas Exercício 3: Criando tabelas particionadas