You are on page 1of 19

SQL.

SQL

● RDBMS
○ SQL queries
○ DB (tables)

CREATE DATABASE mydatabase;


Πίνακες - Tables

● Σειρές

● Στήλες

● Κελί

USE mydatabase;

CREATE TABLE Student (


StudentID int,
FirstName varchar(255),
LastName varchar(255),
Email varchar(255)
);
Τύποι δεδομένων MySQL - MySQL Data types

● κείμενο (text),
● αριθμούς (number), και
● ημερομηνίες (date)

Τύπος Περιορισμός Τύπος Περιορισμός

CHAR(n) 255 χαρακτήρες TINYINT(n) -127 εως 128

VARCHAR(n) 255 χαρακτήρες INT(n) -2147483648 εως 2147483647

TEXT 65535 χαρακτήρες DECIMAL(n,d) n ψηφία, d δεκαδικά ψηφία

MEDIUMTEXT 16777215 χαρακτήρες DATE '1000-01-01' εως '9999-12-31'

LONGTEXT 4294967295 χαρακτήρες DATETIME '1000-01-01 00:00:00' εως


'9999-12-31 23:59:59'
Τροποποίηση πεδίων

● ALTER TABLE Student ADD birthdate DATE;

● ALTER TABLE Student DROP COLUMN Email;

● ALTER TABLE Student MODIFY COLUMN birthdate YEAR;


Ορισμός περιορισμών (SQL Constraints)

● PRIMARY KEY - Πρωτεύον κλειδί

● FOREIGN KEY - Ξένο κλειδί

● UNIQUE

● INDEX

● ΝΟΤ NULL

● DEFAULT
Πρωτεύον κλειδί - Primary key

ALTER TABLE Student ADD PRIMARY KEY (StudentID);

CREATE TABLE Grade (


GradeID int,
StudentID int,
SubjectID int,
Grade decimal(5,2),
PRIMARY KEY (GradeID)
);
Ξένο κλειδί - Foreign key

ALTER TABLE Grade ADD FOREIGN KEY (StudentID) REFERENCES Student(StudentID);

CREATE TABLE Grade (


GradeID int,
StudentID int,
SubjectID int,
Grade decimal(5,2),
PRIMARY KEY (GradeID),
FOREIGN KEY (StudentID) REFERENCES Student(StudentID),
FOREIGN KEY (SubjectID) REFERENCES Subject(SubjectID)
);
UNIQUE

ALTER TABLE Student ADD UNIQUE(Email);

CREATE TABLE Student (


StudentID int,
FirstName varchar(255),
LastName varchar(255),
Email varchar(255),
PRIMARY KEY (StudentID),
UNIQUE (Email)
);
NOT NULL

CREATE TABLE Student (


StudentID int,
FirstName varchar(255) NOT NULL,
LastName varchar(255) NOT NULL,
Email varchar(255),
PRIMARY KEY (StudentID),
UNIQUE (Email)
);
DEFAULT

CREATE TABLE Student (


StudentID int,
FirstName varchar(255) NOT NULL,
LastName varchar(255) NOT NULL,
Email varchar(255) DEFAULT '',
BirthDate date NOT NULL,
PRIMARY KEY (StudentID)
);
INDEX

CREATE INDEX BirthDate ON Student(BirthDate);


AUTO_INCREMENT

CREATE TABLE Student (


StudentID int AUTO_INCREMENT,
FirstName varchar(255) NOT NULL,
LastName varchar(255) NOT NULL,
Email varchar(255) DEFAULT '',
BirthDate date NOT NULL,
PRIMARY KEY (StudentID)
);
CRUD

● CREATE

● READ

● UPDATE

● DELETE
Εισαγωγή δεδομένων - Create (CRUD)

INSERT INTO Student (StudentID, FirstName, LastName, Email, BirthDate)


VALUES (1, 'George', 'Filippakis', 'gfilippakis@sleed.gr', '1986-10-31');

INSERT INTO Student VALUES (1, 'George', 'Filippakis', 'gfilippakis@sleed.gr', '1986-10-31');


Ανάκτηση δεδομένων - Read (CRUD)

SELECT StudentID, FirstName, LastName, Email, BirthDate


FROM Student
WHERE StudentID < 101;
Ενημέρωση δεδομένων - Update (CRUD)

UPDATE Student
SET Email = 'gfilippakis@sleed.gr'
WHERE StudentID = 1;
Διαγραφή δεδομένων - Delete (CRUD)

DELETE FROM Student WHERE StudentID = 1;


Συναρτήσεις

SELECT MIN(BirthDate) FROM Student;

You might also like