SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

SQLite Tạo bảng

Tóm tắt :trong hướng dẫn này, bạn sẽ học cách tạo bảng mới bằng SQLite CREATE TABLE tuyên bố sử dụng các tùy chọn khác nhau.

Giới thiệu về SQLite CREATE TABLE tuyên bố

Để tạo một bảng mới trong SQLite, bạn sử dụng CREATE TABLE câu lệnh sử dụng cú pháp sau:

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)

Trong cú pháp này:

  • Đầu tiên, hãy chỉ định tên của bảng mà bạn muốn tạo sau CREATE TABLE từ khóa. Tên của bảng không được bắt đầu bằng sqlite_ vì nó được dành riêng cho việc sử dụng nội bộ của SQLite.
  • Thứ hai, sử dụng IF NOT EXISTS tùy chọn để tạo một bảng mới nếu nó không tồn tại. Cố gắng tạo một bảng đã tồn tại mà không sử dụng IF NOT EXISTS tùy chọn này sẽ dẫn đến lỗi.
  • Thứ ba, tùy chọn chỉ định schema_name mà bảng mới thuộc về. Lược đồ có thể là cơ sở dữ liệu chính, temp cơ sở dữ liệu hoặc bất kỳ cơ sở dữ liệu đính kèm nào.
  • Thứ tư, chỉ định danh sách cột của bảng. Mỗi cột có tên, kiểu dữ liệu và ràng buộc cột. SQLite hỗ trợ PRIMARY KEY , UNIQUE , NOT NULLCHECK ràng buộc cột.
  • Thứ năm, chỉ định các ràng buộc bảng, chẳng hạn như PRIMARY KEY , FOREIGN KEY , UNIQUECHECK ràng buộc.
  • Cuối cùng, tùy chọn sử dụng WITHOUT ROWID lựa chọn. Theo mặc định, một hàng trong bảng có một cột ngầm định, được gọi là rowid , oid hoặc _rowid_ cột. rowid cột lưu trữ khóa số nguyên có dấu 64-bit nhận dạng duy nhất hàng bên trong bảng. Nếu bạn không muốn SQLite tạo rowid , bạn chỉ định WITHOUT ROWID lựa chọn. Một bảng có chứa rowid cột được gọi là rowid bàn. Lưu ý rằng WITHOUT ROWID tùy chọn chỉ khả dụng trong SQLite 3.8.2 trở lên.

Lưu ý rằng khóa chính của bảng là một cột hoặc một nhóm cột xác định duy nhất mỗi hàng trong bảng.

SQLite CREATE TABLE ví dụ

Giả sử bạn phải quản lý các liên hệ bằng SQLite.

Mỗi liên hệ có thông tin sau:

  • Tên
  • Họ
  • Email
  • Điện thoại

Yêu cầu là email và điện thoại phải là duy nhất. Ngoài ra, mỗi địa chỉ liên hệ thuộc về một hoặc nhiều nhóm và mỗi nhóm có thể có 0 hoặc nhiều địa chỉ liên hệ.

Dựa trên những yêu cầu này, chúng tôi đưa ra ba bảng:

  • contacts bảng lưu trữ thông tin liên hệ.
  • Các groups bảng lưu trữ thông tin nhóm.
  • contact_groups bảng lưu trữ mối quan hệ giữa các địa chỉ liên hệ và nhóm.

Sơ đồ cơ sở dữ liệu sau minh họa các bảng:contacts groupscontact_groups.

Câu lệnh sau tạo contacts bảng.

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)

Hãy thử nó

contact_id là khóa chính của contacts bảng.

Vì khóa chính bao gồm một cột, bạn có thể sử dụng ràng buộc cột.

first_namelast_name các cột có TEXT lớp lưu trữ và các cột này NOT NULL . Có nghĩa là bạn phải cung cấp các giá trị khi bạn chèn hoặc cập nhật các hàng trong contacts bảng.

Email và điện thoại là duy nhất, do đó chúng tôi sử dụng UNIQUE ràng buộc cho mỗi cột.

Câu lệnh sau tạo groups bảng:

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

Hãy thử nó

Các nhóm groups bảng khá đơn giản với hai cột:group_idname . group_id là cột khóa chính.

Câu lệnh sau tạo contact_groups bảng:

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)

Hãy thử nó

contact_groups bảng có khóa chính bao gồm hai cột:contact_idgroup_id .

Để thêm ràng buộc khóa chính của bảng, bạn sử dụng cú pháp sau:

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

Ngoài ra, contact_idgroup_id là các khóa ngoại. Do đó, bạn sử dụng FOREIGN KEY ràng buộc để xác định khóa ngoại cho mỗi cột.

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)

Lưu ý rằng chúng ta sẽ thảo luận trong FOREIGN KEY ràng buộc chi tiết trong hướng dẫn tiếp theo.

Trong hướng dẫn này, bạn đã học cách tạo một bảng mới với các tùy chọn khác nhau bằng cách sử dụng SQLite CREATE TABLE tuyên bố.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng mô tả SQLite

  2. Cách đưa Trường Bộ sưu tập Nước ngoài vào Con trỏ trong Ormlite

  3. Id hàng sqlite không khớp với listview - ANDROID

  4. Quản lý dữ liệu với Python, SQLite và SQLAlchemy

  5. java.lang.OutOfMemoryError:[cạn kiệt bộ nhớ] khi đọc dữ liệu từ Sqlite Android