.::: How To Create, Modify, Drop, Delete Table In DDL (Data Definition Language) SQL Oracle :::. - Gilole

Latest

Berbagi Informasi Asik dan Sehat

BANNER 728X90

Selasa, 26 Juni 2012

.::: How To Create, Modify, Drop, Delete Table In DDL (Data Definition Language) SQL Oracle :::.

Cara Membuat, Memodifikasi, Menghapus Tabel dalam DDL

SQL adalah Structured Query Language. secara garis besar terdiri dari
1. DDL (Data Definition Language)
2. DML (Data Manipulating Language)
3. DCL (Data Control Language)
1. Study Kasus = Inventory

Tabel Barang = Menggambarkan entitas barang dan terdiri atas atribut yang berkaitan dengan entitas barang. Atribut barang meliputi : kode_barang,nama_barang,satuan_barang dan stok barang
Tabel Suplier = Menggambarkan entitas suplier dan terdiri atas atribut atribut yang berkaitan dengan suplier. Atribut suplier meliputi : kode_suplier, nama_suplier, alamat_suplier, kota_suplier dan telepon_suplier

Tabel Customer = Menggambarkan entitas customer dan terdiri atas atribut atribut yang berkaitan dengan customer. Atribut customer meliputi : kode_customer, nama_customer, alamat_customer, kota_customer dan telepon_customer
Tabel Pasok = Menggambarkan entitas pasok dan terdiri atas atribut atribut yang berkaitan dengan pasok. Atribut pasok meliputi : kode_pasok, kode_barang, kode_suplier, tanggal_pasok dan jumlah_pasok
Tabel Pembelian = Menggambarkan entitas pembelian dan terdiri atas atribut atribut yang berkaitan dengan pembelian. Atribut pembelian meliputi : kode_pembelian, kode_barang, kode_customer, tanggal_pembelian dan jumlah pembelian
ID card Teguh Triharto - Oracle Database SQL Expert - 1Z0-047
2. Entity Relationship Diagram(ERD)

merupakan model data berupa notasi grafis dalam pemodelan data konseptual yang menggambarkan hubungan antara penyimpan. Model data sendiri merupakan sekumpulan cara, peralatan untuk mendeskripsikan data-data yang hubungannya satu sama lain, semantiknya, serta batasan konsistensi. Model data terdiri dari model hubungan entitas dan model relasional. Diagram hubungan entitas ditemukan oleh Peter Chen dalam buku Entity Relational Model-Toward a Unified of Data. Chen mencoba merumuskan dasar-dasar model dan setelah itu dikembangkan dan dimodifikai oleh Chen dan banyak pakar lainnya. Pada saat itu diagram hubungan entitas dibuat sebagai bagian dari perangkat lunak yang juga merupakan modifikasi khusus, karena tidak ada bentuk tunggal dan standar dari diagram hubungan entitas
ERD

==== Data Definition Language ===

DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.

Type Data Oracle
CHAR(n) = Mendefinisikan string sepanjang n karakter, bila n tidak disertakan, maka panjang karekter adalah 1
VARCHAR(n) = Mendefinisikan string yang panjangnya berubah ubah sesuai kebutuhan. namun string tersebut dibatasi sebanyak n karakter
VARCHAR2(n) = Mendefinisikan string yang panjangnya berubah ubah sesuai kebutuhan, namun string tersebut dibatasi sebanyak karakter. Maksimum karekter sebanyak 2000 karakter
LONG = Mendefninikan tipe data binary, maksimum 2 giga byte dan disimpan dalam format internal oracle
LONG RAW = Mendefninikan tipe data binary, maksimum 2 giga byte dan tidak dikonversi oleh oracle(data mentah apa adanya)
DATE = Mendefinisikan dan tanggal, menyimpan tahun, bulan, hari, jam, menit dan detik
NUMBER(n,p) = Mendefinisikan angka pecahan, baik fixed decimal ataupun floating point. Nilai n adalah jumlah bytes total dan p adalah presisi angka di belakang koma.

Note :
    Type data non oracle dapat dikonversi sebagai berikut
    DECIMAL         -> NUMBER
    INTEGER, INT     -> NUMBER(38)
    SMALLINT         -> NUMBER(38)
    FLOAT             -> NUMBER
    REAL             -> NUMBER
    DOUBLE             -> NUMBER

=== 3.1 Membuat Tabel (Create Table) ===

Sintak SQL   
tttttttttttttttttttttttttttttttttttttttttttttttttttt

CREATE TABLE table_name (
name field 1 type data (field long),
....................................
....................................
name field 1 type data (field long),
);

tttttttttttttttttttttttttttttttttttttttttttttttttttt

== Tabel Barang ==

