|
Cursos
On-line Gratuitos-
Migrando de Access para SQL Server
Aula
02
Agora
que já sabemos instalar o SQL Server, trabalhar com tabelas Access,
só falta uma coisa para migrar tabelas do Access (que é o tipo de
dados nativo do VB) para o SQL, que vem sendo adotado por inúmeras
empresas.
TABELAS
Antes
de você partir para a criação das tabelas, deverá fazer um estudo
minucioso do seu banco de dados e das informações que você terá
que armazenar. Muitos desenvolvedores tem o hábito de definir o
banco de dados quando já estão dentro do módulo de criação das tabelas.,
sem ter estudado e definido previamente as informações necessárias
para a confecção das mesmas, podendo com isso colocar em risco a
qualidade das informações.
O
SQL Server pode trabalhar com a criação de tabelas de duas formas
:
1)
Temporárias - são criadas em memória.
2)
Permanentes - são gravadas em disco.
Cada
tabela a ser criada no SQL poderá ter no máximo 1024 campos ( Colunas
). Cada campo ( Coluna ) deve possuir algumas especificações, como
seu nome, tipo de dados que vai armazenar. Outras informações são
opcionais, tipo valor padrão e limitações, como por exemplo valor
máximo, etc...
O
número de registros em uma única tabela é limitado pelo tamanho
do local de armazenamento dos mesmos.
Assim
como em outros ambiente de desenvolvimento, no SQL, cada tabela
recebe um nome, e este nome é único, assim como seus campos também.
Por exemplo, em uma mesma tabela, não podemos ter dois campos "TELEFONE",
neste caso, teríamos que criar o campo "TELEFONE_RESIDENCIAL",
e "TELEFONE_COMERCIAL".
Quando
criamos uma tabela no SQL, a mesma é armazenada no que chamamos
de FileGroup.
Conforme
comentamos anteriormente, todo campo ( Coluna ) de uma tabela, deve
informar o tipo de dados que vai armazenar. A esta especificação
denominamos "DATA - TYPES". O SQL Server já traz consigo
uma infinidade de DATA-TYPES, porém em uma operação mais específica,
podemos criar nossos próprios DATA-TYPES.. Listamos a seguir a lista
dos DATA-TYPES do SQL Server 7.0 :
Dados
binários :
| Binary(n) |
Usado
para armazenar números hexadecimais com tamanho fixo ( até
8 KB ) |
| Varbinary(n) |
Usado
para armazenar números hexadecimais com tamanho variável
( até 8 KB ) |
| image |
Se
o dado binário for maior que 8 KB, use o tipo de dado image.
Este tipo é usado para armazenar documentos do Word, imagens,
planilhas do excel, etc. |
Caracteres
: que podem armazenar letras, números e outros símbolos.
| Char(n) |
Para
caracteres com tamanho fixo ( até 8Kb ) |
| Varchar(n) |
Para
caracteres com tamanho variado (até 8 KB ) |
| text |
Para
caracteres com tamanho maior do que 8 KB, como documentos
HTML. |
Data
e Hora :
| datetime |
Armazena
dados alfanuméricos que representam datas de 1/1/1753 a
31/12/9999. Ocupa 8 bytes no disco |
| smalldatetime |
Armazena
dados alfanuméricos que representam datas de 1/1/1900 a
6/6/2079. Ocupa 4 bytes no disco |
Dados
numéricos :
Para
armazenar números inteiros, escolha uma das opções que segue :
| Int |
Armazena
números entre -2.147.483.648 a 2.147.483.647. Ocupa em disco
4 bytes |
| smallint |
Armazena
números entre -32768 a 32767 |
| tinyint |
Armazena
valores entre 0 a 255. Ocupa em disco 1 byte. |
Para
armazenar números decimais, escolha uma das opções que segue :
| Decimal(p,s) |
Para
armazenar números exato. O parâmetro P indica o número de
dígitos que o campo poderá conter antes e depois do ponto
decimal. Já o parâmetro S determina o número de dígitos
após o ponto decimal. |
| Numeric(p,s) |
Para
armazenar números exato. O parâmetro P indica o número de
dígitos que o campo poderá conter antes e depois do ponto
decimal. Já o parâmetro S determina o número de dígitos
após o ponto decimal. |
| Float(n) |
Para
armazenar números não exatos, como dízimas periódicas. Neste
caso, o dado é aproximado de acordo com o processador do
sistema. O parâmetro n determina a precisão do número. Se
for de 1 a 24, a precisão é de 7 digitos, e ocupa 4 bytes.
Se for de 25 a 53, a precisão é de 15 dígitos, e ocupa 8
bytes de espaço. |
| real |
Corresponde
a float(24) |
Dados
monetários :
| money |
Armazena
valores de -922.337.203.685.477,5808 a +922.337.203.685.477,5807.
Ocupa 8 bytes. |
| smallmoney |
Armazena
valores de 214.748,3648 a 214.748,3647 e ocupa 4 bytes. |
Você
pode observar que , ao determinar um tipo de dados para uma coluna
( campo ), força o usuário a entrar com um valor específico. Por
exemplo, letras não são aceitas em campos numéricos.
E
você ainda tem a possibilidade de fazer com que a entrada de dados
se aproxime ao máximo do que você deseja, através de um recurso
do SQL chamado de restrição, através de chaves primárias e externas,
valores padrões para o campo, etc...
Este
processo é chamado de integridade do banco de dados através das
Constraints.
As
constraints tem prioridade sobre tiggers, regras e valores defaut.
Existem cinco tipos de Constraints :
Not
Null : especifica que um campo ( coluna ) não pode aceitar o
valor nulo Null.
Check
: limita os valores que podem ser colocados no campo ( coluna
) por meio do teste de uma condição booleana baseada no conteúdo
que se pretende atribuir a mesma. Por exemplo, você poderia estabelecer
o campo salário entre os valores 136 e 10000 :
Salario
>= 136,00 and Salario <=10000
Chaves
primárias : Também conhecida como primary key é um campo ou
um conjunto de campos que identifica de forma única um registro
de uma tabela. Em outras palavras, o campo sendo chave primária,
não pode ter o seu conteúdo repetido em um outro registro.
Uma
tabela só pode conter uma chave primária, e os campos que foram
selecionados como chave primária não podem conter valores nulos.
Chaves
externas : também conhecida como foreign key, é um campo ou
um conjunto deles que correspondem a chave primária de uma outra
tabela. A chave externa é utilizada para relacionamento de tabelas.
Por
exemplo : Em uma tabela contendo os registros de compras, poderia
ter como campo o código do fornecedor para qual a mercadoria foi
comprada. O campo código do vendedor, um dos campos da tabela de
compras, seria a chave primária da tabela fornecedores. Note que,
ao inserirmos um novo registro na tabela de compras, o valor do
campo que é a chave externa deve existir na tabela que o mesmo está
ligado.
Unique
: determina o comportamento de campos que não são chave primária.
Com ela, o campo não admite valores duplicados, permite valores
nulos, e criamos automaticamente um índice para facilitar a pesquisa
na tabela.
Como
primeiro exemplo, vamos criar três tabelas : uma para conter os
dados dos autores de livros, outra para conter os livros e uma terceira
para associar autores e livros.
Observe
a estrutura da tabela de autores :
| Campo |
Tipo |
Tamanho |
Nulo |
Default |
Observação |
| Codigo_autor |
ID |
4 |
não |
|
|
| Nome |
varchar |
30 |
Não |
|
|
| fone |
varchar |
16 |
Sim |
|
|
| email |
varchar |
30 |
Sim |
|
|
| endereco |
varchar |
40 |
Sim |
|
|
| bairro |
varchar |
20 |
Sim |
|
|
| cidade |
varchar |
20 |
Sim |
|
|
| estado |
varchar |
2 |
Sim |
|
|
| Cep |
varchar |
9 |
|
|
|
| ativo |
bit |
1 |
|
|
|
Observe
a estrutura da tabela Livros :
| Campo |
tipo |
Tamanho |
Nulo |
Default |
Observação |
| Codigo_livro |
ID |
4 |
Não |
|
|
| titulo |
varchar |
40 |
não |
|
|
| Valor |
money |
8 |
Não |
|
|
| Secao |
char |
10 |
Não |
|
|
| Data_pub |
datetime |
8 |
Sim |
|
|
Observe
a estrutura da tabela LivrosAutor :
| Campo |
tipo |
Tamanho |
Nulo |
Default |
Observação |
| Codigo_livro |
ID |
5 |
Não |
|
|
| Codigo_autor |
ID |
5 |
Não |
|
|
Vamos
finalmente ao que nos interessa, a criação de tabelas. Para isso,
proceda da seguinte forma :
- Na
árvore de servidores do Enterprise Manager, clique com o botão
direito do mouse sobre o banco de dados no qual você quer criar
a tabela .
- No
menu suspenso que surgiu, selecione a opção new, item
table, conforme mostra a figura a seguir :
- Ao
clicar sobre a opção New ... Table, irá surgir a seguinte janela
na tela do seu micro :

