🧚 Άκου! Το Beekeeper Studio είναι ένα γρήγορο, σύγχρονο και open source GUI για PostgreSQL Λήψη
7 Αυγούστου 2024 Από τον Matthew Rathbone

Η PostgreSQL υποστηρίζει τους βασικούς αριθμητικούς τελεστές, συμπεριλαμβανομένης της αφαίρεσης (-), για διάφορους αριθμητικούς τύπους δεδομένων.

Πριν συνεχίσεις το διάβασμα, ήθελα απλώς να σου πω για τον σύγχρονο και γρήγορο διαχειριστή βάσεων δεδομένων PostgreSQL μας, το Beekeeper Studio. Ο SQL editor του με αυτόματη συμπλήρωση κάνει τη δοκιμή αυτών των υπολογισμών γρήγορη, και είναι δωρεάν για PostgreSQL. Κατέβασέ το εδώ.

Το πρώτο μας παράδειγμα είναι απλό: αφαίρεση δύο ακεραίων. Αυτό λειτουργεί σε όλες τις βάσεις δεδομένων που βασίζονται στην SQL, όχι μόνο στην PostgreSQL.

SELECT 15 - 5 AS result;

Αναμενόμενο αποτέλεσμα:

result
10

Αφαίρεση στηλών

Τώρα ας δούμε πώς αφαιρείς μια στήλη από μια άλλη. Πάρε για παράδειγμα έναν πίνακα πωλήσεων sales με την εξής δομή:

id item price discount
1 A 100 20
2 B 200 50

Θέλεις να βρεις το τελικό κόστος μετά την έκπτωση. Μπορείς να το πετύχεις αφαιρώντας την έκπτωση από την τιμή.

SELECT id, item, price - discount AS Final_Price FROM sales;

Αναμενόμενο αποτέλεσμα:

id item final_price
1 A 80
2 B 150

Αφαίρεση ημερομηνιών

Η αφαίρεση ημερομηνιών στην PostgreSQL επιστρέφει τη διαφορά μεταξύ δύο ημερομηνιών σε ημέρες.

Πάρε για παράδειγμα τον πίνακα rentals:

id item rent_start_date rent_end_date
1 Ποδήλατο 2022-03-01 2022-03-10
2 Αυτοκίνητο 2022-02-20 2022-03-02

Υπολόγισε τη διάρκεια των ενοικιάσεων:

SELECT id, item, rent_end_date - rent_start_date as rental_duration FROM rentals;

Αναμενόμενο αποτέλεσμα:

id item rental_duration
1 Ποδήλατο 9
2 Αυτοκίνητο 10

Αφαίρεση με timestamps

Στην PostgreSQL, η αφαίρεση timestamps δίνει το χρονικό διάστημα (interval) μεταξύ τους.

Ας υποθέσουμε ότι έχουμε έναν πίνακα logins:

id login_time logout_time
1 2022-03-15 08:00:00 2022-03-15 10:30:00
2 2022-03-15 07:30:00 2022-03-15 10:00:00

Υπολόγισε τη διάρκεια κάθε συνεδρίας:

SELECT id, logout_time - login_time as session_duration FROM logins;

Αναμενόμενο αποτέλεσμα:

id session_duration
1 02:30:00
2 02:30:00

Πρακτικές περιπτώσεις χρήσης

Διαχείριση αποθέματος

Ακολουθεί ένα παράδειγμα υπολογισμού του διαθέσιμου αποθέματος για κάθε προϊόν, αφαιρώντας τον αριθμό των πωληθέντων τεμαχίων από το συνολικό απόθεμα.

Ας υποθέσουμε ότι έχουμε έναν πίνακα αποθέματος με την εξής δομή:

CREATE TABLE inventory (
    product_id SERIAL PRIMARY KEY,
    product_name VARCHAR(255),
    total_stock INT,
    sold INT
);

Δείγμα δεδομένων:

INSERT INTO inventory (product_name, total_stock, sold) VALUES
('Product A', 100, 50),
('Product B', 200, 180),
('Product C', 150, 140);

