Funktionen zur Datenbearbeitung in PostgreSQL
Brian Piccolo
Sr. Director, Digital Strategy
Beispiel für CREATE TABLE
CREATE TABLE my_first_table (
first_column text,
second_column integer
);
Beispiel für INSERT
INSERT INTO my_first_table
(first_column, second_column) VALUES ('text value', 12);
Wir erstellen eine einfache Tabelle mit zwei Array-Spalten.
CREATE TABLE grades (
student_id int,
email text[][],
test_scores int[]
);
INSERT INTO grades
VALUES (1,
'{{"work","[email protected]"},{"other","[email protected]"}}',
'{92,85,96,88}' );
SELECT
email[1][1] AS type,
email[1][2] AS address,
test_scores[1],
FROM grades;
+--------+--------------------+-------------+
| type | address | test_scores |
|--------|--------------------|-------------|
| work | [email protected] | 92 |
| work | [email protected] | 76 |
+--------+--------------------+-------------+
Beachte, dass Array-Indizes in PostgreSQL bei 1 beginnen und nicht bei 0.
SELECT email[1][1] as type, email[1][2] as address, test_scores[1] FROM grades WHERE email[1][1] = 'work';+--------+--------------------+-------------+ | type | address | test_scores | |--------|--------------------|-------------| | work | [email protected] | 92 | | work | [email protected] | 76 | +--------+--------------------+-------------+
SELECT email[2][1] as type, email[2][2] as address, test_scores[1] FROM grades WHERE 'other' = ANY (email);+---------+---------------------+-------------+ | type | address | test_scores | |---------|-----------------------------------| | other | [email protected] | 92 | | null | null | 76 | +---------+---------------------+-------------+
SELECT email[2][1] as type, email[2][2] as address, test_scores[1] FROM grades WHERE email @> ARRAY['other'];+---------+---------------------+-------------+ | type | address | test_scores | |---------|-----------------------------------| | other | [email protected] | 92 | | null | null | 76 | +---------+---------------------+-------------+
Funktionen zur Datenbearbeitung in PostgreSQL