SQLite Python: Criando tabelas

Resumo : neste tutorial mostraremos como criar tabelas no banco de dados SQLite a partir do programa Python usando o módulo sqlite3.

Para criar uma nova tabela em um banco de dados SQLite a partir de um programa Python, você usa as seguintes etapas:

  1. Primeiro, crie um Connectionobjeto usando a connect()função do módulo sqlite3.
  2. Segundo, crie um Cursorobjeto chamando o cursor()método do Connectionobjeto.
  3. Terceiro, passe a CREATE TABLEinstrução para o execute()método do Cursorobjeto e execute este método.

Para a demonstração, criaremos duas tabelas: projectse tasksconforme mostrado no diagrama do banco de dados a seguir:

Exemplo de criação de tabela Python SQLite

As CREATE TABLEinstruções a seguir criam essas duas tabelas:

-- projects table
CREATE TABLE IF NOT EXISTS projects (
	id integer PRIMARY KEY,
	name text NOT NULL,
	begin_date text,
	end_date text
);

-- tasks table
CREATE TABLE IF NOT EXISTS tasks (
	id integer PRIMARY KEY,
	name text NOT NULL,
	priority integer,
	project_id integer NOT NULL,
	status_id integer NOT NULL,
	begin_date text NOT NULL,
	end_date text NOT NULL,
	FOREIGN KEY (project_id) REFERENCES projects (id)
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Vamos ver como criar novas tabelas em Python.

Primeiro, desenvolva uma função chamada  create_connection() que retorne um Connectionobjeto que representa um banco de dados SQLite especificado pelo parâmetro de arquivo de banco de dados db_file.

def create_connection(db_file):
    """ create a database connection to the SQLite database
        specified by db_file
    :param db_file: database file
    :return: Connection object or None
    """
    conn = None
    try:
        conn = sqlite3.connect(db_file)
        return conn
    except Error as e:
        print(e)

    return connLinguagem de código:  Python  ( python )

Segundo, desenvolva uma função chamada create_table()que aceite um Connectionobjeto e uma instrução SQL. Dentro da função, chamamos o execute()método do Cursorobjeto para executar a CREATE TABLEinstrução.

def create_table(conn, create_table_sql):
    """ create a table from the create_table_sql statement
    :param conn: Connection object
    :param create_table_sql: a CREATE TABLE statement
    :return:
    """
    try:
        c = conn.cursor()
        c.execute(create_table_sql)
    except Error as e:
        print(e)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, crie uma main()função para criar as  tabelas projectse tasks.

def main():
    database = r"C:\sqlite\db\pythonsqlite.db"

    sql_create_projects_table = """ CREATE TABLE IF NOT EXISTS projects (
                                        id integer PRIMARY KEY,
                                        name text NOT NULL,
                                        begin_date text,
                                        end_date text
                                    ); """

    sql_create_tasks_table = """CREATE TABLE IF NOT EXISTS tasks (
                                    id integer PRIMARY KEY,
                                    name text NOT NULL,
                                    priority integer,
                                    status_id integer NOT NULL,
                                    project_id integer NOT NULL,
                                    begin_date text NOT NULL,
                                    end_date text NOT NULL,
                                    FOREIGN KEY (project_id) REFERENCES projects (id)
                                );"""

    # create a database connection
    conn = create_connection(database)

    # create tables
    if conn is not None:
        # create projects table
        create_table(conn, sql_create_projects_table)

        # create tasks table
        create_table(conn, sql_create_tasks_table)
    else:
        print("Error! cannot create the database connection.")
Linguagem de código:  Python  ( python )

Quarto, execute a main()função.

if __name__ == '__main__':
    main()Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está o programa completo:

import sqlite3
from sqlite3 import Error


def create_connection(db_file):
    """ create a database connection to the SQLite database
        specified by db_file
    :param db_file: database file
    :return: Connection object or None
    """
    conn = None
    try:
        conn = sqlite3.connect(db_file)
        return conn
    except Error as e:
        print(e)

    return conn


def create_table(conn, create_table_sql):
    """ create a table from the create_table_sql statement
    :param conn: Connection object
    :param create_table_sql: a CREATE TABLE statement
    :return:
    """
    try:
        c = conn.cursor()
        c.execute(create_table_sql)
    except Error as e:
        print(e)


def main():
    database = r"C:\sqlite\db\pythonsqlite.db"

    sql_create_projects_table = """ CREATE TABLE IF NOT EXISTS projects (
                                        id integer PRIMARY KEY,
                                        name text NOT NULL,
                                        begin_date text,
                                        end_date text
                                    ); """

    sql_create_tasks_table = """CREATE TABLE IF NOT EXISTS tasks (
                                    id integer PRIMARY KEY,
                                    name text NOT NULL,
                                    priority integer,
                                    status_id integer NOT NULL,
                                    project_id integer NOT NULL,
                                    begin_date text NOT NULL,
                                    end_date text NOT NULL,
                                    FOREIGN KEY (project_id) REFERENCES projects (id)
                                );"""

    # create a database connection
    conn = create_connection(database)

    # create tables
    if conn is not None:
        # create projects table
        create_table(conn, sql_create_projects_table)

        # create tasks table
        create_table(conn, sql_create_tasks_table)
    else:
        print("Error! cannot create the database connection.")


if __name__ == '__main__':
    main()Linguagem de código:  Python  ( python )

Vamos verificar se o programa criou essas tabelas com sucesso no pythonsqlite.dbbanco de dados.

Primeiro, inicie a linha de comando e conecte-se ao   pythonsqlite.dbbanco de dados:

>sqlite3 c:\sqlite\db\pythonsqlite.db
sqlite python criar tabela - conectar

Em seguida, use o .tablescomando para exibir as tabelas no banco de dados.

sqlite> .tables
projects  tasksLinguagem de código:  CSS  ( css )
sqlite python criar tabela - listar tabelas

Como você pode ver claramente na saída, temos as tabelas projectse tasksno pythonsqlite.dbbanco de dados. E o programa funciona conforme o esperado.

Neste tutorial, você aprendeu como criar novas tabelas no banco de dados SQLite usando o execute()método do Cursorobjeto.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *