পোস্টগ্রেএসকিউএল: পোস্টগ্রেএসকিউএলে টেবিলগুলি দেখান


উত্তর:


2660

থেকে psqlকমান্ড লাইন ইন্টারফেস,

প্রথমে আপনার ডাটাবেসটি বেছে নিন

\c database_name

তারপরে, এটি বর্তমান স্কিমাতে সমস্ত সারণী দেখায়:

\dt

প্রোগ্রামগতভাবে (বা psqlঅবশ্যই ইন্টারফেস থেকেও):

SELECT * FROM pg_catalog.pg_tables;

সিস্টেম টেবিলগুলি pg_catalogডাটাবেসে লাইভ ।


102
@ স্টেফেনকর্ভিন নং, মাইএসকিউএল এর \lসমতুল্য show databasesdtshow tablesএবং lshow databases
ব্যবহারকারী 45432222

12
\dtখুব দরকারী। এটি pg_catalog.pg_tablesএকটি খুব কম, কারণ আপনি যে কোনও ডাটাবেসে সংযুক্ত থাকবেন না কেন তা ব্যবহারকারীর দ্বারা তৈরি করা সামগ্রীর সাথে একসাথে অভ্যন্তরীণ টেবিলগুলি একসাথে দেখায়।
আরথ

33
psql my_db_name\dtকাজ করার জন্য চালানো উচিত । আমি যখন psqlকোনও ডাটাবেসের নাম ছাড়াই দৌড়ে গেলাম, তখন একটি "কোনও সম্পর্ক খুঁজে পাওয়া যায়নি" বার্তাটি পেয়েছি
মাকসিম দিমিত্রিভ

31
সিস্টেম টেবিল ছাড়াই:SELECT * FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema'
ম্যাট হোয়াইট

39
আপনার প্রথমে \c <DATABASE_NAME>আপনার ডাটাবেসটি বেছে নেওয়া দরকার ।
ড্যানিও

200

অতি ব্যবহারকারী হিসাবে লগইন করুন:

sudo -u postgres psql

আপনি \lকমান্ড দ্বারা সমস্ত ডাটাবেস এবং ব্যবহারকারীদের তালিকাভুক্ত করতে পারেন , (এর দ্বারা অন্যান্য কমান্ডের তালিকা করুন \?)।

এখন যদি আপনি অন্যান্য ডাটাবেস দেখতে আপনি ব্যবহারকারী / ডাটাবেসের পরিবর্তন করতে \cমত কমান্ড \c template1, \c postgres postgresএবং ব্যবহার \d, \dtবা \dSটেবিল / মতামত দেখতে / ইত্যাদি।


1
এটি একটি আরও ভাল উত্তর, যেহেতু একজনের সাধারণত একাধিক ডাটাবেস ইনস্টল থাকতে পারে।
জেরোম

এটি খুব সহায়ক ছিল। ধন্যবাদ.
প্রেস্টন প্রতিশ্রুতি

123

(সম্পূর্ণতার জন্য)

আপনি (এসকিউএল-স্ট্যান্ডার্ড) তথ্য স্কিমাকেও জিজ্ঞাসা করতে পারেন :

SELECT
    table_schema || '.' || table_name
FROM
    information_schema.tables
WHERE
    table_type = 'BASE TABLE'
AND
    table_schema NOT IN ('pg_catalog', 'information_schema');

3
+1 যদিও সম্পূর্ণতার জন্য, মাইএসকিএল শো টেবিলগুলি কেবলমাত্র বর্তমান স্কিমা দেখায়, এটি এইভাবে চিন্তা করা ভাল, মাইএসকিএল-তে কেবল একটি ডাটাবেস রয়েছে তবে একাধিক স্কিমা রয়েছে, যেখানে পোস্টগ্র্যাস্কলগুলিতে একাধিক ডাটাবেস (ক্যাটালগ) এবং স্কিমা থাকতে পারে। সুতরাং সমতুল্য টেবিল_সেমিা = 'DB_NAME' হওয়া উচিত;
রাহলি

ঠিক স্ট্যান্ডার্ড স্কয়ার নয়, "||" ব্যবহার করতে পারবেন না
এমএসকিউএল-এ

122

