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

Tạo bảng trong SQLite

Để tạo bảng trong SQLite, hãy sử dụng CREATE TABLE tuyên bố.

Câu lệnh này chấp nhận tên bảng, tên cột và định nghĩa của chúng, cũng như một số tùy chọn khác.

Ví dụ

Đây là một ví dụ cơ bản.

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

Vì vậy, trong trường hợp này, Products là tên của bảng, và nó chứa ba cột; ProductId , ProductNamePrice .

Trong ví dụ này, tôi đã thêm kiểu dữ liệu của từng cột cũng như một số ràng buộc, nhưng tất cả đều là tùy chọn.

Chỉ định lược đồ

Tên của bảng có thể (tùy chọn) được đặt trước tên lược đồ. Khi thực hiện việc này, tên giản đồ phải là main , temp hoặc tên của cơ sở dữ liệu đính kèm.

Vì vậy, tôi có thể làm điều này thay thế:

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

Trong trường hợp này, Store là tên của cơ sở dữ liệu đính kèm mà tôi muốn tạo bảng trong đó.

Tên cột có thể được theo sau bởi kiểu dữ liệu và bất kỳ ràng buộc nào.

Loại dữ liệu là tùy chọn

Có, bạn đọc đúng - kiểu dữ liệu thực sự là tùy chọn.

SQLite sử dụng kiểu nhập động và vì vậy kiểu dữ liệu của một giá trị được liên kết với chính giá trị đó, không phải với vùng chứa (cột) của nó. Điều này trái ngược với hầu hết các hệ thống cơ sở dữ liệu SQL khác, nơi bạn phải chỉ định kiểu dữ liệu khi tạo cột.

Vì vậy, tôi có thể làm điều này thay thế:

CREATE TABLE Products(
  ProductId, 
  ProductName,
  Price
);

Ràng buộc &Tùy chọn Khác

Bạn có tùy chọn chỉ định bất kỳ ràng buộc nào hoặc các tùy chọn khác mà bạn muốn áp dụng cho mỗi cột. Chúng bao gồm những điều sau:

  • DEFAULT mệnh đề. Điều này chỉ định một giá trị hoặc biểu thức mặc định cho mỗi cột trong bảng.
  • COLLATE mệnh đề để chỉ định tên của một chuỗi đối chiếu để sử dụng làm chuỗi đối chiếu mặc định cho cột. Giá trị mặc định là BINARY.
  • PRIMARY KEY mệnh đề. Bạn có thể tùy ý chỉ định rằng một cột là khóa chính. Cả khóa chính một cột và khóa chính tổng hợp (nhiều cột) đều được hỗ trợ trong SQLite.
  • SQLite cũng hỗ trợ các ràng buộc UNIQUE, NOT NULL, CHECK và FOREIGN KEY.
  • Ràng buộc cột được tạo (còn được gọi là cột được tính toán). Đây là những cột có giá trị là một hàm của các cột khác trong cùng một hàng.
  • Bảng có phải là WITHOUT ROWID hay không bàn. Đây là một kỹ thuật tối ưu hóa hiệu suất bỏ qua cột "rowid" là cột đặc biệt mà SQLite sử dụng theo mặc định. Để biết thêm thông tin về kỹ thuật này, hãy xem tài liệu SQLite.

Bảng tạm thời

Bạn có thể chỉ định rằng một bảng là một bảng tạm thời bằng cách sử dụng TEMP hoặc TEMPORARY từ khóa.

Nếu sử dụng một trong các từ khóa này, chúng phải được chèn vào giữa CREATETABLE .

Đây là một ví dụ:

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

Bạn cũng có thể thêm temp lược đồ nếu bạn muốn.

Xem Cách tạo bảng tạm thời để biết thêm ví dụ về cách tạo bảng tạm thời trong SQLite.

Tạo bảng từ một bảng khác

Bạn cũng có thể sử dụng CREATE TABLE ... AS SELECT để tạo một bảng mới dựa trên một bảng khác. Khi bạn làm điều này, bảng mới được điền dữ liệu từ SELECT câu lệnh (chọn dữ liệu từ một bảng hoặc các bảng khác).

Đây là một ví dụ cơ bản:

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

Ví dụ này tạo một bảng mới có tên là Products2 và điền vào nó với tất cả dữ liệu từ Products bàn.

Tất cả các tên cột đều giống như trong bảng gốc.

Điều quan trọng cần lưu ý là các bảng được tạo theo cách này không có KHÓA CHÍNH và không có bất kỳ ràng buộc nào. Ngoài ra, giá trị mặc định của mỗi cột là NULL . Ngoài ra, trình tự đối chiếu mặc định cho mỗi cột của bảng mới là BINARY.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sqlLiteDatabase.query () cho INNER JOIN

  2. Định dạng kết quả truy vấn SQLite dưới dạng cột với tiêu đề cột

  3. IntentService đang đóng băng giao diện người dùng ứng dụng của tôi

  4. Cài đặt WordPress nhẹ:Cách cài đặt WordPress với SQLite

  5. SQLite JSON_QUOTE ()