مقدمه
در این آموزش تکنیک های مختلفی را برای انتقال داده ها از جداول PostgreSQL به فایل های CSV خواهید آموخت.
در آموزش قبلی به شما نشان دادیم که چگونه داده ها را از یک فایل CSV به یک جدول وارد کنید. ما از جدول اشخاصی که ایجاد کرده ایم برای وارد کردن داده ها از یک فایل CSV استفاده خواهیم کرد.
بیایید داده های جدول افراد را بررسی کنیم.
SELECT * FROM persons;
ما دو رکورد در جدول داریم.
ساده ترین راه برای صادر کردن داده های یک جدول به یک فایل 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 به عنوان آن اجرا می شود قابل نوشتن باشد.
در صورتی که به یک سرور پایگاه داده 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 با ما در ارتباط باشید.