
Każda kolumna w tabeli ma określony typ danych, na przykład tekstowy, liczbowy lub datowy. Typ danych określa, jakie rodzaje danych można przechowywać w danej kolumnie.
Bazy danych SQL składają się z trzech podstawowych elementów:
- Tabele – to struktury przechowujące dane w postaci wierszy i kolumn. Każda tabela ma unikalną nazwę i składa się z jednego lub wielu kolumn.
- Kolumny – każda kolumna ma swoją nazwę oraz określony typ danych, który określa rodzaj danych, które można przechowywać w tej kolumnie.
- Wiersze – to pojedyncze rekordy w tabeli, które składają się z danych przechowywanych w każdej z kolumn. Każdy wiersz ma unikalny identyfikator (klucz główny), który służy do identyfikowania go w bazie danych.
Bazy danych SQL umożliwiają manipulowanie danymi za pomocą języka SQL, który umożliwia wykonywanie operacji takich jak tworzenie, aktualizowanie i usuwanie danych z tabel.” Koniec cytatu z inteligencji;)
KOD
Poniżej kod, który pokazuje istotę działania biblioteki SQLAlchemy. Tworzymy bazę, kreujemy klasę, która buduje strukturę bazy. Potem
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
# create the extension
db = SQLAlchemy()
# create the app
app = Flask(__name__)
# configure the SQLite database, relative to the app instance folder
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///db2.sqlite3"
# initialize the app with the extension
# db.init_app(app)
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
# username = db.Column(db.String, unique=True, nullable=False)
username = db.Column(db.String)
email = db.Column(db.String)
def __repr__(self):
return '<User %r>' % self.username
app.app_context().push()
# with app.app_context():
# db.create_all()
# DODAWANIE REKORDÓW DO BAZY
user1 = User(username="Pirra", email="pirra@com.pl")
user2 = User(username="Chomek", email="chomek@com.pl")
with app.app_context():
db.session.add(user1)
db.session.add(user2)
db.session.commit()
# # SZUKANIE REKORDÓW W BAZIE
# with app.app_context():
# db.session.add(user1)
#
# app.app_context().push()
# for user in User.query.all():
# print(user.id, user.username, user.email)
#
# print(User.query.count())
# print(f"filter: {User.query.filter_by(username='Pirra').all()}")
# # SZUKANIE W BAZIE REKORDÓW I ZASTĘPOWANIE WARTOŚCI NOWYMI
# app.app_context().push()
# wirta = User.query.filter_by(username='Chomek').first()
# print(wirta.id, wirta.username, wirta.email)
# wirta.email = 'stary@wkurw.com'
# db.session.commit()
# wirta = User.query.filter_by(username='Chomek').first()
# print(wirta.id, wirta.username, wirta.email)
# # USUWANIE REKORDÓW
# dziwek = User.query.filter_by(username='Pirra').one()
# db.session.delete(dziwek)
# db.session.commit()
# print(User.query.all())
# obj = User.query.filter_by(id=2).one()
# db.session.delete(obj)
# db.session.commit()
# print(User.query.all())
Typy danych
Integer | an integer |
String(size) | a string with a maximum length (optional in some databases, e.g. PostgreSQL) |
Text | some longer unicode text |
DateTime | date and time expressed as Python datetime object. |
Float | stores floating point values |
Boolean | stores a boolean value |
PickleType | stores a pickled Python object |
LargeBinary | stores large arbitrary binary data |