Tietotyypit
SQLite tarjoaa useita tietotyyppejä eli tallennusluokkia, joilla määritellään, millaista dataa tauluun voidaan tallentaa. Vaikka SQLite käyttää dynaamista tyypitystä eikä pakota tiukkoja tietotyyppejä, se tunnistaa viisi ensisijaista affiniteettityyppiä.
Taulun luominen eri tietotyypeillä
Alla esimerkki taulun luomisesta, jossa käytetään erilaisia SQLite-tietotyyppejä:
CREATE TABLE example (
id INTEGER PRIMARY KEY, -- Integer (auto-increment if PRIMARY KEY)
name TEXT NOT NULL, -- Text field (mandatory)
price REAL, -- Floating-point number
data BLOB, -- Binary data
created_at TEXT DEFAULT NULL -- Text field with NULL as default
);
SQLite sallii minkä tahansa tyyppisen datan tallentamisen mihin tahansa sarakkeeseen riippumatta siitä, mikä tyyppi sarakkeelle on määritelty taulua luotaessa (paitsi INTEGER PRIMARY KEY
-sarakkeet). SQLite käyttää myös lähestymistapaa, joka auttaa tulkitsemaan ja tallentamaan datan oikein, varmistaen että kaikki toimii sujuvasti ja tehokkaasti.
1234567891011121314151617181920212223242526272829import sqlite3 conn = sqlite3.connect('data.db') cursor = conn.cursor() # Creating the table cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT, age INTEGER ) ''') # Inserting different types of data into the `age` column cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 25)") # standard value cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 'Thirty')") # text value in `INTEGER` column cursor.execute("INSERT INTO users (name, age) VALUES ('Charlie', 30.5)") # float value in `INTEGER` column # Retrieving all records from the table cursor.execute("SELECT * FROM users") rows = cursor.fetchall() # Printing the results for row in rows: print(row) # Closing the database connection conn.close()
Tämä esimerkki havainnollistaa, kuinka SQLite sallii erilaisten tietotyyppien lisäämisen samaan sarakkeeseen, vaikka sarake olisi määritelty INTEGER
-tyyppiseksi. Esimerkiksi age
-sarakkeeseen (määritelty INTEGER
-tyyppiseksi) lisätään seuraavat tiedot:
- Kokonaisluku (
25
); - Tekstiarvo (
'Thirty'
); - Liukuluku (
30.5
).
SQLite ei rajoita sarakkeeseen lisättävien tietojen tyyppiä, kiitos sen dynaamisen tyyppijärjestelmän. Tämä lähestymistapa mahdollistaa useiden eri tietotyyppien tallentamisen samaan sarakkeeseen ilman virheitä.
1. Mitä tietotyyppiä käytetään SQLitessa ilmaisemaan arvon puuttumista?
2. Mitä tapahtuu, jos yrität lisätä tekstiarvon INTEGER-sarakkeeseen SQLite-tietokannassa?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 4.76
Tietotyypit
Pyyhkäise näyttääksesi valikon
SQLite tarjoaa useita tietotyyppejä eli tallennusluokkia, joilla määritellään, millaista dataa tauluun voidaan tallentaa. Vaikka SQLite käyttää dynaamista tyypitystä eikä pakota tiukkoja tietotyyppejä, se tunnistaa viisi ensisijaista affiniteettityyppiä.
Taulun luominen eri tietotyypeillä
Alla esimerkki taulun luomisesta, jossa käytetään erilaisia SQLite-tietotyyppejä:
CREATE TABLE example (
id INTEGER PRIMARY KEY, -- Integer (auto-increment if PRIMARY KEY)
name TEXT NOT NULL, -- Text field (mandatory)
price REAL, -- Floating-point number
data BLOB, -- Binary data
created_at TEXT DEFAULT NULL -- Text field with NULL as default
);
SQLite sallii minkä tahansa tyyppisen datan tallentamisen mihin tahansa sarakkeeseen riippumatta siitä, mikä tyyppi sarakkeelle on määritelty taulua luotaessa (paitsi INTEGER PRIMARY KEY
-sarakkeet). SQLite käyttää myös lähestymistapaa, joka auttaa tulkitsemaan ja tallentamaan datan oikein, varmistaen että kaikki toimii sujuvasti ja tehokkaasti.
1234567891011121314151617181920212223242526272829import sqlite3 conn = sqlite3.connect('data.db') cursor = conn.cursor() # Creating the table cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT, age INTEGER ) ''') # Inserting different types of data into the `age` column cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 25)") # standard value cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 'Thirty')") # text value in `INTEGER` column cursor.execute("INSERT INTO users (name, age) VALUES ('Charlie', 30.5)") # float value in `INTEGER` column # Retrieving all records from the table cursor.execute("SELECT * FROM users") rows = cursor.fetchall() # Printing the results for row in rows: print(row) # Closing the database connection conn.close()
Tämä esimerkki havainnollistaa, kuinka SQLite sallii erilaisten tietotyyppien lisäämisen samaan sarakkeeseen, vaikka sarake olisi määritelty INTEGER
-tyyppiseksi. Esimerkiksi age
-sarakkeeseen (määritelty INTEGER
-tyyppiseksi) lisätään seuraavat tiedot:
- Kokonaisluku (
25
); - Tekstiarvo (
'Thirty'
); - Liukuluku (
30.5
).
SQLite ei rajoita sarakkeeseen lisättävien tietojen tyyppiä, kiitos sen dynaamisen tyyppijärjestelmän. Tämä lähestymistapa mahdollistaa useiden eri tietotyyppien tallentamisen samaan sarakkeeseen ilman virheitä.
1. Mitä tietotyyppiä käytetään SQLitessa ilmaisemaan arvon puuttumista?
2. Mitä tapahtuu, jos yrität lisätä tekstiarvon INTEGER-sarakkeeseen SQLite-tietokannassa?
Kiitos palautteestasi!