কমান্ড লাইন থেকে পোস্টগ্রিএসকিউএল কোয়েরি চালান


278

আমি একটি টেবিলের মধ্যে একটি তথ্য sertedোকানো .... আমি সারি এবং কলাম এবং ডেটা সহ এখন পুরো টেবিলটি দেখতে চাই। কমান্ডের মাধ্যমে আমি এটি কীভাবে প্রদর্শন করতে পারি?

উত্তর:


475

psql -U username -d mydatabase -c 'SELECT * FROM mytable'

আপনি যদি পোস্টগ্রেস্কএল থেকে নতুন হন এবং কমান্ড লাইন সরঞ্জামটি ব্যবহারের সাথে অপরিচিত হন psqlতবে কিছু বিভ্রান্তিকর আচরণ রয়েছে যখন আপনি একটি ইন্টারেক্টিভ সেশনে প্রবেশ করেছেন তখন আপনার সচেতন হওয়া উচিত।

উদাহরণস্বরূপ, একটি ইন্টারেক্টিভ সেশন শুরু করুন:

psql -U username mydatabase 
mydatabase=#

এই মুহুর্তে আপনি সরাসরি একটি ক্যোয়ারী লিখতে পারেন তবে আপনাকে অবশ্যই সেমিকোলন দিয়ে কোয়েরিটি শেষ করতে হবে;

উদাহরণ স্বরূপ:

mydatabase=# SELECT * FROM mytable;

আপনি যদি সেমিকোলনটি ভুলে যান তবে প্রবেশের সময় হিট করার সময় আপনি আপনার রিটার্ন লাইনে কিছুই পাবেন না কারণ psqlধরে নেওয়া হবে যে আপনি আপনার কোয়েরিটি প্রবেশ করানো শেষ করেছেন না। এটি সব ধরণের বিভ্রান্তির কারণ হতে পারে। উদাহরণস্বরূপ, আপনি যদি একই প্রশ্নটি পুনরায় প্রবেশ করেন তবে আপনার সম্ভবত একটি বাক্য গঠন ত্রুটি তৈরি হবে।

একটি পরীক্ষা হিসাবে, পিএসকিএল প্রম্পটে আপনার পছন্দের কোনও গার্বেল টাইপ করার চেষ্টা করুন এবং তারপরে এন্টার চাপুন। psqlনিঃশব্দে আপনাকে একটি নতুন লাইন সরবরাহ করবে। আপনি যদি সেই নতুন লাইনে একটি সেমিকোলন প্রবেশ করেন এবং তারপরে এন্টার টিপান, তবে আপনি ত্রুটি পাবেন:

mydatabase=# asdfs 
mydatabase=# ;  
ERROR:  syntax error at or near "asdfs"
LINE 1: asdfs
    ^

থাম্বের নিয়মটি হ'ল: যদি আপনি কোনও প্রতিক্রিয়া না পেয়ে psqlতবে কমপক্ষে কিছু প্রত্যাশা করে থাকেন তবে আপনি সেমিকোলনটি ভুলে গেছেন;


4
যেহেতু কমপক্ষে .2.২ --single-line( এটি যাচাই করার জন্য আমি যতটা ব্যাকুল হয়েছিলাম, এটি আরও আগেও হতে পারে), পিএসএইচএল-তে বিকল্প রয়েছে (বা -s) যা প্রতিটি কমান্ডকে সেমিকোলন যুক্ত করার প্রয়োজন না করে তাত্ক্ষণিক করে তোলে।
গর্ডন

3
আমি এক ঘন্টা ডিবাগিং ব্যয় করেছি এবং সমস্যাটি ছিল হারিয়ে যাওয়া সেমিকোলন। আপনাকে ধন্যবাদ
ডসন বি

106
SELECT * FROM my_table;

my_tableআপনার টেবিলের নাম কোথায়

সম্পাদনা করুন:

psql -c "SELECT * FROM my_table"

অথবা ঠিক psqlএবং তারপরে আপনার প্রশ্নগুলি টাইপ করুন।


7
psql -U username -c your_database "SELECT * FROM my_table"
ড্রকলোসোসোস

3
যেমনটি বলা হয়েছে, আপনার আদেশটি সেমিকোলন দিয়ে শেষ করা উচিত ; আপনি যদি উইন্ডোজ সিস্টেমে থাকেন তবে উইন্ডোজ ব্যবহারকারীদের জন্য মূলত নোটগুলি দেখুন , cmd.exe /c chcp 1252আপনি কনসোল প্রম্পটটি খোলার পরে ঠিক রাখুন ।
ডি_গুইদি

