Περιεχόμενο Μαθήματος
Προετοιμασία
Σε αυτήν την ενότητα θα γίνει εγκατάσταση του SQL Server Management Studio και εισαγωγή δεδομένων για τα demo activities.
0/4
Set Operations
Σε αυτήν την ενότητα θα μάθουμε τα 3 set operations και πώς εφαρμόζονται αυτά στην SQL.
0/6
Τελικό Project
Σε αυτή την ενότητα θα συζητηθεί εκτενώς ποιο είναι το τελικό project, ποιος είναι ο στόχος του, τι αναμένω ως καθοδηγήτρια από εσάς σχετικά με το τελικό project, πώς αναμένετε να είναι η συνεργασία μας και διάφορες οδηγίες επιτυχίας του project.
0/5
Επιπλέον Πηγές και Αξιολόγηση
Εδώ θα βρείτε διάφορα Cheatsheets, Youtube Videos, Άρθρα και e-books τα οποία μπορούν να σας βοηθήσουν στην επέκταση γνώσεων επί του θέματος του μαθήματος. Επίσης, θα αξιολογήσετε το μάθημα.
0/3
SQL Mastery: Από Αρχάριος σε Προχωρημένος
Σχετικά με το Μάθημα

Demo: CAST & CONVERT


Στόχος αυτής της άσκησης είναι να αλλάξουμε τον τύπο των στηλών στον πίνακα Customers:

  1. Να αλλάξουμε τη στήλη date_of_birth από datetime σε date, για να αποθηκεύουμε μόνο την ημερομηνία χωρίς την ώρα.
  2. Να αλλάξουμε τη στήλη phone_number από varchar σε int, κάτι που απαιτεί προσοχή, καθώς οι αριθμοί τηλεφώνου περιλαμβάνουν συχνά πρόθεμα ή έχουν περισσότερους από 10 ψηφία, οπότε πρέπει να το χειριστούμε κατάλληλα.

Χρήσιμες Συναρτήσεις

Οι παρακάτω συναρτήσεις είναι χρήσιμες για την εκτέλεση της άσκησης:

  • CAST(column AS datatype): Χρησιμοποιείται για να μετατρέψει μια στήλη σε άλλο τύπο δεδομένων.
  • CONVERT(datatype, column): Χρησιμοποιείται για να μετατρέψει μια στήλη σε διαφορετικό τύπο δεδομένων, όπως αριθμητικό ή ημερομηνία.

Έρευνα Λύσης

Η έρευνα για τη λύση περιλαμβάνει τον εντοπισμό των στηλών που πρέπει να αλλάξουν και τη σωστή μετατροπή των δεδομένων.

  1. Για τη στήλη date_of_birth, η μετατροπή από datetime σε date είναι σχετικά απλή και αφορά μόνο την αφαίρεση της ώρας.
  2. Για τη στήλη phone_number, επειδή μπορεί να περιλαμβάνει περισσότερους από 10 χαρακτήρες ή να έχει σύμβολα όπως το + ή άλλους χαρακτήρες, πρέπει να αποφασίσουμε πώς να χειριστούμε αυτά τα δεδομένα. Μια πιθανή λύση είναι να χρησιμοποιήσουμε τον τύπο bigint, ο οποίος υποστηρίζει μεγαλύτερους αριθμούς.

Λύση

Η λύση περιλαμβάνει τις εξής ενέργειες:

  1. Χρησιμοποιούμε τη συνάρτηση CAST() για να μετατρέψουμε τη στήλη date_of_birth από datetime σε date.
  2. Χρησιμοποιούμε τη συνάρτηση CONVERT() για να μετατρέψουμε τη στήλη phone_number από varchar σε bigint, αφού οι τηλεφωνικοί αριθμοί μπορούν να είναι μεγαλύτεροι από 10 ψηφία και δεν μπορούμε να τους αποθηκεύσουμε ως int χωρίς να χαθούν ψηφία.

Ακολουθεί η εντολή για την αναζήτηση και τον έλεγχο των δεδομένων μετά τη μετατροπή:

SELECT
customer_id,
first_name,
last_name,
CAST(date_of_birth AS Date) as date_of_birth,
address,
CONVERT(bigint, phone_number) as phone_number, -- Αντικατάσταση varchar με bigint για αριθμούς τηλεφώνου
email,
open_created_date,
status
FROM [dbo].[Customers];

Η συνάρτηση CAST() μετατρέπει τη στήλη date_of_birth σε τύπο date, αποθηκεύοντας μόνο την ημερομηνία χωρίς την ώρα. Η συνάρτηση CONVERT() μετατρέπει τη στήλη phone_number σε τύπο bigint, ώστε να υποστηρίζονται τηλεφωνικοί αριθμοί με περισσότερα από 10 ψηφία, όπως συμβαίνει σε αρκετές περιπτώσεις.

0% Ολοκληρωμένο
Κύλιση στην κορυφή