Saturday, October 27, 2012

Hapus Kolom Table di Oracle dan MySQL

Hmm.......
Sore ini di Kota tercinta gue, Kota Malang hujan deres banget. Sampai males mau ngerjain sesuatu. Akhirnya inget sebuah program yang gue kerjain kemarin.
Iseng - iseng inget sama blog ini, hha :D
Sekalian deh gue share ide buat Sobat Teens semua.
Daripada nganggur ga ada kerjaan dan ngga tau mau ngapain, bener ga sob. Hehehehe :D

Kali ini gue mau share tentang cara menghapus kolom di table database Oracle. Mungkin Sobat Teens programmer yang biasa menggunakkan database MySQL. Tapi apabila migrasi ke Oracle mungkin sedikit mengalami kesulitan.

Oracle Drop Column

Contohnya, apabila Sobat Teens yang terbiasa menggunakkan MySQL adalah sebagai berikut:

ALTER TABLE [table_name]
DROP [column_name];

Nah apabila kita menulis syntax SQL di Oracle, ada sedikit sekali perbedaan. Contoh syntax di Oracle adalah sebagai berikut:
ALTER TABLE table_name
DROP COLUMN column_name;

Gimana sobat ?? Bisa membedakan tidak ??
hha :D
OK deh yang belum ngerti gue kasih tau deh :p
Di atas udah gue tulis "ada sedikit sekali perbedaan". Dimana ?? Pada syntax Oracle terdapat syntax database "COLUMN". Tetapi pada MySQL tidak menggunakkan syntax itu. Karena pada MySQL kita diijinkan untuk tidak memakai langsung syntax "COLUMN" tadi. Tapi apabila kita menggunakkan Oracle, tidak menggunakkan syntax "COLUMN", itu akan berakibat pesan error pada SQLPlus kalian.

Terus bagaimana dengan menghapus banyak kolom pada Oracle ? Ini nih contohnya:
ALTER TABLE table_name
DROP (col_name1, col_name2, col_nameN);

Hehehe :p
Syntax di atas kalo di Oracle jalan, tapi, kalo dijalankan di MySQL banyak terjadi error. Terus.... Syntax menghapus banyak kolom di MySQL bagaimana ? Nih gue kasi:
ALTER TABLE table_name
DROP col_name1,
DROP col_name2,
DROP col_nameN;

Tuh kan ada perbedaan lagi. Perbedaan yang mendasar yaitu cara penulisan syntax dan letak nama kolom yang akan dihapus. Pada Database Management System Oracle, kita diizinkan untuk menggunakkan tanda kurung di depan syntax DROP lalu langsung diisi dengan menggunakkan nama kolum yang akan dihapus diikuti dengan tanda koma untuk memisahkan kolom yang satu dengan kolom yang lainnya, dan kenapa itu tidak ada syntax COLUMN lagi ya ?? Hmm.. gue juga ga tau sob, mungkin itu kebijakan dari Oracle, hahaha :D
Terus di MySQL kita harus menuliskan syntax DROP dan diikuti nama table yang akan dihapus, nah untuk menghapus lebih dari satu table, harus dipisahkan dengan tanda koma untuk, begitu seterusnya. Apabila kalian merasa cukup table kalian yang akan dihapus, maka ketikkan titik koma dan tekan "Enter" untuk melanjutkan penghapusan.
Maka Syntax SQL kalian akan langsung dieksekusi.

Gimana ???
Udah ngerti kan cara menghapus kolom table di Oracle dan perbedaan dengan MySQL ??
Gue juga nyadari sih kalo sulit, karena terbiasa menggunakkan MySQL, namun setelah gua coba coba dan coba lagi akhirnya terasa mudah kok sobat.
Seperti yang banyak orang katakan LEARNING BY DOING. Semangat itu yang gue terapin buat belajar.
Jadi belajar tidak harus terpaku pada materi saja, tetapi juga harus dilaksanakan atau diterapkan atau lebih tepatnya dipraktikkan dalam kehidupan sehari - hari.

InsyaAllah udah pada ngerti semua ya dari penjelasan panjang lebar tinggi di atas :)

