مسعود سلطانی راد
مسعود سلطانی راد
خواندن ۲ دقیقه·۱ سال پیش

خارج کردن اطلاعات از پایگاه داده Postgresql به CSV فایل با دستور Copy

مقدمه

در این آموزش تکنیک های مختلفی را برای انتقال داده ها از جداول PostgreSQL به فایل های CSV خواهید آموخت.

در آموزش قبلی به شما نشان دادیم که چگونه داده ها را از یک فایل CSV به یک جدول وارد کنید. ما از جدول اشخاصی که ایجاد کرده ایم برای وارد کردن داده ها از یک فایل CSV استفاده خواهیم کرد.


بیایید داده های جدول افراد را بررسی کنیم.

SELECT * FROM persons;


ما دو رکورد در جدول داریم.

با استفاده از عبارت COPY داده ها را از جدول به CSV صادر کنید

ساده ترین راه برای صادر کردن داده های یک جدول به یک فایل CSV استفاده از دستور COPY است. به عنوان مثال، اگر می خواهید داده های جدول اشخاص را به یک فایل CSV به نام persons_db.csv در پوشه C:\tmp صادر کنید، می توانید از عبارت زیر استفاده کنید:

COPY persons TO ‘C:\tmp\persons_db.csv’ DELIMITER ‘,’ CSV HEADER;

PostgreSQLتمام داده ها را از تمام ستون های جدول اشخاص به فایل persons_db.csv صادر می کند.


در برخی موارد، می خواهید داده ها را فقط از برخی از ستون های جدول به یک فایل CSV صادر کنید. برای انجام این کار، نام ستون ها را به همراه نام جدول بعد از کلمه کلیدی COPY مشخص می کنید. برای مثال، عبارت زیر داده‌ها را از ستون‌های first_name، last_name وemail جدول اشخاص به person_partial_db.csv صادر می‌کند.

COPY persons(first_name,last_name,email) TO ‘C:\tmp\persons_partial_db.csv’ DELIMITER ‘,’ CSV HEADER;


اگر نمی‌خواهید Header را که حاوی نام ستون‌های جدول است صادر کنید، فقط پرچم HEADER را در عبارت COPY حذف کنید. عبارت زیر فقط داده ها را از ستون ایمیل جدول اشخاص به یک فایل CSV صادر می کند.

COPY persons(email) TO ‘C:\tmp\persons_email_db.csv’ DELIMITER ‘,’ CSV;


توجه داشته باشید که نام فایل CSV که در دستور COPY مشخص می‌کنید باید مستقیماً توسط سرور نوشته شود. این بدان معنی است که فایل CSV باید در دستگاه سرور پایگاه داده باشد، نه دستگاه محلی شما. فایل CSV همچنین باید توسط کاربری که سرور PostgreSQL به عنوان آن اجرا می شود قابل نوشتن باشد.

با استفاده از دستور \copy داده ها را از جدول به فایل CSV صادر کنید

در صورتی که به یک سرور پایگاه داده PostgreSQL راه دور دسترسی دارید، اما امتیاز کافی برای نوشتن روی فایل روی آن ندارید، می توانید از دستور داخلی PostgreSQL \copy استفاده کنید.

دستور \copy اساساً عبارت COPY بالا را اجرا می کند. با این حال، به جای اینکه سرور فایل CSV را بنویسد، psql فایل CSV را می نویسد، داده ها را از سرور به سیستم فایل محلی شما منتقل می کند. برای استفاده از دستور \copy، فقط باید امتیازات کافی برای ماشین محلی خود داشته باشید. این نیازی به امتیازات ابرکاربر PostgreSQL ندارد.

به عنوان مثال، اگر می خواهید تمام داده های جدول اشخاص را به فایل persons_client.csv صادر کنید، می توانید دستور \copy را از psql به صورت زیر اجرا کنید:

\copy (SELECT * FROM persons) to ‘C:\tmp\persons_client.csv’ with csv

جهت دریافت خدمات مشاوره، آموزش و نگهداری پایگاه داده postgresql با ما در ارتباط باشید.

مشاوره پستگرسپایگاه داده پستگرساموزش پستگرسمسعود سلطانی رادpostgresql
چند سالی هست در حوزه داده ها ( نگهداری و تحلیل آنها) فعالیت دارم و همیشه سعی کردم آموخته هایم رو به اشتراک بگذارم soltanirad@artarad.ir www.artarad.ir
شاید از این پست‌ها خوشتان بیاید