Τι είναι η SQL;
- SQL σημαίνει Structured Query Language.
- Η SQL σας επιτρέπει να έχετε πρόσβαση και να χειριστείτε τις βάσεις δεδομένων.
- Η SQL είναι ANSI (American National Standards Institute) πρότυπο.
Τι μπορεί να κάνει η SQL;
- Η SQL μπορεί να εκτελέσει ερωτήματα σε μια βάση δεδομένων.
- Η SQL μπορεί να ανακτήσει δεδομένα από μια βάση δεδομένων.
- Με την SQL μπορείτε να εισαγάγετε τα αρχεία σε μια βάση δεδομένων.
- Η SQL μπορεί να ενημερώσει τα αρχεία σε μια βάση δεδομένων.
- Η SQL μπορεί να διαγράψει τα αρχεία από μια βάση δεδομένων.
- Η SQL μπορεί να δημιουργήσει νέες βάσεις δεδομένων.
- Η SQL μπορεί να δημιουργήσει νέους πίνακες σε μια βάση δεδομένων
- Η SQL μπορεί να δημιουργήσει αποθηκευμένες διαδικασίες σε μια βάση δεδομένων.
- Η SQL μπορεί να δημιουργήσει θέα σε μια βάση δεδομένων.
- Με την SQL μπορείτε να ορίσετε δικαιώματα για πίνακες, διαδικασίες, και απόψεις.
Η SQL είναι ένα Πρότυπο - ΑΛΛΑ ....
Αν και η SQL είναι ANSI (American National Standards Institute) πρότυπο, υπάρχουν πολλές διαφορετικές εκδόσεις της γλώσσας SQL. Ωστόσο, για να είναι συμβατό με το πρότυπο ANSI, όλες υποστήριζουν τουλάχιστον τις κύριες εντολές (όπως SELECT, UPDATE, DELETE, INSERT, WHERE) με παρόμοιο τρόπο.
Χρησιμοποιώντας την SQL στην ιστοσελίδα σας
Για να οικοδομήσετε μια ιστοσελίδα που δείχνει κάποια στοιχεία από μια βάση δεδομένων, θα χρειαστείτε τα ακόλουθα:
- Ένα πρόγραμμα βάσης δεδομένων RDBMS (π.χ. MS Access, SQL Server, MySQL).
- Μια server-side γλώσσα προγραμματισμού, όπως PHP ή ASP.
- Την SQL.
- HTML / CSS.
RDBMS
RDBMS σημαίνει σχεσιακή βάση δεδομένων.
To RDBMS είναι η βάση για την SQL, και για όλα τα σύγχρονα συστήματα βάσεων δεδομένων όπως το MS SQL Server, IBM DB2, Oracle, MySQL και Microsoft Access. Τα δεδομένα στο RDBMS αποθηκεύονται σε αντικείμενα της βάσης δεδομένων που ονομάζονται πίνακες.
Ένας πίνακας είναι μια συλλογή από σχετικές καταχωρήσεις δεδομένων και αποτελείται από στήλες και γραμμές..
SQL Σύνταξη
Πίνακες Βάσεων Δεδομένων
Μια βάση δεδομένων πιο συχνά περιέχει έναν ή περισσότερους πίνακες. Κάθε πίνακας προσδιορίζεται από ένα όνομα (π.χ. " Customers" ή "Orders "). Οι πίνακες περιέχουν εγγραφές (γραμμές) με δεδομένα.
Παρακάτω είναι ένα παράδειγμα ενός πίνακα που ονομάζεται "Persons":
Ο πίνακας περιέχει πάνω από τρία αρχεία (ένα για κάθε άτομο) και πέντε στήλες (P_Id, LastName, FirstName, Address και City)
SQL δηλώσεις (Statements)
Οι περισσότερες από τις ενέργειες που θα πρέπει να εκτελέσετε μια βάση δεδομένων γίνονται με τις δηλώσεις της SQL.
Η ακόλουθη δήλωση SQL θα επιλέξει όλες τις εγγραφές του πίνακα "Persons":
Code: Select all
SELECT * FROM Persons
- Η SQL δεν είναι case sensitive.
- Μερικά συστήματα βάσεων δεδομένων απαιτούν ένα ερωτηματικό στο τέλος κάθε δήλωσης SQL. Το ερωτηματικό είναι ο συνήθης τρόπος για να διαχωρίσετε κάθε δήλωση SQL σε συστήματα βάσεων δεδομένων που επιτρέπουν περισσότερες από μία δηλώσεις SQL που θα εκτελεστούν στην ίδια κλήση στο διακομιστή.
Xρησιμοποιώντας MS Access και SQL Server 2000 δεν απαιτείται ερωτηματικό μετά από κάθε δηλωση SQL, αλλά ορισμένα προγράμματα βάσεων δεδομένων σας αναγκάζουν να το χρησιμοποιήσετε.
Η δήλωση SELECT
Η δήλωση SELECT χρησιμοποιείται για την επιλογή δεδομένων από μια βάση δεδομένων.
Code: Select all
SELECT column_name(s)
FROM table_name
Code: Select all
SELECT * FROM table_name
Παράδειγμα 1:
Θέλουμε να επιλέξουμε το περιεχόμενο των στηλών με το όνομα "LastName" και "FirstName"από τον παραπάνω πίνακα "Persons":
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT LastName,FirstName FROM Persons
Τώρα θέλουμε να επιλέξουμε όλες τις στήλες από το τραπέζι "Persons".
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
Σε έναν πίνακα, ορισμένες από τις στήλες μπορεί να περιέχουν διπλές τιμές. Αυτό δεν είναι πρόβλημα, ωστόσο, μερικές φορές θα θέλετε να εξάγετε μόνο τις διαφορετικές (διακριτές) τιμές σε έναν πίνακα.
Η λέξη-κλειδί DISTINCT μπορεί να χρησιμοποιηθεί για να επιστρέψει μόνο διακριτές (διαφορετικές) τιμές.
Σύνταξη της SELECT distinct:
Code: Select all
SELECT DISTINCT column_name(s)
FROM table_name
Ο πίνακας "Persons":
Τώρα θέλουμε να επιλέξουμε μόνο τις διαφορετικές τιμές από τη στήλη με το όνομα "City" από τον παραπάνω πίνακα.
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT DISTINCT City FROM Persons
Η πρόταση WHERE χρησιμοποιείται για να φιλτράρετε εγγραφές.
Η πρόταση WHERE χρησιμοποιείται για να εξαγάγετε μόνο εκείνες τις εγγραφές που πληρούν ένα συγκεκριμένο κριτήριο.
SQL WHERE Σύνταξη
Code: Select all
SELECT column_name(s)
FROM table_name
WHERE column_name operator value
Στον πίνακα "Persons", τώρα θέλουμε να επιλέξουμε μόνο τα άτομα που ζουν στη πόλη "Sandnes" .
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
WHERE City='Sandnes'
Η SQL χρησιμοποιεί μονά εισαγωγικά γύρω από τις τιμές κειμένου (Τα περισσότερα συστήματα βάσεων δεδομένων θα δέχονται επίσης διπλά εισαγωγικά).
Ωστόσο, οι αριθμητικές τιμές δεν θα πρέπει να περικλείονται σε εισαγωγικά.
Για τιμές κειμένου:
Σωστό:
Code: Select all
SELECT * FROM Persons WHERE FirstName='Tove'
Code: Select all
SELECT * FROM Persons WHERE FirstName=Tove
Σωστό:
Code: Select all
SELECT * FROM Persons WHERE Year=1965
Code: Select all
SELECT * FROM Persons WHERE Year='1965'
Σημείωση: Σε ορισμένες εκδόσεις της SQL το <> χειριστής μπορεί να γραφτεί ως !=
Οι τελεστές AND και OR
Ο τελεστής AND εμφανίζει μια εγγραφή, αν και η πρώτη προϋπόθεση και η δεύτερη προϋπόθεση είναι αλήθεια.
Ο τελεστής OR εμφανίζει μια εγγραφη εάν είτε η πρώτη προϋπόθεση ή η δεύτερη προϋπόθεση είναι αληθής.
Παράδειγμα:
Code: Select all
SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'
SELECT * FROM Persons
WHERE FirstName='Tove'
OR FirstName='Ola'
Μπορείτε επίσης να συνδυάσετε AND και OR (χρησιμοποιείτε παρενθέσεις για να σχηματίσουν σύνθετες εκφράσεις).
Τώρα θέλουμε να επιλέξετε μόνο τα πρόσωπα με το επώνυμο ίσο με "Svendson" και το πρώτο όνομα ίσο με "Tove" ή "Ola":
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons WHERE
LastName='Svendson'
AND (FirstName='Tove' OR FirstName='Ola')
Η ORDER BY χρησιμοποιείται για να ταξινομήσετε το αποτέλεσμα που ορίζεται από μια συγκεκριμμένη στήλη.
Η ORDER BY ταξινομεί τις εγγραφές σε αύξουσα σειρά από προεπιλογή.
Αν θέλετε να ταξινομήσετε τις εγγραφές σε φθίνουσα σειρά, μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί DESC.
Σύνταξη της ORDER BY :
Code: Select all
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
ο πίνακας "Persons":
Τώρα θέλουμε να επιλέξουμε όλα τα άτομα από τον παραπάνω πίνακα, όμως θέλουμε να ταξινομήσουμε τα άτομα με το επώνυμό τους.
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
ORDER BY LastName
Τώρα θέλουμε να επιλέξουμε όλα τα άτομα από τον παραπάνω πίνακα, όμως θέλουμε να ταξινομήσουμε τα πρόσωπα με φθίνουσα σειρά, οσον αφορά το επώνυμό τους.
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
ORDER BY LastName DESC
Η INSERT INTO δήλωση χρησιμοποιείται για να εισαγάγετε μια νέα γραμμή σε έναν πίνακα.
Σύνταξη INSERT INTO:
Είναι δυνατόν να γράψει το INSERT INTO δήλωση σε δύο μορφές.
Η πρώτη μορφή δεν προσδιορίζει τα ονόματα των στηλών, όπου τα δεδομένα θα εισαχθούν, μόνο οι τιμές τους:
Code: Select all
INSERT INTO table_name
VALUES (value1, value2, value3,...)
Code: Select all
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
Έστω ο πίνακας "Persons"
Και θέλουμε να εισαγάγετε μια νέα γραμμή στον πίνακα "Persons"
Χρησιμοποιούμε την ακόλουθη δήλωση SQL:
Code: Select all
INSERT INTO Persons
VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')
Εισαγωγή δεδομένων μόνο σε συγκεκριμένες στήλες
Είναι επίσης δυνατόν να προστεθουν δεδομένα μόνο σε συγκεκριμμένες στήλες.
Η ακόλουθη δήλωση SQL θα προσθέσει μια νέα γραμμή, αλλά μόνο με την προσθήκη δεδομένων στις στήλες : "P_Id", " LastName " και " FirstName "
Code: Select all
INSERT INTO Persons (P_Id, LastName, FirstName)
VALUES (5, 'Tjessem', 'Jakob')
Η δήλωση UPDATE
Η δήλωση UPDATE χρησιμοποιείται για να ενημερώσετε τις εγγραφές σε έναν πίνακα.
Σύνταξη UPDATE
Code: Select all
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
Παράδειγμα:
Ο πίνακας "Persons"
Τώρα θέλουμε να ενημερώσουμε το άτομο "Tjessem, Jakob " στο πίνακα "Persons":
Code: Select all
UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
WHERE LastName='Tjessem' AND FirstName='Jakob'
Να είστε προσεκτικοί κατά την ενημέρωση εγγραφών. Αν είχαμε παραλείψει το WHERE, στο παραπάνω παράδειγμα, όπως αυτό:
Code: Select all
UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
Η δήλωση DELETE
Η δήλωση DELETE χρησιμοποιείται για να διαγράψετε γραμμές σε έναν πίνακα.
Σύνταξη SQL DELETE:
Code: Select all
DELETE FROM table_name
WHERE some_column=some_value
Παράδειγμα:
Ο πίνακας "Persons"
Τώρα θέλουμε να διαγράψουμε το πρόσωπο "Tjessem, Jakob" στον πίνακα "Persons":
Χρησιμοποιούμε την ακόλουθη δήλωση SQL:
Code: Select all
DELETE FROM Persons
WHERE LastName='Tjessem' AND FirstName='Jakob'
Είναι δυνατόν να διαγράψετε όλες τις γραμμές ενός πίνακα χωρίς να διαγράψετε τον πίνακα. Αυτό σημαίνει ότι η δομή του πίνακα, τα χαρακτηριστικά, και τα ευρετήρια θα είναι άθικτα:
Code: Select all
DELETE FROM table_name
or
DELETE * FROM table_name
Ο τελεστής LIKE
O τελεστής LIKE χρησιμοποιείται μέσα σε μια ρήτρα WHERE για να αναζητήσετε ένα καθορισμένο πρότυπο σε μια στήλη.
Σύνταξη LIKE
Code: Select all
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
Θέλουμε να επιλέξετε τα άτομα που ζουν σε μια πόλη που το όνομά της ξεκινά με το γράμμα "s" από τον παραπάνω πίνακα.
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
WHERE City LIKE 's%'
Code: Select all
SELECT * FROM Persons
WHERE City LIKE '%s'
Code: Select all
SELECT * FROM Persons
WHERE City LIKE '%tav%'
Code: Select all
SELECT * FROM Persons
WHERE City NOT LIKE '%tav%'
Οι μπαλαντέρ μπορεί να υποκαταστήσουν έναν ή περισσότερους χαρακτήρες κατά την αναζήτηση δεδομένων σε μια βάση δεδομένων.
Οι SQL μπαλαντέρ πρέπει να χρησιμοποιούνται με τον τελεστή LIKE.
Με την SQL, μπορούν να χρησιμοποιηθούν οι ακόλουθοι μπαλαντέρ:
Παραδείγματα
Χρησιμοποιώντας τον μπαλαντέρ %
Τώρα θέλουμε να επιλέξετε τα άτομα που ζουν σε μια πόλη που ξεκινά με "sa" από τον πίνακα "Persons".
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
WHERE City LIKE 'sa%'
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
WHERE City LIKE '%nes%'
Τώρα θέλουμε να επιλέξετε τα άτομα με πρώτο όνομα που αρχίζει με κάθε χαρακτήρα, ακολουθούμενο από το "la" από τον πίνακα "Persons".
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
WHERE FirstName LIKE '_la'
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
WHERE LastName LIKE 'S_end_on'
Code: Select all
Χρησιμοποιώντας το [λίστα_χαρακτήρων] Μπαλαντέρ
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
WHERE LastName LIKE '[bsp]%'
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
WHERE LastName LIKE '[!bsp]%'
Ο τελεστής in σας επιτρέπει να καθορίσετε πολλές τιμές σε ένα όρο WHERE.
Σύνταξη:
Code: Select all
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
Τώρα θέλουμε να επιλέξετε τα άτομα με τελευταίο όνομα ίσο με "Hansen" ή "Pettersen" από τον παραπάνω πίνακα.
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
WHERE LastName IN ('Hansen','Pettersen')
Ο τελεστής BETWEEN χρησιμοποιείται σε μια ρήτρα WHERE για να επιλέξετε μια σειρά δεδομένων μεταξύ των δύο τιμών. Οι τιμές μπορεί να είναι αριθμοί, κείμενο ή ημερομηνίες.
Σύνταξη:
Code: Select all
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
Πίνακας "Persons" :
Τώρα θέλουμε να επιλέξετε τα άτομα των οποίων τα επώνυμα βρίσκονται με αλφαβητική σειρά μεταξυ "Hansen" και "Pettersen" από τον παραπάνω πίνακα.
Χρησιμοποιούμε την ακόλουθη δήλωση SELECT:
Code: Select all
SELECT * FROM Persons
WHERE LastName
BETWEEN 'Hansen' AND 'Pettersen'
Παράδειγμα 2
Για να εμφανίσετε τα πρόσωπα έξω από την περιοχή ελέγχου στο προηγούμενο παράδειγμα, κάντε χρήση του NOT BETWEEN:
Code: Select all
SELECT * FROM Persons
WHERE LastName
NOT BETWEEN 'Hansen' AND 'Pettersen'
Η δήλωση CREATE DATABASE χρησιμοποιείται για να δημιουργήσει μια βάση δεδομένων.
SQL CREATE DATABASE Σύνταξη:
Code: Select all
CREATE DATABASE database_name
Τώρα θέλουμε να δημιουργήσουμε μια βάση δεδομένων που ονομάζεται "my_db".
Χρησιμοποιούμε την ακόλουθη δήλωση CREATE DATABASE:
Code: Select all
CREATE DATABASE my_db
Η δήλωση CREATE TABLE χρησιμοποιείται για να δημιουργήσετε έναν πίνακα σε μια βάση δεδομένων.
Σύνταξη SQL CREATE TABLE
Code: Select all
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
)
Microsoft Access τύποι δεδομένων
Παράδειγμα CREATE TABLE
Τώρα θέλουμε να δημιουργήσουμε έναν πίνακα που ονομάζεται "Persons", που περιλαμβάνει πέντε στήλες: P_Id, LastName, FirstName, Address, and City.
Χρησιμοποιούμε την ακόλουθη δήλωση CREATE TABLE:
Code: Select all
CREATE TABLE Persons
(
P_Id int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Ο άδειος πίνακας "Persons" τώρα θα μοιάζει με αυτό:
Ο κενός πίνακας μπορεί να γεμίσει με δεδομένα με την INSERT INTO.