SQL SERVER - Usando a linguagem de definição de dados (DDL)


O SQL Server (o enfoque será sobre a versão 2000) é um SGBD - Sistema Gerenciador de Banco de dados - da Microsoft (originalmente o projeto do SQL Server foi desenvolvimento pela Sybase) que pode ser instalado no Windows NT/2000 e Win9x e que possui as seguintes características :

Geralmente dizemos que o SQL Server é um SGBD cliente/Servidor pois comporta diferentes tipos de plataformas e possui funcionalidades divididas entre clientes e servidores , onde o cliente fornece uma ou mais interfaces que serão usadas para requerer uma solicitação ao servidor(SGBD) ; este por sua vez , processa a solicitação e devolve o resultado ao cliente.

O SQL Server possui uma linguagem relacional chamada de Transact-SQL que é um dialeto da linguagem SQL - Structured Query Language. A principal característica da linguagem SQL é ter sido projetada para trabalhar com conjuntos de registros de dados , enquanto que as linguagens tradicionais (C++, VB , Delphi,..) podem tratar apenas um registro por vez. Além disto a SQL não é procedural , ou seja , a SQL não precisa descrever em detalhes como realizar uma tarefa , ela apenas descreve o que o usuário final deseja.

A SQL se divide em dois subconjuntos de linguagem :

  1. A linguagem de Definição de Dados - DDL - que usa instruções para descrever o esquema dsa tabelas do banco de dados
  2. A linguagem de Manipulação de Dados - DML - que usa instruções para manipular os dados.

Usando a DDL - Criando objetos de banco de dados

Na organização do SQL Server podemos ter objetos físicos e lógicos :

  1. Os objetos físicos relacionam-se com a organização dos dados no disco
  2. Os objetos lógicos são constituídos por : banco de dados , tabelas, visões , colunas , linhas , etc...

O SQL Server permite a criação de banco de dados do usuário (criados por um usuário autorizado) e banco de dados do sistema (criados durante a instalação) os quais são :

  • Master
  • tempdb
  • model
  • msdb
  • distribution

Para criar um banco de dados podemos usar o - SQL Server Entreprise Manager - ou usar uma instrução Transact-SQL , a instrução CREATE DATABASE cuja sintaxe é :

CREATE DATABASE nome_do_bd
  [ ON PRIMARY ] arquivo1 , arquivo2, ...
  [ LOG ON arquivo3, arquivo4,... ]
  [ FOR RESTORE ]
      [ COLLATE nome_collate ]
  1. nome_do_bd - é o nome do banco de dados ( podemos usar até 128 caracteres)
  2. ON PRIMARY - especifica o primeiro arquivo que contém tabelas de sistema e informações internas
    1. arquivo1 , arquivo2 - representam as especificações dos arquivos (nome, tamanho, etc...)
  3. LOG ON - é usada para definir um ou mais arquivos como destino do log de transações do banco de dados.
  4. FOR RESTORE - usada apenas por questões de compatibilidade som as versões anteriores
  5. COLLATE - define um conjunto de regras padrão para o banco de dados.

Vamos criar um banco de dados simples que não use nenhuma especificação. Abra o - SQL Query Analyser - e digite a instrução : CREATE DATABASE teste_bd e clique no botão para executar a query. Você verá:

Criamos o banco de dados teste_bd

- o nome lógico é teste_bd

- o nome lógico do Log de transações é : teste_bd_log

Se quisermos especificar detalhes na criação de um banco de dados podemos fazer :

CREATE DATABASE teste_bd
  ON (NAME=teste_dat,
    FILENAME = 'C:\SQLSV\teste_bd.mdf',
    SIZE = 5,
    MAXSIZE= 20,
    FILEGROWTH=5)
LOG ON
  (NAME= teste_log,
    FILENAME = 'C:\SQLSV\teste_bd.ldf',
    SIZE = 10,
    MAXSIZE= 50,
    FILEGROWTH=10 )

Executando o código no - Query Analyser - obtemos o seguinte resultado:

No exemplo acima estamos criando um banco de dados chamado - teste_bd . Como omitimos a opção PRIMARY assumimos que o primeiro arquivo é o primário. Este arquivo tem o nome lógico de teste_dat e esta armazenado no arquivo teste_bd.mdf com tamanho original de 5 MB.

Temos também um arquivo de log de transações com o nome lógico de teste_log e nome físico de teste_bd.ldf. (para usar o banco de dados basta abrí-lo usando o comando USE teste_bd da T-SQL)

Nota:

È possível criar um banco de dados no SQL Server usando código Visual Basic ? A resposta é NÃO.

Para criar um banco de dados no VB usamos a ADOX. E não podemos usar ADOX para criar um banco de dados SQl Server. Mas há uma alternativa ( sempre há ...).

Podemos usar uma conexão ADO para fazer isto, veja o código abaixo:

Dim oConn As ADODB.Connection
Dim sDatabaseName As String

sDatabaseName = "teste1"

Set oConn = New ADODB.Connection
oConn.Open "Provider=SQLOLEDB;Data Source=(local);User ID=sa;Password=;"
oConn.Execute "CREATE DATABASE " & sDatabaseName

Criando Tabelas

A instrução Create Table cria uma nova tabela . A forma básica da instrução é a seguinte:

CREATE TABLE nome_tabela
  (nome_col1 tipo1 [NOT NULL | NULL]
  nome_col2 tipo2 [NOT NULL | NULL]

- nome_tabela - é o nome da tabela que deverá ser criada (o número máximo de tabelas em um banco de dados é limitado pelo número de objetos no banco de dados. Podemos de mais de 2 bilhões de objetos em um bd)

- nome_col1 , nome_col2 - são os nomes das colunas da tabela.(o número máximo de colunas é 1024)

- tipo1 , tipo2 - são os tipos de dados para cada coluna.

A existência de valores Nulos em uma coluna é definida pelas cláusulas : NOT NULL ou NULL.

Se NOT NULL estiver definido , a atribuição de valores nulos para a coluna não é permitida ; se houver uma tentativa de inserir um valor nulo ocorrerá uma mensagem de erro.

- O privilégio para criar uma tabela após a criação do banco de dados é concedido de forma implícita ao Administrador do sistema e ao proprietário do banco de dados.(GRANT CREATE TABLE concede previlégios para criar tabelas a outros usuários)

- Além das tabelas de base existem alguns tipos especiais de tabelas : temporárias (armazenadas no banco de dados tempdb) e as visualizações.

Vejamos como criar uma tabela usando Create Table:

CREATE TABLE alunos (cod_aluno INTEGER NOT NULL,
                    nome_aluno CHAR(30) NOT NULL,
                    endereco_aluno CHAR(50) NOT NULL,
                    telefone_aluno CHAR(20) NULL,
                    nascimento_aluno DATETIME NULL) 

O código acima cria a tabela alunos com a seguinte estrutura :

Nome da coluna Tamanho da Coluna Permite Nulos
cod_aluno - Não
nome_aluno 30 Não
endereco_aluno 50 Não
telefone_aluno 20 Sim
nascimento_aluno - Sim

Vamos parar por aqui. Aguarde em breve mais artigos sobre o assunto.

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

     Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti