Anda di halaman 1dari 33

Menggunakan DDL Statements untuk Membuat dan Mengelola Tables

Materi

Kategori object utama database Review struktur table Tipe data yang tersedia untuk columns Membuat table Pembuatan constraints pada waktu pembuatan table Penjelasan berkaitan schema objects

Object Database
Object Deskripsi

Table
View

Unit dasar penyimpanan, tdd row dan kolom


Representasi logik dari kumpulan data dari satu atau lebih dari satu table

Sequence
Index Synonim

Nilai yang yg dibuat sistem


Cara meningkatkan performansi query Nama alternatif dari object

Tata Cara Pemberian Nama Nama Table dan nama column : Dimulai dengan Huruf / Aphabet Panjang 130 characters Terdiri hanya AZ, az, 09, _, $, dan # Merupakan nama yang unik/non duplikasi dengan nama dr object yg dimiliki oleh user yang sama Bukan Oracle serverreserved word

CREATE TABLE Statement harus memiliki : CREATE TABLE privilege storage CREATE TABLE [schema.]table (column datatype [DEFAULT expr][, ...]); Apa yang di spesify : Nama Table Nama Column, tipe data column, dan ukuran column

Mengakses Table lain User Table2 milik user lain dan diluar schema sendiri. Prefix user name pemilik table hrs dipakai

DEFAULT Option Specify default value utk column ketika insert. ... hire_date DATE DEFAULT SYSDATE, ... Literal values, expressions, SQL functions merupakan legal values. nama columns atau pseudocolumn adalah illegal values. tipe data default harus sesuai dengan tipe data column. CREATE TABLE hire_dates ( id NUMBER(8), hire_date DATE DEFAULT SYSDATE ); Table created.

Membuat Table

Syntax Create table. CREATE TABLE dept


(deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13), create_date DATE DEFAULT SYSDATE);

untuk konfirmasi table. DESCRIBE dept

Data Types

Datetime Data Types

Beberapa jenis datetime data types:

Datetime Data Types


TIMESTAMP data type merupakan extensi dari DATE data type. menyimpan year, month, dan day dari DATE data type ditambah hour, minute, dan second. ada opsi untuk specify time zone.

TIMESTAMP[(fractional_seconds_precision)]
TIMESTAMP[(fractional_seconds_precision)] WITH TIME ZONE TIMESTAMP[(fractional_seconds_precision)] WITH LOCAL TIME ZONE

Datetime Data Types INTERVAL YEAR TO MONTH data type menyimpan periode waktu menggunakan YEAR dan MONTH datetime fields: INTERVAL YEAR [(year_precision)] TO MONTH
INTERVAL '123-2' YEAR(3) TO MONTH Indicates an interval of 123 years, 2 months. INTERVAL '123' YEAR(3) Indicates an interval of 123 years 0 months. INTERVAL '300' MONTH(3) Indicates an interval of 300 months. INTERVAL '123' YEAR Returns an error, because the default precision is 2, and '123' has 3 digits.

INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)]


INTERVAL '4 5:12:10.222' DAY TO SECOND(3) Indicates 4 days, 5 hours, 12 minutes, 10 seconds, and 222 thousandths of a second.INTERVAL '123' YEAR(3). INTERVAL '7' DAY Indicates 7 days. INTERVAL '180' DAY(3) Indicates 180 days.

Menerapkan Constraints Constraints menerapkan sebuah ketentuan pada table. Constraints mencegah penghapusan table jika terdapat keterkaitan. Constraint types berikut valid : NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK

Persyaratan Constraint

Nama constraint dpt dibuat, atau dibuat oleh Oracle server dgn format SYS_Cn. Pembuatan constraint dapat dilakukan : Pada waktu table dibuat Sesudah table dibuat Constraint dibuat di level column atau level table. Constraint dapat di view pada data dictionary.

Define Constraints
Syntax: CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint], ... [table_constraint][,...]); Column-level constraint: column [CONSTRAINT constraint_name] constraint_type, Table-level constraint: column,... [CONSTRAINT constraint_name] constraint_type (column, ...),
Conted

Define Constraints

Column-level constraint: CREATE TABLE employees( employee_id NUMBER(6) CONSTRAINT emp_emp_id_pk PRIMARY KEY, first_name VARCHAR2(20), ...);

Table-level constraint:
CREATE TABLE employees( employee_id NUMBER(6), first_name VARCHAR2(20), ... job_id VARCHAR2(10) NOT NULL, CONSTRAINT emp_emp_id_pk PRIMARY KEY (EMPLOYEE_ID));