2
ভবিষ্যতের ব্যবহারকারীদের জন্য, আপনার ডাটাবেসের নামের আগে -d এবং কোয়েরির আগে -c যুক্ত করার বিষয়টি নিশ্চিত করুন: psql -U ব্যবহারকারীর নাম -d মাইডাটাবেস -c 'মাইটিটেবল থেকে নির্বাচন করুন'
জেএমহেড

2
আমার পক্ষে কাজ করেনি .আমি করলামpsql: FATAL: database "SELECT * FROM tb_name" does not exist
জসভিন্দর

@ ড্রকলোসোসগুলি ইঙ্গিত হিসাবে, কমপক্ষে উইন্ডোজ ক্লিপ / ব্যাচের পরিবেশ থেকে কম্যান্ডের চারপাশে ডাবল-কোটগুলি প্রয়োজনীয় বলে মনে হচ্ছে।
jewbix.cube

43

যদি আপনার ডিবি পাসওয়ার্ড সুরক্ষিত থাকে তবে সমাধানটি হ'ল:

PGPASSWORD=password  psql -U username -d dbname -c "select * from my_table"

3
এইভাবে পাসওয়ার্ড সরবরাহ করতে পারে জানি না। পরীক্ষা করার সময় এটি সত্যই কার্যকর। ধন্যবাদ
zhihong

21

আপনার অ্যাপ্লিকেশনগুলি (ম্যাক) থেকে "এসকিউএল শেল (পিএসকিএল)" খুলুন।

এখানে চিত্র বর্ণনা লিখুন

ডিফল্ট সেটিংসের জন্য এন্টার টিপুন। জিজ্ঞাসা করা হলে পাসওয়ার্ড লিখুন।

এখানে চিত্র বর্ণনা লিখুন

*) \?সাহায্যের জন্য টাইপ করুন

*) \conninfoআপনি কোন ব্যবহারকারী হিসাবে সংযুক্ত আছেন তা দেখতে টাইপ করুন ।

*) ডাটাবেসগুলির \lতালিকা দেখতে টাইপ করুন ।

এখানে চিত্র বর্ণনা লিখুন

*) \c <Name of DB>উদাহরণস্বরূপ একটি ডাটাবেসের সাথে সংযুক্ত করুন\c GeneDB1

এখানে চিত্র বর্ণনা লিখুন

আপনার নতুন ডিবিতে কী প্রম্পট পরিবর্তনটি দেখতে হবে, যেমন: এখানে চিত্র বর্ণনা লিখুন

*) এখন আপনি যে কোনও ডিবিতে রয়েছেন, আপনি সেই ডিবির স্কিমাস জানতে চান। এটি করার জন্য সর্বোত্তম আদেশ \dn

এখানে চিত্র বর্ণনা লিখুন

অন্যান্য কমান্ড যে কাজ (কিন্তু ভাল হিসাবে নয়) হয় select schema_name from information_schema.schemata;এবং select nspname from pg_catalog.pg_namespace;:

এখানে চিত্র বর্ণনা লিখুন

-) এখন আপনার কাছে স্কিমা রয়েছে, আপনি সেই স্কিমার টেবিলগুলি জানতে চান। তার জন্য, আপনি dtকমান্ডটি ব্যবহার করতে পারেন । উদাহরণ স্বরূপ\dt "GeneSchema1".*

এখানে চিত্র বর্ণনা লিখুন

*) এখন আপনি আপনার প্রশ্নগুলি করতে পারেন। উদাহরণ স্বরূপ:

এখানে চিত্র বর্ণনা লিখুন

*) পিজিএডমিনে উপরের ডিবি, স্কিমা এবং টেবিলগুলি দেখতে দেখতে এখানে রয়েছে:

এখানে চিত্র বর্ণনা লিখুন


3
  1. একটি কমান্ড প্রম্পট খুলুন এবং Postgres ইনস্টল করা ডিরেক্টরিটিতে যান। আমার ক্ষেত্রে আমার পোস্টগ্রাসের পথটি "D: OL TOOLS \ Postgresql-9.4.1-3"। \ বিন> "
  2. এখন আমার লক্ষ্য ব্যবহারকারীদের টেবিল থেকে "USERNAME" নির্বাচন করতে "ব্যবহারকারী আইডি" value.So ডাটাবেসের ক্যোয়ারী ব্যবহার করে করা হয় " U নির্বাচন করুন।" ব্যবহারকারীর নাম "U ব্যবহারকারীদের কাছ থেকে কোথায় গেলে।" আইডি "= 1 "।

