sql >> Database teknologi >  >> RDS >> SQLite

Opret en tabel i SQLite

For at oprette en tabel i SQLite skal du bruge CREATE TABLE erklæring.

Denne erklæring accepterer tabelnavnet, kolonnenavnene og deres definitioner samt nogle andre muligheder.

Eksempel

Her er et grundlæggende eksempel.

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

Så i dette tilfælde Produkter er navnet på tabellen, og den indeholder tre kolonner; ProductId , Produktnavn og Pris .

I dette eksempel har jeg tilføjet hver kolonnes datatype samt nogle begrænsninger, men disse er alle valgfrie.

Angiv skemaet

Tabellens navn kan (valgfrit) foranstilles med skemanavnet. Når du gør dette, skal skemanavnet enten være main , temp , eller navnet på en vedhæftet database.

Så jeg kunne gøre dette i stedet:

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

I dette tilfælde Store er navnet på den vedhæftede database, som jeg vil oprette tabellen i.

Kolonnenavnet kan efterfølges af datatypen og eventuelle begrænsninger.

Datatype er valgfri

Ja, du læste rigtigt – datatypen er faktisk valgfri.

SQLite bruger dynamisk indtastning, og derfor er datatypen for en værdi knyttet til selve værdien, ikke med dens container (kolonne). Dette er i modsætning til de fleste andre SQL-databasesystemer, hvor du skal angive datatypen, når du opretter kolonnen.

Så jeg kunne gøre dette i stedet:

CREATE TABLE Products(
  ProductId, 
  ProductName,
  Price
);

Begrænsninger og andre muligheder

Du har mulighed for at angive eventuelle begrænsninger eller andre muligheder, som du gerne vil have anvendt i hver kolonne. Disse omfatter følgende:

  • STANDARD klausul. Dette angiver en standardværdi eller et standardudtryk for hver kolonne i tabellen.
  • SAMLER klausul for at angive navnet på en sorteringssekvens, der skal bruges som standardsorteringssekvens for kolonnen. Standardværdien er BINÆR.
  • PRIMÆR NØGLE klausul. Du kan valgfrit angive, at en kolonne er en primær nøgle. Både enkelt kolonne og sammensatte (flere kolonne) primære nøgler er understøttet i SQLite.
  • SQLite understøtter også UNIQUE, NOT NULL, CHECK og FOREIGN KEY begrænsninger.
  • En genereret kolonnebegrænsning (også kaldet en beregnet kolonne). Disse er kolonner, hvis værdier er en funktion af andre kolonner i samme række.
  • Om tabellen er en WITHOUT ROWID bord. Dette er en præstationsoptimeringsteknik, der udelader kolonnen "rovid", som er en speciel kolonne, som SQLite bruger som standard. For mere information om denne teknik, se SQLite-dokumentationen.

Midlertidige tabeller

Du kan angive, at en tabel er en midlertidig tabel ved at bruge enten TEMP eller MIDLERTIDIG søgeord.

Hvis du bruger et af disse nøgleord, skal de indsættes mellem CREATE og TABEL .

Her er et eksempel:

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

Du kan også tilføje temp skema, hvis du ønsker det.

Se Sådan opretter du en midlertidig tabel for flere eksempler på oprettelse af midlertidige tabeller i SQLite.

Opret en tabel fra en anden tabel

Du kan også bruge en CREATE TABLE ... AS SELECT sætning for at oprette en ny tabel baseret på en anden tabel. Når du gør dette, udfyldes den nye tabel med data fra SELECT sætning (som vælger data fra en anden tabel eller tabeller).

Her er et grundlæggende eksempel:

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

Dette eksempel opretter en ny tabel kaldet Products2 og udfylder den med alle data fra Produkter bord.

Alle kolonnenavne er de samme som i den oprindelige tabel.

Det er vigtigt at bemærke, at tabeller oprettet på denne måde ikke har nogen PRIMÆR NØGLE og ingen begrænsninger af nogen art. Standardværdien for hver kolonne er også NULL . Standardindsamlingssekvensen for hver kolonne i den nye tabel er også BINÆR.


  1. ORA-00942:Kan du vælge fra schema.table, men ikke tabel?

  2. Sådan bruger du _COUNT i BaseColumns

  3. Hvordan krypteres adgangskoden i Oracle?

  4. PostgreSQL:Opret indeks for boolesk kolonne