SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite Създаване на таблица

Резюме :в този урок ще научите как да създавате нови таблици с помощта на SQLite CREATE TABLE изявление с помощта на различни опции.

Въведение в SQLite CREATE TABLE изявление

За да създадете нова таблица в SQLite, използвате CREATE TABLE израз, използвайки следния синтаксис:

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)

В този синтаксис:

  • Първо посочете името на таблицата, която искате да създадете след CREATE TABLE ключови думи. Името на таблицата не може да започва с sqlite_ защото е запазен за вътрешна употреба на SQLite.
  • Второ, използвайте IF NOT EXISTS опция за създаване на нова таблица, ако не съществува. Опит за създаване на таблица, която вече съществува, без да се използва IF NOT EXISTS опция ще доведе до грешка.
  • Трето, по желание посочете schema_name към която принадлежи новата маса. Схемата може да бъде основната база данни, temp база данни или всяка прикачена база данни.
  • Четвърто, посочете списъка с колони на таблицата. Всяка колона има име, тип данни и ограничение на колоната. SQLite поддържа PRIMARY KEY , UNIQUE , NOT NULL и CHECK ограничения в колоните.
  • Пето, посочете ограниченията на таблицата като PRIMARY KEY , FOREIGN KEY , UNIQUE и CHECK ограничения.
  • Накрая, по желание използвайте WITHOUT ROWID опция. По подразбиране ред в таблица има имплицитна колона, която се нарича rowid , oid или _rowid_ колона. rowid колоната съхранява 64-битов подписан целочислен ключ, който уникално идентифицира реда в таблицата. Ако не искате SQLite създава rowid колона, вие посочвате WITHOUT ROWID опция. Таблица, която съдържа rowid колоната е известна като rowid маса. Обърнете внимание, че WITHOUT ROWID опцията е налична само в SQLite 3.8.2 или по-нова версия.

Имайте предвид, че първичният ключ на таблица е колона или група от колони, които уникално идентифицират всеки ред в таблицата.

SQLite CREATE TABLE примери

Да предположим, че трябва да управлявате контакти с помощта на SQLite.

Всеки контакт има следната информация:

  • Име
  • Фамилия
  • Имейл
  • Телефон

Изискването е имейлът и телефонът да са уникални. Освен това всеки контакт принадлежи към една или много групи и всяка група може да има нула или много контакти.

Въз основа на тези изисквания излязохме с три таблици:

  • contacts таблица, която съхранява информация за контакт.
  • groups таблица, която съхранява информация за групата.
  • contact_groups таблица, която съхранява връзката между контакти и групи.

Следната диаграма на базата данни илюстрира таблици:contacts groups и contact_groups.

Следното изявление създава contacts таблица.

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)

Опитайте го

contact_id е първичният ключ на contacts таблица.

Тъй като първичният ключ се състои от една колона, можете да използвате ограничението за колона.

first_name и last_name колоните имат TEXT клас за съхранение и тези колони са NOT NULL . Това означава, че трябва да предоставите стойности, когато вмъквате или актуализирате редове в contacts таблица.

Имейлът и телефонът са уникални, затова използваме UNIQUE ограничение за всяка колона.

Следното изявление създава groups таблица:

CREATE TABLE groups (
   group_id INTEGER PRIMARY KEY,
   name TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql)

Опитайте го

groups таблицата е доста проста с две колони:group_id и name . group_id колоната е колоната с първичен ключ.

Следното изявление създава contact_groups таблица:

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)

Опитайте го

contact_groups таблицата има първичен ключ, който се състои от две колони:contact_id и group_id .

За да добавите ограничението за първичен ключ на таблицата, използвате този синтаксис:

PRIMARY KEY (contact_id, group_id)Code language: SQL (Structured Query Language) (sql)

В допълнение, contact_id и group_id са външните ключове. Следователно, вие използвате FOREIGN KEY ограничение за дефиниране на външен ключ за всяка колона.

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)

Имайте предвид, че ще обсъдим в FOREIGN KEY ограничение в подробности в следващия урок.

В този урок научихте как да създадете нова таблица с различни опции с помощта на SQLite CREATE TABLE изявление.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да филтрирате във връзка едно към много с android room db

  2. SQLite - Архивиране на база данни във файл

  3. Изчислете броя на секундите от конкретна дата/час в SQLite

  4. Когато се извика методът SQLiteOpenHelper onCreate?

  5. Как работи SQLite Quote().