
Python je multiplatformní jazyk oblíbený pro svou jednoduchost a stručnost. Jeho hlavní předností je srozumitelná a čistá syntaxe. Díky své jednoduchosti bývá označován jako jeden z nejvhodnějších programovacích jazyků pro začátečníky.
Odkazy na Literaturu k procvičování Pythonu, která je volně dostupná z internetu:
Mám za to, že v Sqlite to funguje tak, že se soubor je vlastně zároveň databází. Odpadá tedy zbytečné zprovozňování a vytváření DB, jako to známe z MySQL a Postgres. První co uděláme je prosté vytvoření souboru s DB a přeskočíme ihned k vytváření tabulky pomocí CREATE TABLE:
#!/usr/bin/env python3
def create_table():
import sqlite3
### CREATE TABLE
conn = sqlite3.connect('db.sqlite3')
#conn = sqlite3.connect(":memory:")
print("Opened database successfully")
conn.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
print("Table created successfully")
conn.close()
if __name__ == '__main__':
create_table()
V SQL vkládáme data do tabulek pomocí INSERT INTO:
def insert_table():
import sqlite3
### INSERT
conn = sqlite3.connect('db.sqlite3')
print("Opened database successfully")
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )");
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");
conn.commit()
print("Records created successfully")
conn.close()
Update hodnot v tabulce provádíme opět známým příkazem UPDATE:
def update_table():
import sqlite3
# UPDATE
conn = sqlite3.connect('db.sqlite3')
print("Opened database successfully")
conn.execute("UPDATE COMPANY set SALARY = 2000.00 where ID = 1")
conn.commit()
print("Total number of rows updated :%s" % (conn.total_changes))
print("Operation done successfully")
Update hodnot v tabulce pomocí DELETE:
def delete_table():
import sqlite3
conn = sqlite3.connect('db.sqlite3')
print("Opened database successfully")
conn.execute("DELETE from COMPANY where ID = 2;")
conn.commit()
print("Total number of rows updated :%s" % (conn.total_changes))
print("Operation done successfully")
Selectem vybíráme hodnoty v databázi. Používáme přitom starý známý příkaz SELECT:
def select_table():
import sqlite3
### SELECT
conn = sqlite3.connect('db.sqlite3')
print("Opened database successfully")
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
print("ID = %s" % row[0])
print("NAME = %s" % row[1])
print("ADDRESS = %s" % row[2])
print("SALARY = %s\n" % row[3])
print("Records created successfully")
conn.close()
SQLite databázi můžeme mít v souboru, nebo v RAM. Pokud používáme paměť, začínáme připojením detabáze slovíčkem :memory:. Pokud máme DB v paměti, nevytváří se žádný soubor, ale jsme omezeni tím, že jakmile pusíme příkaz close() je databáze z paměti smazána. Použití je tedy poněkud jednorázové:
def fetchone_table():
import sqlite3
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.executescript("""
create table samples(
id,
value
);
insert into samples(id, value)
values (
'123',
'abcdef'
);
insert into samples(id, value)
values (
'111',
'222222'
);
""")
cur.execute("SELECT * from samples")
print(cur.fetchone())
#print(cur.fetchall())
DB můžeme zakládat trochu profesionálněji, když ušetříme vyjimky:
def newdb_sqlite():
import sqlite3
try:
sqliteConnection = sqlite3.connect('sqlite.db')
cursor = sqliteConnection.cursor()
print("Database created and Successfully Connected to SQLite")
sqlite_select_Query = "select sqlite_version();"
cursor.execute(sqlite_select_Query)
record = cursor.fetchall()
print("SQLite Database Version is: ", record)
cursor.close()
except sqlite3.Error as error:
print("Error while connecting to sqlite", error)
finally:
if (sqliteConnection):
sqliteConnection.close()
print("The SQLite connection is closed")