SQL Server 2012 Tipos de Dados e Tabelas Bancos de Dados SQL Server 2012 Tipos de Dados e Tabelas
Tipos de Dados Padrão Numérico Inteiro Numérico exato Numérico aproximado Monetário Data e Hora Caracter e Caracter Unicode Binário
Tipos de Dados SQL Server x ANSI
Tipos de Dados SQL Server x ANSI (cont.)
Tabelas - Criação Comando CREATE TABLE Estrutura geral:
Tabelas - Criação Dois bilhões de tabelas por database. 1.024 colunas por tabela. 8060 bytes per linha (não se aplica aos tipos de dados image, text, ntext, varchar(max), varbinary (max)) Sempre especificar NULL ou NOT NULL – Não confiar em defaults!
Tabelas – Sintaxe do Create Table CREATE TABLE table_name column_name data type [COLLATE<collation_name>] [NULL | NOT NULL] | column_name AS computed_column_expression [,….n]
Tabelas - Informação Exec sp_help <nome da tabela> System views: sys.tables e sys.columns Exemplo: Use AdventureWorks2012; SELECT t.name AS table_name,SCHEMA_NAME(schema_id) AS 'schema name', c.name AS column_name FROM sys.tables AS t INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID WHERE t.name = 'Employee' ORDER BY SCHEMA_NAME(schema_id), table_name, c.name;
Tabelas e Colunas – Nomenclatura Nome de tabelas sempre no singular Não usar acentos ou caracteres especiais Nome colunas (campos) sempre prefixados pelo nome da tabela e um _ (underscore) Usar notação Pascal para nome de colunas e tabelas EX: CREATE TABLE dbo.Cliente ( Cliente_Codigo : int identity not null, Cliente_Nome : varchar (100) not null, Cliente_EstadoCivil : char (1) null … )
Tabelas – Deleção Comando: DROP TABLE Exemplo: Use TesteDB; Drop Table dbo.Clientes;
Tabelas – Adicionando e Excluindo colunas Comando : ALTER TABLE
Tabelas – Adicionando e Excluindo colunas Adicionando uma coluna: O tipo de informação suprida é similar àquela suprida na criação da tabela: ALTER TABLE CategoriesNew ADD Commission money null Excluindo uma coluna (não pode ser desfeita): DROP COLUMN Sales_date Importante: Todos os indices e restrições de integridade baseados na coluna a ser excluida deverão ser previamente removidos.
Tabelas – Gerando valores automaticamente Usar propriedade IDENTITY (auto incremento) Só uma coluna Identity por tabela Especificar IDENTITY (seed, incremento) ou o default (1,1) será usado. Use somente integer, numeric, e decimal Exemplo: USE TesteDB; CREATE TABLE dbo.Pessoa (Pessoa_ID int IDENTITY(100, 5) NOT NULL, Pessoa_Nome varchar(160) NOT NULL, Pessoa_Telefone varchar (20) NULL);
Tabelas – Gerando valores automaticamente Obtenha informação através de IDENT_SEED and IDENT_INCR Exemplo: USE TesteDB; SELECT IDENT_SEED('dbo.Pessoa') AS Identity_Seed; SELECT IDENT_INCR('dbo.Pessoa') AS Identity_Seed; Use @@identity para achar o valor mais recente inserido INSERT INTO dbo.Pessoa (Pessoa_Nome, Pessoa_Telefone) Values ('José da Silva', '27-3245-5556'); Select @@IDENTITY
Tabelas – Gerando valores automaticamente Exemplo completo: USE TesteDB; if object_id ('dbo.Pessoa') is not null Drop table dbo.Pessoa CREATE TABLE dbo.Pessoa (Pessoa_ID int IDENTITY(100, 5) NOT NULL, Pessoa_Nome varchar(160) NOT NULL, Pessoa_Telefone varchar (20) NULL); SELECT IDENT_SEED('dbo.Pessoa') AS Identity_Seed; SELECT IDENT_INCR('dbo.Pessoa') AS Identity_Seed; INSERT INTO dbo.Pessoa (Pessoa_Nome, Pessoa_Telefone) Values ('José da Silva', '27-3245-5556'); Select @@IDENTITY INSERT INTO dbo.Pessoa (Pessoa_Nome, Pessoa_Telefone) Values ('Claudia dos Santos', '27-3245-5566'); Exemplo: USE AdventureWorks2012; SELECT IDENT_SEED('Person.Address') AS Identity_Seed; SELECT IDENT_INCR('Person.Address') AS Identity_Seed; Use @@identity para determinar o valor mais recente inserido
Exercícios 1. Criar em TesteDB uma tabela para armazenamento de Clientes de uma loja contendo os dados mais comuns, como Nome, Endereço, Cidade, Estado, CEP, Telefone(s), CPF, etc. Decida sobre quais tipos de dados utilizar e também sobre sua nulabilidade. A primeira coluna deverá armazenar um código único para o cliente com numeração automática.
Exercícios 2. Criar em TesteDB uma tabela para armazenamento dos Produtos de uma loja contendo os dados mais comuns, como Descrição, Descrição Resumida, Preço de Referencia, Quantidade em estoque, Código UPC, Imagem, etc. Decida sobre quais tipos de dados utilizar e também sobre sua nulabilidade. A primeira coluna deverá armazenar um código único para o produto sem numeração automática.
Links Úteis Tipos de dados: http://msdn.microsoft.com/pt-br/library/ms187752.aspx Create table: http://msdn.microsoft.com/pt-br/library/ms174979.aspx Sys.columns : http://technet.microsoft.com/en-us/library/ms176106.aspx Sys.Tables: http://technet.microsoft.com/en-us/library/ms187406.aspx Alter Table: http://msdn.microsoft.com/pt-br/library/ms190273.aspx IDENTITY: http://msdn.microsoft.com/pt-br/library/ms186775.aspx