পোস্টগ্র্রেএসকিউএলে টেবিলগুলি দেখানোর জন্য আপনি পোস্টগ্রেএসকিউএল এর ইন্টারেক্টিভ টার্মিনাল পিএসকিএল ব্যবহার করতে পারেন।

1. পিএসকিএল শুরু করুন

সাধারণত আপনি পিএসকিএল প্রবেশ করতে নিম্নলিখিত কমান্ডটি চালাতে পারেন:

psql DBNAME USERNAME

উদাহরণ স্বরূপ, psql template1 postgres

আপনার একটির মতো পরিস্থিতি হতে পারে: ধরুন আপনি রুট হিসাবে লগইন করেছেন এবং আপনি ডাটাবেসের নাম মনে রাখবেন না। দৌড়ে আপনি প্রথমে পিএসকিএল-এ প্রবেশ করতে পারেন:

sudo -u postgres psql

কিছু সিস্টেমে sudo কমান্ড পাওয়া যায় না, আপনি পরিবর্তে নীচের যে কোনও কমান্ড চালাতে পারেন:

psql -U postgres
psql --username=postgres

টেবিল প্রদর্শন করুন

এখন পিএসকিএল-তে আপনি কমান্ডগুলি চালাতে পারেন যেমন:

  1. \? সমস্ত কমান্ড তালিকা
  2. \l ডাটাবেস তালিকা
  3. \conninfo বর্তমান সংযোগ সম্পর্কে তথ্য প্রদর্শন করুন
  4. \c [DBNAME] নতুন ডাটাবেসের সাথে সংযুক্ত করুন, যেমন, \c template1
  5. \dt সর্বজনীন স্কিমা তালিকা টেবিল
  6. \dt <schema-name>.* নির্দিষ্ট স্কিমাগুলির তালিকা সারণী, যেমন, \dt public.*
  7. \dt *.* সমস্ত স্কিমা তালিকা টেবিল
  8. তারপরে আপনি এসকিউএল স্টেটমেন্টগুলি চালাতে পারেন, উদাহরণস্বরূপ, SELECT * FROM my_table;(দ্রষ্টব্য: একটি বিবৃতি অবশ্যই সেমিকোলন দিয়ে শেষ করতে হবে ;)
  9. \q ছেড়ে দিন

52
  1. পোস্টগ্রিজ ব্যবহারকারী হিসাবে প্রথম লগইন করুন:

    sudo su - postgres

  2. প্রয়োজনীয় ডিবিতে সংযোগ দিন: psql -d databaseName

  3. \dt আপনার সাথে সংযুক্ত থাকা ডাটাবেসের সমস্ত টেবিলের তালিকা ফিরে আসবে।


40

-ই পতাকা সহ পিএসকিএল চালানো intern dt এবং অনুরূপ প্রয়োগের জন্য অভ্যন্তরীণভাবে ব্যবহৃত ক্যোয়ারী প্রতিধ্বনিত করবে:

sudo -u postgres psql -E

postgres=# \dt       
********* QUERY **********
SELECT n.nspname as "Schema",
c.relname as "Name", 
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as "Type",
pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM pg_catalog.pg_class c
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
    AND n.nspname <> 'pg_catalog'
    AND n.nspname <> 'information_schema'
    AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;        
**************************

1
বিটিডাব্লু, টোস্ট বড় মান সংরক্ষণ করতে ব্যবহৃত হয়: postgresql.org/docs/8.3/static/stores-toast.html
ডোরিয়ান

39

সুপারভাইজার হিসাবে লগইন করুন যাতে আপনি সমস্ত ডেটাবেস এবং তাদের স্কিমা পরীক্ষা করতে পারেন: -

sudo su - postgres

তারপরে আমরা নিম্নলিখিত কমান্ডটি ব্যবহার করে পোস্টগ্রেকশেল শেলটি পেতে পারি: -

psql

আপনি এখন নিম্নলিখিত কমান্ডটি ব্যবহার করে সমস্ত ডাটাবেস তালিকাটি পরীক্ষা করতে পারেন: -

\l

আপনি যদি ডাটাবেসগুলির আকারগুলি পরীক্ষা করতে চান তবে এটি ব্যবহার করুন: -

\l+

qফিরে যেতে টিপুন ।

আপনি এখন আপনার ডাটাবেসটি সন্ধান করার পরে নিম্নলিখিত কমান্ডটি ব্যবহার করে সেই ডাটাবেসের সাথে সংযোগ করতে পারেন: -