- Digite
o nome da tabela a ser criada e em seguida clique sobre o botão
de OK. No nosso exemplo, a primeira tabela tem o nome de autores.
- Neste
ponto, será exibida a seguinte janela na tela de seu micro :
A
seguir, vamos dar a descrição das funções da estrutura de tabela
:
Column
name - digite nesta coluna o nome do campo;
Datatype
- escolha o tipo de dado que o campo poderá conter;
Lenght
- se necessário, entre com o tamanho do campo.
Precision
- defina a precisão desejada.
Allow
Nulls - marque o quadro se o campo aceitar valores nulos, ou
desmarque-o caso o usuário tenha que entrar necessariamente com
um valor para o mesmo.
Default
value - defina, se for o caso, um valor default para o campo.
Identy
- Marque o quadrado se o campo for identificador de registro.
Neste caso, o campo não pode conter valores nulos, automaticamente
a opção Allow Nulls deverá estar desmarcada.
Algumas
considerações importantes :
- Caso
você tenha definido o campo como ID, defina em Identify Seed
o valor inicial do campo e em Identify Increment o incremento.
RowGrid
- cria um conteúdo único para a coluna em nível global. Uma
tabela pode ter uma única coluna deste tipo e deve ser criada com
o data type uniqueidentifier.
Então,
conforme visto até o momento, vamos criar a estrutura em si da tabela
de autores. No final do processo, a sua tela ficará parecida com
a figura que segue :
Após
ter digitado todo o conteúdo da tabela, falta definir a chave primária,
que neste caso é o campo Codigo_autor. Para isso, clique na coluna
anterior a Column Name, e em seguida clique sobre o botão Set Primary
Key, conforme mostra a figura a seguir :

