Jika pada 5 tutorial MySQL sebelum ini kita telah mempelajari tentang tipe data tabel MySQL dan atribut tipe data tabel MySQL, pada tutorial kali ini akan dibahas tentang bagaimana merubah atau mengubah serta modifikasi tabel MySQL setelah tabel itu dibuat. Query yang akan kita pelajari adalah ALTER TABLE.
Ada kalanya setelah sebuah tabel MySQL dibuat, kita ingin mengubah struktur tabel tersebut. Entah itu berupa penambahan kolom baru, atau penghapusan sebuah kolom untuk digantikan dengan kolom lain.
Query untuk membuat tabel (CREATE TABLE) dan menghapus tabel (DROP TABLE) sudah kita bahas pada Tutorial MySQL: Cara Membuat dan Menghapus Tabel MySQL. Kali ini kita akan menggunakan perintah ALTER TABLE untuk mengubah struktur tabel MySQL.
Agar memudahkan dalam mempelajari query ALTER TABLE, saya akan membuat sebuah tabel sample: daftar_jurusan. Silahkan buka MySQL client, dan gunakan perintah query berikut jika anda ingin membuat tabel yang sama:
mysql> SHOW DATABASES; +--------------------+ | Database          | +--------------------+ | information_schema | | mahasiswa         | | mysql             | | performance_schema | | test              | +--------------------+ 5 rows in set (0.11 sec) mysql> USE mahasiswa; Database changed mysql> CREATE TABLE daftar_jurusan ( kode_jurusan CHAR(5), nama_jurusan VARCHAR(20),alamat VARCHAR(100), jumlah_mahasiswa SMALLINT ); Query OK, 0 rows affected (0.05 sec) mysql> DESC daftar_jurusan; +------------------+--------------+------+-----+---------+-------+ | Field           | Type        | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+-------+ | kode_jurusan    | char(5)     | YES |    | NULL   |      | | nama_jurusan    | varchar(20) | YES |    | NULL   |      | | alamat          | varchar(100) | YES |    | NULL   |      | | jumlah_mahasiswa | smallint(6) | YES |    | NULL   |      | +------------------+--------------+------+-----+---------+-------+ 4 rows in set (0.03 sec)
Query tersebut berisi perintah pembuatan tabel daftar_jurusan pada database mahasiswa. Jika anda belum membuat database, silahkan buat terlebih dahulu seperti pada Tutorial MySQL : Membuat dan Menghapus Database.
Cara Merubah Tipe Data Kolom MySQL
Sesaat setelah membuat tabel daftar_jurusan, saya berfikir untuk merubah tipe data pada kolom jumlah_mahasiswa dari SMALLINT menjadi MEDIUMINT agar dapat menampung lebih banyak nilai. Perubahan ini dapat dilakukan dengan mengunakan query ALTER…MODIFY sebagai berikut:
ALTER TABLE nama_tabel MODIFY nama_kolom tipe_data_baru;
Contoh query Alter…Modify:
mysql> ALTER TABLE daftar_jurusan MODIFY jumlah_mahasiswa MEDIUMINT; Query OK, 0 rows affected (0.08 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC daftar_jurusan; +------------------+--------------+------+-----+---------+-------+ | Field           | Type        | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+-------+ | kode_jurusan    | char(5)     | YES |    | NULL   |      | | nama_jurusan    | varchar(20) | YES |    | NULL   |      | | alamat          | varchar(100) | YES |    | NULL   |      | | jumlah_mahasiswa | mediumint(9) | YES |    | NULL   |      | +------------------+--------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
Dari query DESC kita dapat melihat bahwa tipe data pada kolom jumlah_mahasiswa telah berubah menjadi MEDIUMINT.
Cara Merubah Nama Kolom Tabel MySQL
Untuk merubah nama kolom pada tabel yang sudah ada, dapat menggunakan perintah ALTER…CHANGE, dengan format query sebagai berikut:
ALTER TABLE nama_tabel CHANGE nama_kolom nama_kolom_baru tipe_data;
Katakan kita ingin merubah nama kolom alamat menjadi alamat_jurusan agar menjadi lebih spesifik, dapat dilakukan dengan query berikut:
Contoh query Alter…Change:
mysql> ALTER TABLE daftar_jurusan CHANGE alamat alamat_jurusan VARCHAR(100); Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC daftar_jurusan; +------------------+--------------+------+-----+---------+-------+ | Field           | Type        | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+-------+ | kode_jurusan    | char(5)     | YES |    | NULL   |      | | nama_jurusan    | varchar(20) | YES |    | NULL   |      | | alamat_jurusan  | varchar(100) | YES  |    | NULL   |      | | jumlah_mahasiswa | mediumint(9) | YES |    | NULL   |      | +------------------+--------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
Cara Merubah Nama Tabel MySQL
Untuk beberapa kasus tertentu, mungkin saja kita memutuskan untuk merubah nama tabel MySQL. Untuk hal ini MySQL menyediakan query ALTER…RENAME TO dengan format query:
ALTER TABLE nama_tabel_lama RENAME TO nama_tabel_baru;
Kita contohkan merubah tabel daftar_jurusan menjadi tabel_jurusan, maka querynya:
Contoh query Alter…Rename To:
mysql> ALTER TABLE daftar_jurusan RENAME TO tabel_jurusan; Query OK, 0 rows affected (0.06 sec) mysql> DESC daftar_jurusan; ERROR 1146 (42S02): Table 'mahasiswa.daftar_jurusan' doesn't exist mysql> DESC tabel_jurusan; +------------------+--------------+------+-----+---------+-------+ | Field           | Type        | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+-------+ | kode_jurusan    | char(5)     | YES |    | NULL   |      | | nama_jurusan    | varchar(20) | YES |    | NULL   |      | | alamat_jurusan  | varchar(100) | YES |    | NULL   |      | | jumlah_mahasiswa | mediumint(9) | YES |    | NULL   |      | +------------------+--------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
Dapat kita lihat bahwa setelah merubah nama tabel menjadi tabel_jurusan, tabel daftar_jurusan sudah tidak terdapat lagi di dalam database mahasiswa.
Selain query ALTER…RENAME TO, terdapat juga perintah RENAME untuk merubah nama tabel,format querynya:
RENAME TABLE nama_tabel_lama TO nama_tabel_baru;
Mari kita rubah kembali nama tabel tabel_jurusan menjadi daftar_jurusan:
Contoh query Alter…Rename To:
mysql> RENAME TABLE tabel_jurusan TO daftar_jurusan; Query OK, 0 rows affected (0.07 sec) mysql> DESC tabel_jurusan; ERROR 1146 (42S02): Table 'mahasiswa.tabel_jurusan' doesn't exist mysql> DESC daftar_jurusan; +------------------+--------------+------+-----+---------+-------+ | Field           | Type        | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+-------+ | kode_jurusan    | char(5)     | YES |    | NULL   |      | | nama_jurusan    | varchar(20) | YES |    | NULL   |      | | alamat_jurusan  | varchar(100) | YES |    | NULL   |      | | jumlah_mahasiswa | mediumint(9) | YES |    | NULL   |      | +------------------+--------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
Cara Menambahkan Kolom Baru pada Tabel MySQL
Andaikan beberapa saat kemudian kita berfikir untuk menambahkan kolom yang berisi nama ketua jurusan ke dalam tabel daftar_jurusan, kita dapat saja menghapus tabel dan membuat ulang, namun dengan menggunakan query ALTER…ADD, menambahkan kolom baru dapat dilakukan dengan lebih mudah.
ALTER TABLE nama_tabel ADD nama_kolom_baru tipe_data;
Contoh query menambahkan kolom ketua_jurusan ke dalam tabel daftar_jurusan adalah:
Contoh query Alter…Add:
mysql> ALTER TABLE daftar_jurusan ADD ketua_jurusan VARCHAR(50); Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC daftar_jurusan; +------------------+--------------+------+-----+---------+-------+ | Field           | Type        | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+-------+ | kode_jurusan    | char(5)     | YES |    | NULL   |      | | nama_jurusan    | varchar(20) | YES |    | NULL   |      | | alamat_jurusan  | varchar(100) | YES |    | NULL   |      | | jumlah_mahasiswa | mediumint(9) | YES |    | NULL   |      | | ketua_jurusan   | varchar(50) | YES |    | NULL   |      | +------------------+--------------+------+-----+---------+-------+ 5 rows in set (0.01 sec)
Cara Menghapus Kolom Tabel MySQL
Kebalikan dari menambahkan kolom baru, query ALTER…DROP dapat digunakan untuk menghapus sebuah kolom dari tabel MySQL.
ALTER TABLE nama_tabel DROP nama_kolom;
Mari kita contohkan dengan menghapus kolom ketua_jurusan dari tabel daftar_jurusan:
Contoh query Alter…Drop:
mysql> ALTER TABLE daftar_jurusan DROP ketua_jurusan; Query OK, 0 rows affected (0.04 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESC daftar_jurusan; +------------------+--------------+------+-----+---------+-------+ | Field           | Type        | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+-------+ | kode_jurusan    | char(5)     | YES  |    | NULL   |      | | nama_jurusan    | varchar(20) | YES |    | NULL   |      | | alamat_jurusan  | varchar(100) | YES |    | NULL   |      | | jumlah_mahasiswa | mediumint(9) | YES |    | NULL   |      | +------------------+--------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
Cara Merubah Tipe Data Table (Table Engine) MySQL
MySQL menyediakan beberapa tipe data untuk beberapa keperluan, seperti tipe data (disebut juga dengan engine tabel) MyISAM untuk tabel yang dioptimalisasikan untuk keperluan pembacaan yang lebih sering, atau tipe data InnoDB untuk tabel yang memerlukan transaksi.
Perubahan tipe data dari MyISAM ke InnoDB atau sebaliknya dapat menggunakan perintah ALTER…ENGINE:
ALTER TABLE nama_tabel ENGINE = tipe_tabel;
Dalam MySQL versi 5.5 yang saya gunakan pada tutorial ini, default enginenya adalah InnoDB, hal ini berbeda jika dibandingkan dengan versi MySQL sebelumnya yang menggunakan tipe tabel MyISAM sebagai default.
Pada contoh query dibawah ini kita akan merubah tipe data tabel daftar_jurusan dari InnoDB menjadi MyISAM.
Contoh query Alter…Engine:
mysql> SHOW TABLE STATUS WHERE NAME='daftar_jurusan' \G; ***************************1.row*************************** Name: daftar_jurusan Engine: InnoDB Version: 10 Row_format: Compact Rows: 0 Avg_row_length: 0 Data_length: 16384 Max_data_length: 0 Index_length: 0 Data_free: 9437184 Auto_increment: NULL Create_time: 2013-04-14 21:20:02 Update_time: NULL Check_time: NULL Collation: latin1_swedish_ci Checksum: NULL Create_options: Comment: 1 row in set (0.00 sec) ERROR: No query specified mysql> ALTER TABLE daftar_jurusan ENGINE = MyISAM; Query OK, 0 rows affected (0.06 sec) Records: 0Â Duplicates: 0Â Warnings: 0 mysql> SHOW TABLE STATUS WHERE NAME='daftar_jurusan' \G; ***************************1.row*************************** Name: daftar_jurusan Engine: MyISAM Version: 10 Row_format: Dynamic Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 281474976710655 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2013-04-14 22:43:29 Update_time: 2013-04-14 22:43:29 Check_time: NULL Collation: latin1_swedish_ci Checksum: NULL Create_options: Comment: 1 row in set (0.00 sec) ERROR: No query specified mysql>
Query SHOW TABLE STATUS digunakan untuk melihat engine apa yang digunakan dalam sebuah tabel. Penjelasan tentang tipe tabel akan kita pelajari pada tutorial tersendiri.
Dalam tutorial belajar MySQL kali ini kita telah membahas tentang query ALTER TABLE yang digunakan untuk mengubah struktur tabel di dalam MySQL. Dalam tutorial selanjutnya, kita akan mempelajari Cara Menambahkan data (Query INSERT) di dalam MySQL
mas itu kalau instert foreign key gimana ya?
Untuk membuat foreign key, cukup dengan membuat sebuah kolom baru dengan definisi yang sama dengan kolom primary key dari tabel induk.
Namun jika kita ingin 'memaksa' keduanya agar saling terhubung, bisa menggunakan keyword:
FOREIGN KEY (kolom_foreign_key) REFERENCES tabel_induk(kolom_primary_key)
Sebagai contoh, jika kolom NIP pada tabel daftar_dosen adalah primary key, dan kolom NIP_dosen pada tabel mata_kuliah sebagai foreign key, maka contoh pembuatan kedua tabel adalah sebagai berikut:
Untuk menampilkan kedua tabel, kita bisa menggunakan keyword JOIN, Seperti pada tutorial Cara Menggabungkan Tabel MySQL (INNER JOIN).
Semoga bisa membantu :)
Bang, mau nanya nih cara mengganti Data yang ada di kolom gimana ya caranya, misal nih di dalam kolom Nama, nah ada data di dalam Nama yaitu Ari nah saya mau ganti menjadi akung itu Syntax nya bagaimana, saya coba syntaxnya seperti ini : Select * From List WHERE NIP = '443344' CHANGE Ari Akung;
44344 = NIPnya si Akung
Moga aja dibales, hehe THX :-D
Oh, untuk itu kita menggunakan query UPDATE. Untuk lebih jelasnya, silahkan ke tutorial Cara Mengubah data Tabel MySQL.
Semoga bisa membantu :)
Mas kalo cara untuk lock dan unlock column pada sebuah table itu gimana ya? misal nya kita punya sebuah table , nah di dalamnya ada column UPDTIME dengan tipe data datetime, nah agar table tersebut tidak bisa di update menggunakan query UPDATE cara nya gimana ya mas?
Terima kasih
Setahu saya di dalam MySQL kita cuma bisa "lock table", yakni keseluruhan tabel di lock untuk sementara. Umumnya ini digunakan jika terdapat 2 client yang melakukan perubahan data di sebuah tabel pada saat yang bersamaan.
Fungsi lock ini cuma buat sementera, agar tidak terjadi 'bentrok' untuk update data yang sama. Ketika sebuah tabel di 'lock', seluruh user lain tidak bisa mengupdate, kecuali user saat ini.
Tetapi jika yang diinginkan agar sebuah kolom tidak dapat diupdate 'selamanya', pertimbangkan untuk mengubah hak akses user.
Kita bisa membuat sebuah user yang hanya bisa melakukan update untuk kolom tertentu dan tabel tertentu. Querynya kira2 seperti berikut ini:
GRANT UPDATE (col1,col2) ON mydb.mytbl TO 'someuser'@'somehost';
Sebagai pengantar untuk pembuatan user dan hak aksesnya, bisa dilihat di Tutorial MySQL: Cara Membuat Hak Akses (Privileges) User MySQL (GRANT).
Semoga bisa membantu :)
Mas kalo query untuk lock table biar ga bentrok pas update gimana
Bisa menggunakan perintah ini mas:
LOCK TABLES tablename WRITE;
# lakukan query disini
UNLOCK TABLES;
Tapi kecuali tabel yang sangat sibuk (update terjadi dalam sepersekian detik), saya rasa tidak perlu menggunakan LOCK, soalnya MySQL sudah memiliki mekanisme internal untuk hal ini.
mas , nanya dong :
Kalo mau ganti tipe data di dua tabel yang berbeda tapi berhubungan (variabel hargasatuan di tabel detailtransaksi dan tabel barang ) kuerinya bagaimana ?
Menurut saya ubah satu satu saja mas, satu query untuk satu tabel. Mengenai cara perubahan tipe datanya bisa menggunakan contoh query yang ada dalam tutorial ini.
Admin, yang terhormat;
Terima kasih saya ucapkan atas infonya, saya sudah berhasil membuka tabir ilmu yang anda publikasikan-
pengetahuan saya sudah bertambah sedikit demi sedikit, sekali lagi , terima kasih.
Wassalam
Cici Wirachmat
Terimakasih juga atas komentarnya pak, suatu penghargaan bagi saya jika tutorial ini bisa menambah sedikit pengetahuan bapak..
Semoga bisa bermanfaat :)
Salam,
Andre
mas, cara menambahkan syntax "references" gmna ya, saya udah buat table ..tapi pas saya buat columnnya, saya lupa memberi syntax "references"..nah cara mengeditnya gmna ?
thx b4 :)
Bisa menggunakan query seperti ini gan:
ALTER TABLE mata_kuliah ADD FOREIGN KEY (NIP_dosen) REFERENCES dosen(NIP_dosen)
Saya belum coba langsung, tapi mudah2an g salah penulisan querynya :)
kan kita udh melakukan alter tble trus langkah untuk mengisi field yg kosong itu gimana ?
Dilakukan dengan query UPDATE gan…
mas kalau kita ingin menambahkan kolom baru tapi penempatan kolomnya di antaraa kolom yang sudah ada itu gmna? misalkan ingin menambahkan kolom kota setelah kolom alamat, biasanya kalau add kolom baru otomatis berada di bagian bawah, jika ingin taruh di antara 2 kolom yang sudah ada itu bgmna? trims
mas mengapa dalam pembuatan database seringkali memerlukan perintah alter?
Untuk pembuatan database tidak perlu perintah ALTER kok mas, ALTER ini hanya digunakan ketika kita ingin mengubah strukur tabel. Jika kita sudah merancang database dan tabel dengan baik, tidak perlu menggunakan perintah ALTER.
cara merubaha nama database nya GIMANA K?
Agak ribet gan, soalnya setiap tabel terhubung ke database tersebut. Caranya bisa dengan membuat database baru menggunakan query CREATE DATABASE, lalu pindahkan satu2 tabel dengan perintah: RENAME TABLE nama_database_lama.nama_tabel TO nama_database_baru.nama_tabel;
Atau bisa juga dengan export database lama dengan mysqldump, lalu buat database baru dan import datanya.
Makasih mas
Info nya bermanfaat
mas waktu saya ganti tipe data, tapi ada error seperti ini
#1025 – Error on rename of '.\ta_resto\#sql-18ec_17c' to '.\ta_resto\tb_pengeluaran_harian' (errno: 150)
itu gimana ya mas?
Setelah saya cari info, sepertinya error tersebut berhubungan dengan primary key atau foreign key. Jadi untuk mengubah kolom tabel yang telah diset sebagai primary/foreign key, key-nya harus dihapus terlebih dahulu.
Asssalamu'alaikum Warahmatullahi Wabarakaatuh
Mas?
misal ada tabel1
nim char(9) primary key;
tabel2
nipdosen bigint primary key,
nim char(9);
foreign key (nim) references tabel1(nim)
pertanyaannya apakah boleh sama nama dari kolom nim sebagai PRIMARY KEY pada tabel1 dengan nim yang berfungsi sebagai FOREIGN KEY (dari tabel1) pada tabel2 ?
jika boleh, gimana cara ganti tipe data dari nim sebagi FOREIGN KEY tersebut?
trimakasih, semoga dimengerti dan dibalas.
gan mau tanya kalau mau merubah data/nama kolom yang ada di tabel pake perintah apa ya gan? atau memang hanya dengan cara di hapus dulu baru di tambah lagi y?
thanks b4 moga di bales :)
Di tutorial ini kan membahas itu gan, hehe…
Untuk mengubah nama kolom "alamat" menjadi "alamat_jurusan" dari tabel "daftar_jurusan" bisa menggunakan query berikut:
ALTER TABLE daftar_jurusan CHANGE alamat alamat_jurusan VARCHAR(100);
mentep gan website nya (y) (y) topp lengkap banget materinya!! keep update tutorial nya yaa thanks admin :)
mas andre mau nanya dong kenapa dalam pembuatan database memerlukan perintah alter
Perintah ALTER ini hanya perlu jika pengen mengubah struktur tabel, misalnya ada kesalahan atau ada tambahan kolom baru. Kalau tabelnya baik2 saja, malah g perlu perintah ALTER kok gan…
mas andre mau nanya deh cara ngisi data dari field yang ketinggalan ane masukin gimana ya, misalnya saya baru masukin field namanya jurusan, nah tp data2 dari field2 yg lain kan udah keisi tuh, sekarang ane baru mau ngisi yang di field jurusan gimana ya..
Bisa pakai query UPDATE, lengkapnya bisa kesini: https://www.duniailkom.com/tutorial-belajar-mysql-update-data-tabel-dengan-query-update/
mas andre saya mau bertanya bagaimana caranya mengatasi error 1050 (42S01), table already exists, padahal datanya sudah saya hapus dari dalam folder C:/xampp/mysql/data/nama_database. tapi setiap mau buka baru tetap aja begitu kira-kira bagaimana ya cara mengatasinya. mohon bantuannya terima kasih
Yang dihapus langsung filenya y gan? bukan menggunakan query DROP TABLE?
Bisa jadi di sistem MySQL tabel tersebut tetap tercatat (karena bukan dihapus menggunakan query). Boba di test apakah kalau diakses pakai SELECT tabelnya masih tampil. Kalau masih ada, gunakan query DROP TABLE untuk menghapus tabel, jangan hapus manual file tabelnya.
Jika tetap tidak bisa, buat saja database baru, hehe..
mysql> SHOW DATABASES;
+——————–+
| Database |
+——————–+
| information_schema |
| mahasiswa |
| mysql |
| performance_schema |
| test |
Bang gmn kita bisa mngubah urutan itu bang misalnya information_schema di pindah posisinya pling bawah bisa ga bang
Urutan data tidak memiliki arti penting di database. Karena pada saat data ditampilkan, kita bisa mengaturnya menggunakan query ORDER BY: https://www.duniailkom.com/tutorial-mysql-menampilkan-data-dari-tabel-mysql-select/
mas …. saya buat dua tabel nih…. misalnya tabel pertama bernama "barang".Salah satu kolomnya adalah nama_brg, yang isi kolomnya akan saya pakai untuk nama kolom-kolom pada tabel kedua, yaitu
tabel "penjualan" yang nama kolom-kolomnya akan mengikuti isi kolom nama_brg dari tabel "barang".
Pertanyaannya : Jika saya input nama_brg di tabel barang, maka kolom tabel penjualan akan tambah otomatis, begitu juga kalau saya hapus dan ubah isi kolom nama_brg.
terimakasih sebelumnya
Yang seperti itu sudah bagiannya bahasa pemrograman tempat di mana MySQL digunakan, bukan di sisi MySQL lagi (MySQL hanya sebagai tempat penyimpanan saja).
Kalau MySQL ini dipakai bersama PHP, di PHP-lah kita buat alur logika seperti itu. Jika data di 1 tabel dihapus, tabel lain yang berisi data sama juga ikut terhapus. Silahkan diperdalam konsep bahasa pemrograman PHP, dan cara menghubungkan PHP dengan MySQL.
kalau mau menambahkan foreign key apakah tablenya harus kosong?
G harus gan, bisa ditambahkan kapan saja.
admin yang baik…
apabila muncul error
"got error 66 "uknown error" from storage engine inno db"
saat menambahkan field pada table solusinya bagaimana ya?
terima kasih
Kurang tau juga saya error seperti itu gan/sis, mungkin yang lain bisa bantu…
jadi, ini database nya untuk menyimpan data dan gambar, tipe data gambarnya longblob, pas mau nyisipin field lagi nggak bisa, mungkin gara2 memory fiel itu penuh mungkin :'(
okee makasih min :)
Pak saya ingin tanya kok smua syntax ALTER di SQL saya kok error yah pak? error 1064.. semua syntax saya tuliskan sama dengan petunjuk yang bapak berika. Lalu yang di maksud error itu apanya?
Tabelnya sama persis seperti yang ada di tutorial ini? atau agan pakai tabel sendiri? Error 1064 artinya syntax error, kemungkinan besar ada karakter yang kurang atau urutan perintah querynya yang salah…
mas klw buat darabasenya gi'mana ya mas soalx ada proyek
Tabel ini kan tempatnya di database gan… Jadi databasenya harus ada dulu, baru tabel bisa dibuat. Kalau maksudnya database secara umum, silahkan dibaca2 tutorial MySQL ini dari awal…
mas, kan saya mau menambah kolom. syntaknya gini kan?
alter table mata_kuliah add semester int;.
syntak tersebut berhasil, yang jadi pertanyaan saya adalah. cara mengisi isi kolom gimana? misal saya mau mengisi kolom semester dengan angka 4,3,5,3,5,6, saya coba pake sintak ini,
insert into mata_kuliah (semester) values (4,3,5,3,5,6);
tapi setelah saya jalankan malah menghasilka ERROR 1136 (21S01): Column count doesn't match value count at row 1. itu kenapa ya? saya mau nginput 6 baris di kolom semester. semoga dijawab
Untuk menambahkan data ke dalam baris yang sudah diinput sebelumnya, kita menggunakan query UPDATE, bukan INSERT.
Penjelasannya bisa kesini: https://www.duniailkom.com/tutorial-belajar-mysql-update-data-tabel-dengan-query-update/
kalau misalnya mau buat relasi menghubungkan 2 tabel dan tabel sudah di buat,apakah harus buat tabel baru lagi untuk menentukan nilai primary keynya dan foreign key untuk menghubungkan tabel….??????
Syarat untuk bisa menghubungkan 2 buah tabel adalah mesti ada kolom yang nilainya kemungkinan sama. Dalam teori database kedua kolom ini dikenal sebagai primary key dan foreign key.
Dalam prakteknya, kolom apapun yang ada kemungkinan bernilai sama sudah bisa digunakan sebagai penghubung. Namun jika di tabel tersebut belum ada kolom seperti ini, bisa ditambahkan dengan query ALTER
Kak cara menghilangkan atau menghapus NULL pada tabel default gimana ya caranya ???
Nilai NULL muncul jika tidak ada data yang diisi ke dalam tabel. Untuk menghapusnya silahkan isi data lain atau string kosong ''.
Jika ingin memaksakan tidak ada nilai NULL, pada saat pembuatan tabel tambahkan atribut NOT NULL, misalnya:
CREATE TABLE siswa (
nama VARCHAR(12) NOT NULL,
alamat VARCHAR(12) NOT NULL
);
Mengenai hal itu, kenapa saat di type data integer dan date tidak bisa mengosongkan isi dari default "null" nya itu?
awalnya seperti ini
create table sewa(
nofaktursewa varchar(5) not null default " ",
kodepelanggan varchar(6) not null default " ",
tglsewa DATE not null default " ",
kodemobil varchar(5) not null default " ",
lamasewa INT(11) not null default " ",
uangmuka INT(11) not null default " "
);
Tetapi sistem pada sql nya seperti menolak untuk mengubah default pada bagian yang bertipe data integer dan date. Ada cara lain untuk mengosongkan default pada kedua tipe data tsb?
GAN mw nanya untuk perintah dasar ALTER ADA berapa macam yah???
Lumayan banyak, karena ALTER ini prinsinnya adalah perintah untuk mengubah struktur tabel yang sudah ada. Struktur tabel ini juga sangat beragam, mulai dari nama kolom, tipe data, storage engine, character-set, dll.
Jika ingin daftar yang lengkap bisa langsung ke dokumentasi MySQL di: https://dev.mysql.com/doc/refman/5.7/en/alter-table.html
gan selain menggunakan alter apa ada yang lain??
gan ada tips gak nih buat pemula biar hapal query2nya padahal simpel yaa tp karena belom biasa jd berasa banyak yg harus di hapal querynya
Kuncinya sering2 latihan saja…
Beberapa query memang agak susah dihapal karena penggunaannya cukup jarang. Query pembuatan tabel, CREATE termasuk ALTER ini relatif jarang dipakai. Kita hanya perlu di awal pembuatan aplikasi, setelah itu g dipakai lagi. Berbeda dengan query seperti SELECT yang akan terus dipakai sepanjang pembuatan aplikasi.
Yang penting dipahami saja cara penggunaannya. Jika ada perintah yang lupa, tinggal googling. Selama sudah paham, g akan perlu waktu lama untuk ingat. Saya sendiri juga suka lupa format perintah query MySQL :D
Jadi ketika ingin mengganti kolom dalam tabel di MySQL harus menggunakan query ALTER TABLE ya. Terima kasih atas tutorialnya.
mas, nampilkan kya gambar di atas beserta tabel tapi bentuk txt itu gimana ya ?mohon pencerahanya
hi mas andre, mau nanya,
saya kan ada tabel mahasiswa, tabel dosen, dan tabel peminjambuku
saya mau membuat atribute peminjambuku bisa diisi dari primary key tabel mahasiswa dan tabel dosen.
kira-kira gimana ya syntax nya.
thanks mas andre
saya punya tabel
No | nama | tanggal lahir | Alamat
1 | dami | 27-09-1980 | cirebon
0 | din | 23-09-1987 | brebes
… s.d 15 ribu data pada kolom nomor itu acak berisi angka 0 sekitar 5 ribua, nah bagaimana cara agar angka no yang ribuan itu beruba jadi nomor urut, masalah kalo edit satu2 sangat banyak, jadi nanti nya kurang lebih seperti ini
No | nama | tanggal lahir | Alamat
1 | dami | 27-09-1980 | cirebon
2 | din | 23-09-1987 | brebes
3 | dia | 23-09-198 5 | breber
4 | din | 23-09-1987 | brebes
Dear admin
saya sudah mengikuti dan website ini dari tahun 2016.trima kasih sudah mmebuka wawasan saya.
Mas, bisa gak kodingan diubah ke tabel datamodelernya?
Saya juga kurang tau nih maksud dari "datamodeler"…
CREATE TABLE mata_kuliah (
kode_matkul CHAR(6) PRIMARY KEY,
Kalau mau ganti jadi (10) apakah bisa langsung diubah di php myadmin tanpa harus membuat script nya & apakah nanti nya perlu diubah dikoding nya?
mantap sangat bermanfaat