🛢️
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

Change column data type

Ushbu qo'llanma sizga ALTER TABLE iborasi yordamida ustunning ma'lumotlar turini qanday o'zgartirishni bosqichma-bosqich ko'rsatib beradi.

Ustunning ma'lumotlar turini o'zgartirish uchun siz ALTER TABLE iborasidan quyidagi tarzda foydalanasiz:

ALTER TABLE table_name
ALTER COLUMN column_name [SET DATA] TYPE new_data_type;

Keling, bayonotni batafsil ko'rib chiqaylik:

  • Birinchidan, ALTER TABLE kalit so'zlaridan keyin ustunni o'zgartirmoqchi bo'lgan jadval nomini belgilang.

  • Ikkinchidan, ALTER COLUMN bandidan keyin ma'lumotlar turini o'zgartirmoqchi bo'lgan ustun nomini belgilang.

  • Uchinchidan, TYPE kalit so'zidan keyin ustun uchun yangi ma'lumotlar turini kiriting. SET DATA TYPE va TYPE ekvivalentdir.

Bitta bayonotda bir nechta ustunlarning ma'lumotlar turlarini o'zgartirish uchun siz bir nechta ALTER COLUMN bandlaridan foydalanasiz:

ALTER TABLE table_name
ALTER COLUMN column_name1 [SET DATA] TYPE new_data_type,
ALTER COLUMN column_name2 [SET DATA] TYPE new_data_type,
...;

Ushbu sintaksisda siz har bir ALTER COLUMN bandidan keyin vergul (,) qo'shasiz.

PostgreSQL sizga quyidagi tarzda USING bandini qo'shish orqali ma'lumotlar turini o'zgartirganda ustun qiymatlarini yangilariga aylantirish imkonini beradi:

ALTER TABLE table_name
ALTER COLUMN column_name TYPE new_data_type USING expression;

USING bandi eski qiymatlarni yangilariga aylantirish imkonini beruvchi ifodani belgilaydi.

Agar siz USING bandini o'tkazib yuborsangiz, PostgreSQL qiymatlarni bilvosita yangilariga o'tkazadi. Translatsiya muvaffaqiyatsiz bo'lsa, PostgreSQL xatolik chiqaradi va ma'lumotlarni konvertatsiya qilish uchun USING bandini taqdim etishingizni tavsiya qiladi.

USING kalit so'zidan keyingi ibora column_name::new_data_type kabi oddiy bo'lishi mumkin, masalan, price::numeric yoki maxsus funksiya kabi murakkab.

PostgreSQL ustun turini o'zgartirishga misollar

Keling, assets deb nomlangan yangi jadval yaratamiz va namoyish qilish uchun jadvalga bir nechta qatorlarni kiritamiz.

CREATE TABLE assets (
    id serial PRIMARY KEY,
    name TEXT NOT NULL,
    asset_no VARCHAR NOT NULL,
    description TEXT,
    location TEXT,
    acquired_date DATE NOT NULL
);

INSERT INTO assets(name,asset_no,location,acquired_date)
VALUES('Server','10001','Server room','2017-01-01'),
      ('UPS','10002','Server room','2017-01-01');

name ustunining ma'lumotlar turini VARCHAR ga o'zgartirish uchun siz quyidagi bayonotdan foydalanasiz:

ALTER TABLE assets 
ALTER COLUMN name TYPE VARCHAR;

Quyidagi bayonot description va location ustunlarining ma'lumotlar turlarini TEXT dan VARCHAR ga o'zgartiradi:

ALTER TABLE assets 
    ALTER COLUMN location TYPE VARCHAR,
    ALTER COLUMN description TYPE VARCHAR;

asset_no ustunining ma'lumotlar turini butun songa o'zgartirish uchun siz quyidagi bayonotdan foydalanasiz:

ALTER TABLE assets 
ALTER COLUMN asset_no TYPE INT;

PostgreSQL xato va juda foydali maslahat berdi:

ERROR:  column "asset_no" cannot be cast automatically to type integer
HINT:  You might need to specify "USING asset_no::integer".

Quyidagi bayonot yuqoridagi bayonotga USING bandini qo'shadi:

ALTER TABLE assets
ALTER COLUMN asset_no TYPE INT 
USING asset_no::integer;

Kutilganidek ishladi.

Ushbu qo'llanmada siz ustun turini o'zgartirish uchun ALTER TABLE ALTER COLUMN bayonotidan qanday foydalanishni o'rgandingiz.

PreviousDrop columnNextRename column

Last updated 1 year ago

Was this helpful?

assets

©

postgresqltutorial.com