Iniciando em SQL Server

1 - Criando banco de dados

Neste exemplo iremos aprender a criar um Banco de Dados, onde consiste em dois arquivos um que irá
armazenar os dados e outro os log's das transações. Para poder executar o script é necessário ter na raiz da máquina C: a pasta SQLSV criada.

Vá em iniciar Todos os Programas - Sql Server 2005 - Sql Server management Studio, Clicar um New Query e para criar um novo banco de dados o combo na parte superior da barra de ferramentas tem que estar em banco Master.

CREATE DATABASE FINANCEIRO

ON (
NAME = FINANCEIRO_DADOS,
FILENAME = 'C:\SQLSV\FINANCEIRO_DADOS.mdf',  -- criação do Arquivo de dados
SIZE = 5 ,                          -- tamanho do arquivo inicial de dados
MAXSIZE = 20,                                          
FILEGROWTH = 5          -- percentual de auto crescimento do bando de dados
)
LOG ON
(
NAME= FINANCEIRO_log,
FILENAME = 'C:\SQLSV\FINANCEIRO_LOG.ldf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 10
)

Obs: um banco de dados pode ser criado também via interface gráfica, com um click no botão direito do mouse em cima da Databases e selecionando New Database podemos definir as informações de um novo banco.

2 - Criando tabelas

 Para criar tabelas em um bando de dados é bem simples, mas temos que prestar muita atenção nos tipos de dados que iremos utilizar.

Os tipos de dados mais utilizados e principalmente pelos iniciantes são:

  • DATETIME: Armazena hora e data variando de 1 de janeiro de 1753 até 31 de Dezembro de 9999. A precisão de hora é armazenada até os centésimos de segundos.
  • DECIMAL(I,D) e NUMERIC(I,D): Armazenam valores numéricos inteiros com casas decimais utilizando precisão. I deve ser substituído pela quantidade de dígitos total do número e D deve ser substituído pela quantidade de dígitos da parte decimal (após a vírgula). DECIMAL e NUMERIC possuem a mesma funcionalidade, porém DECIMAL faz parte do padrão ANSI e NUMERIC é mantido por compatibilidade. Por exemplo, DECIMAL(8,2) armazena valores numéricos decimais variando de – 999999,99 até 999999,99
  • CHAR(N): Armazena N caracteres fixos (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo é preenchido com espaços em branco.
  • VARCHAR(N): Armazena N caracteres (até 8.000) no formato não Unicode. Se a quantidade de caracteres armazenada no campo for menor que o tamanho total especificado em N, o resto do campo não é preenchido.
  • INT: Valores numéricos inteiros variando de -2.147.483.648 até 2.147.483.647
Finalmente vamos criar uma tabela, abaixo segue o comando:

CREATE TABLE TIPO_DESPESAS

(
ID_TIPO             int                 IDENTITY(1,1) NOT NULL,
DESCRICAO     varchar(50)                              NOT NULL,
TIPO                   char(1)                                     NULL,
CONSTRAINT [PK_TIPO] PRIMARY KEY (ID_TIPO)
)

Obs: ID_TIPO, DESCRICAO e TIPO são os nomes dos campos; Int, Varchar e Char são os tipos de dados; IDENTITY indica que o campo é auto-incrementável, ou seja, é uma numeração aoutmática crescente; NOT NULL e NULL indica se o campo pode ser vazio ou requerido e CONSTRAINT PRIMARY KEY de um determinado campo indica que ele é único na tabela ele nunca irá se repetir em outro registro da mesma tabela.

3 - Inserindo dados na Tabela

Abaixo irei apresentar duas formas de inserir dados em uma tabela.

1º - Exemplo
INSERT INTO TIPO_DESPESAS VALUES ( 'FIXA' , 'F')

2° - Exemplo
INSERT INTO TIPO_DESPESAS
SELECT 'VARIAVEL' , 'V'

Obs: Podemos perceber facilmente que não foi especificado na inserção o campo ID_TIPO, pois como havia dito anteriormente um campo IDENTITY é auto incrementável e logo quando faço a inserção dessa forma o campo é automáticamente atualizado.

Após executar com sucesso os três primeiros passos vamos rodas o seguinte Script que irá informar os dados contidos na tabela.

SELECT * FROM TIPO_DESPESAS

OK......................................

4 - Alterando dados da tabela (Update)

Neste exemplo vamos alterar o campo tipo da tabela que criamos acima, se executarmos um select na tabela  iremos ver o estado atual da mesma e ouro após o Update iremos perceber a alteração no campo TIPO.

UPDATE TIPO_DESPESAS
SET TIPO ='A'
WHERE ID_TIPO = 1

UPDATE TIPO_DESPESAS
SET TIPO ='B'
WHERE ID_TIPO = 2

Vamos executar novamente para ver a alteração.
SELECT * FROM TIPO_DESPESAS

5 - Conhecendo Constraints

Agora que já aprendemos o básico vamos começar a se aprofundar. Em criação de tabelas é possível o SQL Server oferece a criação de Constraints, nos exemplos abixo de criãção de tabelas iremos utilizar cada uma delas para melhor entendimento.
Tipos de Constraints :
  • - PRIMARY KEY
  • - FOREIGN KEY
  • - NOT NULL
  • - UNIQUE
  • - CHECK 
CREATE TABLE DESPESAS
(
ID_DESP        INT                     IDENTITY ,
DESCRICAO VARCHAR(40) NOT NULL ,
ID_TIPO        INT                     NOT NULL ,
CONSTRAINT PK_DESP PRIMARY KEY(ID_DESP) ,
CONSTRAINT FK_TIPO FOREIGN KEY(ID_TIPO)
REFERENCES TIPO_DESPESAS
)
INSERT INTO DESPESAS VALUES ( 'CONTA DE LUZ' , 1)
INSERT INTO DESPESAS VALUES ( 'CONTA DE ÁGUA' , 1)
INSERT INTO DESPESAS VALUES ( 'CONTA DE TELEFONE' , 1)
INSERT INTO DESPESAS VALUES ( 'RESTAURANTES E BARES', 2)
INSERT INTO DESPESAS VALUES ( 'CARTÃO VISA' , 2)
INSERT INTO DESPESAS VALUES ( 'CARTÃO MASTERCARD' , 2)
INSERT INTO DESPESAS VALUES ( 'PRESTAÇÃO CARRO' , 1)