Apagando
uma tabela do banco de dados
Para
realizar esta tarefa., proceda da seguinte forma :
- Dentro
do banco de dados onde foi gerada a tabela, selecione a pasta
Tables. Observe que a tabela irá aparecer a na divisão da janela
à direita, conforme mostra a figura a seguir :
- Clique
com o botão direito do mouse sobre a tabela a ser excluída;
- No
menu suspenso que se abre, clique sobre a opção Delete. Será
exibida a seguinte janela na tela do seu micro :
Renomeando
uma tabela
O
processo é praticamente o mesmo visto no passo anterior, porém para
renomear, basta clicar no botão RENAME ao invés de clicar no botão
DELETE, e inserir o novo nome da tabela.
Incluindo,
editando e excluindo os dados de uma tabela
Quem
já trabalhou com o Access, ou até mesmo algum aplicativo do Dbase
III, como o assist, vai ver que é muito simples incluir dados em
uma tabela do SQ, bem como alterar ou excluir registros.
Para
ter acesso a estas operações, clique com o botão direito do mouse
sobre a tabela a movimentar, e em seguida, no menu suspenso que
se abre, clique sobre a opção OPEN TABLE .... RETURN ALL ROWS, conforme
mostra a figura a seguir :

Após feito isto, será exibida a seguinte janela na tela de seu micro
:

Nesta janela, podemos incluir, alterar ou excluir registros.
Para
Incluir registros, basta clicar com na coluna Codigo_autor e iniciar
a digitação dos dados desde registros. Chegando ao final desta linha,
sobre o campo ativo, após a inclusão do seu valor, será automaticamente
aberto um novo registro.
Para
alterar qualquer dado de qualquer campo, basta clicar sobre o registro
e seu respectivo campo e alterar o seu conteúdo.
Para
excluir um registro, clique sobre o ponteiro do mesmo e em seguida
pressione a Tecla DELETE. Será aberta uma janela pedindo para que
você confirme a operação.
Alterando
a estrutura de uma tabela
Pode
acontecer, de após ter concluído a estrutura da tabela, você tenha
que incluir ou excluir um campo criado. Para realizar esta operação,
proceda da seguinte forma :
Inserindo
um novo campo :
- Clique
com o botão direito do mouse sobre a tabela que terá um novo
campo;
- No
menu que se abre, clique sobre a opção DESIGN TABLE;
- Selecione
a coluna (campo) que se tornará a coluna seguinte à nova coluna
que você irá criar, dando um clique com o botão direito do mouse
sobre a mesma;
- No
menu suspenso que foi aberto, clique sobre a opção INSERT COLUMN;
- Preencha
todos os dados do novo campo ( coluna );
- Clique
sobre o ícone que representa a ação de salvar ( SAVE );
Excluindo
um campo existente :
- Siga
os 2 primeiros passos do exemplo anterior;
- Clique
com o botão direito do mouse sobre o campo a ser excluído;
- No
menu suspenso que é aberto, clique sobre a opção DELETE COLUMN;
- Clique
no ícone que representa a ação de salvar ( SAVE );
Como
primeiro exercício de nosso curso, você deverá criar a estrutura
das outras duas tabelas.
Voltar
Principal
| Cursos Gratuitos
| Cursos Diversos
| Dicas
| Promoções
| Mapa do
Site | QUIZ
|
|
Classificados | Central
Currículo | Fórum
| Fale Conosco |