SQL> -- 1. TABEL BARANG
SQL> create table barang(
  2  KODE_BARANG char(6),
  3  NAMA_BARANG varchar2(25),
  4  SATUAN_BARANG varchar2(20),
  5  STOK_BARANG number(4),
  6  constraint pk_barang primary key(KODE_BARANG)
  7  );

Table created.
 
atau

-- 1. TABEL BARANG
create table barang(KODE_BARANG char(6),NAMA_BARANG varchar2(25), SATUAN_BARANG varchar2(20),STOK_BARANG number(4),constraint pk_barang primary key(KODE_BARANG));

Table created.

== Tabel Suplier ==

SQL> -- 2. TABEL SUPLIER
SQL> create table suplier(
  2  KODE_SUPLIER char(5),
  3  NAMA_SUPLIER varchar2(30),
  4  ALAMAT_SUPLIER varchar2(30),
  5  KOTA_SUPLIER varchar2(15),
  6  TELEPON_SUPLIER varchar2(15),
  7  constraint pk_suplier primary key(KODE_SUPLIER)
  8  );

Table created.

atau

-- 2. TABEL SUPLIER
create table suplier(KODE_SUPLIER char(5),NAMA_SUPLIER varchar2(30),ALAMAT_SUPLIER varchar2(30),KOTA_SUPLIER varchar2(15),TELEPON_SUPLIER varchar2(15),constraint pk_suplier primary key(KODE_SUPLIER));

Table created.

== Tabel Customer ==

SQL> -- 3. TABEL CUSTOMER
SQL> create table customer(
  2  KODE_CUSTOMER char(6),
  3  NAMA_CUSTOMER varchar2(30),
  4  ALAMAT_CUSTOMER varchar2(30),
  5  KOTA_CUSTOMER varchar2(15),
  6  TELEPON_CUSTOMER varchar2(15),
  7  constraint pk_customer primary key(KODE_CUSTOMER)
  8  );

Table created.

atau

-- 3. TABEL CUSTOMER
create table customer(KODE_CUSTOMER char(6),NAMA_CUSTOMER varchar2(30),ALAMAT_CUSTOMER varchar2(30),KOTA_CUSTOMER varchar2(15),TELEPON_CUSTOMER varchar2(15),constraint pk_customer primary key(KODE_CUSTOMER));

Table created.

== Tabel Pasok ==

SQL> -- 4. TABEL PASOK
SQL> create table pasok(
  2  KODE_PASOK char(10),
  3  KODE_BARANG char(6),
  4  KODE_SUPLIER char(5),
  5  TANGGAL_PASOK date,
  6  JUMLAH_PASOK number(4),
  7  constraint pk_pasok primary key(KODE_PASOK,KODE_BARANG,KODE_SUPLIER),
  8  constraint fk_pasok_barang foreign key(KODE_BARANG)
  9             references barang(KODE_BARANG),
 10  constraint fk_pasok_suplier foreign key(KODE_SUPLIER)
 11             references suplier(KODE_SUPLIER)
 12  );

Table created.

-- 4. TABEL PASOK
create table pasok(KODE_PASOK char(10),KODE_BARANG char(6),KODE_SUPLIER char(5),TANGGAL_PASOK date,JUMLAH_PASOK number(4),constraint pk_pasok primary key(KODE_PASOK,KODE_BARANG,KODE_SUPLIER),constraint fk_pasok_barang foreign key(KODE_BARANG)references barang(KODE_BARANG),constraint fk_pasok_suplier foreign key(KODE_SUPLIER)references suplier(KODE_SUPLIER));

Table created.

== Tabel Pembelian ==

SQL> -- 5. TABEL PEMBELIAN
SQL> create table pembelian(
  2  KODE_PEMBELIAN char(10),
  3  KODE_BARANG char(6),
  4  KODE_CUSTOMER char(6),
  5  TANGGAL_PEMBELIAN date,
  6  JUMLAH_PEMBELIAN number(4),
  7  constraint pk_pembelian primary key(KODE_PEMBELIAN,KODE_BARANG,KODE_CUSTOMER),
  8  constraint fk_pembelian_barang foreign key(KODE_BARANG)
  9             references barang(KODE_BARANG),
 10  constraint fk_pembelian_customer foreign key(KODE_CUSTOMER)
 11             references customer(KODE_CUSTOMER)
 12  );

Table created.

atau

-- 5. TABEL PEMBELIAN
create table pembelian(KODE_PEMBELIAN char(10),KODE_BARANG char(6),KODE_CUSTOMER char(6),TANGGAL_PEMBELIAN date,JUMLAH_PEMBELIAN number(4),constraint pk_pembelian primary key(KODE_PEMBELIAN,KODE_BARANG,KODE_CUSTOMER),constraint fk_pembelian_barang foreign key(KODE_BARANG)references barang(KODE_BARANG),constraint fk_pembelian_customer foreign key(KODE_CUSTOMER)references customer(KODE_CUSTOMER));

