Mở rộng PostgreSQL

Các hàm thao tác dữ liệu trong PostgreSQL

Brian Piccolo

Sr. Director, Digital Strategy

Kiểu dữ liệu do người dùng định nghĩa

Kiểu dữ liệu liệt kê (ENUM)

CREATE TYPE dayofweek AS ENUM (
      'Monday', 
      'Tuesday',
      'Wednesday', 
      'Thursday', 
      'Friday', 
      'Saturday', 
      'Sunday'
);
Các hàm thao tác dữ liệu trong PostgreSQL

Lấy thông tin về kiểu do người dùng định nghĩa

SELECT typname, typcategory
FROM pg_type
WHERE typname='dayofweek';
+-----------+-------------+
| typname   | typcategory |
|-----------|-------------|
| dayofweek | E           |
+-----------+-------------+
Các hàm thao tác dữ liệu trong PostgreSQL

Lấy thông tin về kiểu do người dùng định nghĩa

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 |
+-----------------------------------------------+
Các hàm thao tác dữ liệu trong PostgreSQL

Hàm do người dùng định nghĩa

CREATE FUNCTION squared(i integer) RETURNS integer AS $$
    BEGIN
        RETURN i * i;
    END;
$$ LANGUAGE plpgsql;
SELECT squared(10);
+---------+
| squared |
|---------|
| 100     |
+---------+
Các hàm thao tác dữ liệu trong PostgreSQL

Hàm do người dùng định nghĩa trong cơ sở dữ liệu Sakila

  • get_customer_balance(customer_id, effective_data): tính số dư còn nợ hiện tại của khách hàng.

  • inventory_held_by_customer(inventory_id): trả về customer_id đang thuê hàng tồn kho đó hoặc null nếu hiện đang có sẵn.

  • inventory_in_stock(inventory_id): trả về giá trị boolean cho biết hàng tồn kho có đang còn hàng hay không.
Các hàm thao tác dữ liệu trong PostgreSQL

Ayo berlatih!

Các hàm thao tác dữ liệu trong PostgreSQL

Preparing Video For Download...