0% found this document useful (0 votes)
14 views26 pages

Chapter 4

The document provides an introduction to full-text search and data manipulation functions in PostgreSQL, covering topics such as the LIKE operator, full-text search syntax, user-defined data types, and user-defined functions. It also discusses commonly used PostgreSQL extensions like PostGIS and fuzzystrmatch, along with examples of querying and using these features. Overall, it serves as a comprehensive guide for enhancing data handling capabilities in PostgreSQL.

Uploaded by

timothyzheng2000
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views26 pages

Chapter 4

The document provides an introduction to full-text search and data manipulation functions in PostgreSQL, covering topics such as the LIKE operator, full-text search syntax, user-defined data types, and user-defined functions. It also discusses commonly used PostgreSQL extensions like PostGIS and fuzzystrmatch, along with examples of querying and using these features. Overall, it serves as a comprehensive guide for enhancing data handling capabilities in PostgreSQL.

Uploaded by

timothyzheng2000
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Introduction to full-

text search
F U N C T I O N S F O R M A N I P U L AT I N G D ATA I N P O S T G R E S Q L

Brian Piccolo
Sr. Director, Digital Strategy
Topics
Full Text search

Extending PostgreSQL

Improving full text search with extensions

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


The LIKE operator
_ wildcard: Used to match exactly one character.
% wildcard: Used to match zero or more characters.
SELECT title
FROM film
WHERE title LIKE 'ELF%';

+----------------------+
| title |
+----------------------+
| ELF PARTY |
+----------------------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


The LIKE operator
SELECT title
FROM film
WHERE title LIKE '%ELF';

+----------------------+
| title |
+----------------------+
| ENCINO ELF |
| GHOSTBUSTERS ELF |
+----------------------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


The LIKE operator
SELECT title
FROM film
WHERE title LIKE '%elf%';

+----------------------+
| title |
+----------------------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


LIKE versus full-text search
SELECT title, description
FROM film
WHERE to_tsvector(title) @@ to_tsquery('elf');

+----------------------+
| title |
+----------------------+
| ELF PARTY |
| ENCINO ELF |
| GHOSTBUSTERS ELF |
+----------------------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


What is full-text search?
Full text search provides a means for performing natural language queries of text data in
your database.

Stemming

Spelling mistakes

Ranking

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


Full-text search syntax explained
SELECT title, description
FROM film
WHERE to_tsvector(title) @@ to_tsquery('elf');

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


Let's practice!
F U N C T I O N S F O R M A N I P U L AT I N G D ATA I N P O S T G R E S Q L
Extending
PostgreSQL
F U N C T I O N S F O R M A N I P U L AT I N G D ATA I N P O S T G R E S Q L

Brian Piccolo
Sr. Director, Digital Strategy
User-defined data types
Enumerated data types

CREATE TYPE dayofweek AS ENUM (


'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday',
'Sunday'
);

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


Getting information about user-defined data types
SELECT typname, typcategory
FROM pg_type
WHERE typname='dayofweek';

+-----------+-------------+
| typname | typcategory |
|-----------|-------------|
| dayofweek | E |
+-----------+-------------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


Getting information about user-defined data types
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 |
+-----------------------------------------------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


User-defined functions
CREATE FUNCTION squared(i integer) RETURNS integer AS $$
BEGIN
RETURN i * i;
END;
$$ LANGUAGE plpgsql;

SELECT squared(10);

+---------+
| squared |
|---------|
| 100 |
+---------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


User-defined functions in the Sakila database
get_customer_balance(customer_id, e ective_data): calculates the current outstanding
balance for a given customer.

inventory_held_by_customer(inventory_id): returns the customer_id that is currently


renting an inventory item or null if it's currently available.

inventory_in_stock(inventory_id): returns a boolean value of whether an inventory item is


currently in stock.

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


Let's practice!
F U N C T I O N S F O R M A N I P U L AT I N G D ATA I N P O S T G R E S Q L
Intro to PostreSQL
extensions
F U N C T I O N S F O R M A N I P U L AT I N G D ATA I N P O S T G R E S Q L

Brian Piccolo
Sr. Director, Digital Strategy
Intro to PostgreSQL extensions
Commonly used extensions
PostGIS

PostPic

fuzzystrmatch

pg_trgm

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


Querying extension meta data
Available Extensions Installed Extensions
SELECT name SELECT extname
FROM pg_available_extensions; FROM pg_extension;

+--------------------+ +---------+
| name | | name |
|--------------------| |---------|
| dblink | | plpgsql |
| pg_stat_statements | +---------+
+--------------------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


--Enable the fuzzystrmatch extension
CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;
--Confirm that fuzzstrmatch has been enabled
SELECT extname FROM pg_extension;

+---------------+
| name |
|---------------|
| plpgsql |
| fuzzystrmatch |
+---------------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


Using fuzzystrmatch or fuzzy searching
SELECT levenshtein('GUMBO', 'GAMBOL');

+-------------+
| levenshtein |
|-------------|
| 2 |
+-------------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


Compare two strings with pg_trgm
SELECT similarity('GUMBO', 'GAMBOL');

+------------+
| similarity |
|------------|
| 0.18181818 |
+------------+

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


Let's practice!
F U N C T I O N S F O R M A N I P U L AT I N G D ATA I N P O S T G R E S Q L
Putting it All
Together
F U N C T I O N S F O R M A N I P U L AT I N G D ATA I N P O S T G R E S Q L

Brian Piccolo
Sr. Director, Digital Strategy
Functions for manipulating data recap and review
Common data types in PostgreSQL

Date/time functions and operators

Parsing and manipulating text

PostgreSQL Extensions and full-text search

FUNCTIONS FOR MANIPULATING DATA IN POSTGRESQL


Thank you!
F U N C T I O N S F O R M A N I P U L AT I N G D ATA I N P O S T G R E S Q L

You might also like