180 likes | 340 Views
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.).
E N D
Bancos de Dados SQL Server 2012 Tipos de Dados e Tabelas
Tipos de Dados Padrão • Numérico • Inteiro • Numéricoexato • Numéricoaproximado • Monetário • Data e Hora • Caractere CaracterUnicode • Binário
Tabelas - Criação • Comando CREATE TABLE • Estruturageral:
Tabelas - Criação • Doisbilhões de tabelaspor database. • 1.024 colunasportabela. • 8060 bytes per linha (não se aplicaaostipos de dados image, text, ntext, varchar(max), varbinary (max)) • Sempreespecificar NULL ou NOT NULL – Nãoconfiar em defaults!
Tabelas – Sintaxe do Create Table CREATE TABLE table_name column_name data type[COLLATE<collation_name>] [NULL | NOT NULL] | column_nameAS computed_column_expression [,….n]
Tabelas - Informação • Exec sp_help <nome da tabela> • System views: sys.tablese sys.columns • Exemplo: UseAdventureWorks2012; SELECTt.nameAStable_name,SCHEMA_NAME(schema_id)AS'schemaname', c.nameAScolumn_name FROMsys.tablesASt INNERJOINsys.columnscONt.OBJECT_ID=c.OBJECT_ID WHEREt.name='Employee' ORDERBYSCHEMA_NAME(schema_id),table_name,c.name;
Tabelas e Colunas – Nomenclatura • Nome de tabelassempre no singular • Nãousaracentosoucaracteresespeciais • Nome colunas (campos) sempreprefixadospelonome da tabela e um _ (underscore) • Usarnotaçã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: UseTesteDB; DropTabledbo.Clientes;
Tabelas – Adicionando e Excluindocolunas Comando : ALTER TABLE
Tabelas – Adicionando e Excluindocolunas • Adicionandoumacoluna: O tipo de informaçãosuprida é similar àquelasupridanacriação da tabela: ALTERTABLECategoriesNew ADDCommissionmoneynull • Excluindoumacoluna (nãopodeserdesfeita): ALTERTABLECategoriesNew DROPCOLUMNSales_date Importante: Todosos indices e restrições de integridadebaseadosnacolunaa serexcluidadeverãoserpreviamenteremovidos.
Tabelas – Gerandovaloresautomaticamente • UsarpropriedadeIDENTITY (auto incremento) • SóumacolunaIdentityportabela • EspecificarIDENTITY (seed, incremento) ou o default (1,1) seráusado. • Use somenteinteger, numeric, e decimal Exemplo: USETesteDB; CREATETABLEdbo.Pessoa (Pessoa_IDintIDENTITY(100, 5)NOTNULL, Pessoa_Nomevarchar(160)NOTNULL, Pessoa_Telefonevarchar(20)NULL);
Tabelas – Gerandovaloresautomaticamente • Obtenhainformaçãoatravés de IDENT_SEED and IDENT_INCR Exemplo: USETesteDB; SELECTIDENT_SEED('dbo.Pessoa')ASIdentity_Seed; SELECTIDENT_INCR('dbo.Pessoa')ASIdentity_Seed; • Use @@identity para achar o valor maisrecenteinserido Exemplo: INSERT INTO dbo.Pessoa (Pessoa_Nome, Pessoa_Telefone) Values ('José da Silva', '27-3245-5556'); Select @@IDENTITY
Tabelas – Gerandovaloresautomaticamente Exemplocompleto: USETesteDB; ifobject_id('dbo.Pessoa')isnotnull Droptabledbo.Pessoa CREATETABLEdbo.Pessoa (Pessoa_IDintIDENTITY(100, 5)NOTNULL, Pessoa_Nomevarchar(160)NOTNULL, Pessoa_Telefonevarchar(20)NULL); SELECTIDENT_SEED('dbo.Pessoa')ASIdentity_Seed; SELECTIDENT_INCR('dbo.Pessoa')ASIdentity_Seed; INSERTINTOdbo.Pessoa(Pessoa_Nome,Pessoa_Telefone)Values('José da Silva','27-3245-5556'); Select@@IDENTITY INSERTINTOdbo.Pessoa(Pessoa_Nome,Pessoa_Telefone)Values('Claudia dos Santos','27-3245-5566'); Select@@IDENTITY Exemplo: USEAdventureWorks2012; SELECTIDENT_SEED('Person.Address')ASIdentity_Seed; SELECTIDENT_INCR('Person.Address')ASIdentity_Seed; • Use @@identity para determinar o valor maisrecenteinserido Exemplo:
Exercícios 1. Criar em TesteDBumatabela para armazenamento de Clientes de umalojacontendoos dados maiscomuns, como Nome, Endereço, Cidade, Estado, CEP, Telefone(s), CPF, etc. Decidasobrequaistipos de dados utilizar e tambémsobresuanulabilidade. A primeiracolunadeveráarmazenar um códigoúnico para o cliente com numeraçãoautomática.
Exercícios 2. Criarem TesteDBumatabela para armazenamentodos Produtos de umalojacontendoos dados maiscomuns, comoDescrição, DescriçãoResumida, Preço de Referencia, Quantidade em estoque, Código UPC, Imagem, etc. Decidasobrequaistipos de dados utilizare tambémsobresuanulabilidade. A primeiracolunadeveráarmazenar um códigoúnico para o produtosemnumeraçãoautomá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