\c database_name

একবার সংযুক্ত হয়ে আপনি এর মাধ্যমে ডাটাবেস টেবিল বা স্কিমা পরীক্ষা করতে পারেন: -

\d

এখন শেলটিতে ফিরে আসতে ব্যবহার করুন: -

q

এখন নির্দিষ্ট টেবিল ব্যবহারের বিশদটি দেখতে: -

\d table_name

Postgresql_shell টিপতে ফিরে যেতে \q

এবং টার্মিনাল টিপুন ফিরে exit


24

আপনি যদি তৈরি টেবিলগুলির তালিকাটি দেখতে চান তবে আপনি কেবল এটি বলতে পারেন:

\dt

তবে আমাদের কাছে রয়েছে PATTERNযা আপনাকে কোন টেবিলগুলি প্রদর্শন করতে হবে তা কাস্টমাইজ করতে সহায়তা করবে। pg_catalogস্কিমা সহ সমস্ত দেখানোর জন্য , আপনি যুক্ত করতে পারেন *

\dt *

যদি তুমি করো: \?

t ডিটি [এস +] [প্যাটার্ন] তালিকা সারণী


23

শুধুমাত্র একটি টেবিল দেখুন ব্যবহার করুন

=> \dt

যদি স্কিমা সারণী দেখতে চান

=>\dt+

আপনি যদি সুনির্দিষ্ট স্কিমা সারণী দেখতে চান

=>\dt schema_name.* 

আমি নিশ্চিত যে আপনি বিভ্রান্ত +করছেন S। পরবর্তী (চিঠি) স্কিমা সারণী প্রদর্শন করে shows +কেবল অতিরিক্ত তথ্য দেখায়।
গ্যারেট উইলসন

20

নিম্নলিখিত কমান্ডটি ব্যবহার করে প্রথমে ডাটাবেসের সাথে সংযুক্ত হন

\c database_name

এবং আপনি এই বার্তাটি দেখতে পাবেন - You are now connected to database database_name। এবং তারা নিম্নলিখিত কমান্ড চালায়

SELECT * FROM table_name;

ডাটাবেস_নাম এবং টেবিল_নামে আপনার ডাটাবেস এবং টেবিলের নামটি দিয়ে আপডেট করুন


20
আমি নিশ্চিত না যে এটি প্রশ্নের উত্তর দিচ্ছে। আমি মনে করি যে ওপি (তার) তার ডাটাবেসের সমস্ত টেবিলগুলি জানার চেষ্টা করছে, তার ডাটাবেসে কোনও নির্দিষ্ট টেবিল থেকে সমস্ত সারি পাওয়া যায় না ... তাই না?
30:34

16

আপনি যদি পোস্টগ্রেএসকিউএল এ pgAdmin4 ব্যবহার করছেন, আপনি আপনার ডাটাবেসে টেবিলগুলি প্রদর্শন করতে এটি ব্যবহার করতে পারেন:

select * from information_schema.tables where table_schema='public';

14

মনে রাখবেন যে আপনি যে ডাটাবেসটি ব্যবহার করছেন \dtতার পাবলিক স্কিমাতে একমাত্র সারণী তালিকাবদ্ধ করবে। আমি আমার টেবিলগুলি পৃথক স্কিমায় রাখতে চাই, তাই গ্রহণযোগ্য উত্তর আমার পক্ষে কার্যকর হয়নি।

একটি নির্দিষ্ট স্কীমার মধ্যে সমস্ত সারণী তালিকাবদ্ধ করতে , আমার প্রয়োজন:

1) কাঙ্ক্ষিত ডাটাবেসের সাথে সংযুক্ত করুন:

psql mydb

2) \dtকমান্ডের পরে আমি টেবিল দেখতে চাইলে স্কিমা নামটি নির্দিষ্ট করুন :

\dt myschema.*

এটি আমাকে যে ফলাফলগুলিতে আগ্রহী তা দেখায়:

               List of relations
 Schema   |       Name      | Type  |  Owner   
----------+-----------------+-------+----------
 myschema | users           | table | postgres
 myschema | activity        | table | postgres
 myschema | roles           | table | postgres


8