Table created.

== Check Tabel ==

SQL> desc barang;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 KODE_BARANG                               NOT NULL CHAR(6)
 NAMA_BARANG                                        VARCHAR2(25)
 SATUAN_BARANG                                      VARCHAR2(20)
 STOK_BARANG                                        NUMBER(4)

SQL> desc suplier;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 KODE_SUPLIER                              NOT NULL CHAR(5)
 NAMA_SUPLIER                                       VARCHAR2(30)
 ALAMAT_SUPLIER                                     VARCHAR2(30)
 KOTA_SUPLIER                                       VARCHAR2(15)
 TELEPON_SUPLIER                                    VARCHAR2(15)

SQL> desc customer;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 KODE_CUSTOMER                             NOT NULL CHAR(6)
 NAMA_CUSTOMER                                      VARCHAR2(30)
 ALAMAT_CUSTOMER                                    VARCHAR2(30)
 KOTA_CUSTOMER                                      VARCHAR2(15)
 TELEPON_CUSTOMER                                   VARCHAR2(15)

SQL> desc pasok;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 KODE_PASOK                                NOT NULL CHAR(10)
 KODE_BARANG                               NOT NULL CHAR(6)
 KODE_SUPLIER                              NOT NULL CHAR(5)
 TANGGAL_PASOK                                      DATE
 JUMLAH_PASOK                                       NUMBER(4)

SQL> desc pembelian;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 KODE_PEMBELIAN                            NOT NULL CHAR(10)
 KODE_BARANG                               NOT NULL CHAR(6)
 KODE_CUSTOMER                             NOT NULL CHAR(6)
 TANGGAL_PEMBELIAN                                  DATE
 JUMLAH_PEMBELIAN                                   NUMBER(4)

SQL>

== Resume Tabel ==

desc barang;
desc suplier;
desc customer;
desc pasok;
desc pembelian;


=== 3.2 mengubah Tabel(Alter table) ===
tttttttttttttttttttttttttttttttttttttttttttttttttttt

ALTER TABLE name_field A
    DD/MODIFY name_field type_data(long_field)

tttttttttttttttttttttttttttttttttttttttttttttttttttt

Sample

SQL> alter table barang modify SATUAN_BARANG char(5);

Table altered.

SQL> desc barang;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 KODE_BARANG                               NOT NULL CHAR(6)
 NAMA_BARANG                                        VARCHAR2(25)
 SATUAN_BARANG                                      CHAR(5)
 STOK_BARANG                                        NUMBER(4)

SQL>

SQL> desc barang;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 KODE_BARANG                               NOT NULL CHAR(6)
 NAMA_BARANG                                        VARCHAR2(25)
 SATUAN_BARANG                                      CHAR(5)
 STOK_BARANG                                        NUMBER(4)


SQL> alter table barang
  2  modify STOK_BARANG number(2);

Table altered.

SQL> desc barang;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 KODE_BARANG                               NOT NULL CHAR(6)
 NAMA_BARANG                                        VARCHAR2(25)
 SATUAN_BARANG                                      CHAR(5)
 STOK_BARANG                                        NUMBER(2)

SQL>

SQL> alter table barang add KETERANGAN varchar2(15);

Table altered.

SQL> desc barang;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 KODE_BARANG                               NOT NULL CHAR(6)
 NAMA_BARANG                                        VARCHAR2(25)
 SATUAN_BARANG                                      CHAR(5)
 STOK_BARANG                                        NUMBER(2)
 KETERANGAN                                         VARCHAR2(15)

SQL>

SQL> descr barang
 Name                                      Null?    Type
 ----------------------------------------- -------- ---------------------

 KODE_BARANG                               NOT NULL CHAR(6)
 NAMA_BARANG                                        VARCHAR2(25)
 SATUAN_BARANG                                      VARCHAR2(20)
 STOK_BARANG                                        NUMBER(4)
 KETERANGAN                                         VARCHAR2(15)

SQL> alter table suplier add KETERANGAN varchar2(15);

Table altered.

SQL>

SQL> descr suplier
 Name                                      Null?    Type
 ----------------------------------------- -------- ---------------------

 KODE_SUPLIER                              NOT NULL CHAR(5)
 NAMA_SUPLIER                                       VARCHAR2(30)
 ALAMAT_SUPLIER                                     VARCHAR2(30)
 KOTA_SUPLIER                                       VARCHAR2(30)
 TELEPON_SUPLIER                                    VARCHAR2(15)
 KETERANGAN                                         VARCHAR2(15)

SQL>
SQL> alter table customer add KETERANGAN varchar2(15);

Table altered.

SQL> descr customer
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------

 KODE_CUSTOMER                             NOT NULL CHAR(6)
 NAMA_CUSTOMER                                      VARCHAR2(30)
 ALAMAT_CUSTOMER                                    VARCHAR2(30)
 KOTA_CUSTOMER                                      VARCHAR2(15)
 TELEPON_CUSTOMER                                   VARCHAR2(15)
 KETERANGAN                                         VARCHAR2(15)

SQL>
SQL> alter table pasok add KETERANGAN varchar2(15);

Table altered.

SQL> descr pasok
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------

 KODE_PASOK                                NOT NULL CHAR(10)
 KODE_BARANG                               NOT NULL CHAR(6)
 KODE_SUPLIER                              NOT NULL CHAR(5)
 TANGGAL_PASOK                                      DATE
 JUMLAH_PASOK                                       NUMBER(4)
 KETERANGAN                                         VARCHAR2(15)

SQL> alter table pembelian add KETERANGAN varchar2(15);

Table altered.

SQL> descr pembelian
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------

 KODE_PEMBELIAN                            NOT NULL CHAR(10)
 KODE_BARANG                               NOT NULL CHAR(6)
 KODE_CUSTOMER                             NOT NULL CHAR(6)
 TANGGAL_PEMBELIAN                                  DATE
 JUMLAH_PEMBELIAN                                   NUMBER(4)
 KETERANGAN                                         VARCHAR2(15)

SQL>

SQL> descr suplier
 Name                                      Null?    Type
 ----------------------------------------- -------- ---------------------

 KODE_SUPLIER                              NOT NULL CHAR(5)
 NAMA_SUPLIER                                       VARCHAR2(30)
 ALAMAT_SUPLIER                                     VARCHAR2(30)
 KOTA_SUPLIER                                       VARCHAR2(30)
 TELEPON_SUPLIER                                    VARCHAR2(15)
 KETERANGAN                                         VARCHAR2(15)

SQL> alter table suplier modify KOTA_SUPLIER varchar2(15);

Table altered.

SQL> descr suplier
 Name                                      Null?    Type
 ----------------------------------------- -------- ---------------------

 KODE_SUPLIER                              NOT NULL CHAR(5)
 NAMA_SUPLIER                                       VARCHAR2(30)
 ALAMAT_SUPLIER                                     VARCHAR2(30)
 KOTA_SUPLIER                                       VARCHAR2(15)
 TELEPON_SUPLIER                                    VARCHAR2(15)
 KETERANGAN                                         VARCHAR2(15)

SQL>

=== add keterangan ==
== Resume ==

desc barang;
desc suplier;
desc customer;
desc pasok;
desc pembelian;

alter table barang add KETERANGAN varchar2(15);
alter table suplier add KETERANGAN varchar2(15);
alter table customer add KETERANGAN varchar2(15);
alter table pasok add KETERANGAN varchar2(15);
alter table pembelian add KETERANGAN varchar2(15);

desc barang;
desc suplier;
desc customer;
desc pasok;
desc pembelian;


=== 3.3 menghapus tabel(drop table) ===

tttttttttttttttttttttttttttttttttttttttttttttttttttt
DROP TABLE name_tabel
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
SQL> drop table barang;
drop table barang
           *
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys


SQL> drop table suplier
  2  ;
drop table suplier
           *
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys


SQL> drop table customer;
drop table customer
           *
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys


SQL>
SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
PASOK                          TABLE
PEMBELIAN                      TABLE
BARANG                         TABLE
SUPLIER                        TABLE
CUSTOMER                       TABLE

SQL>

hapus table relasi dulu kemudian table acuan/reference

SQL> drop table pasok;

Table dropped.

SQL> drop table pembelian;

Table dropped.

SQL> drop table barang;

Table dropped.

SQL> drop barang
  2  ;
drop barang
     *
ERROR at line 1:
ORA-00950: invalid DROP option

SQL> drop table barang;
drop table barang
           *
ERROR at line 1:
ORA-00942: table or view does not exist

SQL>

SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
BIN$DsU0nta8R2WHv9hOJCJjhw==$0 TABLE
BIN$j21UK451SzuPpOWhK8nLlQ==$0 TABLE
BIN$WW7R+woCQoGBzQAPDlux8g==$0 TABLE
SUPLIER                        TABLE
CUSTOMER                       TABLE

SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
BIN$DsU0nta8R2WHv9hOJCJjhw==$0 TABLE
BIN$cCyULMnESoudoGQMEfl5cQ==$0 TABLE
BIN$j21UK451SzuPpOWhK8nLlQ==$0 TABLE
BIN$WW7R+woCQoGBzQAPDlux8g==$0 TABLE
BIN$8ROKntcYTOCU3+Bv8BsSFg==$0 TABLE

SQL>
SQL> select * from tabs;

no rows selected

SQL>


8. Referensi
- Menguasai Oracle, SQL & PL/SQL karya Imam Heryanto, Budi Raharjo, Penerbit Informatika Bandung