Query: Υπολογισμός διαθέσιμου αποθέματος

SELECT product_id, product_name, total_stock - sold AS available_stock
FROM inventory;

Αναμενόμενο αποτέλεσμα:

 product_id | product_name | available_stock 
------------+--------------+-----------------
          1 | Product A    |              50
          2 | Product B    |              20
          3 | Product C    |              10

Σε αυτό το query, αφαιρούμε την ποσότητα sold από το total_stock για να πάρουμε το available_stock κάθε προϊόντος.

Υπολογισμός ηλικίας

Η συνάρτηση age στην PostgreSQL υπολογίζει τη διαφορά μεταξύ δύο ημερομηνιών και επιστρέφει το αποτέλεσμα ως σύνθετο τύπο interval που περιλαμβάνει χρόνια, μήνες και ημέρες.

Ακολουθεί μια πρακτική περίπτωση όπου ίσως θέλεις να υπολογίσεις την ηλικία των πελατών σε έναν πίνακα.

Ας υποθέσουμε ότι έχεις έναν πίνακα customers με μια στήλη birthdate.

SELECT customer_id, birthdate, age(current_date, birthdate) AS age
FROM customers;

Αναμενόμενο αποτέλεσμα:

 customer_id | birthdate  |         age          
-------------+------------+----------------------
           1 | 1990-04-25 | 34 years 3 mons 12 days
           2 | 1985-10-12 | 38 years 9 mons 24 days
           3 | 2000-01-01 | 24 years 7 mons  5 days

Συμπέρασμα

Η αφαίρεση στην PostgreSQL είναι ένα ευέλικτο εργαλείο που εφαρμόζεται σε αριθμούς, ημερομηνίες και intervals. Σε αυτό το άρθρο εξερευνήσαμε τις πράξεις αφαίρεσης στην PostgreSQL, τόσο με αριθμούς όσο και με ημερομηνίες. Θυμήσου να ελέγχεις πάντα τους τύπους δεδομένων και να εξασφαλίζεις τη συμβατότητά τους όταν κάνεις υπολογισμούς. Μείνε συντονισμένος για τα επόμενα της σειράς, όπου θα εμβαθύνουμε σε πιο προχωρημένες έννοιες της SQL. Καλό coding!

Άλλα άρθρα που μπορεί να σου αρέσουν:

Το Beekeeper Studio είναι ένα δωρεάν & open source GUI για PostgreSQL

Αυτός είναι ο PostgreSQL client που έψαχνα! Το UI είναι αυτό που τον ξεχωρίζει: καθαρό, διαισθητικό, ισχυρό. Αντίο στο δυσκίνητο PGAdmin. - David Cyprian

Το Beekeeper Studio είναι ένας γρήγορος, διαισθητικός και εύχρηστος PostgreSQL client. Υποστηρίζει επίσης πολλές άλλες βάσεις δεδομένων και λειτουργεί άψογα σε Windows, Mac και Linux.

Η έκδοση του Beekeeper για Linux έχει 100% όλες τις λειτουργίες, χωρίς εκπτώσεις και χωρίς συμβιβασμούς.

Τι λένε οι χρήστες της PostgreSQL για το Beekeeper Studio

Jay Simons Jay Simons Ιδιοκτήτης, Designly.biz

Σε αντίθεση με το pgAdmin, το Beekeeper είναι εντυπωσιακά απλό στη χρήση χωρίς να του λείπουν δυνατότητες – και η τιμή είναι σωστή! Η λειτουργία backup της βάσης δεδομένων είναι ιδιαίτερα χρήσιμη. Απλώς εξαιρετικό λογισμικό.

Alex M

Φανταστικό εργαλείο, το πιο πρακτικό IDE που έχω βρει μέχρι σήμερα για διαχείριση βάσεων Postgres και MySql - απλώς δουλεύει, χωρίς φασαρία :-)

Έτοιμος να βελτιώσεις τη ροή εργασίας σου με PostgreSQL;

download Κατέβασέ το δωρεάν