การขยายขีดความสามารถของ PostgreSQL

ฟังก์ชันสำหรับจัดการข้อมูลใน PostgreSQL

Brian Piccolo

Sr. Director, Digital Strategy

ชนิดข้อมูลที่ผู้ใช้กำหนดเอง

ชนิดข้อมูลแบบ Enumerated

CREATE TYPE dayofweek AS ENUM (
      'Monday', 
      'Tuesday',
      'Wednesday', 
      'Thursday', 
      'Friday', 
      'Saturday', 
      'Sunday'
);
ฟังก์ชันสำหรับจัดการข้อมูลใน PostgreSQL

ดูข้อมูลเกี่ยวกับชนิดข้อมูลที่ผู้ใช้กำหนดเอง

SELECT typname, typcategory
FROM pg_type
WHERE typname='dayofweek';
+-----------+-------------+
| typname   | typcategory |
|-----------|-------------|
| dayofweek | E           |
+-----------+-------------+
ฟังก์ชันสำหรับจัดการข้อมูลใน PostgreSQL

ดูข้อมูลเกี่ยวกับชนิดข้อมูลที่ผู้ใช้กำหนดเอง

SELECT column_name, data_type, udt_name
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name ='film';
+-----------------------------------------------+
| column_name | data_type         | udt_name    |
|-------------|-------------------|-------------|
| title       | character varying | varchar     |
| rating      | USER-DEFINED      | mpaa_rating |
+-----------------------------------------------+
ฟังก์ชันสำหรับจัดการข้อมูลใน PostgreSQL

ฟังก์ชันที่ผู้ใช้กำหนดเอง

CREATE FUNCTION squared(i integer) RETURNS integer AS $$
    BEGIN
        RETURN i * i;
    END;
$$ LANGUAGE plpgsql;
SELECT squared(10);
+---------+
| squared |
|---------|
| 100     |
+---------+
ฟังก์ชันสำหรับจัดการข้อมูลใน PostgreSQL

ฟังก์ชันที่ผู้ใช้กำหนดเองในฐานข้อมูล Sakila

  • get_customer_balance(customer_id, effective_data): คำนวณยอดค้างชำระปัจจุบันของลูกค้าที่ระบุ

  • inventory_held_by_customer(inventory_id): คืนค่า customer_id ของลูกค้าที่กำลังเช่าสินค้าคงคลังนั้น หรือ null หากสินค้าว่างอยู่

  • inventory_in_stock(inventory_id): คืนค่าบูลีนที่แสดงว่าสินค้าคงคลังนั้นมีในสต็อกหรือไม่
ฟังก์ชันสำหรับจัดการข้อมูลใน PostgreSQL

มาฝึกกันเถอะ!

ฟังก์ชันสำหรับจัดการข้อมูลใน PostgreSQL

Preparing Video For Download...