🛢️
PostgreSQL
Grokking Algorithm
  • Content
  • Environment
  • Getting Started
    • Introduction
      • What is PostgreSQL
      • Introduction to PostgreSQL sample database
    • Postgres on Windows
      • Install PostgreSQL on Windows
      • Connect to PostgreSQL database server
      • Load the sample database into the PostgreSQL database server
    • Postgres on Linux
    • Install PostgreSQL on macOS
  • Basic
    • Querying Data
      • SELECT
      • Column alias
      • ORDER BY
      • SELECT DISTINCT
    • Filtering Data
      • WHERE
      • AND
      • OR
      • LIMIT
      • FETCH
      • IN
      • BETWEEN
      • LIKE
      • IS NULL
    • Joining Multiple tables
      • Joins
      • Table aliases
      • INNER JOIN
      • LEFT JOIN
      • RIGHT JOIN
      • SELF JOIN
      • FULL OUTER JOIN
      • CROSS JOIN
      • NATURAL JOIN
    • Grouping data
      • GROUP BY
      • HAVING
    • Set Operations
      • UNION
      • INTERSECT
      • EXCEPT
    • Grouping sets, Cube, and Rollup
      • Grouping sets
      • CUBE
      • ROLLUP
    • Subquery
      • Subquery
      • ANY
      • ALL
      • EXISTS
    • Common Table Expressions
      • PostgreSQL CTE
      • Recursive query using CTEs
    • Modifying Data
      • Insert
      • Insert multiple rows
      • Update
      • Update join
      • Delete
      • Upsert
    • Transactions
      • PostgreSQL Transaction
    • Import & Export Data
      • Import CSV file into Table
      • Export PostgreSQL Table to CSV file
    • Managing Tables
      • Data types
      • Create a table
      • Select into
      • Create table as
      • Auto-increment
      • Sequences
      • Identity column
      • Alter table
      • Rename table
      • Add column
      • Drop column
      • Change column data type
      • Rename column
      • Drop table
      • Truncate table
      • Temporary table
      • Copy a table
    • Understanding PostgreSQL constraints
      • Primary key
      • Foreign key
      • UNIQUE constraint
      • CHECK constraint
      • NOT NULL constraint
    • PostgreSQL Data Types in Depth
      • Boolean
      • CHAR, VARCHAR and TEXT
      • NUMERIC
      • Integer
      • DATE
      • Timestamp
      • Interval
      • TIME
      • UUID
      • Array
      • hstore
      • JSON
      • User-defined data types
  • Advanced
  • PG-PGSQL
  • Functions
  • Adminstration
  • API
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Basic
  2. Managing Tables

Copy a table

PreviousTemporary tableNextUnderstanding PostgreSQL constraints

Last updated 1 year ago

Was this helpful?

Ushbu qo'llanmada biz sizga PostgreSQL nusxa ko'chirish jadvali bayonotining turli shakllaridan foydalangan holda mavjud jadvalni, jumladan jadval tuzilishi va ma'lumotlarini qanday nusxalashni bosqichma-bosqich ko'rsatamiz.

copy a table

Jadvalning tuzilishi va ma'lumotlarini o'z ichiga olgan holda to'liq nusxa ko'chirish uchun siz quyidagi bayonotdan foydalanasiz:

CREATE TABLE new_table AS 
TABLE existing_table;

Jadval strukturasini ma'lumotlarsiz nusxalash uchun siz CREATE TABLE iborasiga WITH NO DATA bandini quyidagi tarzda qo'shishingiz kerak:

CREATE TABLE new_table AS 
TABLE existing_table 
WITH NO DATA;

Mavjud jadvaldan qisman ma'lumotlarga ega jadvalni nusxalash uchun siz quyidagi bayonotdan foydalanasiz:

CREATE TABLE new_table AS 
SELECT
*
FROM
    existing_table
WHERE
    condition;

So'rovning WHERE bandidagi shart mavjud jadvalning qaysi qatorlari yangi jadvalga ko'chirilishini belgilaydi.

E'tibor bering, yuqoridagi barcha bayonotlar jadval tuzilishi va ma'lumotlarini nusxa ko'chiradi, lekin mavjud jadvalning indekslari va cheklovlarini ko'chirmang.

PostgreSQL jadval nusxasiga misol

Quyidagi bayonot namoyish uchun contacts nomli yangi jadval yaratadi:

CREATE TABLE contacts(
    id SERIAL PRIMARY KEY,
    first_name VARCHAR NOT NULL,
    last_name VARCHAR NOT NULL,
    email VARCHAR NOT NULL UNIQUE
);

Ushbu jadvalda bizda ikkita indeks mavjud: biri asosiy kalit uchun, ikkinchisi esa UNIQUE cheklovi uchun.

contacts jadvaliga bir nechta qatorlarni kiritamiz:

INSERT INTO contacts(first_name, last_name, email) 
VALUES('John','Doe','john.doe@postgresqltutorial.com'),
      ('David','William','david.william@postgresqltutorial.com');

contactsni yangi jadvalga, masalan, contacts_backup jadvaliga nusxalash uchun siz quyidagi bayonotdan foydalanasiz:

CREATE TABLE contact_backup 
AS TABLE contacts;

Ushbu bayonot strukturasi contacts jadvali bilan bir xil bo'lgan contact_backup nomli yangi jadvalni yaratadi. Bundan tashqari, u contacts jadvalidagi ma'lumotlarni contact_backup jadvaliga ko'chiradi.

Quyidagi SELECT iborasidan foydalanib contact_backup jadvali maʼlumotlarini tekshiramiz:

SELECT * FROM contact_backup;

id | first_name | last_name |                email
----+------------+-----------+--------------------------------------
  1 | John       | Doe       | john.doe@postgresqltutorial.com
  2 | David      | William   | david.william@postgresqltutorial.com

(2 rows)

U kutilganidek ikki qatorni qaytaradi.

contact_backup jadvalining tuzilishini tekshirish uchun:

test=# \d contact_backup;
       Table "public.contact_backup"
   Column   |       Type        | Modifiers
------------+-------------------+-----------
 id         | integer           |
 first_name | character varying |
 last_name  | character varying |
 email      | character varying |

Chiqishda ko'rib turganingizdek, contact_backup jadvalining tuzilishi indekslardan tashqari contacts jadvali bilan bir xil.

contact_backup jadvaliga asosiy kalit va UNIQUE cheklovlarni qoʻshish uchun quyidagi ALTER TABLE iboralaridan foydalanasiz:

ALTER TABLE contact_backup ADD PRIMARY KEY(id);
ALTER TABLE contact_backup ADD UNIQUE(email);

contact_backup jadvalining tuzilishini qayta ko'rish uchun \d buyrug'idan foydalanasiz:

test=# \d contact_backup;
       Table "public.contact_backup"
   Column   |       Type        | Modifiers
------------+-------------------+-----------
 id         | integer           | not null
 first_name | character varying |
 last_name  | character varying |
 email      | character varying |
Indexes:
    "contact_backup_pkey" PRIMARY KEY, btree (id)
    "contact_backup_email_key" UNIQUE CONSTRAINT, btree (email)

Ushbu qo'llanmada siz PostgreSQL nusxa ko'chirish jadvali bayonotidan foydalanib, mavjud jadvalni yangisiga ko'chirishni o'rgandingiz.

©

postgresqltutorial.com