พื้นฐานคอลัมน์อาร์เรย์
สร้างและอ่านค่าอาร์เรย์
พื้นฐานคอลัมน์อาร์เรย์ เป็นบทเรียน SQL Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SQL Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน
คอลัมน์อาร์เรย์คืออะไร
PostgreSQL รองรับ คอลัมน์อาร์เรย์ ซึ่งช่วยให้เซลล์เดียวเก็บค่าหลายค่าที่มีชนิดข้อมูลเดียวกันได้ แทนที่จะเก็บข้อความที่คั่นด้วยจุลภาค คุณจะได้รายการที่มีชนิดข้อมูลชัดเจน ซึ่งสามารถค้นหา ทำดัชนี และจัดการด้วยฟังก์ชันในตัวได้
อาร์เรย์สามารถเก็บจำนวนเต็ม ข้อความ ค่าบูลีน วันที่ หรือชนิดข้อมูลอื่นใดของ PostgreSQL ได้ ไวยากรณ์มีลักษณะเป็น integer[] หรือ text[]
การประกาศคอลัมน์อาร์เรย์
เพิ่ม [] หลังชื่อชนิดข้อมูลใด ๆ เมื่อเขียนคำสั่ง CREATE TABLE เพื่อประกาศคอลัมน์อาร์เรย์ ตารางด้านล่างเก็บรายการแท็กของแต่ละบทความ
CREATE TABLE articles (
id serial PRIMARY KEY,
title text NOT NULL,
tags text[]
);การแทรกค่าอาร์เรย์
ใช้ค่าลิเทอรัลรูปวงเล็บปีกกาที่ครอบด้วยอัญประกาศเดี่ยวเพื่อแทรกข้อมูลอาร์เรย์ แต่ละองค์ประกอบจะคั่นด้วยจุลภาคภายในวงเล็บปีกกา: '{"sql","database"}'
อีกวิธีหนึ่งคือใช้ไวยากรณ์ตัวสร้าง ARRAY[...] ตามที่แสดงในแถวที่สอง
INSERT INTO articles (title, tags) VALUES
('Intro to SQL', '{"sql","beginner"}'),
('Advanced Joins', ARRAY['sql','joins','performance']),
('NULL Handling', '{"sql","nulls","tips"}');การอ่านอาร์เรย์ทั้งหมด
การเลือกคอลัมน์อาร์เรย์ทำงานเหมือนกับการเลือกคอลัมน์อื่น ๆ PostgreSQL จะส่งคืนอาร์เรย์ทั้งหมดเป็นค่าเดียวในชุดผลลัพธ์ โดยแสดงในรูปแบบวงเล็บปีกกา
SELECT id, title, tags
FROM articles;การเข้าถึงองค์ประกอบเดียว
ตำแหน่งสมาชิกของอาร์เรย์ใน PostgreSQL เริ่มนับจาก 1 (องค์ประกอบแรกอยู่ที่ดัชนี 1 ไม่ใช่ 0) ใช้วงเล็บเหลี่ยมหลังชื่อคอลัมน์เพื่อเข้าถึงองค์ประกอบที่ต้องการ
SELECT title,
tags[1] AS first_tag,
tags[2] AS second_tag
FROM articles;การตัดแบ่งอาร์เรย์
คุณสามารถดึงช่วงขององค์ประกอบได้โดยใช้ไวยากรณ์ส่วนตัด lower:upper ภายในวงเล็บเหลี่ยม ขอบเขตทั้งสองด้านจะถูกรวมอยู่ด้วย
SELECT title,
tags[1:2] AS first_two_tags
FROM articles;การกรองด้วย ANY
หากต้องการค้นหาแถวที่อาร์เรย์มีค่าที่ระบุ ให้ใช้นิพจน์ = ANY(column) นิพจน์นี้จะส่งคืนแถวที่มีองค์ประกอบอย่างน้อยหนึ่งรายการในอาร์เรย์ตรงกับค่าที่กำหนด
SELECT id, title, tags
FROM articles
WHERE 'joins' = ANY(tags);การกรองด้วยตัวดำเนินการ @>
ตัวดำเนินการ บรรจุ @> ตรวจสอบว่าอาร์เรย์ด้านซ้ายมีองค์ประกอบทั้งหมดของอาร์เรย์ด้านขวาหรือไม่ วิธีนี้มีประโยชน์เมื่อต้องการแถวที่มีแท็กที่จำเป็นครบชุด
SELECT id, title, tags
FROM articles
WHERE tags @> ARRAY['sql','tips'];การหาความยาวอาร์เรย์
ฟังก์ชัน array_length(arr, dimension) ส่งคืนจำนวนองค์ประกอบตามมิติที่กำหนด สำหรับอาร์เรย์หนึ่งมิติ ให้ใช้ 1 เป็นอาร์กิวเมนต์ที่สอง
SELECT title,
array_length(tags, 1) AS tag_count
FROM articles
ORDER BY tag_count DESC;การเพิ่มองค์ประกอบ
ใช้ฟังก์ชัน array_append(array, element) หรือตัวดำเนินการต่อข้อความ || เพื่อเพิ่มองค์ประกอบใหม่ต่อท้ายคอลัมน์อาร์เรย์ที่มีอยู่
UPDATE articles
SET tags = array_append(tags, 'featured')
WHERE title = 'Intro to SQL';
SELECT title, tags FROM articles WHERE title = 'Intro to SQL';การคลี่อาร์เรย์เป็นแถว
ฟังก์ชัน unnest(array) จะขยายอาร์เรย์เป็นชุดแถว โดยมีหนึ่งแถวต่อหนึ่งองค์ประกอบ วิธีนี้เหมาะสำหรับการรวมค่า การเชื่อมตาราง หรือการดำเนินการใด ๆ ที่ต้องจัดการแต่ละองค์ประกอบแยกกัน
SELECT title, unnest(tags) AS tag
FROM articles
ORDER BY title, tag;ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจเกี่ยวกับคอลัมน์อาร์เรย์ของ PostgreSQL
สรุป: พื้นฐานคอลัมน์อาร์เรย์
ในบทนี้ คุณได้เรียนรู้การทำงานของคอลัมน์อาร์เรย์ใน PostgreSQL ตั้งแต่ต้นจนจบ:
- ประกาศอาร์เรย์ด้วยไวยากรณ์
type[]ในCREATE TABLE - แทรกค่าด้วยค่าลิเทอรัลรูปวงเล็บปีกกาหรือ
ARRAY[...] - เข้าถึงองค์ประกอบด้วยดัชนีที่เริ่มนับจาก 1 และแบ่งช่วงด้วย
lower:upper - กรองด้วย
= ANY(col)สำหรับค่าเดียว หรือ@>สำหรับสับเซต - วัดความยาวด้วย
array_length(col, 1) - เพิ่มองค์ประกอบด้วย
array_append()หรือ|| - ขยายอาร์เรย์เป็นแถวด้วย
unnest()
อาร์เรย์เป็นความสามารถอันทรงพลังของ PostgreSQL ซึ่งช่วยทำให้โครงสร้างแบบจำลองเรียบง่ายขึ้นได้เมื่อรายการค่าเป็นของเอนทิตีเดียว
คำถามที่พบบ่อย
บทเรียน “พื้นฐานคอลัมน์อาร์เรย์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พื้นฐานคอลัมน์อาร์เรย์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SQL Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐานคอลัมน์อาร์เรย์”
สร้างและอ่านค่าอาร์เรย์ คุณปฏิบัติ SQL Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SQL Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน SQL Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “พื้นฐานคอลัมน์อาร์เรย์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน SQL Academy นี้ได้ไหม
ได้ บทเรียน SQL Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐานคอลัมน์อาร์เรย์
- การค้นหาภายในอาร์เรย์
- UNNEST และการรวมค่า
- อาร์เรย์เทียบกับตารางแบบทำให้เป็นมาตรฐาน