🛢️
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
  • PostgreSQL belgilar turiga misollar
  • Xulosa

Was this helpful?

Edit on GitHub
  1. Basic
  2. PostgreSQL Data Types in Depth

CHAR, VARCHAR and TEXT

Ushbu qo'llanmada siz PostgreSQL belgilar ma'lumotlari turlari, jumladan CHAR, VARCHAR va TEXT haqida ma'lumot olasiz va jadvallaringiz uchun mos belgilar turlarini qanday tanlashni bilib olasiz.

PostgreSQL uchta asosiy belgilar turini taqdim etadi:

  • CHARACTER(n) yoki CHAR(n)

  • CHARACTER VARYING(n) yoki VARCHAR(n)

  • TEXT

Bu sintaksisda n belgilar sonini bildiruvchi musbat butun sondir.

Quyidagi jadvalda PostgreSQLdagi belgilar turlari ko'rsatilgan:

Belgi turi
Tavsif

CHARACTER VARYING(n), VARCHAR(n)

uzunlik chegarasi bilan o'zgaruvchan uzunlik

CHARACTER(n), CHAR(n)

belgilangan uzunlikdagi, bo'sh to'ldirilgan

TEXT, VARCHAR

o'zgaruvchan cheksiz uzunlik

CHAR(n) ham, VARCHAR(n) ham n tagacha belgi saqlashi mumkin. Agar siz n dan ortiq belgidan iborat satrni saqlashga harakat qilsangiz, PostgreSQL xatolik chiqaradi.

Biroq, istisnolardan biri shundaki, agar ortiqcha belgilar barcha bo'shliqlar bo'lsa, PostgreSQL bo'shliqlarni maksimal uzunlikka (n) qisqartiradi va kesilgan belgilarni saqlaydi.

Agar satr aniq CHAR(n) yoki VARCHAR(n) ga uzatilsa, PostgreSQL uni jadvalga kiritishdan oldin uni n ta belgiga qisqartiradi.

TEXT ma'lumotlar turi cheksiz uzunlikdagi satrni saqlashi mumkin.

VARCHAR ma'lumotlar turi uchun n butun sonni ko'rsatmasangiz, u TEXT ma'lumotlar turi kabi ishlaydi. VARCHAR (n o'lchamisiz) va TEXT ning ishlashi bir xil.

VARCHAR ma'lumotlar turi uchun uzunlik spetsifikatorini belgilashning afzalligi shundaki, agar siz VARCHAR(n) ustuniga n dan ortiq belgidan iborat qatorni kiritishga harakat qilsangiz, PostgreSQL xatolik chiqaradi.

VARCHAR dan farqli o'laroq, CHARACTER yoki CHAR uzunliksiz, spetsifikatsiya (n) CHARACTER(1) yoki CHAR(1) bilan bir xil.

Boshqa ma'lumotlar bazasi tizimlaridan farqli o'laroq, PostgreSQLda uchta belgi turi o'rtasida unumdorlik farqi yo'q.

Ko'pgina hollarda siz TEXT yoki VARCHAR dan foydalanishingiz va VARCHAR(n) dan faqat PostgreSQL uzunligini tekshirishni xohlaganingizda foydalaning.

PostgreSQL belgilar turiga misollar

CHAR, VARCHAR va TEXT ma'lumotlar turlari qanday ishlashini tushunish uchun misolni ko'rib chiqamiz.

Birinchidan, character_tests deb nomlangan yangi jadval yarating:

CREATE TABLE character_tests (
  id serial PRIMARY KEY, 
  x CHAR (1), 
  y VARCHAR (10), 
  z TEXT
);

Keyin, character_tests jadvaliga yangi qator qo'shing:

INSERT INTO character_tests (x, y, z) 
VALUES 
  (
    'Yes', 'This is a test for varchar', 
    'This is a very long text for the PostgreSQL text column'
  );

PostgreSQL xatolik yuz berdi:

ERROR:  value too long for type character(1)

Buning sababi shundaki, x ustunining ma'lumotlar turi char(1) va biz ushbu ustunga uchta belgidan iborat qatorni kiritishga harakat qildik.

Keling, tuzatamiz:

INSERT INTO character_tests (x, y, z) 
VALUES 
  (
    'Y', 
    'This is a test for varchar', 
    'This is a very long text for the PostgreSQL text column'
  );

PostgreSQL boshqa xato chiqaradi:

ERROR:  value too long for type character varying(10)

Buning sababi, biz varchar(10) ma'lumotlar turiga ega bo'lgan y ustuniga 10 dan ortiq belgidan iborat qatorni kiritishga harakat qildik.

Quyidagi bayonot character_tests jadvaliga yangi qatorni muvaffaqiyatli kiritadi.

INSERT INTO character_tests (x, y, z) 
VALUES 
  (
    'Y', 
    'varchar(n)', 
    'This is a very long text for the PostgreSQL text column'
  )
RETURNING *;

Chiqish:

 id | x |     y      |                            z
----+---+------------+---------------------------------------------------------
  1 | Y | varchar(n) | This is a very long text for the PostgreSQL text column
(1 row)

Xulosa

  • PostgreSQL CHAR, VARCHAR va TEXT ma'lumotlar turlarini qo'llab-quvvatlaydi. CHAR - belgilangan uzunlikdagi belgilar turi, VARCHAR va TEXT esa har xil uzunlikdagi belgilar turlari.

  • Agar ustunga kiritish yoki uni yangilashdan oldin satr uzunligini (n) tekshirishni istasangiz, VARCHAR(n) dan foydalaning.

  • VARCHAR (uzunlik ko'rsatkichisiz) va TEXT ekvivalentdir.

PreviousBooleanNextNUMERIC

Last updated 1 year ago

Was this helpful?

©

postgresqltutorial.com