El módulo hstore se usa para implementar el tipo de datos hstore en forma de pares clave-valor para un solo valor dentro de PostgreSQL. El tipo de datos hstore es notablemente efectivo en muchos casos, como múltiples filas con múltiples atributos que rara vez se consultan o datos semiestructurados.
Syntax: variable_name hstore;
Es bastante simple habilitar la extensión hstore para usar el tipo de datos hstore usando el siguiente comando:
CREATE EXTENSION hstore;
Ahora veamos algunos ejemplos para una mejor comprensión.
Ejemplo 1:
Primero creamos una books
tabla con id
como clave principal que identifica el libro, title
como el título de los productos y attr
que almacena atributos del libro como ISBN, peso y tapa blanda. El tipo de datos de la columna attr es hstore usando el siguiente comando:
CREATE TABLE books ( id serial primary key, title VARCHAR (255), attr hstore );
Ahora agregamos algunos datos a nuestra tabla de libros usando el siguiente comando:
INSERT INTO books (title, attr) VALUES ( 'Winds Of Winter', '"paperback" => "2403", "publisher" => "Bantam Spectra/US & Voyager Books/UK", "language" => "English", "ISBN-13" => "978-1449370000", "weight" => "13.2 ounces"' ), ( 'A Dance with Dragons', '"paperback" => "2553", "publisher" => "Bantam Spectra/US & Voyager Books/UK", "language" => "English", "ISBN-13" => "978-1449370001", "weight" => "14.2 ounces"' ), ( 'A Dream of Spring', '"paperback" => "2683", "publisher" => "Bantam Spectra/US & Voyager Books/UK", "language" => "English", "ISBN-13" => "978-1449370002", "weight" => "15.7 ounces"' );
Ahora consultamos los mismos datos insertados usando el siguiente comando:
SELECT attr FROM books;
Producción:
Ejemplo 2:
Postgresql hstore admite el uso del operador -> . Esto se usa para consultar el valor de una clave particular de una columna hstore. Por ejemplo, si queremos consultar ISBN-13
todos los libros disponibles en la tabla de libros , se puede usar el mismo operador como se muestra a continuación:
SELECT attr -> 'ISBN-13' AS isbn FROM books;
Producción:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA