Η Γιώζζα sqldelab.csd.auth.gr/~tiakas/sql.pdf · Η γλώσσα sql • Η sql...
TRANSCRIPT
![Page 1: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/1.jpg)
Η Γιώζζα SQL
Δηζαγσγή – Βαζηθέο Έλλνηεο
Τύπνη Γεδνκέλσλ
Οξηζκόο Γεδνκέλσλ
Φεηξηζκόο Γεδνκέλσλ
![Page 2: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/2.jpg)
2
Η γλώσσα SQL
Δηζαγσγή
• Η δνκεκέλε γιώζζα εξσηεκάησλ SQL (Structured
Query Language) ρξεζηκνπνηείηαη γηα ηνπο ρξήζηεο
ηνπ ΣΓΒΓ κε ζθνπό ηε δεκηνπξγία, ελεκέξσζε ή
δηαγξαθή δεδνκέλσλ θαη ηε δηαηύπσζε εξσηεκάησλ.
• Η αξρηθή έθδνζε ηεο γιώζζαο νλνκάζηεθε SEQUEL
(Structured English Query Language) θαη ζρεδηάζζεθε
από εξεπλεηηθή νκάδα ηεο IBM ζηα πιαίζηα ηνπ
System R (1974).
• Η εηαηξεία Oracle ρξεζηκνπνίεζε γηα πξώηε θνξά ηε
γιώζζα ζε εκπνξηθό ΣΓΒΓ ην 1979.
![Page 3: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/3.jpg)
3
Η γλώσσα SQL
Δηζαγσγή
• Πξόηππα:
― SQL/86: ANSI & ISO standard,
― SQL/89: ANSI & ISO standard,
― SQL/92 ή SQL2: ANSI & ISO standard,
― SQL3 ή SQL:1999.
• Tutorial-demo: http://w3schools.com/sql/default.asp
![Page 4: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/4.jpg)
4
Η γλώσσα SQL
• Η γιώζζα SQL έρεη ζεκαληηθά πιενλεθηήκαηα κε
βαζηθόηεξα ηα εμήο:
– ππνζηεξίδεηαη από θάζε ζρεζηαθό ζύζηεκα, νπόηε
ε δηαηύπσζε ησλ εξσηεκάησλ είλαη αλεμάξηεηε
ηνπ ΣΓΒΓ,
– πνιιέο γιώζζεο πξνγξακκαηηζκνύ έρνπλ επεθηαζεί
ώζηε λα ππνζηεξίδνπλ δηαηύπσζε εξσηεκάησλ ζε
SQL, θαη
– έρεη απιή ζύληαμε θαη απνδεζκεύεη ην ρξήζηε από
ιεπηνκέξεηεο πινπνίεζεο.
Δηζαγσγή
![Page 5: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/5.jpg)
5
Η γλώσσα SQL
• Η SQL ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή άιγεβξα.
• Υπνδηαηξείηαη ζε 2 μερσξηζηέο ππνγιώζζεο:
– ηε γιώζζα νξηζκνύ δεδνκέλσλ (DDL), θαη
– ηε γιώζζα ρεηξηζκνύ δεδνκέλσλ (DML).
• Δίλαη δεισηηθή γιώζζα πςεινύ επηπέδνπ, δειαδή νξίδνπκε ηί ζέινπκε λα γίλεη όρη ην πώο.
• H SQL ρξεζηκνπνηεί όξνπο όπσο: πίλαθαο, γξακκή, ζηήιε, νη νπνίνη αληηζηνηρνύλ ζηηο έλλνηεο: ζρέζε, πιεηάδα θαη ραξαθηεξηζηηθό.
Δηζαγσγή
![Page 6: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/6.jpg)
6
Η γλώσσα SQL
Δηζαγσγή
• H SQL έρεη δηάθνξα ηκήκαηα:
– Γιώζζα Οξηζκνύ Γεδνκέλσλ (DDL),
– Γιώζζα Φεηξηζκνύ Γεδνκέλσλ (DML),
– Δλζσκαησκέλε Γιώζζα Φεηξηζκνύ Γεδνκέλσλ
(π.ρ. C, Pascal),
– Οξηζκό Όςεσλ (view definition),
– Δμνπζηνδόηεζε (authentication),
– Αθεξαηόηεηα (integrity), θαη
– Έιεγρν Σπλαιιαγώλ (concurrency control).
![Page 7: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/7.jpg)
7
Η γλώσσα SQL
Τύπνη Γεδνκέλσλ
• CHARACTER(N) ή CHAR(N) – ζπκβνινζεηξά
ζηαζεξνύ κήθνπο N ραξαθηήξσλ.
• VARCHAR(N) ή CHAR VARYING(N) –
ζπκβνινζεηξά κεηαβιεηνύ κήθνπο από 0 έσο Ν
ραξαθηήξεο.
![Page 8: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/8.jpg)
8
Η γλώσσα SQL
Τύπνη Γεδνκέλσλ (..ζπλέρεηα)
• INTEGER ή ΙΝΤ, SMALLINT – γηα κεγάινπο θαη
κηθξνύο αθέξαηνπο (εμαξηώληαη από ην πιηθό).
• REAL, DOUBLE PRECISION ,FLOAΤ – είλαη
πξαγκαηηθόο-δεθαδηθόο αξηζκόο απιήο ή δηπιήο
αθξηβείαο.
![Page 9: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/9.jpg)
9
Η γλώσσα SQL
Τύπνη Γεδνκέλσλ (..ζπλέρεηα)
• TIMESTAMP
• Υπνδηαηξνύληαη ζε απινύζηεξα πεδία πνπ είλαη:
YEAR, MONTH, DAY, HOUR, MINUTE,
SECOND, TIMEZONE_HOUR,
TIMEZONE_MINUTE.
• DATE έρεη ηε κνξθή: YYYY-MM-DD.
• TIME έρεη ηε κνξθή: HH-MM-SS.
![Page 10: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/10.jpg)
10
Η γλώσσα SQL
Τύπνη Γεδνκέλσλ
• Δίλαη ν ηύπνο δεδνκέλσλ θαηάιιεινο γηα ην είδνο δεδνκέλσλ πνπ πξέπεη λα απνζεθεύζνπκε;
• Πξέπεη λα ρξεζηκνπνηήζνπκε έλαλ ηύπν δεδνκέλσλ θαζνξηζκέλνπ ή κεηαβιεηνύ κήθνπο;
![Page 11: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/11.jpg)
11
Η γλώσσα SQL
Τύπνη Γεδνκέλσλ
• Υπάξρνπλ θαη νη user-defined ηύπνη δεδνκέλσλ.
CREATE DOMAIN COLOR AS CHAR(5)
CONSTRAINT VALID COLORS
DEFAULT ‘Green’
CHECK (VALUE IN ‘Red’, ‘Green’, ‘Blue’, ‘???’)
![Page 12: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/12.jpg)
12
Πεξηνξηζκνί Αθεξαηόηεηαο
• Γηα ηελ επηβνιή αθεξαηόηεηαο ζε επίπεδν ζηειώλ
ηζρύνπλ νη εμήο θαλόλεο:
– Nulls,
– Unique Column Values,
– Primary Key Values,
– Referential Integrity,
– Complex Integrity Checking,
– Default Values.
Η γλώσσα SQL
![Page 13: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/13.jpg)
13
• Δθαξκόδεηαη ζε κία ζπγθεθξηκέλε ζηήιε θαη επηηξέπεη
ή απνηξέπεη εηζαγσγέο ή ελεκεξώζεηο γξακκώλ πνπ
πεξηέρνπλ null ζε απηή ηε ζηήιε.
NOT NULL
Η γλώσσα SQL
Πεξηνξηζκνί Αθεξαηόηεηαο - Nulls
![Page 14: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/14.jpg)
14
Πεξηνξηζκνί Αθεξαηόηεηαο - Unique Column Values
• Ο θαλόλαο ηεο κνλαδηθήο ηηκήο νξίδεηαη ζε κηα ζηήιε
ή ζύλνιν ζηειώλ θαη επηηξέπεη ηελ εηζαγσγή ή
ελεκέξσζε κίαο γξακκήο κόλνλ αλ πεξηέρεη κία
κνλαδηθή ηηκή ζηε ζπγθεθξηκέλε ή ζπγθεθξηκέλεο
ζηήιεο.
UNIQUE <attribute(s)>
Η γλώσσα SQL
![Page 15: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/15.jpg)
15
Πεξηνξηζκνί Αθεξαηόηεηαο - Primary Key Values
• Η ηηκή πνπ νξίδεηαη ζε έλα πξσηεύνλ θιεηδί (απιό
ή ζύλζεην) πξέπεη λα είλαη κνλαδηθή ώζηε λα
πξνζδηνξίδεη κνλαδηθά θάζε γξακκή ηνπ πίλαθα.
Φξεζηκνπνηείηαη κία κόλν θνξά ζε κία εληνιή
create table.
PRIMARY KEY (<attribute(s)>)
Η γλώσσα SQL
![Page 16: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/16.jpg)
16
Πεξηνξηζκνί Αθεξαηόηεηαο - Referential Integrity
• Οξίδεηαη ζε έλα θιεηδί (απιό ή ζύλζεην) θαη
εμαζθαιίδεη όηη νη ηηκέο ηνπ ηαηξηάδνπλ κε ηηο ηηκέο
ζε έλαλ ζπζρεηηδόκελν πίλαθα (referenced value).
FOREIGN KEY <attribute> REFERENCES
<table (attribute)>
Η γλώσσα SQL
![Page 17: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/17.jpg)
17
Πεξηνξηζκνί Αθεξαηόηεηαο - Complex Integrity
Checking
• Οξίδεηαη γηα κία ή πεξηζζόηεξεο ζηήιεο θαη επηηξέπεη
ή απνηξέπεη ηελ εηζαγσγή, ελεκέξσζε ή δηαγξαθή
κίαο γξακκήο κε βάζε ηελ ηηκή (ή ηηκέο) ηεο ζηήιεο
(ή ησλ ζηειώλ).
CHECK <conditional expression>
Πρ. YEAR INT(4) NOT NULL, DEFAULT 2003,
CHECK (YEAR BETWEEN 1960 AND 2003)
Η γλώσσα SQL
![Page 18: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/18.jpg)
18
Πεξηνξηζκνί Αθεξαηόηεηαο - Foreign Key
Constraints
– ON DELETΔ CASCADE: Σε πεξίπησζε δηαγξαθήο ηνπ θιεηδηνύ ζηνλ
parent table δηαγξάθνληαη επίζεο νη εγγξαθέο ζηνλ child table.
– ΟΝ DELETE RESTRICT: Δπηηξέπεηαη ε δηαγξαθή κε βάζε ηηκέο ηεο
ζηήιεο ηνπ parent table κόλν αλ δελ ππάξρνπλ αληίζηνηρεο ηηκέο ζηνλ
child table.
– ON DELETE SET NULL: Σε πεξίπησζε δηαγξαθήο ηνπ θιεηδηνύ ζηνλ
parent table, νη ηηκέο ζηνλ child table πνπ αλαθέξνληαη ζ’ απηόλ
παίξλνπλ ηελ ηηκή null.
– ON DELETE SET DEFAULT: Σε πεξίπησζε δηαγξαθήο ηνπ θιεηδηνύ
ζηνλ parent table, νη αληίζηνηρεο ηηκέο ζηνλ child παίξλνπλ ηελ default
ηηκή ηνπ. Πξέπεη λα έρεη νξηζζεί όκσο κία default ηηκή, αιιηώο γίλεηαη
null.
Η γλώσσα SQL
![Page 19: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/19.jpg)
19
– ON UPDATE RESTRICT: Σε πεξίπησζε αιιαγήο ηνπ θιεηδηνύ ζηνλ
parent table, ε αιιαγή επηηξέπεηαη κόλν αλ δελ ππάξρνπλ αλαθνξέο ηνπ
ζηνλ child table.
– ON UPDATE SET NULL: Όηαλ αιιάμεη ε ηηκή ζηνλ parent table, ε
αληίζηνηρε αλαθνξά ζηνλ child table γίλεηαη null.
– ON UPDATE SET DEFAULT: Όηαλ αιιάμεη ε ηηκή ζηνλ parent table,
ε αληίζηνηρε αλαθνξά ηνπ ζηνλ child παίξλεη ηελ default ηηκή. Πξέπεη
λα έρεη νξηζζεί όκσο κηα default ηηκή, δηαθνξεηηθά γίλεηαη null.
– ON UPDATE CASCADE: Σε πεξίπησζε αιιαγήο ηνπ θιεηδηνύ ζηνλ
parent table, αιιάδεη επίζεο θαη ε αληίζηνηρε αλαθνξά ηνπ ζηνλ child
table.
Η γλώσσα SQL
Πεξηνξηζκνί Αθεξαηόηεηαο - Foreign Key
Constraints
![Page 20: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/20.jpg)
20
Γιώζζα Οξηζκνύ Γεδνκέλσλ
Η γλώσσα SQL
• Γεκηνπξγία λένπ πίλαθα. Μέζσ ηεο εληνιήο create
table νξίδνπκε:
– ην όλνκα ηνπ πίλαθα,
– ηα νλόκαηα θαη ηνπο ηύπνπο δεδνκέλσλ ησλ ραξαθηεξηζηηθώλ,
– αλ ηα ραξαθηεξηζηηθά κπνξνύλ λα δέρνληαη ή όρη ηηκέο NULL,
– εμ νξηζκνύ ηηκέο γηα ηα ραξαθηεξηζηηθά,
– πξσηεύνληα θιεηδηά θαη πεξηνξηζκνύο κνλαδηθόηεηαο,
– πεξηνξηζκνύο ηηκώλ πάλσ ζε πεδία, θαη
– πεξηνξηζκνύο αλαθνξηθήο αθεξαηόηεηαο.
![Page 21: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/21.jpg)
21
Γιώζζα Οξηζκνύ Γεδνκέλσλ
• Γεκηνπξγία λένπ πίλαθα. Σύληαμε SQL:
CREATE TABLE λένο-πίλαθαο
(ζηήιε1 ηύπνο-δεδνκέλσλ,
ζηήιε2 ηύπνο-δεδνκέλσλ,
...
ζηήιεN ηύπνο-δεδνκέλσλ,
<πεξηνξηζκόο-αθεξαηόηεηαο-1>,
<πεξηνξηζκόο-αθεξαηόηεηαο-2>,
...
<πεξηνξηζκόο-αθεξαηόηεηαο-Μ>);
Η γλώσσα SQL
![Page 22: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/22.jpg)
22
Γιώζζα Οξηζκνύ Γεδνκέλσλ
• Γεκηνπξγία λένπ πίλαθα:
CREATE TABLE Γλσζηηθή_Πεξηνρή
(θσδηθόο INTEGER NOT NULL,
ηίηινο CHAR(50) NOT NULL,
αξηζκόο_ζπλδξνκεηώλ INTEGER DEFAULT 0,
PRIMARY KEY (θσδηθόο),
UNIQUE (ηίηινο),
CHECK (αξηζκόο_ζπλδξνκεηώλ >= 0));
Η γλώσσα SQL
![Page 23: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/23.jpg)
23
Γιώζζα Οξηζκνύ Γεδνκέλσλ
Η γλώσσα SQL
• Γεκηνπξγία λένπ πίλαθα:
– αλ παξαιεηθζεί ν πξνζδηνξηζκόο NOT NULL, ην ραξαθηεξηζηηθό κπνξεί λα δερζεί ηηκέο NULL,
– ε πξόηαζε DEFAULT παξαηίζεηαη γηα λα δίλνληαη εμ νξηζκνύ ηηκέο θαηά ηελ εηζαγσγή ζηνηρείσλ, όηαλ νη ηηκέο ησλ ραξαθηεξηζηηθώλ δελ νξίδνληαη ξεηώο,
– όηαλ ην πξσηεύνλ θιεηδί είλαη έλα ραξαθηεξηζηηθό κόλνλ, κπνξεί λα νξηζζεί είτε γξάθνληαο PRIMARY KEY δίπια από ην γλώξηζκα είτε παξαζέηνληαο ηελ πξόηαζε PRIMARY KEY κεηά ην ηέινο ησλ πεδίσλ,
![Page 24: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/24.jpg)
24
Γιώζζα Οξηζκνύ Γεδνκέλσλ
Η γλώσσα SQL
• Γεκηνπξγία λένπ πίλαθα:
– έλαο πίλαθαο κπνξεί λα έρεη μόνον ένα πξσηεύνλ θιεηδί,
αιιά επίζεο κπνξεί λα έρεη πεξηνξηζκνύο κνλαδηθόηεηαο
πάλσ ζε άιια πεδία. Αλ ην πεδίν είλαη έλα, δειώλεηαη κε ηε
ιέμε UNIQUE δίπια από ην όλνκα ηνπ,
– αλ ηα κνλαδηθά ραξαθηεξηζηηθά είλαη δύν ή πεξηζζόηεξα,
δειώλνληαη κε μερσξηζηή πξόηαζε UNIQUE κεηά ηνπο
νξηζκνύο ησλ πεδίσλ.
![Page 25: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/25.jpg)
25
Γιώζζα Οξηζκνύ Γεδνκέλσλ
Η γλώσσα SQL
• Γεκηνπξγία λένπ πίλαθα:
CREATE TABLE Πξαθηηθά_Σπλεδξίνπ
(θσδηθόο INTEGER NOT NULL,
ζπλέδξην VARCHAR(100) NOT NULL,
εκεξνκελία DATE NOT NULL,
ρώξα CHAR(20),
θσδηθόο_εθδνηηθνύ_νίθνπ INTEGER NOT NULL,
PRIMARY KEY (θσδηθόο),
FOREIGN KEY (θσδηθόο_εθδνηηθνύ_νίθνπ) REFERENCES Δθδνηηθόο_Οίθνο (θσδηθόο),
ON DELETE RESTRICTED,
ON UPDATE CASCADE);
![Page 26: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/26.jpg)
26
Γιώζζα Οξηζκνύ Γεδνκέλσλ
• Η αιιαγή δνκήο πίλαθα (ALTER TABLE) ρξεζηκνπνηείηαη γηα:
― πξνζζήθε λέαο ζηήιεο ζηνλ πίλαθα,
― δηαγξαθή ππάξρνπζαο ζηήιεο,
― εηζαγσγή λένπ πεξηνξηζκνύ (constraint),
― θαηάξγεζε πεξηνξηζκνύ,
― αιιαγή ηεο αξρηθήο ηηκήο ζηήιεο (default), θαη
― θαηάξγεζε αξρηθήο ηηκήο ζηήιεο.
Η γλώσσα SQL
![Page 27: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/27.jpg)
27
Αιιαγή δνκήο πίλαθα
• Πξνζζήθε ζηήιεο:
ALTER TABLE Πξαθηηθά_Σπλεδξίνπ ADD COLUMN Πόιε CHAR(10);
ALTER TABLE Σπλδξνκεηήο ADD COLUMN εκεξνκελία_γέλλεζεο DATE NOT NULL;
• Γηαγξαθή ζηήιεο:
ALTER TABLE Πξαθηηθά_Σπλεδξίνπ DROP COLUMN Πόιε;
ALTER TABLE Σπλδξνκεηήο DROP COLUMN εκεξνκελία_γέλλεζεο;
Η γλώσσα SQL
![Page 28: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/28.jpg)
28
Αιιαγή δνκήο πίλαθα
• Αιιαγή ηύπνπ, δπλαηόηεηαο ρξήζεο ηηκώλ NULL ή εμ νξηζκνύ ηηκήο ζηήιεο:
ALTER TABLE Πξαθηηθά_Σπλεδξίνπ MODIFY ρώξα
CHAR(15);
• Πξνζζήθε ή θαηάξγεζε πεξηνξηζκώλ αθεξαηόηεηαο:
ALTER TABLE Πξαθηηθά_Σπλεδξίνπ ADD CONSTRAINT
εκεξνκελία CHECK (εκεξνκελία > 2000-1-1);
ALTER TABLE Πξαθηηθά_Σπλεδξίνπ DROP CONSTRAINT
εκεξνκελία CHECK (εκεξνκελία >2000-1-1);
Η γλώσσα SQL
![Page 29: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/29.jpg)
29
• Καηαζηξνθή πηλάθσλ (DROP TABLE):
DROP TABLE Γλσζηηθή_Πεξηνρή;
• Ο πίλαθαο δελ κπνξεί λα θαηαζηξαθεί αλ ππάξρνπλ
όςεηο ή πεξηνξηζκνί αθεξαηόηεηαο πνπ ηνλ αλαθέξνπλ:
DROP TABLE Πξαθηηθά_Σπλεδξίνπ RESTRICT;
Η γλώσσα SQL
Γιώζζα Οξηζκνύ Γεδνκέλσλ
![Page 30: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/30.jpg)
30
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ
• Δληνιέο:
― SELECT γηα δηαηύπσζε εξσηεκάησλ,
― INSERT γηα εηζαγσγή λέσλ δεδνκέλσλ,
― UPDATE γηα ελεκέξσζε δεδνκέλσλ, θαη
― DELETE γηα δηαγξαθή δεδνκέλσλ από ηε ΒΓ.
Η γλώσσα SQL
![Page 31: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/31.jpg)
31
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ
Η γλώσσα SQL
• Σρήκα Βάζεο κε ζπλδξνκεηηθά δεδνκέλα.
![Page 32: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/32.jpg)
32
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ
Η γλώσσα SQL
SELECT A1, A2, …, An
FROM R1, R2, … Rm
WHERE P;
• Η πξόηαζε SELECT πξνζδηνξίδεη ηηο ζηήιεο ηνπ
απνηειέζκαηνο.
• Η πξόηαζε FROM πξνζδηνξίδεη ηνπο πίλαθεο από
όπνπ ζα απαληεζεί ην εξώηεκα.
• Η πξόηαζε P ηνπ WHERE πξνζδηνξίδεη ηε ζπλζήθε
πνπ πξέπεη λα ηζρύεη σο πξνο ηα πεξηερόκελα ησλ
ζηειώλ Ai ησλ πηλάθσλ Rj ηεο πξόηαζεο FROM.
![Page 33: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/33.jpg)
33
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ
Η γλώσσα SQL
SELECT A1, A2, …, An
FROM R1, R2, … Rm
WHERE P;
• Η πξόηαζε P κπνξεί λα είλαη κία ζύλζεηε ζπλζήθε κε:
– ινγηθνύο ηειεζηέο: and, or, not,
– ηειεζηέο ζύγθξηζεο: <, <=, >, >=, =, <>, between,
not between αλάκεζα ζε αξηζκεηηθέο εθθξάζεηο,
ζπκβνινζεηξέο θαη εηδηθνύο ηύπνπο.
– Πξνζνρή: Φ is NULL (ζσζηό), X=NULL (ιάζνο).
• Η ηζνδύλακε έθθξαζε ζε ζρεζηαθή άιγεβξα είλαη:
– Π Α1,Α2,…,Αn (ζ P (R1xR2x…xRn)).
![Page 34: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/34.jpg)
34
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ
• Πιήξεο ζύληαμε SELECT:
SELECT [DISTINCT] <ιίζηα ζηειώλ>
FROM <ιίζηα πηλάθσλ>
[WHERE ζπλζήθε]
[GROUP BY <ιίζηα ζηειώλ>]
[HAVING ζπλζήθε]
[ORDER BY <ιίζηα ζηειώλ> [ASCENDING | DESCENDING]];
Η γλώσσα SQL
![Page 35: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/35.jpg)
35
• «Να επηζηξαθνύλ όιεο νη γξακκέο ηνπ πίλαθα Γλσζηηθή_Πεξηνρή».
SELECT *
FROM Γλσζηηθή_Πεξηνρή;
ή
SELECT θσδηθόο, ηίηινο, αξηζκόο_ζπλδξνκεηώλ
FROM Γλσζηηθή_Πεξηνρή;
Η γλώσσα SQL
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Απιά εξσηήκαηα
![Page 36: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/36.jpg)
36
• «Να βξεζνύλ όινη νη ηίηινη ησλ γλσζηηθώλ πεξηνρώλ
πνπ είλαη απνζεθεπκέλνη ζηε ΒΓ».
SELECT ηίηινο
FROM Γλσζηηθή Πεξηνρή;
• «Να βξεζνύλ ηα δηαθνξεηηθά νλόκαηα ησλ
ζπλδξνκεηώλ».
SELECT DISTINCT όλνκα
FROM Σπλδξνκεηήο;
Η γλώσσα SQL
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Απιά εξσηήκαηα
![Page 37: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/37.jpg)
37
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Απιά εξσηήκαηα
• «Να βξεζνύλ νη θσδηθνί, ηα νλόκαηα θαη νη αξηζκνί πηζησηηθώλ θαξηώλ ησλ ζπλδξνκεηώλ πνπ βξίζθνληαη ζηελ Διιάδα, θαη ηα απνηειέζκαηα λα ηαμηλνκεζνύλ αιθαβεηηθά σο πξνο ην όλνκα, θαη ζηε ζπλέρεηα σο πξνο ηνλ αξηζκό πηζησηηθήο θάξηαο».
SELECT θσδηθόο, όλνκα, ΑΠΚ
FROM Σπλδξνκεηήο
WHERE ρώξα = `Διιάδα'
ORDER BY όλνκα, ΑΠΚ;
Η γλώσσα SQL
![Page 38: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/38.jpg)
38
• «Να βξεζνύλ νη θσδηθνί θαη νη ηίηινη ησλ άξζξσλ πνπ
έρνπλ δεκνζηεπζεί θαη ζε πεξηνδηθό θαη ζε πξαθηηθά
ζπλεδξίνπ».
SELECT θσδηθόο, ηίηινο
FROM Άξζξν
WHERE θσδηθόο_πεξηνδηθνύ IS NOT NULL AND
θσδηθόο_πξαθηηθώλ_ζπλεδξίνπ IS NOT NULL;
Η γλώσσα SQL
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Απιά εξσηήκαηα
![Page 39: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/39.jpg)
39
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Δξσηήκαηα
Σύλδεζεο
• «Να βξεζνύλ νη θσδηθνί θαη ηα νλόκαηα ησλ ζπλδξν-
κεηώλ θαη νη ηίηινη ησλ γλσζηηθώλ πεξηνρώλ γηα ηηο
νπνίεο έρνπλ πιεξώζεη ζπλδξνκή».
SELECT Σπλδξνκεηήο.θσδηθόο, Σπλδξνκεηήο.όλνκα,
Γλσζηηθή_Πεξηνρή.ηίηινο
FROM Σπλδξνκεηήο, Γλσζηηθή_Πεξηνρή, Σπλδξνκή
WHERE Σπλδξνκή.θσδηθόο_ζπλδξνκεηή =
Σπλδξνκεηήο.θσδηθόο AND
Γλσζηηθή_Πεξηνρή.θσδηθόο =
Σπλδξνκή.θσδηθόο_γλσζηηθήο_πεξηνρήο;
Η γλώσσα SQL
![Page 40: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/40.jpg)
40
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Δξσηήκαηα
Σύλδεζεο
• «Να βξεζνύλ νη ηίηινη ησλ άξζξσλ θαη ηα νλόκαηα ησλ
ζπγγξαθέσλ πνπ ηα έρνπλ ζπγγξάςεη. Τν απνηέιεζκα
λα ηαμηλνκεζεί αιθαβεηηθά σο πξνο ηνπο ηίηινπο ησλ
άξζξσλ».
SELECT Άξζξν.ηίηινο, Σπγγξαθέαο.όλνκα
FROM Άξζξν, Σπγγξαθέαο, Σπγγξαθή_Άξζξνπ
WHERE Σπγγξαθή_Άξζξνπ.θσδηθόο_άξζξνπ =
Άξζξν.θσδηθόο AND Σπγγξαθέαο.θσδηθόο =
Σπγγξαθή_Άξζξνπ.θσδηθόο_ζπγγξαθέα
ORDER BY Άξζξν.ηίηινο;
Η γλώσσα SQL
![Page 41: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/41.jpg)
41
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Δξσηήκαηα
Σύλδεζεο
• «Να πξνζδηνξηζζεί ν ηίηινο θάζε άξζξνπ θαη ν ηίηινο ηεο γλσζηηθήο πεξηνρήο όπνπ αλήθεη».
SELECT Άξζξν.ηίηινο, Γλσζηηθή Πεξηνρή.ηίηινο FROM Άξζξν, Γλσζηηθή Πεξηνρή WHERE Άξζξν.θσδηθόο_γλσζηηθήο_πεξηνρήο =
Γλσζηηθή_Πεξηνρή.θσδηθόο; ή SELECT Άξζξν.ηίηινο, Γλσζηηθή Πεξηνρή.ηίηινο FROM Άξζξν JOIN Γλσζηηθή Πεξηνρή ON Γλσζηηθή_Πεξηνρή.θσδηθόο = Άξζξν.θσδηθόο_γλσζηηθήο_πεξηνρήο;
Η γλώσσα SQL
![Page 42: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/42.jpg)
42
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Δξσηήκαηα
Σύλδεζεο
• H εληνιή JOIN ON επηζηξέθεη ηε θπζηθή ζύλδεζε δύν
πηλάθσλ. Αθόκε, ε SQL πξνζθέξεη ηηο εμήο ηξεηο
εληνιέο γηα ηελ εμσηεξηθή ζύλδεζε δύν πηλάθσλ:
― R1 LEFT JOIN R2 ON R1.a = R2.b
(αξηζηεξή εμσηεξηθή ζύλδεζε),
― R1 RIGHT JOIN R2 ON R1.a = R2.b
(δεμηά εμσηεξηθή ζύλδεζε),
― R1 FULL JOIN R2 ON R1.a = R2.b
(πιήξεο εμσηεξηθή ζύλδεζε).
Η γλώσσα SQL
![Page 43: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/43.jpg)
43
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Έλσζε
• «Να πξνζδηνξηζζνύλ νη ηίηινη ησλ ζπλεδξίσλ θαη νη
ηίηινη ησλ πεξηνδηθώλ».
SELECT ζπλέδξην
FROM Πξαθηηθά_Σπλεδξίνπ
UNION
SELECT ηίηινο
FROM Πεξηνδηθό;
• Με UNION ALL δηαηεξνύληαη νη δηπινεγγξαθέο.
Η γλώσσα SQL
![Page 44: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/44.jpg)
44
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Τνκή
• «Να βξεζνύλ (αλ ππάξρνπλ) ζπλδξνκεηέο πνπ έρνπλ
ην ίδην όλνκα κε θάπνην ζπγγξαθέα».
SELECT όλνκα
FROM Σπλδξνκεηήο
INTERSECT
SELECT όλνκα
FROM Σπγγξαθέαο;
• Με INTERSECT ALL δηαηεξνύληαη νη δηπινεγγξαθέο.
Η γλώσσα SQL
![Page 45: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/45.jpg)
45
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Γηαθνξά
• «Να πξνζδηνξηζζνύλ νη θσδηθνί θαη νη ηίηινη ησλ
άξζξσλ πνπ δελ έρνπλ δεκνζηεπζεί ζε θάπνην
πεξηνδηθό».
SELECT θσδηθόο, ηίηινο
FROM Άξζξν
EXCEPT
SELECT θσδηθόο, ηίηινο
FROM Άξζξν
WHERE θσδηθόο πεξηνδηθνύ IS NOT NULL;
• Με EXCEPT ALL δηαηεξνύληαη νη δηπινεγγξαθέο.
Η γλώσσα SQL
![Page 46: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/46.jpg)
46
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Γηαθνξά
• «Να πξνζδηνξηζζνύλ νη θσδηθνί θαη νη ηίηινη ησλ
άξζξσλ πνπ δελ έρνπλ δεκνζηεπζεί ζε θάπνην
πεξηνδηθό».
Ιζνδύλακα:
SELECT θσδηθόο,ηίηινο
FROM Άξζξν
WHERE θσδηθόο_πεξηνδηθνύ IS NULL;
Η γλώσσα SQL
![Page 47: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/47.jpg)
47
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Σπλαζξνηζηηθέο
Σπλαξηήζεηο
• Η SQL ππνζηεξίδεη ηηο αθόινπζεο ζπλαξηήζεηο:
― ΜΙΝ γηα ηελ εύξεζε ηεο ειάρηζηεο ηηκήο κίαο ζηήιεο,
― MAX γηα ηελ εύξεζε ηεο κέγηζηεο ηηκήο κίαο ζηήιεο,
― AVG γηα ηνλ ππνινγηζκό ηεο κέζεο ηηκήο κίαο ζηήιεο,
― SUM γηα ηνλ ππνινγηζκό ηνπ αζξνίζκαηνο ησλ ηηκώλ
κίαο ζηήιεο,
― COUNT γηα ηε κέηξεζε ηνπ αξηζκνύ ησλ γξακκώλ.
Η γλώσσα SQL
![Page 48: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/48.jpg)
48
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Σπλαζξνηζηηθέο
Σπλαξηήζεηο
• «Να βξεζεί ν αξηζκόο ησλ άξζξσλ πνπ έρεη γξάςεη θάζε ζπγγξαθέαο».
SELECT Σπγγξαθέαο.όλνκα, COUNT (Σπγγξαθή_Άξζξνπ.θσδηθόο_άξζξνπ) FROM Σπγγξαθέαο, Σπγγξαθή_Άξζξνπ WHERE Σπγγξαθή_Άξζξνπ.θσδηθόο_ζπγγξαθέα =
Σπγγξαθέαο.θσδηθόο GROUP BY Σπγγξαθέαο.όλνκα; • Τν πεδίν σο πξνο ην νπνίν εθηειείηαη ε νκαδνπνίεζε
ζην Group by πξέπεη λα βξίζθεηαη ζην ηκήκα Select.
Η γλώσσα SQL
![Page 49: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/49.jpg)
49
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Σπλαζξνηζηηθέο
Σπλαξηήζεηο
• «Να βξεζεί ν κέζνο όξνο ησλ ζπλδξνκεηώλ γηα όιεο ηηο γλσζηηθέο πεξηνρέο».
SELECT ηίηινο, AVG (αξηζκόο_ζπλδξνκεηώλ)
FROM Γλσζηηθή Πεξηνρή
GROUP BY ηίηινο ;
Η γλώσσα SQL
![Page 50: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/50.jpg)
50
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Σεηξέο
Φαξαθηήξσλ
• Γηα ηελ αλαδήηεζε ζεηξώλ ραξαθηήξσλ
ρξεζηκνπνηνύληαη νη ηειεζηέο LIKE θαη NOT LIKE.
SELECT *
FROM Σπλδξνκεηήο
WHERE όλνκα LIKE ‘%όπνπινο’;
Η γλώσσα SQL
![Page 51: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/51.jpg)
51
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Σεηξέο
Φαξαθηήξσλ
Η γλώσσα SQL
![Page 52: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/52.jpg)
52
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Υπνεξσηήκαηα
• «Να βξεζνύλ νη ηίηινη ησλ γλσζηηθώλ πεξηνρώλ κε αξηζκόο ζπλδξνκεηώλ κεγαιύηεξν από ην κέζν όξν».
SELECT ηίηινο
FROM Γλσζηηθή_Πεξηνρή
WHERE αξηζκόο_ζπλδξνκεηώλ >
( SELECT AVG(αξηζκόο_ζπλδξνκεηώλ)
FROM Γλσζηηθή_Πεξηνρή );
Η γλώσσα SQL
![Page 53: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/53.jpg)
53
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Υπνεξσηήκαηα
• «Να πξνζδηνξηζζνύλ νη ηίηινη ησλ γλσζηηθώλ
πεξηνρώλ όπνπ δελ αληηζηνηρεί θάπνην άξζξν».
SELECT ηίηινο
FROM Γλσζηηθή_Πεξηνρή
WHERE θσδηθόο NOT IN
( SELECT θσδηθόο_γλσζηηθήο_πεξηνρήο
FROM Άξζξν );
Η γλώσσα SQL
![Page 54: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/54.jpg)
54
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Υπνεξσηήκαηα
• «Να βξεζνύλ νη θσδηθνί ησλ ζπγγξαθέσλ πνπ έρνπλ
έζησ θαη έλα άξζξν δεκνζηεπκέλν θαη ζε πεξηνδηθό
θαη ζε πξαθηηθά ζπλεδξίνπ».
SELECT θσδηθόο_ζπγγξαθέα
FROM Σπγγξαθή_Άξζξνπ AS ΣΑ
WHERE EXISTS
( SELECT *
FROM Άξζξν
WHERE θσδηθόο = ΣΑ.θσδηθόο_άξζξνπ AND
θσδηθόο_ζπλεδξίνπ IS NOT NULL AND
θσδηθόο_πεξηνδηθνύ IS NOT NULL );
Η γλώσσα SQL
![Page 55: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/55.jpg)
55
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Υπνεξσηήκαηα
• Τα θαηεγνξήκαηα ALL θαη SOME ή ANY αληηζηνηρνύλ ζηνλ θαζνιηθό θαη ππαξμηαθό πνζνδείθηε (∀ θαη ∃).
• Πξηλ από ηα θαηεγνξήκαηα SOME θαη ALL κπνξεί λα πξνεγείηαη ηειεζηήο ζύγθξηζεο (=, >, <, >=, <=,<>).
• «Να βξεζνύλ νη γλσζηηθέο πεξηνρέο κε κεγαιύηεξν αξηζκό ζπλδξνκεηώλ από ηνπιάρηζηνλ κία άιιε γλσζηηθή πεξηνρή».
SELECT ηίηινο FROM Γλσζηηθή_Πεξηνρή WHERE αξηζκόο_ζπλδξνκεηώλ > SOME ( SELECT αξηζκόο_ζπλδξνκεηώλ FROM Γλσζηηθή_Πεξηνρή );
Η γλώσσα SQL
![Page 56: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/56.jpg)
56
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Υπνεξσηήκαηα
• «Να βξεζεί ε γλσζηηθή πεξηνρή κε κεγαιύηεξν αξηζκό
ζπλδξνκεηώλ από όιεο ηηο άιιεο γλσζηηθέο πεξηνρέο».
SELECT ηίηινο
FROM Γλσζηηθή_Πεξηνρή
WHERE αξηζκόο_ζπλδξνκεηώλ > ALL
( SELECT αξηζκόο_ζπλδξνκεηώλ
FROM Γλσζηηθή_Πεξηνρή );
Η γλώσσα SQL
![Page 57: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/57.jpg)
57
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Υπνεξσηήκαηα
• «Να βξεζνύλ νη θσδηθνί ησλ ζπγγξαθέσλ θαη ην
ζύλνιν ησλ άξζξσλ πνπ έρνπλ γξάςεη, έηζη ώζηε ν
αξηζκόο ησλ άξζξσλ λα είλαη κεγαιύηεξνο από ην έλα
δέθαην ησλ ζπλνιηθώλ δεκνζηεύζεσλ».
SELECT θσδηθόο_ζπγγξαθέα,
COUNT(θσδηθόο_άξζξνπ) AS αξηζκόο_άξζξσλ
FROM Σπγγξαθή_Άξζξνπ
GROUP BY θσδηθόο_ζπγγξαθέα
HAVING αξηζκόο_άξζξσλ >
( SELECT COUNT(*)/10
FROM Σπγγξαθή_Άξζξνπ );
Η γλώσσα SQL
![Page 58: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/58.jpg)
58
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Μεηνλνκαζία
• «Να ππνινγηζζεί ν κέζνο αξηζκόο ζπλδξνκεηώλ γηα
θάζε γλσζηηθή πεξηνρή».
SELECT ηίηινο, AVG (αξηζκόο_ζπλδξνκεηώλ)
FROM Γλσζηηθή Πεξηνρή
GROUP BY ηίηινο;
SELECT ηίηινο, AVG (αξηζκόο_ ζπλδξνκεηώλ) AS
κέζνο_αξηζκόο_ζπλδξνκεηώλ
FROM Γλσζηηθή Πεξηνρή
GROUP BY ηίηινο;
Η γλώσσα SQL
![Page 59: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/59.jpg)
59
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Δηζαγσγή
INSERT INTO Όλνκα_Πίλαθα [(ζηήι1,ζηήι2,..,ζηήιΝ)]
VALUES (ηηκή1, ηηκή2, ..., ηηκήN);
π.ρ.
INSERT INTO Γλσζηηθή_Πεξηνρή
VALUES (10, ’Γηαζηεκηθή Τερλνινγία’, 0);
INSERT INTO Γλσζηηθή_Πεξηνρή (ηίηινο, θσδηθόο)
VALUES (’Γηαζηεκηθή Τερλνινγία’, 10);
Η γλώσσα SQL
![Page 60: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/60.jpg)
60
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Δλεκέξσζε
UPDATE Όλνκα_Πίλαθα
SET (ζηήιε1=ηηκή1, ζηήιε2=ηηκή2, ..., ζηήιεN=ηηκήN)
WHERE ζπλζήθε;
π.ρ.
UPDATE Γλσζηηθή_Πεξηνρή
SET (ηίηινο=‘Γηάζηεκα’)
WHERE θσδηθόο=10;
Η γλώσσα SQL
![Page 61: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/61.jpg)
61
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Γηαγξαθή
DELETE FROM Όλνκα_Πίλαθα
WHERE ζπλζήθε;
π.ρ.
DELETE FROM Γλσζηηθή_Πεξηνρή
WHERE αξηζκόο ζπλδξνκεηώλ = 0;
Η γλώσσα SQL
![Page 62: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/62.jpg)
62
Γιώζζα Φεηξηζκνύ Γεδνκέλσλ – Γηαρείξηζε
Όςεσλ
CREATE VIEW Όλνκα_Όςεο
AS (ππνεξώηεκα SQL);
π.ρ.
CREATE VIEW Ολόκαηα_Πεξηνδηθώλ_Σπλεδξίσλ
AS
( SELECT ηίηινο FROM Πεξηνδηθό
UNION
SELECT ζπλέδξην FROM Πξαθηηθά_Σπλεδξίνπ );
DROP VIEW Ολόκαηα_Πεξηνδηθώλ_Σπλεδξίσλ;
Η γλώσσα SQL
![Page 63: Η Γιώζζα SQLdelab.csd.auth.gr/~tiakas/SQL.pdf · Η γλώσσα sql • Η sql ζηεξίδεηαη ζην ζρεζηαθό ινγηζκό πιεηάδσλ θαη ηε ζρεζηαθή](https://reader035.vdocuments.net/reader035/viewer/2022071420/61192351a79cc733844e1f1f/html5/thumbnails/63.jpg)
63
Σύλνςε
• Η SQL (structured query language) είλαη βαζηζκέλε ζηε
ζρεζηαθή άιγεβξα θαη δηαρσξίδεηαη ζηε γιώζζα νξηζκνύ
δεδνκέλσλ θαη ηε γιώζζα ρεηξηζκνύ δεδνκέλσλ.
• Η γιώζζα ρξεζηκνπνηείηαη γηα όιεο ηηο ιεηηνπξγίεο ηνπ ΣΓΒΓ
(δεκηνπξγία πηλάθσλ, εηζαγσγή θαη αλαδήηεζε δεδνκέλσλ,
δεκηνπξγία λέσλ ρξεζηώλ, θιπ.)
• Πνιιέο γιώζζεο πξνγξακκαηηζκνύ έρνπλ ηξνπνπνηεζεί ώζηε
λα ππνζηεξίδνπλ δηαηύπσζε εξσηεκάησλ ζε SQL.
• Η SQL είλαη έρεη απιή ζύληαμε, θαη απνδεζκεύεη ην ρξήζηε
από ιεπηνκέξεηεο πινπνίεζεο.
Η γλώσσα SQL