পোস্টগ্রিজের পিএসএইচএল কমান্ড প্রম্পটের জন্য নীচে একই কোয়েরিটি লেখা হয়েছে।

ডি: OL টোলস \ পোস্টগ্র্যাস্ক্ল্ল -9.4.1-3 \ বিন> পিএসকিএল -U পোস্টগ্রাস -d ডাটাবেসনাম -h লোকালহোস্ট - টি-সি "ইউ নির্বাচন করুন।" ব্যবহারকারী নাম \ "ব্যবহারকারীদের কাছ থেকে আপনি যেখানে ইউ। 1;


3

@ গ্রান্ট উত্তরে আমার কোনও সন্দেহ নেই। তবে আমি মাঝে মাঝে কয়েকটি সমস্যার মুখোমুখি হয়েছি যেমন কলামের নাম পোস্টগ্রিসক্লেলের যে কোনও সংরক্ষিত কীওয়ার্ডের সাথে অনুরূপ যেমন এই ক্ষেত্রে প্রাকৃতিক অনুরূপ এসকিউএল কমান্ড লাইন থেকে চালানো কঠিন কারণ ক্যোয়ারী ক্ষেত্রে "\ প্রাকৃতিক \" প্রয়োজন হবে। সুতরাং আমার পদ্ধতিটি হ'ল পৃথক ফাইলে এসকিউএল লিখুন এবং এসকিউএল ফাইলটি কমান্ড লাইন থেকে চালান run এটির আরও একটি সুবিধাও রয়েছে। বড় স্ক্রিপ্টের জন্য যদি আপনার ক্যোয়ারী পরিবর্তন করতে হয় তবে আপনাকে স্ক্রিপ্ট ফাইল বা কমান্ড স্পর্শ করতে হবে না। কেবল এসকিউএল ফাইলটি এটির মতো পরিবর্তন করুন

psql -h localhost -d database -U postgres -p 5432 -a -q -f /path/to/the/file.sql

3

আমি লক্ষ্য করেছি যে ক্যোয়ারী

টেবিলের নাম থেকে * নির্বাচন করুন;

psql কমান্ড প্রম্পটে এবং ত্রুটি দেয়

"টেবিল নাম" থেকে * নির্বাচন করুন;

দুর্দান্ত চালায়, সত্যিই অদ্ভুত, তাই ডাবল উদ্ধৃতিটি ভুলে যাবেন না। আমি সবসময় ডাটাবেস পছন্দ করেছি :-(


-8

নির্দিষ্ট ধরণের বিবৃতিগুলির জন্য আপনি আরও উপযুক্ত ব্যবহার করতে পারেন Azure Data Studio- অন্য সমস্ত কিছুর জন্য এটি অন্তর্নির্মিত কমান্ড লাইনের সাথে আসে। স্টুডিও ব্যবহার করে আপনি টাইপিং স্টেটমেন্ট এবং আউটপুট আরও আরামদায়ক পড়তে পারেন।

নীচের পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যাজুর ডেটা স্টুডিও ইনস্টল করুন - ডেটা বিকাশে ফোকাসযুক্ত একটি ক্রস-প্ল্যাটফর্ম আধুনিক সম্পাদক; এটি ওপেন সোর্স এবং এক্সটেনসিবল - দুটি বিষয় যা পোস্টগ্রেএসকিউএল নিজেই ভিত্তি করে;
  2. PostgreSQL এক্সটেনশনটি ইনস্টল করুন
  3. আপনার স্থানীয় বা রিমোট সার্ভারের সাথে সংযুক্ত করুন:

    এখানে চিত্র বর্ণনা লিখুন

  4. কেবল এসকিউএল রচনা এবং সম্পাদন উপর মনোনিবেশ:

    এখানে চিত্র বর্ণনা লিখুন

আছে অনেক , সংযোগ সংরক্ষণ সার্ভার গ্রুপ তৈরি হিসাবে চমৎকার বৈশিষ্ট্য এবং এমনকি বিল্ট-ইন টার্মিনাল যদি আপনি আরো আরামদায়ক মাধ্যমে কিছু টাস্ক করছ psql

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