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

4 cách để nhận thông tin về cấu trúc của bảng trong SQLite

Đôi khi bạn chỉ muốn xem cấu trúc cơ bản của một bảng.

Trong SQLite, có một số cách để truy xuất thông tin về một bảng nhất định. Cụ thể, đây là bốn tùy chọn:

  • PRAGMA table_info() tuyên bố
  • PRAGMA table_xinfo() câu lệnh (cho bảng ảo)
  • .schema lệnh
  • sqlite_master bảng

Dưới đây là ví dụ về từng phương pháp.

PRAGMA table_info ()

PRAGMA table_info() câu lệnh trả về một hàng cho mỗi cột trong bảng được đặt tên. Nó giống như một SQLite tương đương với DESCRIBE trong MySQL.

Cú pháp

Cú pháp như sau:

PRAGMA schema.table_info(table-name);

Ở đâu table-name là tên của bảng mà bạn cần thông tin.

schema một phần là tùy chọn. Đây là tên của cơ sở dữ liệu đính kèm hoặc main hoặc temp cho cơ sở dữ liệu chính và TEMP. Nếu bạn không cung cấp thông tin này thì cơ sở dữ liệu chính sẽ được sử dụng.

Ví dụ

Dưới đây là ví dụ về việc trả lại thông tin về bảng có tên Thú cưng .

PRAGMA table_info(Pets);

Kết quả:

cid         name        type        notnull     dflt_value  pk        
----------  ----------  ----------  ----------  ----------  ----------
0           PetId       INTEGER     0                       1         
1           PetName                 0                       0         
2           TypeId                  0                       0         

Trong trường hợp này, chỉ cột đầu tiên ( PetId ) có kiểu dữ liệu được xác định rõ ràng. Những người khác đã được tạo mà không có loại của chúng được xác định rõ ràng.

Chúng ta cũng có thể thấy rằng PetId là cột khóa chính (có 1 trong pk cột).

PRAGMA table_xinfo ()

PRAGMA table_xinfo() câu lệnh hoàn toàn giống với PRAGMA table_info() , ngoại trừ việc nó cũng trả về các cột ẩn trên bảng ảo.

Nếu bạn muốn xem cấu trúc của một bảng ảo, bao gồm bất kỳ cột nào bị ẩn, thì đây là bảng để sử dụng.

Dưới đây là một ví dụ sử dụng cùng một bảng từ ví dụ trước.

PRAGMA table_xinfo(Pets);

Kết quả:

cid         name        type        notnull     dflt_value  pk          hidden    
----------  ----------  ----------  ----------  ----------  ----------  ----------
0           PetId       INTEGER     0                       1           0         
1           PetName                 0                       0           0         
2           TypeId                  0                       0           0         

Bạn có thể phải cuộn sang ngang để xem cột phụ. Trong trường hợp này, không có cột nào bị ẩn (và nó không phải là bảng ảo), vì vậy tất cả các hàng đều là 0 cho cột đó.

Đây là kết quả một lần nữa, nhưng sử dụng đầu ra dọc (.mode line ) để bạn không phải cuộn sang ngang.

.mode line
PRAGMA table_xinfo(Pets);

Kết quả:

       cid = 0
      name = PetId
      type = INTEGER
   notnull = 0
dflt_value = 
        pk = 1
    hidden = 0


       cid = 1
      name = PetName
      type = 
   notnull = 0
dflt_value = 
        pk = 0
    hidden = 0


       cid = 2
      name = TypeId
      type = 
   notnull = 0
dflt_value = 
        pk = 0
    hidden = 0

Lệnh .schema

Một cách khác để truy xuất cấu trúc của bảng là sử dụng .schema yêu cầu. Đây là một trong số các phương pháp bạn có thể sử dụng để trả về SQL được sử dụng để tạo bảng.

Dưới đây là một ví dụ sử dụng cùng một bảng từ ví dụ trước.

.schema Pets

Kết quả:

CREATE TABLE Pets( 
    PetId INTEGER PRIMARY KEY, 
    PetName,
    TypeId,
    FOREIGN KEY(TypeId) REFERENCES Types(TypeId)
);

Phương pháp này cho phép chúng ta xem thêm thông tin về bảng. Trong ví dụ này, chúng ta có thể thấy rằng TypeId cột thực sự là một khóa ngoại tham chiếu đến một cột trong một bảng khác.

Bảng sqlite_master

Bạn có thể sử dụng sqlite_master bảng giống như ví dụ trước.

Đây là một ví dụ sử dụng cùng một bảng.

SELECT sql 
FROM sqlite_master 
WHERE tbl_name = 'Pets';

Kết quả:

CREATE TABLE Pets( 
    PetId INTEGER PRIMARY KEY, 
    PetName,
    TypeId,
    FOREIGN KEY(TypeId) REFERENCES Types(TypeId)
)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lấy một cột từ .sqlite chứa nhiều bảng với nhiều cột

  2. Bảng cơ sở dữ liệu Android SQLite không được tạo

  3. Cách hiển thị cài đặt lệnh chấm hiện tại trong SQLite

  4. Hiệu suất Sqlite của Android

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