SQL Δημιουργία δήλωσης πίνακα - με παράδειγμα σύνταξης

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

Εάν θέλετε κάποιο ιστορικό στη γλώσσα καθώς και μερικά ενδιαφέροντα γεγονότα, ανατρέξτε στο εισαγωγικό τμήμα του άρθρου SQL Update Statement.  

Σε αυτό το άρθρο, θα εξετάσουμε τα σημαντικά μέρη της δημιουργίας πίνακα σε SQL. Η προτιμώμενη "γεύση" του SQL είναι ο SQL Server, αλλά οι πληροφορίες σχετικά με τη δημιουργία πίνακα είναι αρκετά πανταχού παρούσες σε όλες τις παραλλαγές SQL.  

Εάν δεν έχετε χρησιμοποιήσει ποτέ SQL ή δεν γνωρίζετε τι είναι ένας πίνακας, μην φοβάστε! Εν συντομία (και γενικά), ένας πίνακας είναι ένα αντικείμενο βάσης δεδομένων που περιέχει ή περιέχει όλα τα δεδομένα εντός αυτού του τμήματος της βάσης δεδομένων. Αποθηκεύει αυτά τα δεδομένα σε ονομασμένες στήλες και αριθμημένες σειρές που δεν είναι άγνωστα αν έχετε χρησιμοποιήσει ποτέ κάποιο πρόγραμμα υπολογιστικών φύλλων. Κάθε σειρά αντιπροσωπεύει μια ολόκληρη εγγραφή βάσης δεδομένων.

Εάν τα δεδομένα ήταν σε μορφή κουτιού, τότε ένας πίνακας θα ήταν ένα τμήμα των ραφιών της αποθήκης όπου αποθηκεύουμε αυτά τα κουτιά.

Απλοποιώ σε μεγάλο βαθμό την εξήγηση και υπάρχουν πολλά περισσότερα στους πίνακες SQL, αλλά αυτό δεν εμπίπτει στο πεδίο εφαρμογής αυτού του άρθρου. Εάν ψάχνετε για μια πιο εμπεριστατωμένη εξήγηση στους πίνακες, σας ενθαρρύνω να ανατρέξετε στην τεκμηρίωση του Microsoft Database Design

Πριν μάθουμε πώς να δημιουργούμε τον πίνακα, είναι σημαντικό να μάθουμε τι είδους δεδομένα μπορούν να αποθηκεύσουν αυτές οι στήλες και οι σειρές.

Τύποι δεδομένων

Οι πίνακες SQL μπορούν να περιέχουν κείμενο, αριθμούς, συνδυασμό κειμένου και αριθμών, καθώς και εικόνες και συνδέσμους.

Κατά τη δημιουργία του πίνακα μας, ορίζουμε τον τύπο δεδομένων που θα διατηρούν οι σειρές και οι στήλες του. Ακολουθούν οι γενικές ταξινομήσεις δεδομένων:

  • Αριθμητικά κατά προσέγγιση
  • Χορδές
  • Ημερομηνία ώρα
  • Συμβολοσειρές χαρακτήρων Unicode
  • Ακριβής αριθμητική
  • Αλλα

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

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

  • char (size) - συμβολοσειρά σταθερού μήκους που μπορεί να περιέχει γράμματα, αριθμούς, ειδικούς χαρακτήρες
  • varchar (size) - συμβολοσειρά μεταβλητού μήκους που μπορεί να περιέχει γράμματα, αριθμούς και ειδικούς χαρακτήρες
  • boolean - Το μηδέν (ή τιμές που ισοδυναμούν με 0) είναι ψευδές, το μη μηδέν είναι αληθές
  • int ( προαιρετικό μέγεθος ) - ένας αριθμός έως 10 χαρακτήρες σε μήκος, δέχεται αρνητικούς και θετικούς αριθμούς
  • bigint ( προαιρετικό μέγεθος ) - ένας αριθμός έως 19 χαρακτήρες σε μήκος, δέχεται αρνητικούς και θετικούς αριθμούς
  • float (μέγεθος, d) - ένας αριθμός με το συνολικό μέγεθος του αριθμού που αντιπροσωπεύεται από το μέγεθος και ο αριθμός των χαρακτήρων μετά το δεκαδικό που αντιπροσωπεύεται από το d
  • ημερομηνία - ημερομηνία με τη μορφή ΕΕΕΕ-ΜΜ-ΗΗ
  • ώρα ώρας - ώρα ημερομηνίας με τη μορφή ΕΕΕ-ΜΜ-ΗΗ ωω: mm: ss
  • ώρα - ώρα με τη μορφή hh: mm: ss