OK, mungkin Sobat Teens ada yang masih bingung, silahkan tanyain aja langsung di kolom komentar di bawah ini. Nanti bakaan gue jawab.

See you sob :)

11 comments:

  1. mas kalo cuman mau hapus isi kolom dari sebuah tabel gmana?
    contoh:tabel mahasiswa isix (id_mahasiswa,nama_mhs,alamat)

    "aku mau hapus semua data yg ada di id_mahasiswa"
    "aku mau hapus data sebagian dari id_mahasiswa "contohx dari id 1001-1006
    Mohon bantuanx ya mas
    terima kasih

    ReplyDelete
    Replies
    1. saya coba bantu ya

      untuk jawaban pertanyaan pertama:
      langsung aja contoh scriptnya seperti ini
      DELETE FROM nama_tabel WHERE id_mahasiswa='1001-1006'

      untuk pertanyaan kedua coba di update(edit) saja isi fieldnya jadi kosong
      misalnya untuk menghapus kolom nama_mhs:
      UPDATE nama_tabel SET nama_mhs = '' WHERE id='1001-1006';

      terima kasih sudah berkunjung
      semoga membantu :)

      Delete
  2. mas saya mw tanya
    kalo menghapus kolom dalam sqlite gimna yaa
    mis yg mw dihapus kolom alamat?
    mohon bantuannya

    ReplyDelete
    Replies
    1. sqlite ya ?
      setahu saya, SQLite tidak bisa "ALTER" untuk hapus kolom tabel
      lihat ini : http://www.sqlite.org/lang_altertable.html
      jadi, cara terbaik ya buat lagi table baru
      hehehe :D
      semoga membantu :)

      Delete
  3. mas ..., tutorialnya sangat membantu nih....add facebookku (turmudiae) ato email turmudiae@yahoo.com mas kalo ada waktu luang...terima kasih sebelumnya...semoga ilmunya terus bermanfaat

    ReplyDelete
  4. Kalau misalkan saya ingin menghapus field di oracle tapi muncul EROR
    "cannot drop column from table owned by sys "
    itu gmna kak?? :D
    hehe makasih

    ReplyDelete
    Replies
    1. wah kalo ini kasusnya beda bro
      harus login sebagai sys dulu baru bisa drop column yang dituju
      karena tabel yang dimaksud itu punyanya sys

      semoga membantu

      Delete
    2. mas,mau nanya cara hapus kolom di tabel database sqlserver gmana ya?

      create table barangpesanan (
      KdBarangPesan char (5) not null primary key,
      NamaBarang varchar (50),
      Jenis varchar (20)not null,
      Stok int,
      HargaProduksi money default 0,
      HargaJual money default 0 )

      yang mau saya hapus kolom Stok nya?????skripnya gmana????
      padahal tabel barang pesanan mjadi foreign key di tabel lain

      segera tanggapi ya mas

      Delete
    3. itu sama saja mas seperti yang di atas skripnya
      coba gunakkan ini:

      ALTER TABLE barangpesanan DROP COLUMN Stok;

      semoga membantu

      Delete
    4. mas, mau tanya..
      saumpama hapus isi dari kolom pada tabel gimana ya mas ?
      tabelnya yaitu seperti ini
      tabelku(id_tab, nama, alamat)
      yg mau di hapus itu isi dari bagian alamatnya aja..
      mohon bantuannya mas..
      terima kasih..

      Delete
    5. kalau isinya saja coba aja mas di update datanya saja, lalu isi dari alamatnya dikosongi (by id)
      contoh:
      UPDATE tabelku SET alamat='' WHERE id_tab=...;
      atau:
      UPDATE tabelku SET alamat=null WHERE id_tab=...;

      tapi kalo mau menghapus kolom alamat ya di alter tabel
      contoh :
      ALTER TABLE tabelku DROP alamat;

      atau apabila ingin menghapus semua isi dari kolom alamat (mengosongkan kolom) coba cara ini:

      UPDATE iklan SET FOTO_KOST='';

      kenapa ngga pakai klausa WHERE ? soalnya kita ingin menghapus semua isi dari kolom ini

      di coba aja dulu mas
      semoga berhasil

      Delete