SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Utwórz tabelę w SQLite

Aby utworzyć tabelę w SQLite, użyj CREATE TABLE oświadczenie.

Ta instrukcja akceptuje nazwę tabeli, nazwy kolumn i ich definicje, a także kilka innych opcji.

Przykład

Oto podstawowy przykład.

CREATE TABLE Products(
  ProductId INTEGER PRIMARY KEY AUTOINCREMENT, 
  ProductName TEXT NOT NULL,
  Price NUMERIC
);

W tym przypadku Products jest nazwą tabeli i zawiera trzy kolumny; ProductId , ProductName i Price .

W tym przykładzie dodałem typ danych każdej kolumny, a także pewne ograniczenia, ale wszystkie są opcjonalne.

Określ schemat

Nazwa tabeli może (opcjonalnie) być poprzedzona nazwą schematu. Kiedy to robisz, nazwą schematu musi być main , temp lub nazwę dołączonej bazy danych.

Zamiast tego mógłbym zrobić to:

CREATE TABLE Store.Products(
  ProductId, 
  ProductName,
  Price
);

W takim przypadku Store to nazwa dołączonej bazy danych, w której chcę utworzyć tabelę.

Po nazwie kolumny może następować typ danych i wszelkie ograniczenia.

Typ danych jest opcjonalny

Tak, dobrze to przeczytałeś — typ danych jest w rzeczywistości opcjonalny.

SQLite używa dynamicznego wpisywania, dlatego typ danych wartości jest powiązany z samą wartością, a nie z jej kontenerem (kolumną). Jest to w przeciwieństwie do większości innych systemów baz danych SQL, w których musisz określić typ danych podczas tworzenia kolumny.

Zamiast tego mógłbym zrobić to:

CREATE TABLE Products(
  ProductId, 
  ProductName,
  Price
);

Ograniczenia i inne opcje

Masz możliwość określenia wszelkich ograniczeń lub innych opcji, które chcesz zastosować w każdej kolumnie. Należą do nich:

  • DEFAULT klauzula. Określa domyślną wartość lub wyrażenie dla każdej kolumny w tabeli.
  • COLLATE klauzulę, aby określić nazwę kolejności zestawiania, która ma być używana jako domyślna kolejność zestawiania dla kolumny. Domyślna wartość to BINARNY.
  • PRIMARY KEY klauzula. Opcjonalnie można określić, że kolumna jest kluczem podstawowym. SQLite obsługuje klucze podstawowe zarówno jednokolumnowe, jak i złożone (wielokolumnowe).
  • SQLite obsługuje również ograniczenia typu UNIQUE, NOT NULL, CHECK i FOREIGN KEY.
  • Wygenerowane ograniczenie kolumny (zwane także kolumną wyliczaną). Są to kolumny, których wartości są funkcją innych kolumn w tym samym wierszu.
  • Czy tabela jest WITHOUT ROWID stół. Jest to technika optymalizacji wydajności, która pomija kolumnę „rowid”, która jest specjalną kolumną używaną domyślnie przez SQLite. Więcej informacji na temat tej techniki znajdziesz w dokumentacji SQLite.

Tabele tymczasowe

Możesz określić, że tabela jest tabelą tymczasową, używając albo TEMP lub TEMPORARY słowo kluczowe.

Jeśli używasz jednego z tych słów kluczowych, należy je wstawić między CREATE i TABLE .

Oto przykład:

CREATE TEMP TABLE Products(
  ProductId, 
  ProductName,
  Price
);

Możesz także dodać temp schemat, jeśli chcesz.

Zobacz Jak utworzyć tabelę tymczasową, aby uzyskać więcej przykładów tworzenia tabel tymczasowych w SQLite.

Utwórz stół z innego stołu

Możesz także użyć CREATE TABLE ... AS SELECT oświadczenie, aby utworzyć nową tabelę na podstawie innej tabeli. Gdy to zrobisz, nowa tabela zostanie wypełniona danymi z SELECT instrukcja (która wybiera dane z innej tabeli lub tabel).

Oto podstawowy przykład:

CREATE TABLE Store.Products2 AS 
SELECT * FROM Store.Products;

Ten przykład tworzy nową tabelę o nazwie Products2 i wypełnia go wszystkimi danymi z Products stół.

Wszystkie nazwy kolumn są takie same jak w oryginalnej tabeli.

Należy zauważyć, że tabele utworzone w ten sposób nie mają KLUCZU PODSTAWOWEGO ani żadnych ograniczeń. Ponadto domyślną wartością każdej kolumny jest NULL . Ponadto domyślna kolejność sortowania dla każdej kolumny nowej tabeli to BINARNY.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sprawdź, czy ciąg kolumn w bazie danych jest podciągiem zapytania w sqlite

  2. Przykładowa baza danych SQLite

  3. Operator UNII SQLite

  4. Wyszukiwanie z akcentem w sqlite (Android)

  5. Jak zaktualizować tabelę activeandroid po dodaniu nowej kolumny