t dt (কোনও প্রয়োজন নেই) - আপনি ইতিমধ্যে সংযুক্ত থাকা একটি বিদ্যমান ডাটাবেসের জন্য সমস্ত সারণী তালিকাবদ্ধ করবে। নোট করাও দরকারী:

\ d [টেবিলের নাম] - প্রকার তথ্য, তথ্যসূত্র এবং কী সীমাবদ্ধতা সহ প্রদত্ত টেবিলের জন্য সমস্ত কলাম প্রদর্শন করবে।


6

আপনি বর্তমান ডাটাবেসে টেবিলগুলি তালিকাভুক্ত করতে পারেন \dt

ফাইউইউ, \d tablenameপ্রদত্ত টেবিল সম্পর্কে show columns from tablenameমাইএসকিউএলের মতো কিছু , তবে আরও কিছু তথ্যের সাথে বিশদ প্রদর্শন করবে ।


5

পিএসকিএল ব্যবহার : t ডিসেম্বর

বা:

SELECT c.relname AS Tables_in FROM pg_catalog.pg_class c
        LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE pg_catalog.pg_table_is_visible(c.oid)
        AND c.relkind = 'r'
        AND relname NOT LIKE 'pg_%'
ORDER BY 1

3

সবার আগে আপনাকে নিজের ডাটাবেসের সাথে সংযুক্ত থাকতে হবে

আমার ডাটাবেস উবুন্টু

সংযোগ করতে এই কমান্ডটি ব্যবহার করুন

 \c ubuntu

এই বার্তাটি প্রদর্শিত হবে

"আপনি এখন ডাটাবেসের সাথে" উবুন্টু "ব্যবহারকারীর" পোস্টগ্রিজ "হিসাবে সংযুক্ত রয়েছেন।"

এখন

এতে সমস্ত সারণী দেখানোর জন্য এই আদেশটি চালান

\d+

3

কমান্ড লাইনে সমস্ত সারণী তালিকাবদ্ধ করার সর্বাধিক সোজা উপায় হ'ল আমার রুচির জন্য:

psql -a -U <user> -p <port> -h <server> -c "\dt"

প্রদত্ত ডাটাবেসের জন্য কেবল ডাটাবেসের নাম যুক্ত করুন:

psql -a -U <user> -p <port> -h <server> -c "\dt" <database_name>

এটি লিনাক্স এবং উইন্ডোজ উভয় ক্ষেত্রেই কাজ করে।


3

একটি দ্রুত অনেলাইনার হিসাবে

# just list all the postgres tables sorted in the terminal
db='my_db_name'
clear;psql -d $db -t -c '\dt'|cut -c 11-|perl -ne 's/^([a-z_0-9]*)( )(.*)/$1/; print'

অথবা আপনি যদি বেশি ক্লিয়ারার জসন আউটপুট মাল্টি-লাইনার পছন্দ করেন:

IFS='' read -r -d '' sql_code <<"EOF_CODE"
    select array_to_json(array_agg(row_to_json(t))) from (
        SELECT table_catalog,table_schema,table_name 
        FROM information_schema.tables
        ORDER BY table_schema,table_name ) t
EOF_CODE
psql -d postgres -t -q -c "$sql_code"|jq

1

t dt সারণী তালিকাবদ্ধ করবে এবং "\ pset পেজার অফ" আলাদা উইন্ডোটিতে স্যুইচ না করে এগুলিকে একই উইন্ডোতে দেখায়। DBShell মধ্যে মৃত্যুর যে বৈশিষ্ট্য ভালবাসেন।



0

প্রথমে আপনাকে কোন ডাটাবেসটি সংযুক্ত করতে হবে তা লিখুন

\c database_name

তারপরে এটি বর্তমান স্কিমাতে সমস্ত সারণী দেখায়:

\dt

-2

প্রথমে আপনি ম্যাকের উপর পোস্টগ্রি.অ্যাপ ব্যবহার করে বা পোস্টিকো ব্যবহার করে আপনার পোস্টগ্রিজ ডাটাবেসের সাথে সংযোগ করতে পারেন। নিম্নলিখিত কমান্ড চালান:

psql -h localhost -p port_number -d database_name -U user_name -W

তারপরে আপনি নিজের পাসওয়ার্ডটি প্রবেশ করুন, এটি আপনার ডাটাবেসে অ্যাক্সেস দেয়

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.