Tôi đang tìm cách truy xuất danh sách các cột trong bảng. Cơ sở dữ liệu là bản phát hành mới nhất của SQLite (3.6, tôi tin). Tôi đang tìm mã thực hiện điều này với một truy vấn SQL. Điểm thưởng bổ sung cho siêu dữ liệu liên quan đến các cột (ví dụ: độ dài, loại dữ liệu, v.v ...)Làm cách nào để có danh sách các cột trong bảng cho cơ sở dữ liệu SQLite?
Trả lời
Điều bạn đang tìm kiếm được gọi là từ điển dữ liệu. Trong sqlite một danh sách tất cả các bảng có thể được tìm thấy bằng cách truy vấn bảng sqlite_master
sqlite> create table people (first_name varchar, last_name varchar, email_address varchar);
sqlite> select * from sqlite_master;
table|people|people|2|CREATE TABLE people (first_name varchar, last_name varchar, email_address varchar)
Để có được thông tin cột mà bạn có thể sử dụng pragma table_info(table_name)
statement (hoặc xem?):
sqlite> pragma table_info(people);
0|first_name|varchar|0||0
1|last_name|varchar|0||0
2|email_address|varchar|0||0
Để biết thêm thông tin về pragma báo cáo, xem documentation.
chỉ cần đi vào vỏ sqlite của bạn:
$ sqlite3 path/to/db.sqlite3
và sau đó chỉ cần nhấn
sqlite> .schema
và bạn sẽ nhận được tất cả mọi thứ.
Đây là cách đơn giản:
.schema <table>
Điều này thực sự là câu trả lời. –
@EhteshChoudhury không có nó không nên, câu hỏi yêu cầu một truy vấn SQL và đây không phải là một. – jazzpi
Câu hỏi đặt ra là cũ nhưng sau đã không được đề cập được nêu ra.
Một cách khác để thuận tiện trong nhiều trường hợp là để biến tiêu đề trên bằng cách:
sqlite> .headers on
Sau đó,
sqlite> SELECT ... FROM table
sẽ hiển thị một tiêu đề hiển thị tất cả các lĩnh vực được lựa chọn (tất cả nếu bạn SELECT *) tại đầu ra.
xây dựng trên trên, bạn có thể làm điều đó tất cả cùng một lúc:
sqlite3 yourdb.db ".schema"
Điều đó sẽ cung cấp cho bạn các SQL để tạo ra các bảng, đó là một cách hiệu quả một danh sách các cột.
Tôi biết, đã lâu rồi nhưng chưa bao giờ quá muộn ... Tôi đã có một câu hỏi tương tự với TCL làm thông dịch viên và sau một vài tìm kiếm, không tìm thấy gì tốt cho tôi. Vì vậy, tôi đề nghị một cái gì đó dựa trên PRAGMA, biết rằng DB của bạn là “chính”
db eval { PRAGMA main.table_info(<your table name>) } TBL { puts $TBL(name) }
Và sử dụng mảng để có được một danh sách
set col_list {}
db eval { PRAGMA main.table_info(<your table name>) } TBL { lappend col_list $TBL(name) }
puts $col_list
- 1. Làm cách nào để hiển thị danh sách các bảng trong cơ sở dữ liệu khác?
- 2. Nhận tối thiểu từ cột cơ sở dữ liệu SQLite?
- 3. giữ bảng nhật ký trong cơ sở dữ liệu sqlite?
- 4. Làm cách nào để nhập bảng từ cơ sở dữ liệu khác trong sqlite?
- 5. Cách lấy danh sách tất cả các bảng trong hai cơ sở dữ liệu khác nhau
- 6. Tạo bảng trong cơ sở dữ liệu sqlite trên android
- 7. Làm cách nào để đổi tên một cột trong bảng cơ sở dữ liệu bằng SQL?
- 8. Làm thế nào để xóa một hàng trong một bảng cơ sở dữ liệu sqlite?
- 9. Làm thế nào để thêm hai cột mới vào cơ sở dữ liệu SQLite của Android?
- 10. Đặt tên cột boolean trong bảng cơ sở dữ liệu
- 11. Cách lấy danh sách bảng trong cơ sở dữ liệu, sử dụng MS SQL 2008?
- 12. Mở rộng cơ sở dữ liệu PHPUnit - Làm cách nào để có tập dữ liệu trống?
- 13. làm thế nào để có được giá trị cơ sở dữ liệu vào một mảng String trong android (Cơ sở dữ liệu SQLite)
- 14. Cách ưu tiên để lưu danh sách động trong cơ sở dữ liệu là gì?
- 15. Hibernate có được Danh sách từ cơ sở dữ liệu
- 16. Làm cách nào để ngăn người dùng có thể xem các cơ sở dữ liệu khác và các bảng từ cơ sở dữ liệu khác?
- 17. Làm thế nào để chèn dữ liệu vào cơ sở dữ liệu SQLite trong android?
- 18. Xóa tất cả các hàng trong bảng khỏi bảng cơ sở dữ liệu SQLite
- 19. Làm cách nào để có được danh sách các trình kích hoạt đang hoạt động trên cơ sở dữ liệu?
- 20. DB2: Làm cách nào để tìm thấy cột có trong bảng hoặc danh sách các bảng không?
- 21. Danh sách Cơ sở dữ liệu được đính kèm bằng lệnh SELECT trong SQLite
- 22. Làm cách nào để tìm kiếm cơ sở dữ liệu mysql cho tên cột cụ thể
- 23. Danh sách các bảng không trống trong cơ sở dữ liệu MySQL
- 24. Danh sách các bảng hệ thống trong SQLite
- 25. Chèn một bảng các số nguyên - int [] - vào cơ sở dữ liệu SQLite,
- 26. Chèn mảng trong cơ sở dữ liệu SQLite trong android
- 27. Cập nhật các phiên bản cơ sở dữ liệu sqlite?
- 28. Tôi có thể tạo bao nhiêu bảng và cơ sở dữ liệu trong sqlite Android?
- 29. Nhiều Cơ sở dữ liệu SQLite cho nhiều ngôn ngữ?
- 30. SQLite: cơ sở dữ liệu chỉ đọc
Tuyệt vời! Bây giờ làm thế nào điều này được thực hiện từ bên ngoài dòng lệnh? Làm thế nào điều này được thực hiện từ trong chương trình C của riêng tôi? –
làm thế nào tôi có thể thực hiện giống như trên trong Mục tiêu-c –
@Nag, tôi sẽ nghĩ bạn rằng SQLite chỉ nên coi các lệnh này là SQL bình thường, xử lý nó cho phù hợp và trả lại cho bạn một tập kết quả. –