Basis Data adalah kumpulan data terstruktur yang disimpan secara elektronik. Konsep database dikenal nenek moyang kita bahkan ketika tidak ada komputer, namun membuat dan memelihara database tersebut adalah pekerjaan yang sangat membosankan. Dalam database manual, katakan 100 halaman, jika Anda harus mencari semua karyawan yang gajinya kurang dari 10rb , coba bayangkan betapa sulitnya itu.
Di dunia sekarang ini Anda tidak bisa lepas dari Database . Saat ini jutaan database bekerja di seluruh dunia untuk menyimpan dan mengambil data dari segala jenis baik itu data strategis, catatan karyawan, atau teknologi web.
Basis data sering disebut sebagai proses back-end, karena tidak terlihat oleh pengguna akhir atau Pengguna Akhir berinteraksi langsung dengan database. Mereka bekerja pada proses front-end yaitu, PHP , VB , ASP.NET , dll. dan meminta front end untuk menangani database di back-end.
Ada beberapa server database dan klien yang tersedia seperti Oracle , MySQL , MySQLi , MariaDB, MongoDB dll. Sintaks dari semua ini kurang lebih sama. Menguasai satu berarti mendapatkan kendali atas sebagian besar dari mereka dan mempelajari kueri database sangat mudah dan menyenangkan.
Mari kita mulai dengan query sederhana pada database. Kami akan menggunakan MySQL yang dibundel dengan sebagian besar Linux distribusi secara default, Anda dapat menginstalnya secara manual dari repositori, jika tidak diinstal secara default dalam kasus Anda.
Ya, kueri basis data adalah bagian sederhana dari kode yang dikirim ke basis data untuk mendapatkan hasil yang disesuaikan dan disempurnakan, sesuai kebutuhan.
Instal Basis Data MySQL
Gunakan “yum ” atau “sesuai ” manajer paket untuk menginstal MySQL Basis Data.
# yum install mysql mysql-client mysql-server (on Yum based Systems) # apt-get install mysql mysql-client mysql-server (on Apt based Systems)
Mulai MySQL
Mulai MySQL layanan basis data sebagai:
# service mysqld start or # service mysql start
Menginstal dengan baik MySQL database akan membawa Anda ke konfigurasi tempat Anda diminta untuk menyiapkan admin sandi, dll. Setelah selesai menginstal dan memulai server, buka MySQL . Anda cepat.
# mysql -u root -p
Ganti root dengan nama pengguna yang Anda konfigurasikan dan masukkan sandi saat diminta, jika kredensial login benar, Anda akan berada di MySQL prompt dalam sekejap mata Anda.
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 195 Server version: 5.5.31-0+wheezy1 (Debian) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Sekarang melakukan pertanyaan pada prompt ini sangat mendidik dan menyenangkan.
Buat teknologi database
mysql> create database tecmint ; Query OK, 1 row affected (0.02 sec) mysql>
Catatan :Ini melaporkan bahwa kueri itu benar, berarti basis data telah dibuat. Anda dapat memverifikasi database yang baru Anda buat sebagai.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tecmint | | test | +--------------------+ 9 rows in set (0.00 sec) mysql>
Catatan :Perhatikan database Anda pada output di atas.
Pilih Basis Data
Sekarang Anda perlu memilih database untuk mengerjakannya.
mysql> use tecmint; Database changed mysql>
Membuat Tabel di MySQL
Di sini kita akan membuat tabel yang bertuliskan “minttec ” dengan tiga bidang sebagai:
mysql> CREATE TABLE minttec ( -> id Int(3), -> first_name Varchar (15), -> email Varchar(20) -> ); Query OK, 0 rows affected (0.08 sec) mysql>
Catatan :Kueri di atas mengatakan Oke yang berarti tabel dibuat tanpa kesalahan. Untuk memverifikasi tabel, jalankan kueri di bawah ini.
mysql> show tables; +-------------------+ | Tables_in_tecmint | +-------------------+ | minttec | +-------------------+ 1 row in set (0.00 sec) mysql>
Semuanya berjalan baik-baik saja sampai sekarang. Ya! Anda dapat melihat kolom yang Anda buat di tabel “minttec ” sebagai:
mysql> show columns from minttec; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | first_name | varchar(15) | YES | | NULL | | | email | varchar(20) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) mysql>
Itu tidak kurang dari sihir. Pokoknya saya akan memberi tahu Anda tentang jenis-jenis deklarasi dan artinya.
- Int adalah Bilangan Bulat
- Varchar adalah char memiliki panjang variabel seperti yang didefinisikan. Nilai setelah Jenis adalah panjang bidang hingga tempat penyimpanan data.
OK sekarang kita perlu menambahkan kolom yang mengatakan 'last_name ‘ setelah kolom ‘nama_depan ‘.
mysql> ALTER TABLE minttec ADD last_name varchar (20) AFTER first_name; Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0
Sekarang, verifikasi di tabel Anda.
mysql> show columns from minttec; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | first_name | varchar(15) | YES | | NULL | | | last_name | varchar(20) | YES | | NULL | | | email | varchar(20) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) mysql>
Tambahkan Kolom di MySQL
Sekarang kita akan menambahkan kolom di sebelah kanan katakanlah kolom ‘negara ' di sebelah kanan email .
mysql> ALTER TABLE minttec ADD country varchar (15) AFTER email; Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql>
Verifikasi kueri penyisipan kolom di atas.
mysql> show columns from minttec; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | first_name | varchar(15) | YES | | NULL | | | last_name | varchar(20) | YES | | NULL | | | email | varchar(20) | YES | | NULL | | | country | varchar(15) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 5 rows in set (0.00 sec) mysql>
Sisipkan Nilai di Bidang
Bagaimana dengan menyisipkan nilai ke bidang?
mysql> INSERT INTO minttec VALUES ('1' , 'Ravi' , 'Saive' , '[email protected]' , 'India' ); Query OK, 1 row affected (0.02 sec) mysql>
Bagaimana kalau menyisipkan lebih dari 1 nilai pada satu waktu dalam tabel di atas.
mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email protected]' , 'India' ), ('3' , 'user' , 'singh' , '[email protected]' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email protected]' , 'India' ); Query OK, 3 rows affected (0.05 sec) Records: 3 Duplicates: 0 Warnings: 0
Verifikasi penyisipan di atas.
mysql> select * from minttec; +------+------------+-----------+-------------------+---------+ | id | first_name | last_name | email | country | +------+------------+-----------+-------------------+---------+ | 1 | Ravi | Saive | [email protected] | India | | 2 | Narad | Shrestha | [email protected] | India | | 3 | user | singh | [email protected] | Aus | | 4 | tecmint | [dot]com | [email protected] | India | +------+------------+-----------+-------------------+---------+ 4 rows in set (0.00 sec) mysql>
Hapus Nilai di Bidang
Katakanlah entri ketiga pada output di atas tidak valid dan kita perlu menghapus entri ketiga.
mysql> DELETE FROM minttec WHERE id = 3; Query OK, 1 row affected (0.02 sec)
Verifikasi operasi di atas.
mysql> select * from minttec; +------+------------+-----------+-------------------+---------+ | id | first_name | last_name | email | country | +------+------------+-----------+-------------------+---------+ | 1 | Ravi | Saive | [email protected] | India | | 2 | Narad | Shrestha | [email protected] | India | | 4 | tecmint | [dot]com | [email protected] | India | +------+------------+-----------+-------------------+---------+ 3 rows in set (0.00 sec)
Perbarui Nilai di Bidang
Id (=4) perlu diedit.
mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql>
Verifikasi kueri di atas.
mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql>
Catatan :Permintaan di atas, seperti yang dilakukan bukanlah ide yang baik. Ini akan mengubah id menjadi ‘4 ' di mana pun nama depannya adalah 'tecmint' . Itu selalu merupakan ide yang baik untuk menggunakan lebih dari satu kolom dengan klausa where untuk mendapatkan kesalahan minimal, seperti:
mysql> UPDATE minttec SET id = 6 WHERE first_name = 'tecmint'AND last_name = '[dot]com'; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql>
Hapus Kolom di MySQL
Biarlah kita perlu drop (menghapus) kolom yang kita anggap tidak penting, sebut saja ‘negara ' di sini.
mysql> ALTER TABLE minttec drop country; Query OK, 3 rows affected (0.15 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql>
Verifikasi tabel.
mysql> select * from minttec; +------+------------+-----------+-------------------+ | id | first_name | last_name | email | +------+------------+-----------+-------------------+ | 1 | Ravi | Saive | [email protected] | | 2 | Narad | Shrestha | [email protected] | | 6 | tecmint | [dot]com | [email protected] | +------+------------+-----------+-------------------+ 3 rows in set (0.00 sec) mysql>
Ganti Nama Tabel di MySQL
Tidakkah menurut Anda nama tabel kami “minttec ” tidak terlalu relevan. Bagaimana kalau mengubahnya menjadi tecmint_table .
mysql> RENAME TABLE minttec TO tecmint_table; Query OK, 0 rows affected (0.03 sec) mysql>
Mencantumkan semua Tabel
Lihat semua tabel di bawah database saat ini.
mysql> show tables; +-------------------+ | Tables_in_tecmint | +-------------------+ | tecmint_table | +-------------------+ 1 row in set (0.00 sec) mysql>
Tabel telah diubah namanya. Sekarang ambil cadangan MySQL di atas database, dalam satu baris perintah tanpa alat canggih. Jalankan kode di bawah ini di terminal Anda dan bukan di prompt mysql.
# mysqldump -u root -p tecmint > tecmint.sql check the dumped file on your desktop which would have contents something like -- MySQL dump 10.13 Distrib 5.5.31, for debian-linux-gnu (i686) -- -- Server version 5.5.31-0+wheezy1 -- Dump completed on 2013-09-02 12:55:37
Itu selalu merupakan ide yang baik untuk memelihara Cadangan database MySQL. Memulihkan MySQL yang dicadangkan Data lagi-lagi merupakan baris kode sederhana yang perlu Anda jalankan di terminal prompt Anda dan bukan di prompt mysql Anda.
Tapi, tunggu dulu kami akan menghapus database untuk memverifikasi apakah pemulihan kami sempurna.
Menghapus Basis Data
mysql> drop database tecmint; Query OK, 1 row affected (0.02 sec)
Periksa database 'tecmint' di server database Anda.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | my_database | | mysql | | performance_schema | | phpmyadmin | | sisso | | test | +--------------------+ 7 rows in set (0.00 sec) mysql>
Besar! Basis datanya hilang, tetapi kami tidak perlu khawatir, kami memiliki cadangannya.
Memulihkan Basis Data
Untuk memulihkan database yang hilang, jalankan perintah berikut.
# mysql -u root -p tecmint < tecmint.sql Enter password: ERROR 1049 (42000): Unknown database 'tecmint'
OOPS ! Terjadi kesalahan, hei, kami belum membuat database tecmint . Jadi, buka prompt mysql Anda dan buat database 'tecmint ‘.
mysql> create database tecmint; Query OK, 1 row affected (0.00 sec) mysql>
Sekarang saatnya menjalankan perintah restore di prompt shell Anda (secara ketat).
# mysql -u root -p tecmint < tecmint.sql Enter password:
Verifikasi database Anda.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tecmint | | test | +--------------------+ 8 rows in set (0.00 sec)
Verifikasi isi database.
mysql> show tables from tecmint; +-------------------+ | Tables_in_tecmint | +-------------------+ | tecmint_table | +-------------------+ 1 row in set (0.00 sec) mysql>
Verifikasi konten tabel Anda yang dipulihkan.
mysql> select * from tecmint_table; +------+------------+-----------+-------------------+ | id | first_name | last_name | email | +------+------------+-----------+-------------------+ | 1 | Ravi | Saive | [email protected] | | 2 | Narad | Shrestha | [email protected] | | 6 | tecmint | [dot]com | [email protected] | +------+------------+-----------+-------------------+ 3 rows in set (0.00 sec)
Ini bukan akhir yang pasti, kami akan membahas konsep kunci utama , kunci asing , beberapa tabel dan menjalankan kueri menggunakan PHP simple sederhana script di bagian artikel selanjutnya.
Jangan lupa beri tahu kami , bagaimana perasaan Anda saat membaca artikel tersebut. Komentar Anda sangat dihargai. Tetap Sehat dan Disesuaikan , tetap terhubung ke Tecmint .