Setelah dalam tutorial sebelumnya kita mempelajari cara mengubah struktur tabel MySQL dengan query ALTER TABLE, Pada tutorial belajar MySQL kali ini kita akan mempelajari perintah (query) MySQL untuk menambahkan data ke dalam tabel menggunakan perintah INSERT.
Query INSERT untuk menambahkan data kedalam Tabel MySQL
Menambahkan sebuah data ke dalam tabel MySQL merupakan salah satu aktifitas yang paling sering dilakukan. Pembuatan database dan tabel hanya perlu dilakukan 1 kali saja, namun menginput data ke dalam tabel akan terus dilakukan sepanjang penggunaan aplikasi. Di dalam MySQL (dan juga RDBMS lainnya), kita menggunakan query INSERT untuk menambahkan data kedalam tabel.
Query INSERT sendiri memiliki banyak variasi perintah yang fleksibel tergantung kebutuhan. Termasuk pilihan ketika data yang akan diinput terdapat duplikasi, dengan opsi IGNORE dan ON DUPLICATE KEY UPDATE.
Sebagai tabel contoh untuk memahami perintah INSERT MySQL, kita akan membuat tabel mata_kuliah di dalam database mahasiswa dengan query sebagai berikut:
mysql> SHOW DATABASES; +--------------------+ | Database          | +--------------------+ | information_schema | | mahasiswa         | | mysql             | | performance_schema | | test              | +--------------------+ 5 rows in set (0.08 sec) mysql> USE mahasiswa; Database changed mysql> CREATE TABLE mata_kuliah (kode_matkul CHAR(5) PRIMARY KEY, nama_matkul VARCHAR(50) NOT NULL, jumlah_SKS TINYINT UNSIGNED DEFAULT '2', nama_jurusan VARCHAR(50)); Query OK, 0 rows affected (0.01 sec) mysql> DESC mata_kuliah; +--------------+---------------------+------+-----+---------+-------+ | Field       | Type               | Null | Key | Default | Extra | +--------------+---------------------+------+-----+---------+-------+ | kode_matkul | char(5)            | NO  | PRI | NULL   |      | | nama_matkul | varchar(50)        | NO  |    | NULL   |      | | jumlah_SKS  | tinyint(3) unsigned | YES |    | 2      |      | | nama_jurusan | varchar(50)        | YES |    | NULL   |      | +--------------+---------------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
Tabel mata_kuliah diatas didefinisikan menggunakan beberapa atribut yang telah kita bahas pada tutorial atribut tipe data MySQL (atribut PRIMARY KEY merupakan atribut yang membuat suatu kolom dalam tabel menjadi kolom kunci, penjelasan lebih lanjut akan kita bahas pada kesempatan berikutnya)
Cara Penulisan dasar query INSERT
Mengutip manual resmi MySQL, penulisan dasar dari perintah INSERT dalam MySQL adalah sebagai berikut:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr [, col_name=expr] ... ]
Seperti yang terlihat, MySQL menyediakan banyak pilihan opsional untuk memasukkan data ke dalam tabel. Kita akan membahasnya secara lebih dalam pada tutorial MySQL kali ini.
Cara Penggunaan Query INSERT…VALUES
Format perintah INSERT yang pertama kita bahas adalah yang paling sederhana, yaitu:
INSERT INTO nama_tabel VALUES (nilai_kolom1, nilai_kolom2,...);
nama_tabel adalah nama dari tabel yang akan diinput, sedangkan nilai_kolom1 adalah nilai yang akan kita input kedalam tabel MySQL, nilai_kolom2 adalah nilai untuk kolom kedua, dan seterusnya. Perhatikan bahwa nilai_kolom harus berada dalam tanda kurung dan dipisahkan dengan koma untuk kolom-kolom berikutnya.
Langsung saja kita contohkan untuk memasukkan sebaris data ke dalam tabel mata_kuliah:
mysql> INSERT INTO mata_kuliah VALUES ('KIMDA','Kimia Dasar',2,' Kimia'); Query OK, 1 row affected (0.06 sec) mysql> select * from mata_kuliah; +-------------+-------------+------------+--------------+ | kode_matkul | nama_matkul | jumlah_SKS | nama_jurusan | +-------------+-------------+------------+--------------+ | KIMDA      | Kimia Dasar |         2 | Kimia      | +-------------+-------------+------------+--------------+ 1 row in set (0.00 sec)
Jika kita ingin langsung memasukkan 2 baris data atau lebih dalam satu perintah query INSERT MySQL, tinggal menambahkan isi data untuk baris berikutnya dibelakang perintah dengan format penulisan sebagai berikut:
INSERT INTO nama_tabel VALUES (nilai_kolom1a, nilai_kolom2a,...), (nilai_kolom1b, nilai_kolom2b,...);
Contoh query untuk penambahan data dengan 2 baris sekaligus adalah:
mysql> INSERT INTO mata_kuliah VALUES ('MMDAS','Matematika Dasar',4,'Matematika'), ('JRKOM','Jaringan Komputer',2,'Ilmu Komputer'); Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from mata_kuliah; +-------------+-------------------+------------+---------------+ | kode_matkul | nama_matkul      | jumlah_SKS | nama_jurusan | +-------------+-------------------+------------+---------------+ | JRKOM      | Jaringan Komputer |         2 | Ilmu Komputer | | KIMDA      | Kimia Dasar      |         2 | Kimia       | | MMDAS      | Matematika Dasar |         4 | Matematika   | +-------------+-------------------+------------+---------------+ 3 rows in set (0.00 sec)
Perintah INSERT… VALUES diatas cocok untuk tabel dimana kita telah mengetahui urutan dari kolom yang ada. Namun dalam situasi kita tidak mengetahui urutan kolom dari tabel, kita harus mendefenisikan urutan kolom yang akan diisi dengan cara penulisan query INSERT… VALUES.
Cara Penggunaan Query INSERT (nama_kolom)… VALUES
Untuk situasi dimana kolom yang akan diisi tidak diketahui urutannya, atau kita hanya akan mengisi sebagian kolom saja, maka kita harus mendefenisikan kolom-kolom mana saja yang akan digunakan. Untuk keperluan tersebut, MySQL menyediakan variasi query INSERT, yaitu:
INSERT INTO nama_tabel (kolom1,kolom2,...) VALUES (nilai_kolom1,nilai_kolom2,...);
kolom1 adalah nama kolom yang akan kita input dengan nilai_kolom1, dan kolom2 adalah nama kolom yang akan diisi dengan data pada nilai_kolom2. Urutan nama kolom dengan nilai yang akan diisi harus sesuai.
Sebagai contoh, kita akan menggunakan perintah INSERT (nama_kolom)… VALUES pada MySQL:
mysql> TRUNCATE mata_kuliah; Query OK, 0 rows affected (0.05 sec) mysql> INSERT INTO mata_kuliah (kode_matkul,nama_matkul,jumlah_SKS,nama_jurusan) VALUES ('MMDAS','Matematika Dasar',4,'Matematika'); Query OK, 1 row affected (0.05 sec) mysql> select * from mata_kuliah; +-------------+------------------+------------+--------------+ | kode_matkul | nama_matkul     | jumlah_SKS | nama_jurusan | +-------------+------------------+------------+--------------+ | MMDAS      | Matematika Dasar |         4 | Matematika  | +-------------+------------------+------------+--------------+ 1 row in set (0.00 sec)
Bagaimana kalau urutan kolom kita acak? Selama perintah MySQL yang kita input sesuai  dengan urutan kolom yang ditulis, hal tersebut tidak menjadi masalah.
mysql> INSERT INTO mata_kuliah (nama_jurusan, kode_matkul, jumlah_SKS, nama_matkul) VALUES ('Ilmu Komputer', 'JRKOM',2,'Jaringan Komputer'); Query OK, 1 row affected (0.04 sec) mysql> select * from mata_kuliah; +-------------+-------------------+------------+---------------+ | kode_matkul | nama_matkul      | jumlah_SKS | nama_jurusan | +-------------+-------------------+------------+---------------+ | JRKOM      | Jaringan Komputer |         2 | Ilmu Komputer | | MMDAS      | Matematika Dasar |         4 | Matematika   | +-------------+-------------------+------------+---------------+ 2 rows in set (0.00 sec)
Jika kita melihat query pada saat pembuatan tabel mata_kuliah, kolom jumlah_SKS didefinisikan dengan nilai default 2, dengan kata lain jika kolom ini tidak diisi, maka nilai default 2 akan digunakan untuk kolom jumlah_SKS.
mysql> INSERT INTO mata_kuliah (kode_matkul,nama_matkul,nama_jurusan) VALUES ('FIDAS','Fisika Dasar','Fisika'), ('CITRA','Pengolahan CITRA','Ilmu Komputer'), ('PBASE','Pengantar Database','Ilmu Komputer'); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> select * from mata_kuliah; +-------------+--------------------+------------+---------------+ | kode_matkul | nama_matkul       | jumlah_SKS | nama_jurusan | +-------------+--------------------+------------+---------------+ | CITRA      | Pengolahan CITRA  |         2 | Ilmu Komputer | | FIDAS      | Fisika Dasar      |         2 | Fisika       | | JRKOM      | Jaringan Komputer |         2 | Ilmu Komputer | | MMDAS      | Matematika Dasar  |         4 | Matematika   | | PBASE      | Pengantar Database |         2 | Ilmu Komputer | +-------------+--------------------+------------+---------------+ 5 rows in set (0.00 sec)
Dalam query diatas, saya sengaja hanya mengisi 3 kolom, tanpa menginput kolom jumlah_SKS, tetapi karena nilai default kolom jumlah_SKS adalah 2, maka kolom jumlah_SKS akan tetap berisi dengan nilai.
Cara Penggunaan Query INSERT IGNORE… VALUES
Dalam setiap pendefinisan tabel, sebaiknya (baca: seharusnya) sebuah tabel memiliki satu kolom yang didefenisikan sebagai PRIMARY KEY. Kolom dengan atribut PRIMARY KEY harus unik, dalam arti tidak boleh ada duplikasi data pada kolom tersebut. Kegunaan kolom ini adalah sebagai penanda bahwa kolom dengan nilai yang sama telah bisa diinput pada tabel.
Pada tabel mata_kuliah kita telah mendefenisikan kolom kode_matkul sebagai PRIMARY KEY, sehingga jika ada data mata_kuliah yang telah ada sebelumnya, dan kita mencoba menginput data baru dengan nilai yang sama, MySQL akan menghasilkan error dan seluruh perintah akan dibatalkan.
Sebagai contoh query, saya akan mencoba menginput kode_matkul: 'CITRA' pada tabel mata_kuliah. Nilai 'CITRA' ini sebenarnya sudah tersedia di dalam tabel:
mysql> select * from mata_kuliah; +-------------+--------------------+------------+---------------+ | kode_matkul | nama_matkul       | jumlah_SKS | nama_jurusan | +-------------+--------------------+------------+---------------+ | CITRA      | Pengolahan CITRA  |         2 | Ilmu Komputer | | FIDAS      | Fisika Dasar      |         2 | Fisika       | | JRKOM      | Jaringan Komputer |         2 | Ilmu Komputer | | MMDAS      | Matematika Dasar  |         4 | Matematika   | | PBASE      | Pengantar Database |         2 | Ilmu Komputer | +-------------+--------------------+------------+---------------+ 5 rows in set (0.00 sec) mysql> INSERT INTO mata_kuliah (kode_matkul,nama_matkul, jumlah_SKS ,nama_jurusan) VALUES ('CITRA','Pengantar CITRA',4,'Ilmu Komputer'), ('STATS','Statistika',4,'Matematika'); ERROR 1062 (23000): Duplicate entry 'CITRA' for key 'PRIMARY' mysql> select * from mata_kuliah; +-------------+--------------------+------------+---------------+ | kode_matkul | nama_matkul       | jumlah_SKS | nama_jurusan | +-------------+--------------------+------------+---------------+ | CITRA      | Pengolahan CITRA  |         2 | Ilmu Komputer | | FIDAS      | Fisika Dasar      |         2 | Fisika       | | JRKOM      | Jaringan Komputer |         2 | Ilmu Komputer | | MMDAS      | Matematika Dasar  |         4 | Matematika   | | PBASE      | Pengantar Database |         2 | Ilmu Komputer | +-------------+--------------------+------------+---------------+ 5 rows in set (0.00 sec)
Pada query diatas saya mencoba menginput 2 buah data baru dengan kode_matkul : 'CITRA' dan 'STATS'. Namun karena 'CITRA' telah ada sebelumnya pada tabel, maka MySQL akan menghasilkan error Duplicate entry 'CITRA' for key 'PRIMARY' dan tidak menjalankan penginputan 'STATS', walaupun  'STATS' sebenarnya belum tersedia di dalam tabel.
Untuk 'memaksa' MySQL tetap menjalankan perintah penginputan 'STATS', kita bisa menambahkan perintah opsional IGNORE. Perintah ini memaksa MySQL tetap menjalankan seluruh query walaupun terdapat error.
mysql> select * from mata_kuliah; +-------------+--------------------+------------+---------------+ | kode_matkul | nama_matkul       | jumlah_SKS | nama_jurusan | +-------------+--------------------+------------+---------------+ | CITRA      | Pengolahan CITRA  |         2 | Ilmu Komputer | | FIDAS      | Fisika Dasar      |         2 | Fisika       | | JRKOM      | Jaringan Komputer |         2 | Ilmu Komputer | | MMDAS      | Matematika Dasar  |         4 | Matematika   | | PBASE      | Pengantar Database |         2 | Ilmu Komputer | +-------------+--------------------+------------+---------------+ 5 rows in set (0.00 sec) mysql> INSERT IGNORE INTO mata_kuliah (kode_matkul,nama_matkul, jumlah_SKS ,nama_jurusan) VALUES ('CITRA','Pengantar CITRA',4,'Ilmu Komputer'), ('STATS','Statistika',4,'Matematika'); Query OK, 1 row affected (0.04 sec) Records: 2 Duplicates: 1 Warnings: 0 mysql> select * from mata_kuliah; +-------------+--------------------+------------+---------------+ | kode_matkul | nama_matkul       | jumlah_SKS | nama_jurusan | +-------------+--------------------+------------+---------------+ | CITRA      | Pengolahan CITRA  |         2 | Ilmu Komputer | | FIDAS      | Fisika Dasar      |         2 | Fisika       | | JRKOM      | Jaringan Komputer |         2 | Ilmu Komputer | | MMDAS      | Matematika Dasar  |         4 | Matematika   | | PBASE      | Pengantar Database |         2 | Ilmu Komputer | | STATS      | Statistika        |         4 | Matematika   | +-------------+--------------------+------------+---------------+ 6 rows in set (0.00 sec)
Sekarang, dengan perintah IGNORE, walaupun di dalam query saya ada error (nilai CITRA terjadi duplikasi), namun nilai 'STATS' akan tetap ditambahkan ke dalam tabel.
Cara Penggunaan Query INSERT… VALUES…ON DUPLICATE KEY UPDATE…
Dalam query INSERT … IGNORE sebelumnya, MySQL akan mengabaikan error jika terdapat nilai kode_matkul yang ganda. Tetapi MySQL juga menyediakan perintah opsional lain untuk menangani duplikasi data dengan meng-update nilai kolom lain. Penjelasan ini akan lebih mudah jika menggunakan contoh.
Pada contoh query berikut ini saya akan mencoba menambahkan kode_matkul: 'CITRA', dan jika terdapat kode matkul yang sama, saya ingin merubah nama_matkul. Instruksi ini dapat dilakukan dengan menambahkan perintah ON DUPLICATE KEY UPDATE pada akhir query INSERT. Berikut adalah contoh penggunaannya:
mysql> select * from mata_kuliah; +-------------+--------------------+------------+---------------+ | kode_matkul | nama_matkul       | jumlah_SKS | nama_jurusan | +-------------+--------------------+------------+---------------+ | CITRA      | Pengolahan CITRA  |         2 | Ilmu Komputer | | FIDAS      | Fisika Dasar      |         2 | Fisika       | | JRKOM      | Jaringan Komputer |         2 | Ilmu Komputer | | MMDAS      | Matematika Dasar  |         4 | Matematika   | | PBASE      | Pengantar Database |         2 | Ilmu Komputer | | STATS      | Statistika        |         4 | Matematika   | +-------------+--------------------+------------+---------------+ 6 rows in set (0.00 sec) mysql> INSERT INTO mata_kuliah (kode_matkul,nama_matkul, jumlah_SKS ,nama_jurusan) VALUES ('CITRA','Pengantar CITRA',4,'Ilmu Komputer') ON DUPLICATE KEY UPDATE nama_matkul='Pengantar CITRA'; Query OK, 2 rows affected (0.13 sec) mysql> select * from mata_kuliah; +-------------+--------------------+------------+---------------+ | kode_matkul | nama_matkul       | jumlah_SKS | nama_jurusan | +-------------+--------------------+------------+---------------+ | CITRA      | Pengantar CITRA   |         2 | Ilmu Komputer | | FIDAS      | Fisika Dasar      |         2 | Fisika       | | JRKOM      | Jaringan Komputer |         2 | Ilmu Komputer | | MMDAS      | Matematika Dasar  |         4 | Matematika   | | PBASE      | Pengantar Database |         2 | Ilmu Komputer | | STATS      | Statistika        |         4 | Matematika   | +-------------+--------------------+------------+---------------+ 6 rows in set (0.00 sec)
Dari query diatas dapat kita perhatikan bahwa nama_matkul 'CITRA' telah berubah dari sebelumnya 'Pengolahan Citra' menjadi 'Pengantar Citra'. Hal ini dimungkinkan dengan pilihan ON DUPLICATE KEY UPDATE.
Demikian pembahasan kita kali ini tentang query INSERT MySQL, Query INSERT menyediakan cara input data ke tabel dengan cepat. Namun untuk jika kita memiliki data dalam jumlah besar, MySQL menyediakan fasilitas untuk input langsung dari file external, pembahasan tentang ini akan kita bahas pada tutorial belajar MysQL selanjutnya: Cara Menambahkan data dari File (LOAD DATA INFILE).
thanks
Terimakasih Juliar :)
ini ngetiknya dimana gan,maklum yo newbie
Untuk tutorial MySQL di duniailkom ini, saya menggunakan cmd (command prompt) di Windows sebagai cara menginputkan perintah.
Jika adhi ragu bagaimana cara menggunakannya, duniailkom sudah menyusun tutorial lengkap dan langkah-langkah mempelajari MySQL di https://www.duniailkom.com/tutorial-belajar-mysql-dan-index-artikel-mysql/, silahkan ikuti tahapannya secara berurutan.
Semoga bisa bermanfaat :)
gan, mau nanya. kalo pake fungsi import phpmyadmin bisa gak ya untuk nambah isi tabel ?
jadi ane punya 2 database dan ada 2 tabel dengan struktur yang sama, nah isi tabel di database lama mau ditambahkan ke tabel database baru pake import. kira2 bagaimana ya ?
thanks :)
tanya gan, kalau mau insert ke tabel 1 dengan isi dari data tabel 2 gimana ? thanks informasinya
Bisa gan, Kira-kira querynya sebagai berikut:
INSERT INTO mahasiswa_ekonomi (nim, nama, umur, tempat_lahir, IPK) SELECT nim, nama, umur, tempat_lahir, IPK FROM mahasiswa_ilkom WHERE nim='089045001'.
Tetapi menjadi catatan bahwa struktur kedua tabel harus identik (walaupun nama kolom boleh tidak sama, seperti: tempat_lahir dengan tempat_lhr, namun jenis kolomnya harus sama).
Mudah-mudahan bisa membantu..
kalau saya membuat querynya belum paham di mysql mas. makasih for sharing.
nanya gan…kmrn nyoba tp error duplicate primary key?…(Nim, int(8) null , nama varchar(15) null, KdMK float(5) null, Primary key(Nim)); pas di Nim nya, ada nomer identitas yang sama.. mis 22557788 ada 2, 44557788 ada 2, jadi pas masukkin codingannya ( Insert into nama_Field (nil1,nil2) values (a,b).. ga bs..gimana caranya yah,supaya inputan data yang sama menggunakan primary key, ada rumus yg lain ga gan?…. Please help :)..
Kalau primary key memang harus unik gan, dan tidak boleh ada data yang sama. Sebagai alternatif bisa membuat kolom baru untuk primary key. Tapi biasanya hal ini disebabkan perancangan tabelnya yang kurang baik, mungkin bisa dipecah menjadi 2 tabel, agar kolom nim bisa unik.
gan… kalau untuk load data perintahnya gimana gan.?
Bisa kesini gan: Cara Menambahkan data dari File (LOAD DATA INFILE)
saya mau bertanya mengenai materi Cara Penggunaan Query INSERT… VALUES…ON DUPLICATE KEY UPDATE…
untuk perubahan pengolahan CITRA, apakah yang berubah hanya kolom nama matkul? sehingga jumlah sks 4 yang ada dalam perintah, tidak ikut diproses? karena saya lihat setelah eksekusi, nilai sks tetap 2. terima kasih.
Betul mas, jumlah_SKS tetap menjadi 2, karena query INSERT yang akan menambah data baru tidak jadi dijalankan (gagal, karena terjadi "duplikasi key"). Sehingga bagian yang akan diupdate hanyalah nama_matkul='Pengantar CITRA'.
Jika kita ingin kolom jumlah_SKS juga berubah, maka harus ditambah query tambahan:
ON DUPLICATE KEY UPDATE nama_matkul='Pengantar CITRA', jumlah_SKS='4';
Tapi ini hanya akan dieksekusi jika terdapat key yang sama. Apabila key masih belum ada, maka yang dieksekusi adalah bagian:
VALUES ('CITRA','Pengantar CITRA',4,'Ilmu Komputer')
Mudah2an bisa dipahami :)
Mas mohon bantuannya, sy pny 2 tabel sebut tabel a dan b pd msng2 tabel trdpt 2 kolom yg sama sebut kolom z dan y. Pada tabel a kolom z nilainya msh kosong. Saya ingin update kolom z pada tabel a dari kolom z pada tabel b jika nilai a.y=b.y. gmn caranya mas? Mksh.
Berarti kita ingin mengupdate nilai tabel a dengan data dari tabel b ya? Untuk ini querynya cukup kompleks, dimana harus menggabungkan query UPDATE dan SELECT.
Agar langsung bisa dipraktekkan, saya akan menggunakan tabel mata_kuliah dan mata_kuliah_2. Dimana kedua tabel ini berisi kolom kode_matkul, nama_matkul, jumlah_SKS , dan nama_jurusan (sama dengan yang ada dalam tutorial ini).
Untuk mengupdate kolom nama_matkul pada tabel mata_kuliah_2 menggunakan nilai yang sama dari tabel mata_kuliah, querynya adalah sebagai berikut:
UPDATE mata_kuliah_2 SET nama_matkul = ( SELECT nama_matkul
FROM mata_kuliah WHERE kode_matkul = 'KIMDA' )
Query diatas akan mengupdate kolom nama_matkul dari tabel mata_kuliah_2 dengan nilai yang diambil dari tabel mata_kuliah, dimana kode_matkulnya adalah 'KIMDA'.
Mudah2an bisa membantu :)
Saya mau mengisi 2 row sekaligus seperti contoh di atas kenapa tidak bisa ya.
saya menggunakan microsoft access
INSERT INTO BUKU1 (Kode_Buku, Judul, Edisi, Kode_Penerbit)
VALUES ('P-001′, 'Pengenalan DBMS', '1', 'AO'),
('M-002′, 'Manajemen Pemasaran', '1', 'CP');
Mohon maaf gan, karena menggunakan MS Access, saya belum bisa bantu (karena memang belum pernah menggunakan MS Access). Kalau dilihat dari querynya sudah benar, tapi mungkin terdapat perbedaan aturan penulisan perintah query antara MySQL dengan MS Access.
Mungkin bisa disertakan juga pesan errornya, mana tau ada pembaca lain yang pernah mengalami hal yang sama.
Gan semua artikelnya sangat membantu sekali, di sub menu paling atas kan ada untuk ebook, nah gimana kalo semua teory, perintah yang agan taruh di dalam blog ini mengenai mysql di rangkum jadi 1 dalam bentuk pdf supaya bisa di download gan? atau bisa di buat buku sekalian. Terimakasih gan atas ilmunya.
Iya gan, kedepannya saya berencana membuat eBook tentang materi web programming, termasuk MySQL. Walaupun sudah cukup lengkap, masih banyak pembahasan MySQL yang belum dibahas.
Saat ini baru ada eBook HTML, dan saya sedang menulis eBook CSS, setelah itu ke PHP dan baru ke MySQL. Mudah2an bisa cepat selesai :)
Terimakasih buat idenya gan…
Kalau bisa, mohon dihadirkan tutorial java ya gan :)
Ditunggu saja y gan… :)
Mungkin setelah tutorial web programming sudah cukup lengkap baru saya buat tutorial Java-nya…
Gan buatin pdfnya dung :3
Yup, rencana ke arah sana sudah ada gan. Tapi agar lebih lengkap saya berencana membuat eBook khusus yang membahas detail tentang MySQL. Tapi mungkin mesti menunggu beberapa bulan lagi.. :)
tanya Pak, kalo field tabelnya banyak dan yang harus diinputkan banyak juga, adakah cara otomatis agar tidak usah menginputkan satu persatu? trims
Oh iya, bisa.. salah satunya dengan memindahkan data yang ingin diinput kedalam sebuah file teks. Lebih lengkapnya bisa kesini: Tutorial MySQL: Menambahkan data dari File
$query=mysql_query("update tabel_nilai_sikap set predikat = if (nilai_raport > '85', A, if (nilai_raport > '70', B, if (nilai_raport > '49', C, D)))");
apa yang salah dengan kode di atas ya? tidak berjalan :(
jadi saya ingin memasukkan hasil penghitungan if ke dalam field predikat dari field nilai raport pada tabel nilai sikap
mohon bantuannya
Sepertinya cuma kurang tanda kutip untuk nilai huruf 'A', 'B', 'C' dan 'D'. Bisa dicoba dengan query berikut:
UPDATE tabel_nilai_sikap SET predikat = if( nilai_raport > '85', 'A', if( nilai_raport > '70', 'B', if( nilai_raport > '49', 'C', 'D' ) ) )
Semoga bisa membantu :)
terima kasih, sudah bisa :)
kalo ingin menghitung rata2 nilai pada php seperti pada excel, rumusnya gimana ya?
misal tabelnya isinya seperti ini :
nis | nilai 1 | nilai 2 | nilai 3 | nilai 4 | rata2
1234 80 80 70 70 75
1235 80 75 77.5
1236 70 70
kalo di excel kan jika hanya ada 1 nilai, maka rata2nya ya hanya satu nilai itu, seperti pada baris ke-3, bagaiman kalo di php agar rata2nya bernilai 70? bukan 70/4?
terima kasih
Angka2 tersebut didapat dari mana ya? kalau angkanya ada di dalam array, kita tinggal menggunakan fungsi bawaah PHP: array_sum() untuk menambahkan semua isi array, dan fungsi count() untuk menghitung banyak element array.
Contohnya kira2 seperti ini:
Mudah2an bisa membantu :)
terima kasih sebelumnya
nilainya diambil dari tabel mysql, nama field tabelnya adalah nh1, nh2, nh3, nh4, nh5, nh6, dan rata2nh
<?php
$rata2nh=0;
$bil = array ($nh1, $nh2, $nh3, $nh4, $nh5, $nh6);
$jumlah=0;
for ($i = 0; $i
saya pakai rumus itu, tapi hasilnya belum sesuai.
jadi, $nh merupakan rata2 perhitungan dari 3 nilai sebelumnya, sedangkan $rata2nh merupakan rata2 finalnya.
dalam setiap mata pelajaran, tidak semua mata pelajaran memiliki 6 nh, disitu saya tulis sampai $nh6 karena maksimal mata pelajaran memiliki 6 nh.
nah jika suatu mata pelajaran hanya memiliki 3 nh, yang berarti rata2nya hanya menjumlahkan ($nh1+$nh2+$nh3)/3 bukan ($nh1+$nh2+$nh3)/6,
bagaimana itu ya?
Mohon maaf, sepertinya kode programnya terfilter oleh wordpress (untuk keamanan). Lebih lanjut bisa menghubungi saya di [email protected] :)
Mas mau tanya, kalo insert data dari satu form dan disimpan menjadi beberapa record di satu tabel dalam satu waktu bisa kah mas?
Permisi mas saya mau tanya, saya punya 3 buah tabel transaksi,detailtransaksi dan alatcamping.
untuk transaki ada primary key kode transaksi, untuk alatcamping ada kode_merk,kedua primary key tsb jadi foreign key ke tabel detailtransaksi, gimana ya caranya supaya kode_transaksi sama kode_merk nya datanya boleh sama karena untuk penyewaan alat camping kan bisa lebih dari satu barang ?? terimakasih .
Terima kasih, Bang, sebelumnya.
Saya mau nanya, nih. Jadi, saya kan menambah kolom/field baru, nah, menambah data ke dalam kolom/field itu bagaimana? Trims
Untuk menambahkan data ke kolom baru, kita menggunakan query UPDATE. Tutorialnya bisa kesini: https://www.duniailkom.com/tutorial-belajar-mysql-update-data-tabel-dengan-query-update/
Misi min,saya mau tnya, saya ingin menampilkan satu kolom yang berisi dari banyak data dari banyak kolom dari beda table,mohon bantuannya ya utk postgresql
Postgresql saya belum pernah coba gan, tp seharusnya query Postgresql mirip2 seperti MySQL,…
gan mau tanyak. dalam satu database, apa bisa buat 5 table sekaligus ?
buatnya di query.
Di dalam 1 database, bisa berisi dari ratusan bahkan ribuan tabel.
Tapi kalau buatnya sekaligus di 1 query akan jadi terlalu rumit, sebaiknya dipecah saya querynya. Satu tabel di dalam satu perintah query.
Ka mau tanya,Kalau mau menambahkan insert ke database gimana ya?Saya mau menambahkan data mahasiswa tetapi tidak berjalan
$query=insert into VALUES('$no_proposal','$jenis_priposal','$judul_proposal');
$hasil=mysql_query($query);
Eror disininyaa ka:(
Itu isi variabel $query tidak dikasih tanda kutip, kemudian nama tabelnya juga tidak ada, misalnya seperti ini:
$query="insert into nama_tabel VALUES('$no_proposal','$jenis_priposal','$judul_proposal')";
$hasil=mysql_query($query);
Saran saya coba cari buku tentang PHP-MySQL, kalau baca2 dari tutorial di internet, jarang yang membahasnya secara terstruktur…
mas untuk menambahkan row form dengan cara apa yah?
"Row form" ini maksudnya seperti apa y?
min gimana caranya kalau mau input kode matkulnya cuman citra. terus data nama matakuliahnya banyak?
seperti ini
('citra','matek','2','komputer');
('citra','rangkaian','2','komputer');
('citra','biolagi','3','ipa');
('citra','fisika','2','ipa');
tolong petunjuknya
Khusus untuk contoh tabel yang ada di tutorial ini, hal tersebut tidak bisa dijalankan. Karena kolom matkul saya set sebagai PRIMARY KEY. Artinya tidak boleh ada dua data yang sama (hanya bisa 1 data CITRA).
Solusinya tabel tersebut harus di edit (ALTER) dan PRIMARY KEY-nya dihapus.
Tutorial lengkapnya procedure routine untuk insert data ke beberapa tabel dengan PK dan FK dong mas. Web ini rujukan bagi orang yang gak punya duit buat sekolah IT ^_____________^ makasih :)
Request di tampung ya, tp kemungkinan besar akan saya bahas di eBook MySQL Uncover (saat ini sedang dalam penulisan), soalnya perlu pembahasan yang cukup banyak…
tambahin lagi ya biar bertambah banyak ilmu saya setelah membuka website ini
Tutor untuk membuatnya melalui phpmyadmin gak ada ya bang?
Saat ini masih belum tersedia di duniailkom..
Boleh tanya ga,
Klo misalkan saya punya 4 tabel, customer, transaksi, motor, kredit, nah di tabel transaksi itu ada semua primary key dari tiap2 tabel yang brrti jadi foreign key, ketika saya input data di tabel transaksi dengan id customernya sama (misal: insert into values (TR004,kredit,2000,CST001), (TR005,kredit,2000,CST001), )
Trus sampe banyak ada 10 data dengan fk_customer yang sama (CST0001) , itu cara ngatasinnya biar ga error gimana ya ? Mohon bantuan dan ilmunya
Seharusnya g akan error, kecuali di tabel transaksi ada kolom primary key yang sama (berulang). Kalau kolom foreign key yang berulang, itu g ada masalah. Silahkan di coba saja.
kak, kalau semisal saya sudah membuat tabel terus udah saya input datanya nah saya nambah satu field lagi. permasalahan saya kalau semisal mau input data nya pake syntax yg mana ya kak? soalnya saya udah cari2 tapi blm ketemu
mas saya mau tanya, kalau import data basenya itu gimana ya ?
mohon bantuannya.
Kalau secara manual, bisa menggunakan perintah mysqldump, tutorialnya bisa kesini: https://www.duniailkom.com/tutorial-belajar-mysql-cara-membackup-database-mysql-menggunakan-mysqldump/
mas ada contoh untuk insert langsung ke 3 table ga? misal sy punya table t_dosen, t_mata_kuliah, t_dosen_mata_kuliah untuk many to manynya. itu kira2 gimana ya mas querynya
Setahu saya MySQL tidak mendukung 3 query INSERT dalam 1 kali perintah, itu harus dipisah2 ke dalam 3 kali query INSERT. Atau 3 query INSERT itu bisa dijalankan dalam transaction, seperti contoh berikut:
START TRANSACTION;
INSERT INTO table1 VALUES ('1','2','3');
INSERT INTO table2 VALUES ('bob','smith');
INSERT INTO table3 VALUES ('alex','sma 1');
COMMIT;
Untuk saat ini tutorial tentang transaction baru tersedia di buku MySQL Uncover duniailkom…
Thanks Mas, nanti lebih detailnya sy coba cari buku duniailkom di gramedia
Untuk saat ini buku duniailkom masih belum tersedia di toko buku nih, masih saya cetak sendiri dan dikirim via JNE atau tersedia juga dalam versi eBook.
Apabila berminat bisa kontak saya di [email protected]
gan gmna caranya melakukan 1 query UPDATE dan INSERT secara bersamaan pada satu table ,
saya punya 2 table teporer dan master, jika record di master tidak ada dari temporer maka terjadi insert dan jika ada recordnya maka update , dan dengan kondisi table temporer berfariasi recordnya,
Bisa pakai klausa "ON DUPLICATE KEY UPDATE" dari query INSERT. Jadi ketika proses INSERT dan ternyata datanya sudah ada (dicek dari primary key), maka yang terjadi adalah proses UPDATE. Berikut contoh querynya:
INSERT contoh_insert_6 VALUES (11, 'kuning', 20190201) ON DUPLICATE KEY UPDATE a = 12, b = 'kuning', c = 20190201;
Selamat pagi mas,
mau bertanya mas.. saya mempunyai table berisikan 3 kolom.. 1. karyawan ID 2. Nama 3. tabungan.
apakah bisa kita INSERT atau UPDATE pada kolom 3 sesuai dengan karyawan ID yang ada?
Terima kasih sebelumnya
Selamat Siang gan, saya mau tanya nih lagi belajar.
Saya mempunyai 2 tabel. Tabel 1 berisi id,nama,email,phone,old,program.
Tabel 2 berisi id, old1,program1.
Tabel 2 datanya sdh ada (untuk combobox) sedangkan tabel 1 kosong karena itu untuk form registrasi.
Bagaimana supaya tabel 2 terinput juga ke tabel 1 saat pengisian form registrasi.
Mohon pencerahannya agan-agan. Terima kasih.
Ini menggunakan PHP kan mas? nanti waktu pemrosesan form bisa di eksekusi 2 kali query, satu untuk setiap tabel. Atau jika mau yang "lebih ribet", bisa menggunakan trigger di MySQL.
misalkan kita mempunya 3 kolom A,B,C dan sudah kita isi datanya, lalu kita tambah 1 kolom D, query mengisi data ke kolom D yang baru dibuat tersebut gimana ? terima kasih.
Bisa pakai query UPDATE: https://www.duniailkom.com/tutorial-belajar-mysql-update-data-tabel-dengan-query-update/
Bos mau tanya cara insert data ke suatu tabel yg diman didalam tabel tersebut sudaha adata 2 atau lebih dan sya ingin inser data baru di antara 2 data tersebut,,, minsalnya saya punya tabel siswa,
Dan ssbelumnya saya sudah inser data Budi dan Ani,,
Tp saya ingin insert data baru yaitu gunawan di antara budi dan ani, iti gimana caranya bos,,,,
Di dalam database urutan baris tidak relevan sama sekali, sehingga tidak bisa diinput seperti itu. Umumnya isi tampilan tabel di sortir berdasarkan kolom, misalnya diurutkan dari abjad nama, nilai tertinggi, dst.
Jika ingin membuat sebuah urutan, bisa ditambah 1 kolom lagi misalnya no_urut.
Mohon bantuannya, sebelumnya saya sudah input biodata di aplikasi web 1 dan sudah tersimpan di database, lalu saya export databasenya khusus yang tabel biodata saja dan sudah saya simpan di google drive, Lalu bagaimana caranya di aplikasi web 2 (masih aplikasi yang sama) saya ingin membuat tombol singkron yang langsung mendownload file sql yang di google drive dan langsung terimport ke tabel biodata yang didatabase aplikasi web 2 ?
1. Aplikasi web menggunakan php
2. Web servernya menggunakan xampp di windows
Terimakasih.
Maksudnya "langsung mendownload file sql yang di google drive dan langsung terinsert ke tabel biodata yang didatabase aplikasi web 2" :)
Saya belum pernah coba, tapi kalau yang seperti ini harus lewat Google Drive API. Lengkapnya bisa kesini: https://developers.google.com/drive/api/v3/about-sdk
Dan sepertinya Google Drive tidak bisa diakses langsung dari XAMPP, karena Google Drive butuh proses authentifikasi secara online (hak akses). Ini untuk memastikan tidak sembarang aplikasi / web bisa mengambil data dari Google Drive.
kalo ga pake google drive dan pake cloud lain yang bisa langsung download kode phpnya seperti apa mas? download file sql dari link dan langsung insert ke database.
Mohon mas bantuannya.
Saya kurang tau gimana caranya, yang jelas kalau menggunakan cloud, itu harus di akses dari API. Mesti cari info apakah cloud tersebut menyediakan API dan apakah boleh membuat proses download otomatis seperti itu.
Btw, kenapa tidak langsung akses database saja dari web 1 ke web 2? Itu jauh lebih simple. Atau mungkin di web 1 menyediakan fitur langsung download tanpa harus ke cloud terlebih dahulu.
Artikelnya sangat membantu mas. Ohiya saya mau tanya sekalian ini untuk menghapus data yg sudah di insert into gmna ya? Saya salah memasukan data nya
Bisa pakai query UPDATE, lengkapnya bisa kesini: https://www.duniailkom.com/tutorial-belajar-mysql-update-data-tabel-dengan-query-update/
Untuk duplicate harus primary key ya mas,
Kerna primary key sudah saya buat di kolom id sebagai Auto incriment,, sedangkan saya ingin cek kondisi duplicatenya di kolom lain
Kalau maksudnya ingin membatasi agar sebuah kolom tidak bisa diisi data yang berulang (ganda), bisa ditambah key UNIQUE sewaktu pembuatan kolom tersebut. Contoh:
CREATE TABLE nama_tabel(
nama_kolom data_type UNIQUE,
nama_kolom data_type
);
mau tanya om
bisa ngga hasil query di insert ke tabel
misal
ada tabel propinsi (selalu kosong )
field nya namaprop,jumlah
tabel status
misal nya select provinsi,count(*) as jumlah from status where foa=1 group by provinsi
hasil nya di insert ke tabel provinsi cara nya gimana om?
Kak bisa kasih contoh untuk insert data ke dua tabel ?
Apabila maksudnya ingin insert ke dua tabel dalam 1 perintah query, setahu saya itu tidak bisa.
Umumnya tetap dilakukan dengan 2 kali perintah (1 untuk setiap tabel). Jika dijalankan dari PHP, tinggal jalankan 2 kali fungsi mysqli_query().
Bantu Banget pas lagi Kuliah Online
Mau nanya min, misalnya saya punya 2 kolom, kode dan nama. Setelah itu saya memasukkan 2 nilai ke kolom kode secara bersamaan, dan lalu memasukkan 2 nilai ke kolom nama secara bersamaan. Hasilnya menjadi tidak sejajar, dan hasilnya menjadi 4 baris…nah pertanyaannya gimana supaya nilainya bisa sejajar?
Gan mau tanya kalau pas insert tablenya tapi ada error "a foreign key constraint fails"
Bgaimna cara perbaikannya gan
Berarti ada kolom yang nilainya terhubung ke tabel lain (kolom primary key). Solusinya, kolom tersebut harus diisi dengan nilai yang sudah ada di kolom primary key tabel induk.
Bro mau nanya dong cara biar tidak terjadi duplicate entry gimana ya?. Misal nama id tersebut akan melakukan 2 hal.
Contoh: id 1 mempunyai 2 hal yang akan dikerjakan.
Kan otomatis diketik
('1','ngeprint'),
('1','ngetik');
Nah otomatis kan terjadi eror duplikasi tuh
Cara biar dipaksa gitu agar 1 id terdapat 2 data yg berbeda gmna ya?
Kalau kolom pertama di set sebagai auto-increment, itu otomatis akan bertambah (tidak akan bentrok), selama nilainya digenerate dari MySQL (tidak diinput manual).
Tapi kalau nilainya memang harus diinput manual, maka pembatasan seperti itu harus dilakukan dari bahasa pemrograman, karena fungsi utama MySQL hanya tempat menyimpan data saja. Misal untuk web, itu bisa di atur lewat bahasa PHP.
Alternatif lain bisa juga lewat stored procedure di MySQL, tapi ini relatif lebih susah.
kalo aku ya lw bikin database baru nilai 1 itu nanti jd FK, -> nah hubunginnya pakai JOIN
subrek my channel yt
maaf mau tanya, mengapa setelah saya tambahkan constraint dan foreign key pada tabel, tidak bisa menambahkan insert data ya? pesannya seperti ini:
Cannot add or update a child row: a foreign key constraint fails (`relationship`.`matkul`, CONSTRAINT `fk_matkul_mahasiswa` FOREIGN KEY (`id_mahasiswa`) REFERENCES `matkul` (`id_matkul`) ON DELETE CASCADE ON UPDATE CASCADE)
Terima Kasih