Podsumowanie :w tym samouczku dowiesz się, jak tworzyć nowe tabele za pomocą SQLite CREATE TABLE oświadczenie przy użyciu różnych opcji.
Wprowadzenie do SQLite CREATE TABLE oświadczenie
Aby utworzyć nową tabelę w SQLite, użyj CREATE TABLE oświadczenie przy użyciu następującej składni:
CREATE TABLE [IF NOT EXISTS] [schema_name].table_name (
column_1 data_type PRIMARY KEY,
column_2 data_type NOT NULL,
column_3 data_type DEFAULT 0,
table_constraints
) [WITHOUT ROWID];Code language: SQL (Structured Query Language) (sql) W tej składni:
- Najpierw określ nazwę tabeli, którą chcesz utworzyć po
CREATE TABLEsłowa kluczowe. Nazwa tabeli nie może zaczynać się odsqlite_ponieważ jest zarezerwowany do wewnętrznego użytku SQLite. - Po drugie, użyj
IF NOT EXISTSmożliwość utworzenia nowej tabeli, jeśli nie istnieje. Próba utworzenia tabeli, która już istnieje bez użyciaIF NOT EXISTSopcja spowoduje błąd. - Po trzecie, opcjonalnie określ
schema_namedo której należy nowa tabela. Schemat może być główną bazą danych,tempbaza danych lub dowolna dołączona baza danych. - Po czwarte, określ listę kolumn tabeli. Każda kolumna ma nazwę, typ danych i ograniczenie dotyczące kolumny. SQLite obsługuje
PRIMARY KEY,UNIQUE,NOT NULLiCHECKograniczenia kolumn. - Po piąte, określ ograniczenia tabeli, takie jak
PRIMARY KEY,FOREIGN KEY,UNIQUEiCHECKograniczenia. - Na koniec opcjonalnie użyj
WITHOUT ROWIDopcja. Domyślnie wiersz w tabeli ma niejawną kolumnę, która jest określana jakorowid,oidlub_rowid_kolumna.rowidkolumna przechowuje 64-bitowy klucz liczby całkowitej ze znakiem, który jednoznacznie identyfikuje wiersz wewnątrz tabeli. Jeśli nie chcesz, aby SQLite utworzyłrowidkolumna, określaszWITHOUT ROWIDopcja. Tabela zawierającarowidkolumna jest znana jakorowidstół. Zauważ, żeWITHOUT ROWIDopcja jest dostępna tylko w SQLite 3.8.2 lub nowszym.
Pamiętaj, że kluczem podstawowym tabeli jest kolumna lub grupa kolumn, które jednoznacznie identyfikują każdy wiersz w tabeli.
SQLite CREATE TABLE przykłady
Załóżmy, że musisz zarządzać kontaktami za pomocą SQLite.
Każdy kontakt zawiera następujące informacje:
- Imię
- Nazwisko
- Telefon
Wymaganiem jest, aby adres e-mail i telefon były unikalne. Ponadto każdy kontakt należy do jednej lub wielu grup, a każda grupa może mieć zero lub wiele kontaktów.
W oparciu o te wymagania opracowaliśmy trzy tabele:
contactstabela przechowująca informacje kontaktowe.groupstabela przechowująca informacje o grupie.contact_groupstabela, która przechowuje relacje między kontaktami i grupami.
Poniższy diagram bazy danych ilustruje tabele:contacts groups i contact_groups.
Poniższa instrukcja tworzy contacts tabela.
CREATE TABLE contacts (
contact_id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
phone TEXT NOT NULL UNIQUE
);Code language: SQL (Structured Query Language) (sql) Wypróbuj
contact_id jest głównym kluczem contacts tabela.
Ponieważ klucz podstawowy składa się z jednej kolumny, możesz użyć ograniczenia kolumny.
first_name i last_name kolumny mają TEXT klasa pamięci i te kolumny są NOT NULL . Oznacza to, że musisz podać wartości podczas wstawiania lub aktualizowania wierszy w contacts tabela.
Adres e-mail i telefon są unikalne, dlatego używamy UNIQUE ograniczenie dla każdej kolumny.
Poniższa instrukcja tworzy groups tabela:
CREATE TABLE groups (
group_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql) Wypróbuj
groups tabela jest dość prosta z dwiema kolumnami:group_id i name . group_id kolumna jest główną kolumną klucza.
Poniższa instrukcja tworzy contact_groups tabela:
CREATE TABLE contact_groups(
contact_id INTEGER,
group_id INTEGER,
PRIMARY KEY (contact_id, group_id),
FOREIGN KEY (contact_id)
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTION,
FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTION
);Code language: SQL (Structured Query Language) (sql) Wypróbuj
contact_groups tabela ma klucz podstawowy, który składa się z dwóch kolumn:contact_id i group_id .
Aby dodać ograniczenie klucza podstawowego tabeli, użyj następującej składni:
PRIMARY KEY (contact_id, group_id)Code language: SQL (Structured Query Language) (sql)
Ponadto contact_id i group_id są klucze obce. Dlatego używasz FOREIGN KEY ograniczenie do zdefiniowania klucza obcego dla każdej kolumny.
FOREIGN KEY (contact_id)
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTIONCode language: SQL (Structured Query Language) (sql) FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTIONCode language: SQL (Structured Query Language) (sql)
Zwróć uwagę, że omówimy to w FOREIGN KEY szczegółowo w kolejnym samouczku.
W tym samouczku nauczyłeś się tworzyć nową tabelę z różnymi opcjami przy użyciu SQLite CREATE TABLE oświadczenie.