Tôi đã chèn một dữ liệu vào một bảng .... Bây giờ tôi muốn xem toàn bộ bảng với các hàng và cột và dữ liệu. Làm thế nào tôi có thể hiển thị nó thông qua lệnh?
Tôi đã chèn một dữ liệu vào một bảng .... Bây giờ tôi muốn xem toàn bộ bảng với các hàng và cột và dữ liệu. Làm thế nào tôi có thể hiển thị nó thông qua lệnh?
Câu trả lời:
psql -U username -d mydatabase -c 'SELECT * FROM mytable'
Nếu bạn chưa quen với postgresql và không quen sử dụng công cụ dòng lệnh psql
thì có một số hành vi khó hiểu bạn nên biết khi bạn tham gia phiên tương tác.
Ví dụ: bắt đầu một phiên tương tác:
psql -U username mydatabase
mydatabase=#
Tại thời điểm này, bạn có thể nhập truy vấn trực tiếp nhưng bạn phải nhớ chấm dứt truy vấn bằng dấu chấm phẩy;
Ví dụ:
mydatabase=# SELECT * FROM mytable;
Nếu bạn quên dấu chấm phẩy thì khi bạn nhấn enter, bạn sẽ không nhận được gì trên dòng trả về vì psql
sẽ cho rằng bạn chưa nhập xong truy vấn của mình. Điều này có thể dẫn đến tất cả các loại nhầm lẫn. Ví dụ: nếu bạn nhập lại cùng một truy vấn, rất có thể bạn sẽ tạo ra lỗi cú pháp.
Là một thử nghiệm, hãy thử gõ bất kỳ cắt xén nào bạn muốn tại dấu nhắc psql sau đó nhấn enter. psql
sẽ âm thầm cung cấp cho bạn một dòng mới. Nếu bạn nhập một dấu chấm phẩy trên dòng mới đó và sau đó nhấn enter, thì bạn sẽ nhận được LRI:
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
Nguyên tắc chung là: Nếu bạn không nhận được phản hồi từ psql
nhưng bạn đã mong đợi ít nhất là SOMETHING, thì bạn đã quên dấu chấm phẩy;
SELECT * FROM my_table;
nơi my_table
là tên của bảng.
BIÊN TẬP:
psql -c "SELECT * FROM my_table"
hoặc chỉ psql
và sau đó nhập truy vấn của bạn.
psql -U username -c your_database "SELECT * FROM my_table"
cmd.exe /c chcp 1252
sau khi bạn đã mở bảng điều khiển.
psql: FATAL: database "SELECT * FROM tb_name" does not exist
Nếu DB của bạn được bảo vệ bằng mật khẩu, thì giải pháp sẽ là:
PGPASSWORD=password psql -U username -d dbname -c "select * from my_table"
Mở "SQL Shell (psql)" từ Ứng dụng (Mac) của bạn.
Nhấn enter để cài đặt mặc định. Nhập mật khẩu khi được nhắc.
*) Nhập \?
để được giúp đỡ
*) Nhập \conninfo
để xem người dùng nào bạn được kết nối.
*) Nhập \l
để xem danh sách Cơ sở dữ liệu.
*) \c <Name of DB>
Ví dụ, kết nối với cơ sở dữ liệu\c GeneDB1
Bạn sẽ thấy thay đổi lời nhắc chính đối với DB mới, như vậy:
*) Bây giờ bạn đang ở trong một DB nhất định, bạn muốn biết Sơ đồ cho DB đó. Lệnh tốt nhất để làm điều này là \dn
.
Các lệnh khác cũng hoạt động (nhưng không tốt bằng) select schema_name from information_schema.schemata;
và select nspname from pg_catalog.pg_namespace;
:
-) Bây giờ bạn có các Lược đồ, bạn muốn biết các bảng trong các Lược đồ đó. Đối với điều đó, bạn có thể sử dụng dt
lệnh. Ví dụ\dt "GeneSchema1".*
*) Bây giờ bạn có thể thực hiện các truy vấn của bạn. Ví dụ:
*) Đây là DB, Lược đồ và Bảng ở trên trông như thế nào trong pgAdmin:
Truy vấn tương tự được viết như dưới đây cho dấu nhắc lệnh psql của postgres.
D: \ TOOLS \ Postgresql-9.4.1-3 \ bin> psql -U postgres -d DatabaseName -h localhost - t -c "Chọn u. \" Tên người dùng \ "từ người dùng u Trong đó u. \" UserId \ "= 1;
Tôi không nghi ngờ gì về câu trả lời @Grant. Nhưng đôi khi tôi gặp một số vấn đề như nếu tên cột giống với bất kỳ từ khóa dành riêng nào của postgresql như tự nhiên trong trường hợp này thì SQL tương tự rất khó chạy từ dòng lệnh vì sẽ cần đến "\ Natural \" trong trường Truy vấn. Vì vậy, cách tiếp cận của tôi là viết SQL trong tệp riêng biệt và chạy tệp SQL từ dòng lệnh. Điều này cũng có một lợi thế khác. Nếu bạn phải thay đổi truy vấn cho một tập lệnh lớn, bạn không cần phải chạm vào tập tin hoặc lệnh tập lệnh. Chỉ thay đổi tệp SQL như thế này
psql -h localhost -d database -U postgres -p 5432 -a -q -f /path/to/the/file.sql
Đối với loại câu lệnh cụ thể, bạn có thể thấy phù hợp hơn để sử dụng Azure Data Studio
- cho mọi thứ khác đi kèm với dòng lệnh tích hợp. Sử dụng phòng thu, bạn có thể tìm thấy các câu lệnh gõ và đọc đầu ra thoải mái hơn.
Làm theo các bước dưới đây:
Kết nối với máy chủ cục bộ hoặc từ xa của bạn:
Chỉ tập trung vào viết và thực thi SQL:
Có nhiều tính năng hay như lưu kết nối, tạo nhóm máy chủ và thậm chí là thiết bị đầu cuối tích hợp nếu bạn cảm thấy thoải mái hơn khi thực hiện một số tác vụ thông qua psql
.
--single-line
(hoặc-s
) khiến mọi lệnh ngay lập tức không cần thêm dấu chấm phẩy.