Εντάξει, τώρα που γνωρίζουμε τι είδους δεδομένα μπορούν να περιέχουν οι σειρές και οι στήλες, ας πάρουμε τα διασκεδαστικά μέρη!

Δημιουργία πίνακα

Πριν ξεκινήσουμε, είναι σημαντικό να σημειωθεί ότι θα παρέχω όλα τα παραδείγματα μου ανεξάρτητα από οποιοδήποτε πρόγραμμα.

Ωστόσο, εάν θέλετε να ξεκινήσετε να γράφετε ερωτήματα και δεν είστε σίγουροι από πού να ξεκινήσετε, ρίξτε μια ματιά στο SQL Server Management Studio. Είναι ένα δωρεάν, ισχυρό πρόγραμμα που χρησιμοποιείται ευρέως και υποστηρίζεται στην κοινότητα.

Εναλλακτικά, υπάρχουν πολλές επιλογές όπως το DB Fiddle που σας επιτρέπει να δημιουργήσετε σχήματα και να γράψετε ερωτήματα απευθείας στο πρόγραμμα περιήγησής σας.  

Ας ξεκινήσουμε με μια απλή δήλωση για να δημιουργήσουμε έναν βασικό πίνακα:

CREATE TABLE table_name ( column1_name datatype, column2_name datatype, column3_name datatype, column4_name datatype, column5_name datatype,)

Υπάρχουν και άλλες παράμετροι που μπορούμε να προσθέσουμε μετά την datatypeαύξηση των στηλών:

  • NOT NULL- η παράδοση αυτής της παραμέτρου θα διασφαλίσει ότι η στήλη δεν θα έχει NULLτιμή
  • UNIQUE - το πέρασμα αυτής της παραμέτρου θα εμποδίσει τη στήλη να διατηρήσει την ίδια τιμή περισσότερες από μία φορές
  • UNIQUE KEY- η παράδοση αυτής της παραμέτρου θα ορίσει αυτήν τη στήλη ως μοναδικό αναγνωριστικό. Είναι ουσιαστικά ένας συνδυασμός των δύο προηγούμενων παραμέτρων.

Τώρα, πρόκειται να δημιουργήσουμε έναν πίνακα (με το όνομα doggo_info που πρέπει να συμμορφώνεται με τα πρότυπα αναγνωριστικών για βάσεις δεδομένων) για να κρατήσει πληροφορίες σχετικά με τους κατοίκους του Woof Woof Retreat, ενός φανταστικού παιδικού σταθμού που σκέφτηκα :)

CREATE TABLE doggo_info ( ID int UNIQUE KEY, Name varchar(50) NOT NULL, Color varchar(50), Breed varchar(50), Age int, Weight int, Height int, Fav_Food varchar(100), Fav_Toy varchar(100), Dislikes varchar(500), Allergies varchar(500) NOT NULL )

Και εδώ είναι ο ολοκαίνουργιος πίνακας που μόλις δημιουργήσαμε:

Ονομα Χρώμα Ράτσα Ηλικία Βάρος Υψος Fav_Food Fav_Toy Δεν μου αρέσει Αλλεργίες

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

Δημιουργήστε έναν πίνακα από έναν υπάρχοντα πίνακα

Είναι επίσης δυνατό να δημιουργήσετε έναν νέο πίνακα με βάση έναν υπάρχοντα πίνακα.

Είναι αρκετά εύκολο και δεν απαιτεί πολύ περισσότερη σύνταξη. Πρέπει να επιλέξουμε τον πίνακα και τις στήλες για "αντιγραφή" από:

CREATE TABLE new_table_name AS SELECT column1, column2, column3, column4 (use * to select all columns to be added to the new_table) FROM current_table_name WHERE conditions_exist

Λοιπόν, για λόγους σκοπιμότητας, έχω προσθέσει ορισμένα δεδομένα στον doggo_infoπίνακα μας και τώρα μοιάζει με το παρακάτω παράδειγμα:

Ονομα Χρώμα Ράτσα Ηλικία Βάρος Υψος Fav_Food Fav_Toy Δεν μου αρέσει Αλλεργίες
μαργαρίτα το κόκκινο τυπικό είδος γερμανικού κυνηγετικού σκύλου 1 14 6 σολομός με γεύση σολομού στριμωγμένη μπάλα πουλιά που πετούν πάνω από την αυλή γάτες, λουτρά, καθαριότητα
αρχηγός μαύρο / μαύρισμα Ροτβάιλερ 3 41 17 κυριολεκτικά οτιδήποτε ρυμουλκό μένοντας έξω από τον καναπέ να ακούτε, να συμπεριφέρεστε, να μην κουράζετε τα πάντα
sammie ελαφρύ μέλι χρυσό retriever 9 46 19 βοδινό κρέας το κρεβάτι της χαριτωμένα κουτάβια κανείς δεν ξέρει

Τώρα μπορούμε να δημιουργήσουμε έναν άλλο πίνακα με βάση τα δεδομένα που έχουμε στον doggo_infoπίνακα μας εκτελώντας το παρακάτω ερώτημα:

CREATE TABLE puppies_only AS SELECT * FROM doggo_info WHERE Age < 4

Θέλουμε να δημιουργήσουμε έναν νέο πίνακα με όλες τις στήλες από τον doggo_infoπίνακα, αλλά μόνο όπου το Ageείναι μικρότερο από 4. Μετά την εκτέλεση αυτού του ερωτήματος, ο νέος πίνακας θα έχει την εξής μορφή:

Ονομα Χρώμα Ράτσα Ηλικία Βάρος Υψος Fav_Food Fav_Toy Δεν μου αρέσει Αλλεργίες
μαργαρίτα το κόκκινο τυπικό είδος γερμανικού κυνηγετικού σκύλου 1 14 6 σολομός με γεύση σολομού στριμωγμένη μπάλα πουλιά που πετούν πάνω από την αυλή γάτες, λουτρά, καθαριότητα
αρχηγός μαύρο / μαύρισμα Ροτβάιλερ 3 41 17 κυριολεκτικά οτιδήποτε ρυμουλκό μένοντας έξω από τον καναπέ να ακούτε, να συμπεριφέρεστε, να μην κουράζετε τα πάντα

Ελπίζω να δείτε πόσο ισχυρή μπορεί να είναι αυτή η δήλωση. Με μερικές γραμμές στο ερώτημά μας έχουμε ουσιαστικά αντιγράψει δεδομένα από έναν πίνακα σε έναν άλλο, αλλά μόνο τις σειρές που θέλαμε.  

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

Τυλίγοντας

Τώρα που ξέρετε πώς να δημιουργήσετε (ή να αντιγράψετε) έναν πίνακα σε SQL, ανεξάρτητα από την κατάσταση με την οποία σας παρουσιάζεται, μπορείτε να αρχίσετε να γεμίζετε τις στήλες και τις σειρές με δεδομένα για αποθήκευση!

Η CREATE TABLEδήλωση είναι εξαιρετικά χρήσιμη και ισχυρή. Είστε έτοιμοι να αρχίσετε να το χρησιμοποιείτε σωστά.

Εάν βρήκατε αυτό το άρθρο χρήσιμο, ελέγξτε το ιστολόγιό μου όπου δημοσιεύω συχνά άρθρα σχετικά με την ανάπτυξη ιστού, τη ζωή και τη μάθηση.

Ενώ είστε εκεί γιατί να μην εγγραφείτε στο ενημερωτικό δελτίο μου; Μπορείτε να το κάνετε στην επάνω δεξιά γωνία της κύριας σελίδας ιστολογίου. Μου αρέσει να στέλνω ενδιαφέροντα άρθρα (δικά μου και άλλα), πόρους και εργαλεία για προγραμματιστές κάθε τόσο.

Εάν έχετε ερωτήσεις σχετικά με αυτό το άρθρο ή απλώς γενικά, επιτρέψτε μου να ξέρω - έλα γεια στο Twitter ή σε οποιονδήποτε από τους άλλους λογαριασμούς μου στα μέσα κοινωνικής δικτύωσης που μπορείτε να βρείτε κάτω από το ενημερωτικό δελτίο εγγραφείτε στην κύρια σελίδα του ιστολογίου μου ή στο προφίλ μου εδώ στο fCC :)

Καλή μέρα! Καλή μάθηση και χαρούμενη κωδικοποίηση, φίλε!