Thao tác chính với cơ sở dữ liệu postgresql là kiểu giao diện chính. Chƣơng trình dòng lệnh plsql. Ngƣời dùng có thể thực hiện truy vấn SQL một cách trực tiếp và thực thi chúng từ tập tin, psql cung cấp lƣợng lớn các tùy chọn lệnh, tạo điều kiện tốt để viết các câu lệnh truy vấn và tự động hóa nhiều chƣơng trình. Cấu trúc câu lệnh: psql[option...][dname][username].
Postgresql cho phép thực hiện các truy vấn tƣơng tác và thực hiện các kết quả truy vấn.
Kết nối với CSDL là thao tác đầu tiên cần phải làm trƣớc khi thực hiện các thao tác khác với psql . Để kết nối đến CSDL yêu cầu đầu tiên là phải biết tên của CSDL, địa chỉ host và cổng của máy chủ và tên ngƣời dùng mà chúng ta sẽ kết nối .psql cung cấp các tham số cho việc thao tác kết nối nhƣ:
-d (tên CSDL), -h(địa chỉ host), -p(địa chỉ cổng), U(tên người dùng).
PostgreSQL có thể đƣợc viết hoàn toàn bằng ngôn ngữ C. Hàm do ngƣời dùng định nghĩa có thể viêt bằng ngôn ngữ lập trình C hoặc ngôn ngữ lập trình cao cấp hơn C nhƣ C++. Thông thƣờng, hàm do ngƣời dùng định nghĩa đƣợc thêm vào PostgreSQL bằng cách sử dụng bộ nạp đối tƣợng (thƣ viện chia sẻ). PostgreSQL cung cấp 4 kiểu hàm sau:
- Các hàm theo ngôn ngữ truy vấn (các hàm đƣợc viết trong SQL): Các hàm này thực hiện một dãy các câu lệnh truy vấn và trả về kết quả của truy vấn cuối cùng trong danh sách truy vấn.
- Các hàm theo ngôn ngữ thủ tục (các hàm đƣợc viết trong PL/pgSQL hay PL/Tcl): PostgreSQL cho phép các hàm do ngƣời dùng định nghĩa đƣợc viết dƣới dạng một ngôn ngữ khác bên cạnh SQL và C. Ngôn ngữ này đƣợc gọi là các ngôn ngữ thủ tục. Ngôn ngữ thủ tục không đƣợc xây dựng sẵn trong PostgreSQL server, nó đƣợc đƣa ra dƣới dạng các module có thể đƣợc nạp.
- Các hàm nội tại (internal function): là các hàm đƣợc viết trong C và đã đƣợc liên kết tĩnh tới PostgreSQL server. Thông thƣờng, các hàm nội tại sẽ đƣợc khai báo trong quá trình khởi tạo các cụm cơ sở dữ liệu, tuy nhiên ngƣời sử dụng có thể sử dụng câu lệnh CREATE FUNCTION để tạo bí danh cho một hàm nội tại.
- Các hàm theo ngôn ngữ C (C-language function): các hàm này đƣợc biên dịch thành đối tƣợng động hay còn đƣợc gọi là các thƣ viện chia sẻ và có thể đƣợc gọi tới theo yêu cầu của server. Các đối tƣợng động này là sự khác nhau giữa hàm viết trong ngôn ngữ C và các hàm nội tại.
Một số các lệnh thƣờng đƣợc sử dụng trong quá trình thao tác với hệ quản trị csdl PostgreSQL. Trong đó các Option (tùy chọn) của lệnh psql .
Option (tùy chọn) Giải thích
-c command --command command
Thực thi một chuỗi lệnh, lệnh sau đó thoát
-d dbname
--dbname dbname Chỉ ra tên CSDL kết nối.
-f filename --file filename
Xử lý tập tin xác định là filename, sau khi xử lý psql sẽ thoát.
-h hostname
--host hostname Chỉ định tên máy chủ Hostname
-p port
--port port Chỉ ra cổng kết nối CSDL mặc định là 5432
-U username --username username
Chỉ ra username đang kết nối với CSDL mặc định là user hiện tại
-?
--help Danh sách thực đơn trợ giúp sau đó thoát
-T table_options --table-attr table_options
Cho phép tùy chọn sử dụng các thẻ HTML Hình 2.1: Một số lệnh trong hệ quản trị CSDL PostgreSQl
Sau khi thao tác kết nối đến CSDL để sử dụng các câu lệnh trong thao tác trong psql, chúng ta sử dụng các option (tùy chọn) các nhóm lệnh tƣơng ứng
[18].
Nhóm lệnh chung trong psql.
Tên lệnh Chức năng sử dụng
\c[ DBname] Kết nối đến CSDL
\cd[Dir] Thay đổi thƣ mục làm hiện tại
\connect (or \c) [ dbname
[ username ] [ host ] [ port ] ] Kết nối đến máy chủ, thành công sẽ đóng lại
\C [ title ] Thiết lập tiêu đề của các bảng
\h Trợ giúp cú pháp lệnh SQL, chọn *khi muốn
xem tất cả
Hình 2.2: Nhóm lệnh chung trong psql
Nhóm lệnh truy vấn bộ đệm của psql
Tên lệnh Chức năng sử dụng
\e[file] Chỉnh sửa truy vấn bộ đệm hoặc file với bộ soạn thảo
\g[file] Gửi truy vấn bộ đệm đến máy chủ và kết quả ra file
\s[file] Hiển thị lịch sử lệnh hoặc lƣu nó lại vào một file
\w [ title ] Viết truy vấn bộ đệm vào file câu lệnh thực hiện ngay trƣớc
đó
\r Khởi động lại truy vấn
\p Đƣa ra nội dung của truy vấn bộ đệm(thực hiện ngay trƣớc
đó)
Hình 2.3: Nhóm lệnh truy vấn bộ đệm của psql
Nhóm lệnh vào/ra của psql
Tên lệnh Chức năng sử dụng
\echo[string] Viết ra chuỗi , kết quả ở màn hình
\i[file] Thực thi lệnh từ file
\o[file] Gửi tất cả truy vấn vào file
Hình 2.4: Nhóm lệnh vào/ra của psql
Nhóm lệnh định dạng
Tên lệnh Chức năng sử dụng
\a Căn lề
\s[string] Đƣa ra tiêu đề hoặc chuỗi đã nhập
\f[string] Đƣa ra dấu ngăn cách về chuỗi đã nhập
Thao tác tạo và sử dụng hàm
Sử dụng file viết bằng ngôn ngữ C thì chúng ta cần biên dịch chúng thành file có mở rộng là “.dll” nếu thao tác trong môi trƣờng Window còn file có mở rộng là “.so”
Sau khi đã biên dịch file .c thành file .so, đến đây tạo và sử dụng hàm mở rộng không còn là việc khó khăn. Việc tạo và sử dụng hàm mở rộng đƣợc thao tác bằng ngôn ngữ SQL. Nhƣ đã giới thiệu phần trên, để tạo hàm mở rộng chúng ta dùng lệnh CREATE FUNCTION
Ví dụ:
CREATE FUNCTION add_one(integer) RETURNS integer AS „funcs.so‟,‟add_one‟ LANGUAGE „C‟ ;
Cú pháp lệnh:
CREATE FUNCTION [tên hàm] RETURNS [kiểu trả về] AS [file.so], [tên hàm sử dụng] LANGUAGE [ngôn ngữ].
Việc xây dựng hàm mở rộng trong postgreSQL đƣợc thực hiện một lần, nhƣng sẽ đƣợc sử dụng trong bất cứ lần khác bởi vì, sau khi biên dịch dạng file .so đã luôn tồn tại trong thƣ mục /usr/lib/pgsql/.