quarta-feira, 14 de setembro de 2011

C# - SQLite Criação de Tabelas

Antes de partir para o código em C# para executar uma query e assim criar as tabelas no banco de dados SQLite que neste artigo é o objetivo do mesmo, temos de falar sobre os tipos de dados que o SQLite implementa.
No SQLite, existem apenas 5 tipos de dados, sendo eles:
  • NULL - comum em qualquer outro banco de dados.
  •  INTEGER - inteiro com sinal, armazenado em 1, 2, 3, 4, 6 ou 8 bytes dependendo da grandeza do valor.
  • REAL - valor de ponto flutuante armazenado em 8 bytes.
  • TEXT - uma string armazenada usando UTF-8, UTF-16BE ou UTF-16LE.
  •   BLOB - armazena um blob, como indica o nome.

A biblioteca do SQLite implementa recursos de compatibilidade com outros bancos de dados, no site do desenvolvedor essa compatibilidade é tratada como uma espécie de afinidade. Por exemplo, um tipo de dados INT comum em diversos bancos de dados é tratado como um INTEGER no SQLite, abaixo segue uma tabela com uma listagem das afinidades entre os tipos de dados e o SQLite:

Tipo de Dados de Outros Bancos de Dados
Tipo de Dados do SQLite
INT




INTEGER
INTEGER
TINYINT
SMALLINT
MEDIUMINT
BIGINT
UNSIGNED INT BIG
INT2
INT8
CHARACTER (20)



TEXT
VARCHAR (255)
CHARACTER VARYING (255)
NCHAR (55)
CHARACTER NATIVA (70)
NVARCHAR (100)
TEXTO
CLOB
BLOB
BLOB
REAIS

REAL
DOUBLE
DOUBLE PRECISION
FLOAT
NUMERIC


NUMERIC
DECIMAL (10,5)
BOOLEAN
DATA
DATETIME
  
Basicamente são estes os tipos de dados mais Informações podem ser vistas no site do desenvolvedor do SQLite nesta página.
Partindo para o tema do artigo, vamos estudar como utilizar a classe do System.Data.SQLite, classe esta que executa comandos no banco de dados. O SQLiteCommand é a classe responsável por esta execução de comandos no banco de dados.
O exemplo abaixo mostra como cria no banco da dados SQLite uma tabela chamada Cliente com três campos cliId, cliNome e o cliEmail, vamos aproveitar a rotina mostrada no ultimo artigo que mostrava como criar e abrir uma conexão com o banco de dados SQLite:
SQLiteCommand objCommand;
SQLiteConnection objConnection; // Objeto de com o arquivo do banco de dados
StringBuilder strConnection = new StringBuilder();// String de com o arquivo do banco de dados
// Busco o Diretório de onde minha aplicação esta sendo executada
string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
// pego o caminho de onde a aplicação esta sendo executada concateno o diretório com o nome do 
// arquivo do banco de dados
path = path + @"\BaseDados.db";
// Comesso a montar a String de Conexão definindo o Data Source
strConnection.Append("Data Source=BaseDados.db;");
// Definindo a versão
strConnection.Append("Version=3;");
// Verifico se o arquivo do banco de dados existe para criar ou não um novo banco de dados
if (File.Exists(path))
    strConnection.Append("New=False;");
else
    strConnection.Append("New=True;");
// Defino que quero o arquivo em um formato comprimido para economizar espaço em disco
strConnection.Append("Compress=True;");
// adiciono ao objeto de conexão a string de conexão formada
objConnection= new SQLiteConnection(strConnection.ToString());
// Abro o banco de dados
objConnection.Open();
// Crio um novo comando para executar comandos SQL no banco de dados
objCommand = objConnection.CreateCommand();
// Adiciono o comando ao SQLiteCommand
objCommand.CommandText = "CREATE TABLE CLIENTE (cliId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," +
                         " cliNome TEXT NOT NULL, cliEmail TEXT NOT NULL)";
// Executo a Nom Query (nom query porque não está me retornando dados)
objCommand.ExecuteNonQuery();
// Executo o metodo dispose para liberar os recuses que não serão mais utilizados
objCommand.Dispose();
// Fecha a conexão com o banco de dados
objConnection.Open();
// Executo o metodo dispose para liberar os recuses que não serão mais utilizados
objConnection.Dispose();


O SQLite possui diversas formas de executar este comando  de criação de uma tabela nesta página do site do Desenvolvedor do SQLite, o comando de criação de uma tabela também pode ser escrito de outra forma como a mostrada abaixo:
  •    "CREATE TABLE IF NOT EXISTS CLIENTE..." –  Sendo que este comando criaria a tabela cliente caso a não exista no banco de dados.

Para se excluir uma tabela do banco de dados SQLite, não existe nenhum segredo ele basicamente funciona da mesma forma que funciona em outros bancos de dados:
  •  "DROP TABLE CLIENTE" –  Exclui a tabela cliente do banco de dados.
  • "DROP TABLE IF EXISTS CLIENTE" –  Exclui uma tabela no banco de dados caso a mesma exista.

Bom basicamente é desta forma que criamos e excluímos uma tabela no banco de dados Sqlite, no próximo artigo veremos como inserir dados no SQLite usando os recursos oferecidos pelo componente ADO.NET System.Data.SQLite.

Nenhum comentário:

Postar um comentário