110 likes | 119 Views
ΕΠΛ 3 42 – Βάσεις Δεδομένων. Εργαστήριο 2 ο SQL - DDL Ιωάννα Συρίμη syrimi@ucy.ac.cy. Τύποι Δεδομένων στην Ο racle. Number (p, s) Id_No Number(10) Price Number(8,2) V archar2 ( size) Ename varchar2(100) Comments varchar2(500) Char (size) Gender char(1) Country_of_Birth char(3)
E N D
ΕΠΛ 342 – Βάσεις Δεδομένων Εργαστήριο 2ο SQL - DDL Ιωάννα Συρίμη syrimi@ucy.ac.cy
Τύποι Δεδομένων στην Οracle • Number (p, s) • Id_No Number(10) • Price Number(8,2) • Varchar2 (size) • Ename varchar2(100) • Comments varchar2(500) • Char (size) • Gender char(1) • Country_of_Birth char(3) • Date • Date_of_Birth Date • Default format ‘dd-mon-yyyy’-> 04-OCT-2003 ΕΠΛ342-Βάσεις Δεδομένων2/1/2020
Data Definition Language • Δημιουργία • Πινάκων – Create Table • Προγραμμάτων • Χρηστών … • Καταστροφή • Πινάκων – Drop Table • Προγραμμάτων • Χρηστών … • Αλλαγή • Πινάκων – Alter Table • Προγραμμάτων • Χρηστών … ΕΠΛ342-Βάσεις Δεδομένων2/1/2020
CREATE TABLE • CREATE TABLE [schema.]table (ColumnName datatype [DEFAULT exp] [constraint] [, ColumnName datatype [DEFAULT exp] [constraint]…] [, RECORD CONSTRAINT] [, TABLE_CONSTRAINT] ) ΕΠΛ342-Βάσεις Δεδομένων2/1/2020
CREATE TABLE CREATE TABLEstudent (student_id number(10) not null, name varchar2(60) not null, date_of_birth date, CONSTRAINT student_pk PRIMARY KEY (Student_id)) ή αλλιώς CREATE TABLEstudent (student_id number(10) not null CONSTRAINT student_pk PRIMARY KEY, name varchar2(120) not null, date_of_birth date) ΕΠΛ342-Βάσεις Δεδομένων2/1/2020
CREATE TABLE CREATE TABLE employees ( employee_id NUMBER(6)NOT NULL, first_name VARCHAR2(20) , last_name VARCHAR2(25) NOT NULL, email VARCHAR2(25) NOT NULL, hire_date DATE DEFAULT SYSDATE NOT NULL, salary NUMBER(8,2) NOT NULL, department_id NUMBER(4), CONSTRAINT emp_salary_min CHECK (salary > 0) , CONSTRAINT emp_email_uk UNIQUE (email), CONSTRAINT employee_pk PRIMARY KEY (employee_id), CONSTRAINT employee_department_fk FOREIGN KEY(department_id) REFERENCES departments(department_id) ) ΕΠΛ342-Βάσεις Δεδομένων2/1/2020
DROP TABLE • DROP TABLE [schema.]table • DROP TABLEStudent • Ο πίνακας θα καταστραφεί αν • δεν υπάρχουν άλλοι πίνακες με foreign keys τα οποία αναφέρονται σε αυτόν ή • υπάρχουν άλλοι πίνακες με foreign keys τα οποία αναφέρονται σε αυτόν αλλά δεν υπάρχουν εγγραφές στους πίνακες αυτούς ΕΠΛ342-Βάσεις Δεδομένων2/1/2020
ALTER TABLE • ALTER TABLE [schema.]table ( [ADD Column], [MODIFY Column Datatype], [DROP Column], [RENAME COLUMN Column TO NewColumn], [ADD CONSTRAINT Constraint_name Constraint_Condition], [DROP CONSTRAINT Constraint_name], [DISABLE CONSTRAINT Constraint_name], [ENABLE CONSTRAINT Constraint_name], ) ΕΠΛ342-Βάσεις Δεδομένων2/1/2020
ALTER TABLE ALTER TABLEstudent ADD gender varchar2(1) not null CONSTRAINT gender_values CHECK (gender in (‘F’, ‘M’)) ALTER TABLEstudent MODIFY name varchar2(120) ΕΠΛ342-Βάσεις Δεδομένων2/1/2020
ALTER TABLE ALTER TABLE student RENAME COLUMN Name TO FName ALTER TABLE student DROP COLUMN Date_of_Birth ΕΠΛ342-Βάσεις Δεδομένων2/1/2020
ALTER TABLE ALTER TABLE employees ADD Commission_prc number(7,2) default 0 not null ALTER TABLE employees ADD CONSTRAINT check_comp CHECK (salary + (commission_prc*salary) <= 5000) ΕΠΛ342-Βάσεις Δεδομένων2/1/2020