NOT NULL Constraint

Untuk proteksi null values yg tdk diperkenankan pada column:

NOT NULL constraint (No row can contain a null value for this column.)

NOT NULL constraint

Absence of NOT NULL constraint (Any row can contain a null value for this column.)

UNIQUE Constraint

Allowed Not Allowed : already exists

UNIQUE Constraint

Di define pada level table atau pada level column :

CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, email VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2), hire_date DATE NOT NULL, ... CONSTRAINT emp_email_uk UNIQUE(email));

PRIMARY KEY Constraint

Not allowed (null value)

Not allowed (50 already exists)

FOREIGN KEY Constraint

FOREIGN KEY Constraint

Di define di level table atau level column :

CREATE TABLE employees(


employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, email VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2), hire_date DATE NOT NULL, ... department_id NUMBER(4), emp_dept_fk FOREIGN KEY (department_id) departments(department_id), emp_email_uk UNIQUE(email));

CONSTRAINT REFERENCES CONSTRAINT

FOREIGN KEY Constraint:


Keywords FOREIGN KEY: Pendefinisian column di child table di level table-constraint REFERENCES: mengidentify table dan column di parent table ON DELETE CASCADE: Delete dependent rows di child table ketika row di parent table di delete ON DELETE SET NULL: dependent foreign key value dirobah null

CHECK Constraint
Mendefinisikan condition yang hrs dipatuhi oleh semua row expressions berikut tidak diperkenankan : References CURRVAL, NEXTVAL, LEVEL, dan ROWNUM pseudocolumns Calls SYSDATE, UID, USER, dan USERENV functions Queries yg me-refer ke values lain pad lain rows

..., salary NUMBER(2) CONSTRAINT emp_salary_min CHECK (salary > 0),...

CREATE TABLE: Example


CREATE TABLE employees ( employee_id NUMBER(6) CONSTRAINT emp_employee_id PRIMARY KEY , first_name VARCHAR2(20) , last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn NOT NULL , email VARCHAR2(25) CONSTRAINT emp_email_nn NOT NULL CONSTRAINT emp_email_uk UNIQUE , phone_number VARCHAR2(20) , hire_date DATE CONSTRAINT emp_hire_date_nn NOT NULL , job_id VARCHAR2(10) CONSTRAINT emp_job_nn NOT NULL , salary NUMBER(8,2) CONSTRAINT emp_salary_ck CHECK (salary>0) , commission_pct NUMBER(2,2) , manager_id NUMBER(6) , department_id NUMBER(4) CONSTRAINT emp_dept_fk REFERENCES departments (department_id));

Violating (pelanggaran thdp) Constraints

UPDATE employees SET department_id = 55 WHERE department_id = 110; UPDATE employees * ERROR at line 1: ORA-02291: integrity constraint (HR.EMP_DEPT_FK) violated - parent key not found

Department 55 does not exist.

Violating Constraints
row tidak dapat di delete ketika berisi primary key dan dipergunakan sebagai foreign key di lain table.

DELETE FROM departments WHERE department_id = 60;

DELETE FROM departments * ERROR at line 1: ORA-02292: integrity constraint (HR.EMP_DEPT_FK) violated - child record found

Membuat Table dgn menggunakan Subquery

Membuat table dan insert rows dgn gabungan CREATE TABLE statement dan AS subquery option.

CREATE TABLE table [(column, column...)] AS subquery;

Jumlah kolom yg di specify di create statement harus sama dengan jumlah kolom di sub-query Define columns dengan nama column dan default values.

Contoh membuat Table dengan Sub-query

CREATE TABLE dept80 AS SELECT employee_id, last_name, salary*12 ANNSAL, hire_date FROM employees WHERE department_id = 80;
Table created. DESCRIBE dept80

ALTER TABLE Statement

ALTER TABLE statement digunakan untuk : Menambah column baru Modifikasi column yang sdh ada Define default value untuk column baru Drop column

Drop Table

Semua data dan struktur di table di delete Semua pending transactions di commit. Semua indexes di drop. Semua constraints di drop. Hasil dari perintah DROP TABLE tidak dapat di roll back.

DROP TABLE dept80;

Table dropped.

Summary
Yang berkaitan dgn CREATE TABLE statement dan termasuk constraints.

Katagori object database Review table structure List data types semua columns Create simple table constraints dibuat pada waktu table dibuat menjelaskan tentang object schema

Anda mungkin juga menyukai