Selasa, November 18, 2008

MySQL

MySQL adalah server basis data yang kompak dan kecil yang ideal untuk banyak aplikasi basis data on-line. MySQL mendukung SQL standar (ANSI), meskipun tidak selengkap subset yang menjadi standar seperti PostgreSQL.
MySQL dapat dijalankan di banyak platform dan memiliki kemampuan multithreading pada server UNIX. Pada lingkungan bukan UNIX, MySQL dapat dijalankan sebagai servis pada Windows NT dan sebagai proses normal pada mesin Windows 95/98. MySQL adalah server DBMS relasional SQL yang mendukung multithreading dan multi-user. MySQL mengimplementasikan client/server yang terdiri dari sebuah daemon server (servis di server) dan banyak program dan pustaka klien yang berbeda-beda.
MySQL dulunya dikembangkan tahun 1996 untuk menyediakan server SQL yang dapat menangani transaksi dalam basis data yang sangat besar dengan kecepatan tinggi.

Memulai Dengan MySQL
Program client yang biasanya digunakan untuk mengakses server MySQL di Linux adalah program mysql. Program interaktif ini mengijinkan Anda mengakses server MySQL, menjalankan query dan menyaksikan hasilnya.
Untuk connect ke server, biasanya dibutuhkan username MySQL ketika Anda menjalankan mysql, dan biasanya juga password. Jika servernya berbeda dari komputer tempat Anda login, Anda juga harus menuliskan hostname-nya. Contohnya seperti berikut :
$ mysql –h host –u user –p
Enter password: ********
Tanda ***** menunjukkan password Anda, masukkanlah ketika mysql menampilkan Enter password:. Jika Anda berhasil login, Anda akan melihat informasi introduction yang diikuti oleh prompt mysql> :
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 459 to server version: 3.22.20a-log

Type 'help' for help.

mysql>
Prompt ini menunjukkan bahwa mysql siap menerima perintah.
Beberapa instalasi MySQL memperbolehkan user untuk connect sebagai user ‘anonymous’ (tak bernama). Dalam hal ini, Anda dapat connect ke server tersebut dengan mysql tanpa option apa-apa.
Setelah Anda berhasil terhubung, Anda dapat disconnect setiap saat dengan menuliskan QUIT pada prompt mysql.

Memasukkan Query
Setelah Anda connect ke server MySQL Anda dapat mulai menuliskan query. Contohnya :
mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+
| version() | CURRENT_DATE |
+--------------+--------------+
| 3.22.20a-log | 1999-03-19 |
+--------------+--------------+
1 row in set (0.01 sec)
mysql>
Query ini mengilustrasikan beberapa hal tentang mysql :
• Sebuah perintah umumnya terdiri dari sebuah pernyataan SQL diakhiri dengan tanda ; (titik koma).
• Ketika Anda membuat perintah, mysql mengirimkannya ke server untuk dieksekusi dan menampilkan hasilnya, kemudian menampilkan mysql> lain untuk menunjukkan bahwa dia sudah siap untuk perintah lain.
• mysql menampilkan output query sebagai tabel. Baris pertama berisi label untuk kolom, dan baris-baris selanjutnya adalah hasil query-nya. Normalnya, label kolom adalah nama dari kolom yang Anda ambil/fetch dari tabel database. Jika Anda mengambil nilai dari ekspresi dan bukan kolom tabel (seperti contoh di atas), mysql memberi label kolom menggunakan ekspresi itu sendiri.
• mysql menunjukkan jumlah baris yang dikembalikan, dan berapa lama waktu yang dibutuhkan untuk mengeksekusi, yang memberikan Anda gambaran kasar dari performa server. Nilai ini tidak terlalu tepat karena mereka menunjukkan wall clock time (bukan CPU time), dan karena mereka dipengaruhi oleh banyak faktor seperti beban server dan kelambatan network.

Perintah/keyword juga dapat dituliskan baik huruf besar maupun huruf kecil. Jadi query berikut ini hasilnya sama :
mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;

Contoh berikut mendemonstrasikan bahwa Anda dapat menggunakan mysql sebagai kalkulator sederhana :
mysql> SELECT SIN(PI()/4), (4+1)*5;
+-------------+---------+
| SIN(PI()/4) | (4+1)*5 |
+-------------+---------+
| 0.707107 | 25 |
+-------------+---------+

Perintah-perintah yang sudah dicontohkan di atas relatif pendek, hanya pernyataan satu baris. Anda bahkan dapat memasukkan banyak pernyataan pada sebuah baris. Cuma tinggal mengakhiri tiap pernyataan dengan tanda titik-koma :
mysql> SELECT VERSION(); SELECT NOW();
+--------------+
| version() |
+--------------+
| 3.22.20a-log |
+--------------+

+---------------------+
| NOW() |
+---------------------+
| 1999-03-19 00:15:33 |
+---------------------+

Sebuah perintah tidak harus diberikan pada sebuah baris, jadi perintah yang panjang yang memerlukan beberapa baris bukan masalah. mysql menentukan apakah pernyataan Anda berakhir dengan mencari titik-koma, tidak dengan mencari akhir dari baris input. (Dengan kata lain, mysql menerima input berformat bebas, ia mengumpulkan baris input tetapi tidak mengeksekusinya hingga menemukan titik-koma.)
Berikut ini contoh pernyataan banyak baris sederhana :
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+--------------------+--------------+
| USER() | CURRENT_DATE |
+--------------------+--------------+
| joesmith@localhost | 1999-03-18 |
+--------------------+--------------+

Pada contoh ini, perhatikan bagaimana prompt berubah dari mysql> menjadi -> setelah Anda memasukkan baris pertama dari query banyak baris. Inilah cara mysql mengindikasikan bahwa ia tidak menemukan pernyataan yang lengkap dan ia menunggu sisanya. Jika Anda memutuskan untuk tidak mengeksekusi perintah yang sedang dalam proses pemasukannya, batalkanlah dengan mengetikkan \c :
mysql> SELECT
-> USER()
-> \c
mysql>

Tabel berikut ini menunjukkan tiap prompt yang mungkin Anda temukan dan artinya:
Prompt
Arti
mysql> Siap untuk perintah baru
-> Menunggu baris berikut dari perintah banyak baris
'> Menunggu baris berikut, memasukkan string yang dimulai oleh petik tunggal ( ‘ )
"> Menunggu baris berikut, memasukkan string yang dimulai oleh petik ganda ( “ )

Pernyataan banyak baris biasanya terjadi ‘tidak sengaja’ ketika Anda bermaksud untuk memberi perintah pada satu baris, tetapi lupa untuk mengakhirinya dengan titik-koma. Pada kasus ini, mysql menunggu input berikutnya :
mysql> SELECT USER()
->
Jika ini terjadi, kemungkinan besar mysql sedang menunggu titik-koma. Masukkan sebuah titik-koma untuk mengakhiri pernyataan, dan mysql akan mengeksekusinya :
mysql> SELECT USER()
-> ;
+--------------------+
| USER() |
+--------------------+
| erik@localhost |
+--------------------+

Tanda prompt ‘> dan “> terjadi ketika pemasukan string. Pada MySQL, Anda dapat menulis string yang diawali dan diakhiri oleh karakter ‘ atau “ (‘halo’ atau “halo”), dan mysql memperbolehkan Anda memasukkan string pada banyak baris. Ketika Anda melihat prompt ‘ atau “, berarti Anda sudah memasukkan baris yang berisi string yang dimulai dengan karakter ‘ atau “, tetapi Anda belum memasukkan tanda petik penutup yang sesuai.

Contoh Query Yang Umum
Berikut ini diberikan contoh tentang bagaimana memecahkan masalah yang umum ditemukan pada MySQL.
Beberapa contoh menggunakan tabel shop unuk menyimpan harga dari tiap article untuk penjual tertentu. Dianggap bahwa tiap penjual memiliki harga tetap untuk tiap article, lalu (item,trader) adalah kunci primer untuk record-nya.
CREATE TABLE shop (
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
dealer CHAR(20) DEFAULT '' NOT NULL,
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,
PRIMARY KEY(article, dealer));

INSERT INTO shop VALUES
(1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),(3,'C',1.69),
(3,'D',1.25),(4,'D',19.95);

Kemudian, contoh datanya adalah :
SELECT * FROM shop

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0001 | A | 3.45 |
| 0001 | B | 3.99 |
| 0002 | A | 10.99 |
| 0003 | B | 1.45 |
| 0003 | C | 1.69 |
| 0003 | D | 1.25 |
| 0004 | D | 19.95 |
+---------+--------+-------+

Untuk melihat nomer article terbesar, Anda dapat menggunakan :
SELECT MAX(article) AS article FROM shop

+---------+
| article |
+---------+
| 4 |
+---------+

Untuk menemukan baris yang berisi nilai maximum untuk kolom tertentu, pada ANSI SQL hal ini dapat mudah dilakukan dengan subquery :
SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop)

Pada MySQL (yang tidak memiliki subquery), lakukanlah dalam 2 langkah :
1. Ambil nilai harga (price) maximum dari tabel dengan pernyataan SELECT.
2. Menggunakan nilai ini, buatlah query sebenarnya :
SELECT article, dealer, price
FROM shop
WHERE price=19.95
Cara lain adalah dengan mengurutkan semua baris secara descending (dari besar ke kecil) dan hanya mengambil baris pertama menggunakan kalusa spesifik LIMIT :
SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1

Catatan: Bila terdapat beberapa baris dengan nilai price maximum yang sama, cuma ditampilkan salah satu saja, yaitu yang pertama.
Untuk menunjukkan nilai maximum dari kolom per grup cuma nilainya, dapat menggunakan :
``What's the highest price per article?''

SELECT article, MAX(price) AS price
FROM shop
GROUP BY article

+---------+-------+
| article | price |
+---------+-------+
| 0001 | 3.99 |
| 0002 | 10.99 |
| 0003 | 1.69 |
| 0004 | 19.95 |
+---------+-------+

Untuk mencari dealer dengan price yang paling mahal untuk tiap article-nya, pada ANSI SQL, dapat menggunakan :
SELECT article, dealer, price
FROM shop s1
WHERE price=(SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article)

Pada MySQL, cara terbaik untuk melakukannya dengan langkah berikut :
1. Ambil daftar (article,maxprice).
2. Untuk tiap article ambil baris yang bersangkutan yang menyimpan price maximum.
Hal ini paling mudah dilakukan dengan sebuah tabel temporary :
CREATE TEMPORARY TABLE tmp (
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL);

LOCK TABLES article read;

INSERT INTO tmp SELECT article, MAX(price) FROM shop GROUP BY article;

SELECT article, dealer, price FROM shop, tmp
WHERE shop.article=tmp.article AND shop.price=tmp.price;

UNLOCK TABLES;

DROP TABLE tmp;

Jika Anda tidak menggunakan tabel TEMPORARY, Anda juga harus mengunci (LOCK) tabel tmp. Masalah ini juga dapat dilakukan dengan query tunggal, tetapi dengan menggunakan trik yang tidak efisien :
SELECT article,
SUBSTRING( MAX( CONCAT(LPAD(price,6,'0'),dealer) ), 7) AS dealer,
0.00+LEFT( MAX( CONCAT(LPAD(price,6,'0'),dealer) ), 6) AS price
FROM shop
GROUP BY article;

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0001 | B | 3.99 |
| 0002 | A | 10.99 |
| 0003 | C | 1.69 |
| 0004 | D | 19.95 |
+---------+--------+-------+

Pada MySQL Anda tidak memerlukan foreign key untuk menggabungkan (join) dua tabel. Satu hal yang tidak dilakukan MySQL adalah mengecek untuk memastikan bahwa key yang digunakan benar-benar ada pada tabel yang Anda referensi dan tidak secara otomatis menghapus baris dari tabel yang berisi definisi foreign key.
CREATE TABLE persons (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(60) NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE shirts (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
style ENUM('t-shirt', 'polo', 'dress') NOT NULL,
color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
owner SMALLINT UNSIGNED NOT NULL REFERENCES persons,
PRIMARY KEY (id)
);

INSERT INTO persons VALUES (NULL, 'Antonio Paz');

INSERT INTO shirts VALUES
(NULL, 'polo', 'blue', LAST_INSERT_ID()),
(NULL, 'dress', 'white', LAST_INSERT_ID()),
(NULL, 't-shirt', 'blue', LAST_INSERT_ID());

INSERT INTO persons VALUES (NULL, 'Lilliana Angelovska');

INSERT INTO shirts VALUES
(NULL, 'dress', 'orange', LAST_INSERT_ID()),
(NULL, 'polo', 'red', LAST_INSERT_ID()),
(NULL, 'dress', 'blue', LAST_INSERT_ID()),
(NULL, 't-shirt', 'white', LAST_INSERT_ID());

SELECT * FROM persons;
+----+---------------------+
| id | name |
+----+---------------------+
| 1 | Antonio Paz |
| 2 | Lilliana Angelovska |
+----+---------------------+

SELECT * FROM shirts;
+----+---------+--------+-------+
| id | style | color | owner |
+----+---------+--------+-------+
| 1 | polo | blue | 1 |
| 2 | dress | white | 1 |
| 3 | t-shirt | blue | 1 |
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
| 7 | t-shirt | white | 2 |
+----+---------+--------+-------+

SELECT s.* FROM persons p, shirts s
WHERE p.name LIKE 'Lilliana%'
AND s.owner = p.id
AND s.color <> 'white';

+----+-------+--------+-------+
| id | style | color | owner |
+----+-------+--------+-------+
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
+----+-------+--------+-------+

Pada pencarian dua key, MySQL belum mengoptimasikan pencarian Anda pada kombinasi dua key yang berbeda dengan OR :
SELECT field1_index, field2_index FROM test_table WHERE field1_index = '1' OR field2_index = '1'

Untuk saat ini Anda dapat memecahkan masalah ini dengan sangat efisien dengan menggunakan tabel TEMPORARY, optimasi tipe ini juga sangat bagus jika Anda menggunakan query yang sangat kompleks dimana server SQL melakukan optimasi dengan cara yang salah.
CREATE TEMPORARY TABLE tmp
SELECT field1_index, field2_index FROM test_table WHERE field1_index = '1';
INSERT INTO tmp
SELECT field1_index, field2_index FROM test_table WHERE field2_index = '1';
SELECT * from tmp;
DROP TABLE tmp;

Membuat Dan Menggunakan Database
Sekarang setelah Anda mengetahui cara memasukkan perintah, inilah waktunya untuk mengakses database.
Anggaplah bahwa Anda memiliki beberapa hewan peliharaan di rumah dan Anda ingin menyimpan beberapa informasi mengenai mereka. Anda dapat melakukannya dengan membuat tabel untuk menyimpan data Anda dan mengisinya dengan informasi yang Anda inginkan. Kemudian Anda dapat menjawab banyak pertanyaan tentang hewan Anda dengan mengambil data dari tabel tadi.
Gunakan pernyataan SHOW untuk menemukan database apa saja yang ada di server:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| tmp |
+----------+
Daftar database ini mungkin berbeda untuk komputer Anda, tetapi database mysql dan test kelihatannya selalu ada. Database mysql diperlukan karena ia menunjukkan hak akses (privileges) untuk tiap user. Database test sering menyediakan tempat bagi user untuk mencoba-coba.
Jika database test ada, cobalah untuk mengaksesnya:
mysql> USE test
Database changed

Ingat bahwa USE, seperti QUIT, tidak memerlukan titik-koma. (Anda dapat mengakhiri pernyataan seperti ini dengan titik-koma jika ingin.) Pernyataan USE ini juga spesial, yaitu harus diberikan pada baris tunggal.
Anda dapat menggunakan database test (jika Anda memiliki akses untuknya) untuk contoh-contoh berikut, tetapi segala yang Anda buat pada database ini dapat dihapus oleh orang lain yang juga dapat mengaksesnya. Karena itu, Anda mungkin dapat meminta administrator MySQL Anda untuk ijin membuat database Anda sendiri. Misalkan Anda ingin membuat database hewan. Administrator harus mengeksekusi perintah seperti berikut :
mysql> GRANT ALL ON hewan.* TO your_mysql_name;
dimana your_mysqL_name adalah username MySQL Anda.
Jika administrator membuat database Anda ketika menset hak akses Anda, Anda dapat mulai menggunakannya, tetapi bila tidak Anda harus membuatnya sendiri :
mysql> CREATE DATABASE hewan;

Pada UNIX, nama database-nya case sensitive (tidak seperti keyword SQL), jadi Anda harus selalu menulis nama database Anda hewan, bukan Hewan, HEWAN, atau variasi yang lain. Hal ini juga berlaku untuk nama tabel (Pada Windows, hal ini tidak berlaku).
Membuat sebuah database tidak langsung dipilih untuk digunakan, Anda harus melakukannya secara explisit. Untuk menggunakan database hewan, gunakan :
mysql> USE hewan
Database changed

Database Anda cuma perlu dibuat satu kali, tetapi Anda harus memilihnya untuk digunakan tiap kali Anda memulai session mysql. Anda dapat melakukannya dengan memasukkan perintah USE seperti di atas. Cara lainnya, Anda dapat memilih database pada baris perintah ketika Anda menjalankan mysql. Hanya tinggal menuliskan nama database ini setelah parameter koneksi yang Anda butuhkan. Contohnya:
shell> mysql -h host -u user -p hewan
Enter password: ********

Ingat bahwa hewan bukan password Anda pada perintah di atas. Jika Anda ingin memasukkan password Anda pada baris perintah setelah option –p, Anda harus melakukannya dengan tidak memberi spasi setelah –p (-pmypassword, bukan –p mypassword). Namun, memasukkan password Anda pada baris perintah tidak disarankan, karena password Anda akan dapat dilihat oleh user lain yang sedang login ke komputer Anda.
Membuat database adalah bagian yang mudah, tetapi saat ini database tadi masih kosong, sebagaimana pernyataan SHOW TABLE akan menunjukkannya :
mysql> SHOW TABLES;
Empty set (0.00 sec)

Bagian yang lebih sulit adalah memutuskan struktur dari database Anda yang sebaiknya digunakan: tabel apa yang Anda butuhkan, dan kolom apa yang akan ada pada tiap tabelnya.
Anda menginginkan sebuah tabel yang berisi record untuk tiap hewan peliharaan Anda. Ini dapat dinamakan tabel pet, dan yang isi seharusnya, minimal adalah nama tiap hewan. Karena nama saja tidak terlalu menarik, tabel ini seharusnya berisi informasi lain. Sebagai contoh, jika lebih dari satu orang dalam keluarga Anda menyimpan piaraan, Anda mungkin ingin membuat daftar pemilik tiap hewan. Anda mungkin juga ingin informasi deskripsi untuk tiap spesies dan jenis kelamin.
Bagaimana tentang umur? Hal ini mungkin menarik, tetapi bukan ide yang bagus untuk menyimpannya dalam database. Umur berubah seiring perubahan waktu, yang berarti Anda harus sering mengupdatenya. Cara lain, adalah dengan menyimpan nilai yang pasti, seperti tanggal lahir. Lalu, ketika dibutuhkan usia, Anda dapat menghitungnya sebagai selisih antara tanggal sekarang dengan tanggal lahirnya. MySQL menyediakan fungsi untuk melakukan aritmatika tanggal, jadi hal ini tidak sulit. Menyimpan tanggal lahir dan bukannya umur juga memiliki keuntungan lain :
• Anda dapat menggunakan database untuk tugas seperti membangkitkan pengingat untuk ulang tahun hewan berikutnya.
• Anda dapat menghitung umur yang berhubungan dengan tanggal dan bukannya tanggal saat ini. Contohnya, jika Anda menyimpan tanggal kematian dalam database, Anda dapat dengan mudah menghitung umur hewan saat kematiannya.
Tampaknya informasi untuk tabelnya sudah cukup, sekarang kita coba untuk membuat tabelnya dengan menggunakan CREATE TABLE :
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

VARCHAR adalah pilihan yang bagus untuk kolom name, owner dan species karena nilai kolom ini akan bervariasi panjangnya. Panjang dari tiap kolom tidak perlu sama, dan tidak harus 20. Anda dapat memilih dari 1 sampai 255 yang tampaknya sesuai bagi Anda (jika pilihan Anda salah dan ternyata kemudian dibutuhkan kolom yang lebih panjang, MySQL menyediakan pernyataan ALTER TABLE).
Jenis kelamin hewan dapat ditunjukkan dengan bermacam cara, bisa “m” dan “f”, atau mungkin “male” dan “female”. Cara termudahnya adalah menggunakan karakter tunggal “m” dan “f”.
Penggunaan tipe data DATE untuk kolom birth dan death adalah pilihan yang bagus. Sekarang Anda sudah membuat tabel, SHOW TABLES seharusnya menghasilkan output :
mysql> SHOW TABLES;
+---------------------+
| Tables in hewan |
+---------------------+
| pet |
+---------------------+

Untuk memastikan bahwa tabel yang dibuat sesuai keinginan Anda, gunakan pernyataan DESCRIBE atau DESC :
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+

Setelah membuat tabel, Anda butuh untuk memasukkan datanya. Pernyataan LOAD DATA dan INSERT dapat digunakan untuk hal ini.
Anggaplah bahwa record hewan Anda dapat ditunjukkan sebagai berikut (perhatikan bahwa MySQL mengharuskan tanggal dalam format YYYY-MM-DD).
name
owner species sex birth Death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1998-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29
Karena Anda memulai dengan tabel kosong, cara terbaik untuk mengisinya adalah dengan membuat file teks yang berisi sebuah baris untuk tiap hewan Anda, lalu memasukkan isi file ini ke tabel dengan pernyataan tunggal.
Anda dapat membuat file teks ‘pet.txt’ yang berisi satu record per baris, dengan nilai yang dipisahkan dengan tab, dan kolomnya urut sesuai dengan daftar pada pernyataan CREATE TABLE. Untuk nilai yang tidak ada dapat Anda isi dengan nilai NULL (dengan menulis \N).
Untuk memasukkan file teks ini ke tabel pet, gunakan perintah ini :
mysql> LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;

Anda dapat menspesifikasi nilai pemisah kolom dan tanda akhir baris secara eksplisit pada pernyataan LOAD DATA yang Anda inginkan, tetapi nilai defaultnya adalah tab dan linefeed.
Jika Anda ingin menambahkan record baru suatu saat, pernyataan INSERT sangat berguna. Pada bentuk yang paling sederhana, Anda menuliskan nilai untuk tiap kolomnya, menurut urutan yang sama dengan waktu pembuatan tabel. Misalnya Diane mendapatkan hamster baru bernama Puffball, Anda dapat menambahkan record baru menggunakan pernyataan INSERT seperti berikut:
mysql> INSERT INTO pet
-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

Perhatikan bahwa nilai string dan tanggal ditulis dalam tanda petik. Juga dengan INSERT, Anda dapat memasukkan NULL langsung untuk menggantikan nilai yang tidak ada. Anda tidak menggunakan \N seperti dengan LOAD DATA.
Untuk mengambil informasi dari tabel, Anda dapat menggunakan pernyataan SELECT. Bentuk umum dari pernyataan ini adalah:
SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy

What_to_select menunjukkan apa yang ingin Anda lihat. Ini dapat merupakan daftar kolom, atau * untuk menunjukkan semua kolom. which_table menunjukkan tabel yang mana yang ingin Anda ambil datanya. Klausa WHERE optional. Jika ada, maka conditions_to_satisfy menunjukkan kondisi yang harus dipenuhi oleh baris agar ikut ditampilkan.
Bentuk paling sederhana dari SELECT mengambil segalanya dari sebuah tabel :
mysql> SELECT * FROM pet;
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1990-08-27 | NULL |
| Bowser | Diane | dog | m | 1998-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+--------+---------+------+------------+------------+

Bentuk SELECT ini berguna jika Anda ingin melihat keseluruhan tabel. Misalnya, setelah Anda selesai memasukkan himpunan data awal Anda. Tampak bahwa terdapat kesalahan pada tabel di atas: Bowser lahir sesudah dia mati. Padahal data sebenarnya untuk lahirnya adalah tahun 1989, bukan 1998.
Minimal ada dua cara untuk memperbaikinya :
• Edit file pet.txt untuk memperbaiki kesalahan ini, lalu kosongkan tabel dan isi ulang menggunakan DELETE dan LOAD DATA.
mysql> DELETE FROM pet;
mysql> LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;

Namun jika Anda melakukan ini, Anda juga harus memasukkan ulang record untuk Puffball.
• Perbaiki hanya record yang salah menggunakan pernyataan UPDATE:
mysql> UPDATE pet SET birth = "1989-08-31" WHERE name = "Bowser";

Mudah untuk mengambil keseluruhan tabel, tetapi Anda sering tidak ingin melakukannya, biasanya karena tabel menjadi sangat besar.
Anda dapat memilih hanya baris-baris tertentu saja dari tabel Anda. Contohnya, jika Anda ingin memastikan perubahan yang dilakukan pada tanggal lahir Bowser, pilih record Bowser seperti ini:
mysql> SELECT * FROM pet WHERE name = "Bowser";
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+

Outputnya menunjukkan bahwa tahun yang tersimpan sekarang sudah benar.
Pembandingan string normalnya case insensitive, Anda dapat menulis name “bowser”, “BOWSER”, dll. Hasilnya akan sama.
Anda dapat menuliskan kondisi untuk sembarang kolom, bukan hanya name. Contohnya, jika Anda ingin tahu hewan mana yang lahir setelah 1998, teslah kolom birth:
mysql> SELECT * FROM pet WHERE birth >= "1998-1-1";
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------+---------+------+------------+-------+

Anda dapat menggabungkan kondisi, contohnya untuk melihat anjing betina:
mysql> SELECT * FROM pet WHERE species = "dog" AND sex = "f";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

Query di atas menggunakan operator logika AND. Ada juga operator OR:
mysql> SELECT * FROM pet WHERE species = "snake" OR species = "bird";
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+-------+---------+------+------------+-------+

AND dan OR dapat digabungkan. Jika Anda melakukannya, sebaiknya gunakan kurung untuk menunjukkan kondisi yang harus disatukan:
mysql> SELECT * FROM pet WHERE (species = "cat" AND sex = "m")
-> OR (species = "dog" AND sex = "f");
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

Jika Anda tidak ingin melihat keseluruhan baris dari tabel Anda, Anda tinggal menulis nama kolom yang Anda inginkan dengan dipisahkan oleh koma. Contohnya, jika Anda ingin tahu kapan hewan Anda dilahirkan, pilihlah kolom name dan birth:
mysql> SELECT name, birth FROM pet;
+----------+------------+
| name | birth |
+----------+------------+
| Fluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Buffy | 1989-05-13 |
| Fang | 1990-08-27 |
| Bowser | 1989-08-31 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Puffball | 1999-03-30 |
+----------+------------+

Untuk mencari siapa yang memiliki hewan piaraan, gunakan query ini:
mysql> SELECT owner FROM pet;
+--------+
| owner |
+--------+
| Harold |
| Gwen |
| Harold |
| Benny |
| Diane |
| Gwen |
| Gwen |
| Benny |
| Diane |
+--------+
Namun, perhatikan bahwa query ini mengambil kolom owner dari tiap record, dan ada beberapa yang tampil lebih dari sekali. Untuk meminimalkan outputnya, ambil record output unik hanya sekali dengan menambahkan keyword DISTINCT:
mysql> SELECT DISTINCT owner FROM pet;
+--------+
| owner |
+--------+
| Benny |
| Diane |
| Gwen |
| Harold |
+--------+

Anda dapat menggunakan klausa WHERE untuk menggabungkan pilihan baris dengan pilihan kolom. Contohnya, untuk mengambil hanya tanggal lahir anjing dan kucing, gunakan query ini:
mysql> SELECT name, species, birth FROM pet
-> WHERE species = "dog" OR species = "cat";
+--------+---------+------------+
| name | species | birth |
+--------+---------+------------+
| Fluffy | cat | 1993-02-04 |
| Claws | cat | 1994-03-17 |
| Buffy | dog | 1989-05-13 |
| Fang | dog | 1990-08-27 |
| Bowser | dog | 1989-08-31 |
+--------+---------+------------+

Anda mungkin memperhatikan bahwa contoh-contoh di atas menghasilkan baris yang tidak sesuai dengan urutan tertentu. Tapi, kadang-kadang, lebih mudah untuk memeriksa output query yang barisnya tersusun teratur menurut sesuatu. Untuk mengurutkan hasilnya, gunakan klausa ORDER BY.
Berikut ini tanggal lahir hewan, diurutkan berdasarkan tanggal:
mysql> SELECT name, birth FROM pet ORDER BY birth;
+----------+------------+
| name | birth |
+----------+------------+
| Buffy | 1989-05-13 |
| Bowser | 1989-08-31 |
| Fang | 1990-08-27 |
| Fluffy | 1993-02-04 |
| Claws | 1994-03-17 |
| Slim | 1996-04-29 |
| Whistler | 1997-12-09 |
| Chirpy | 1998-09-11 |
| Puffball | 1999-03-30 |
+----------+------------+

Untuk mengurutkannya secara terbalik, tambahkan keyword DESC (descending) setelah nama kolom yang digunakan untuk mengurutkan:
mysql> SELECT name, birth FROM pet ORDER BY birth DESC;
+----------+------------+
| name | birth |
+----------+------------+
| Puffball | 1999-03-30 |
| Chirpy | 1998-09-11 |
| Whistler | 1997-12-09 |
| Slim | 1996-04-29 |
| Claws | 1994-03-17 |
| Fluffy | 1993-02-04 |
| Fang | 1990-08-27 |
| Bowser | 1989-08-31 |
| Buffy | 1989-05-13 |
+----------+------------+

Anda dapat mengurutkan banyak kolom. contohnya, untuk mengurutkan berdasarkan jenis hewan, lalu berdasarkan tanggal lahir yang muda lebih dulu, gunakan query berikut:
mysql> SELECT name, species, birth FROM pet ORDER BY species, birth DESC;
+----------+---------+------------+
| name | species | birth |
+----------+---------+------------+
| Chirpy | bird | 1998-09-11 |
| Whistler | bird | 1997-12-09 |
| Claws | cat | 1994-03-17 |
| Fluffy | cat | 1993-02-04 |
| Fang | dog | 1990-08-27 |
| Bowser | dog | 1989-08-31 |
| Buffy | dog | 1989-05-13 |
| Puffball | hamster | 1999-03-30 |
| Slim | snake | 1996-04-29 |
+----------+---------+------------+

Perhatikan bahwa keyword DESC cuma berlaku untuk nama kolom yang mendahului kata DESC.
MySQL menyediakan beberapa fungsi yang dapat Anda gunakan untuk melakukan perhitungan berdasarkan tanggal, sebagai contoh, untuk menghitung umur atau seatu jangka waktu.
Untuk menentukan umur tiap hewan piaraan Anda, hitung umur sebagai selisih antara tanggal lahir dan tanggal saat ini. Lakukan ini dengan mengubah kedua tanggal menjadi hari, hitung selisihnya, dan bagi dengan 365 (jumlah hari dalam satu tahun).
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 FROM pet;
+----------+-------------------------------------+
| name | (TO_DAYS(NOW())-TO_DAYS(birth))/365 |
+----------+-------------------------------------+
| Fluffy | 6.15 |
| Claws | 5.04 |
| Buffy | 9.88 |
| Fang | 8.59 |
| Bowser | 9.58 |
| Chirpy | 0.55 |
| Whistler | 1.30 |
| Slim | 2.92 |
| Puffball | 0.00 |
+----------+-------------------------------------+

Meskipun query ini bekerja, ada beberapa hal yang harus ditingkatkan. Pertama, hasilnya dapat dilihat lebih mudah jika baris-barisnya diurutkan. Kedua, heading untuk kolom age tidak terlalu berarti.
Masalah pertama dapat diatasi dengan menambahkan klausa ORDER BY untuk mengurutkan berdasarkan name. Untuk mengatasi heading kolom, sediakan nama untuk kolom ini sehingga label yang berbeda tampil pada outputnya (hal ini dinamakan alias kolom):
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age
-> FROM pet ORDER BY name;
+----------+------+
| name | age |
+----------+------+
| Bowser | 9.58 |
| Buffy | 9.88 |
| Chirpy | 0.55 |
| Claws | 5.04 |
| Fang | 8.59 |
| Fluffy | 6.15 |
| Puffball | 0.00 |
| Slim | 2.92 |
| Whistler | 1.30 |
+----------+------+

Untuk mengurutkan output berdasarkan umur, cuma tinggal menggunakan klausa ORDER BY yang berbeda:
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age
-> FROM pet ORDER BY age;
+----------+------+
| name | age |
+----------+------+
| Puffball | 0.00 |
| Chirpy | 0.55 |
| Whistler | 1.30 |
| Slim | 2.92 |
| Claws | 5.04 |
| Fluffy | 6.15 |
| Fang | 8.59 |
| Bowser | 9.58 |
| Buffy | 9.88 |
+----------+------+

Query yang mirip dapat digunakan untuk menentukan umur saat kematian hewan yang sudah mati. Anda menentukan hewan yang mana dengan mengecek apakah nilai death-nya NULL. Lalu, untuk yang nilainya tidak NULL, hitung selisih antara nilai death dan birth:
mysql> SELECT name, birth, death, (TO_DAYS(death)-TO_DAYS(birth))/365 AS age
-> FROM pet WHERE death IS NOT NULL ORDER BY age;
+--------+------------+------------+------+
| name | birth | death | age |
+--------+------------+------------+------+
| Bowser | 1989-08-31 | 1995-07-29 | 5.91 |
+--------+------------+------------+------+

Query ini menggunakan death IS NOT NULL dan bukannya death != NULL karena NULL adalah nilai khusus.
Bagaimana jika Anda ingin tahu hewan mana yang berulang tahun bulan depan? Untuk perhitungan semacam ini, tahun dan tanggal tidak sesuai, Anda cuma ingin mengambil bagian bulan dari kolom birth.. MySQL menyediakan beberapa fungsi untuk mengambil bagian dari tanggal, seperti YEAR(), MONTH() dan DAYOFMONTH().
MONTH adalah fungsi yang tepat untuk hal ini. Untuk melihat cara kerjanya, jalankan query sederhana yang menampilkan nila untuk birth dan MONTH(birth):
mysql> SELECT name, birth, MONTH(birth) FROM pet;
+----------+------------+--------------+
| name | birth | MONTH(birth) |
+----------+------------+--------------+
| Fluffy | 1993-02-04 | 2 |
| Claws | 1994-03-17 | 3 |
| Buffy | 1989-05-13 | 5 |
| Fang | 1990-08-27 | 8 |
| Bowser | 1989-08-31 | 8 |
| Chirpy | 1998-09-11 | 9 |
| Whistler | 1997-12-09 | 12 |
| Slim | 1996-04-29 | 4 |
| Puffball | 1999-03-30 | 3 |
+----------+------------+--------------+

Menemukan hewan yang berulang tahun bulan depan itu mudah juga. Anggaplah bulan sekarang adalah April. Maka nilai month-nya 4 dan Anda cari hewan yang lahir di bulan Mei (month=5) seperti ini:
mysql> SELECT name, birth FROM pet WHERE MONTH(birth) = 5;
+-------+------------+
| name | birth |
+-------+------------+
| Buffy | 1989-05-13 |
+-------+------------+

Tetapi ada masalah jika bulan sekarang adalah Desember. Anda tidak bisa langsung menambahkan satu ke nilai bulan (12) dan mencari hewan yang lahir di bulan 13, karena tidak ada bulan 13. Namun, Anda mencari hewan yang lahir di bulan Januari (month 1).
Anda bahkan dapat menulis query yang dapat bekerja dengan benar, tidak peduli bulan apa sekarang ini. Dengan cara ini Anda tidak harus menggunakan nilai bulan sekarang dalam query. DATE_ADD() membolehkan Anda untuk menambahkan interval waktu untuk tanggal tertentu. Jika Anda menambahkan satu bulan ke nilai dari NOW(), maka bagian month untuk MONTH() akan menghasilkan bulan yang digunakan untuk mencari ulang tahun:
mysql> SELECT name, birth FROM pet
-> WHERE MONTH(birth) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH));

Cara lain untuk melakukannya adalah menambahkan 1 untuk mendapatkan bulan selanjutnya setelah bulan ini :
mysql> SELECT name, birth FROM pet
-> WHERE MONTH(birth) = MOD(MONTH(NOW()), 12) + 1;

Ingat bahwa MONTH mengembalikan nilai antara 1 dan 12. Dan MOD(sesuatu,12) mengembalikan nilai antara 0 dan 11. Jadi penambahan harus dilakukan setelah MOD().

Nilai NULL
Secara konsep, NULL berarti “nilai yang hilang” atau “nilai yang tidak diketahui” dan diperlakukan lain daripada nilai yang lain. Untuk mengetes nilai NULL, Anda tidak dapat menggunakan operator perbandingan aritmatik seperti =, < atau !=. Untuk mendemonstrasikannya sendiri, cobalah query berikut:
mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+

Anda mendapat hasil yang berarti dari perbandingan di atas. Gunakan operator IS NULL dan IS NOT NULL sebagai gantinya:
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
| 0 | 1 |
+-----------+---------------+

pada MySQL, 0 berarti false dan 1 berarti true.
Perlakuan yang khusus untuk NULL inilah sebabnya, pada bagian di atas, Anda harus menggunakan death IS NOT NULL dan bukannya death != NULL.

Pengenalan Pola (Pattern Matching)
MySQL menyediakan pengenalan pola standar SQL juga pengenalan pola berdasarkan ekspresi regular yang mirip dengan yang digunakan pada utiliti UNIX seperti vi, grep dan sed.
Pengenalan pola memperbolehkan Anda untuk menggunakan ‘_’ untuk menggantikan satu karakter, dan ‘%’ untuk menggantikan sembarang jumlah karakter (termasuk nol karakter). Pada MySQL, pola SQL defaultnya adalah case insensitive. Beberapa contoh ditunjukkan di bawah. Perhatikan bahwa Anda tidak menggunakan = atau != ketika menggunakan pola SQL; gunakan perbandingan LIKE atau NOT LIKE sebagai gantinya.
Untuk menemukan nama yang dimulai dengan ‘b’:
mysql> SELECT * FROM pet WHERE name LIKE "b%";
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+

Untuk menemukan nama yang diakhiri denga ‘fy’:
mysql> SELECT * FROM pet WHERE name LIKE "%fy";
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+

Untuk menemukan nama yang mengandung sebuah ‘w’:
mysql> SELECT * FROM pet WHERE name LIKE "%w%";
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+

Untuk menemukan nama yang berisi tepat lima karakter, gunakan karakter pola ‘_’ :
mysql> SELECT * FROM pet WHERE name LIKE "_____";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

Jenis pengenalan pola lain yang disediakan oleh MySQL menggunakan ekspresi regular (extended regular expressions). Jika Anda ingin mengetes untuk jenis pola seperti ini, gunakan operator REGEXP dan NOT REGEXP (atau RLIKE dan NOT RLIKE, yang sinonim).
Beberapa karakteristik dari ekspresi regular:
• ‘.’ menggantikan satu karakter.
• Sebuah kelas karakter ‘[…]’ menggantikan sembarang karakter yang termasuk di dalam tanda kurung siku. Contohnya, ‘[abc]’ menggantikan ‘a’, ‘b’, atau ‘c’. untuk menyebutkan jangkauan karakter, gunakan tanda ‘-‘. ‘[a-z]’ menggantikan sembarang huruf kecil, dan ‘[0-9]’ menggantikan sembarang digit.
• ‘*’ menggantikan nol atau lebih karakter yang didepannya. Contohnya, ‘x*’ menggantikan sembarang panjang dari karakter ‘x’, ‘[0-9]*’ menggantikan sembarang jumlah digit, dan ‘.*’ menggantikan sembarang jumlah dari sembarang.
• Ekspresi regular ini case sensitive, tetapi Anda dapat menggunakan kelas karakter untuk menggantikan kedua jenis huruf. Contohnya, ‘[aA]’ menggantikan huruf kecil dan huruf besar dari ‘a’ dan ‘[a-zA-Z]’ menggantikan sembarang huruf baik huruf besar maupun kecil.
• Pola ini cocok jika ditemukan dimanapun di dalam nilai yang sedang dites (pola SQL cuma cocok jika sesuai untuk keseluruhan nilai).
• Untuk memastikan bahwa pola harus sesuai untuk awal atau akhir nilai yang dites, gunakan ‘^’ pada awal atau ‘$’ pada akhir pola.
Untuk mendemokan cara kerja ekspresi regular, query LIKE yang ditunjukkan di atas ditulis ulang menggunakan REGEXP:
Untuk menemukan nama yang dimulai dengan ‘b’, gunakan ‘^’ untuk mencocokkannya dengan awal nama dan ‘[bB]’ untuk mencocokkannya baik untuk huruf b besar maupun kecil:
mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+

Untuk menemukan nama yang diakhiri dengan ‘fy’, gunakan ‘$’ untuk mencocokkannya dengan akhir dari nama:
mysql> SELECT * FROM pet WHERE name REGEXP "fy$";
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+

Untuk mencari nama yang mengandung sebuah ‘w’, gunakan ‘[wW]’ untuk mencocokkannya dengan huruf ‘w’ kecil maupun besar:
mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+

karena pola ekspresi regular mencocokkan jika terjadi dimanapun dalam nilai, maka pada query di atas tidak perlu memakai ‘*’ pada sisi kiri maupun kanan dari pola untuk mencocokkannya dengan keseluruhan nilai seperti jika Anda menggunakan pola SQL.
Untuk menemukan nama yang tepat berisi lima huruf, gunakan ‘^’ dan ‘$’ untuk mencocokkan dengan awal dan akhir nama, dan lima ‘.’ di antaranya:
mysql> SELECT * FROM pet WHERE name REGEXP "^.....$";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

Anda juga dapat menuliskan query tadi menggunakan operator ‘{n}’ (ulangi n-kali):
mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}$";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

Database juga sering digunakan untuk menjawab pertanyaan, “Seberapa sering suatu tipe data terdapat dalam suatu tabel?”. Sebagai contoh, Anda mungkin ingin tahu berapa banyak hewan yang Anda miliki, atau berapa hewan yang dimiliki tiap pemiliknya, atau Anda mungkin ingin membuat sensus tertentu untuk hewan Anda.
Menghitung jumlah total hewan yang Anda miliki ini sama dengan pertanyaan “Berapa banyak baris yang ada dalam tabel pet?,” karena terdapat satu record per hewan. Fungsi COUNT() menghitung jumlah hasil yang bukan NULL, jadi query untuk menghitung hewan Anda tampak seperti berikut:
mysql> SELECT COUNT(*) FROM pet;
+----------+
| COUNT(*) |
+----------+
| 9 |
+----------+

Pada query di atas, Anda mengambil nama orang yang memiliki hewan. Anda dapat menggunakan COUNT() jika Anda ingin menemukan berapa banyak yang dimiliki tiap pemilik:
mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner;
+--------+----------+
| owner | COUNT(*) |
+--------+----------+
| Benny | 2 |
| Diane | 2 |
| Gwen | 3 |
| Harold | 2 |
+--------+----------+

Ingat bahwa penggunaan GROUP BY untuk menggabungkan semua record yang sama owner-nya. Tanpa ini, Anda akan mendapatkan pesan error:
mysql> SELECT owner, COUNT(owner) FROM pet;
ERROR 1140 at line 1: Mixing of GROUP columns (MIN(),MAX(),COUNT()...)
with no GROUP columns is illegal if there is no GROUP BY clause

COUNT() dan GROUP BY sangat berguna untuk mengkarakterisasi data Anda dalam cara tertentu. Contoh berikut menunjukkan cara berbeda untuk melakukan operasi konsensus hewan.
Jumlah hewan per spesies:
mysql> SELECT species, COUNT(*) FROM pet GROUP BY species;
+---------+----------+
| species | COUNT(*) |
+---------+----------+
| bird | 2 |
| cat | 2 |
| dog | 3 |
| hamster | 1 |
| snake | 1 |
+---------+----------+

jumlah hewan per jenis kelamin:
mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex;
+------+----------+
| sex | COUNT(*) |
+------+----------+
| NULL | 1 |
| f | 4 |
| m | 4 |
+------+----------+

(pada output ini, NULL menunjukkan “jenis kelamin tidak diketahui”)
Jumlah hewan per kombinasi dari spesies dan jenis kelamin:
mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | NULL | 1 |
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+

Anda tidak perlu mengambil keseluruhan tabel ketika menggunakan COUNT(). Contohnya, pada query sebelumnya, ketika digunakan hanya untuk anjing dan kucing, tampak seperti ini:
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE species = "dog" OR species = "cat"
-> GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
+---------+------+----------+

Atau, jika Anda ingin jumlah hewan per jenis kelamin cuma untuk hewan yang diketahui jenis kelaminnya:
mysql> SELECT species, sex, COUNT(*) FROM pet
-> WHERE sex IS NOT NULL
-> GROUP BY species, sex;
+---------+------+----------+
| species | sex | COUNT(*) |
+---------+------+----------+
| bird | f | 1 |
| cat | f | 1 |
| cat | m | 1 |
| dog | f | 1 |
| dog | m | 2 |
| hamster | f | 1 |
| snake | m | 1 |
+---------+------+----------+

Menggunakan Lebih Dari Satu Tabel
Tabel pet menunjukkan hewan apa saja yang Anda miliki. Jika Anda ingin menyimpan informasi lain mengenai mereka, seperti kejadian pada kehidupan mereka, Anda membutuhkan tabel lain. Seperti apa tabel ini seharusnya?
• Perlu berisi nama hewan jadi Anda tahu hewan mana yang mengalaminya.
• Perlu tanggal jadi Anda tahu kapan hal ini terjadi.
• Perlu field yang menggambarkan kejadian ini
• Jika Anda ingin bisa mengkategorikan kejadian, akan sangat berguna untuk memiliki field jenis kejadian.
Berdasarkan pertimbangan di atas, pernyataan CREATE TABLE untuk tabel event mungkin tampak seperti berikut:
mysql> CREATE TABLE event (name VARCHAR(20), date DATE,
-> type VARCHAR(15), remark VARCHAR(255));

Seperti pada tabel pet, cara termudah untuk mulai mengisi record dengan membuat file teks yang berisi informasi berikut:
Fluffy
1995-05-15 Litter 4 kittens, 3 female, 1 male
Buffy 1993-06-23 Litter 5 puppies, 2 female, 3 male
Buffy 1994-06-19 litter 3 puppies, 3 female
Chirpy 1999-03-21 vet needed beak straightened
Slim 1997-08-03 vet broken rib
Bowser 1991-10-12 kennel
Fang 1991-10-12 kennel
Fang 1998-08-28 birthday Gave him a new chew toy
Claws 1998-03-17 birthday Gave him a new flea collar
Whistler 1998-12-09 birthday First birthday

Masukkan record ini dengan cara:
mysql> LOAD DATA LOCAL INFILE "event.txt" INTO TABLE event;

Berdasarkan apa yang Anda pelajari dari query yang Anda jalankan pada tabel pet, Anda seharusnya sudah mampu untuk melakukan pengambilan record pada tabel event, prinsipnya sama.
Anggaplah Anda ingin menemukan umur untuk tiap hewan ketika mereka melahirkan (litter). Tabel event menunjukkan kapan ini terjadi, tetapi untuk menunjukkan umur dari induknya, Anda butuh tanggal lahirnya. Karena ini disimpan dalam tabel pet, Anda butuh kedua tabel untuk querynya:
mysql> SELECT pet.name, (TO_DAYS(date) - TO_DAYS(birth))/365 AS age, remark
-> FROM pet, event
-> WHERE pet.name = event.name AND type = "litter";
+--------+------+-----------------------------+
| name | age | remark |
+--------+------+-----------------------------+
| Fluffy | 2.27 | 4 kittens, 3 female, 1 male |
| Buffy | 4.12 | 5 puppies, 2 female, 3 male |
| Buffy | 5.10 | 3 puppies, 3 female |
+--------+------+-----------------------------+

Ada beberapa hal yang harus diperhatikan tentang query ini:
• Pada klausa FROM terdapat dua tabel karena query ini butuh mengambil data dari keduanya.
• Ketika menggabungkan (join) informasi dari multiple tabel, Anda harus menspesifikasi bagaimana record dalam satu tabel dapat cocok dengan record dari tabel lain. Ini mudah karena mereka keduanya memiliki kolom name. Query ini menggunakan klausa WHERE untuk mencocokkan record dari kedua tabel berdasarkan value name.
• Karena kolom name terdapat pada kedua tabel, Anda harus menspesifikasi dari tabel mana kolom ini yang akan ditampilkan. Ini dilakukan dengan menambahkan nama tabel sebelum nama kolom.
Anda tidak harus memiliki dua tabel yang berbeda untuk melakukan join. Kadang-kadang ada gunanya untuk menggabungkan sebuah tabel ke dirinya sendiri, jika Anda ingin membandingkan record dalam suatu tabel ke record lain dalam tabel yang sama. Contohnya, untuk menemukan hewan yang merupakan pasangan diantara hewan Anda, Anda dapat menggabungkan tabel pet dengan dirinya sendiri untuk memadukan hewan jantan dan betina yang sejenis:
mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
-> FROM pet AS p1, pet AS p2
-> WHERE p1.species = p2.species AND p1.sex = "f" AND p2.sex = "m";
+--------+------+--------+------+---------+
| name | sex | name | sex | species |
+--------+------+--------+------+---------+
| Fluffy | f | Claws | m | cat |
| Buffy | f | Fang | m | dog |
| Buffy | f | Bowser | m | dog |
+--------+------+--------+------+---------+

Pada query ini, kita menulis alias dari nama tabel agar bisa mereferensi kolom dan menjelaskan asosiasi dari tiap kolom.

Mengambil Informasi Mengenai Database Dan Tabel
Bagaimana jika Anda lupa nama dari database atau tabel, atau struktur dari suatu tabel? MySQL memecahkan masalah ini melalui beberapa pernyataan yang menyediakan informasi mengenai database dan tabel yang didukungnya.
Anda sudah melihat SHOW DATABASES, yang menunjukkan daftar database yang dikelola oleh server. Untuk menemukan database mana yang sedang digunakan, gunakan fungsi DATABASE():
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| hewan |
+------------+

Jika Anda belum memilih database, hasilnya akan kosong.
Untuk melihat daftar tabel dari database yang sedang digunakan, gunakan perintah:
mysql> SHOW TABLES;
+---------------------+
| Tables in hewan |
+---------------------+
| event |
| pet |
+---------------------+

Jika Anda ingin melihat struktur dari suatu tabel, perintah DESCRIBE sangat berguna, perintah ini menampilkan informasi tentang tiap kolom tabel:
mysql> DESC pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+

Field menunjukkan nama kolom, Type adalah tipe data kolom, Null menunjukkan apakah kolom yang bersangkutan dapat berisi nilai NULL, Key menunjukkan apakah kolom diindex dan Default menunjukkan nilai default kolom.
Jika Anda memiliki index pada suatu tabel, SHOW INDEX FROM tbl_name akan menghasilkan informasi mengenainya.

Index
Semua tipe kolom MySQL dapat diindex. Penggunaan index pada kolom yang relevan adalah cara terbaik untuk meningkatkan performa operasi SELECT.
Sebuah tabel dapat memiliki max 16 index. Panjang maximum index adalah 256 bytes, meskipun hal ini dapat diubah ketika meng-compile MySQL.
Untuk kolom CHAR dan VARCHAR, Anda dapat mengindex sebagian dari kolom. hal ini jauh lebih cepat dan memerlukan ruang harddisk yang lebih sedikit daripada mengindex keseluruhan kolom. Sintaks yang digunakan dalam pernyataan CREATE TABLE untuk mengindex sebagian awal kolom seperti berikut:
KEY index_name (col_name(length))

Contoh berikut membuat sebuah index untuk 10 karakter pertama dari kolom name:
mysql> CREATE TABLE test (
name CHAR(200) NOT NULL,
KEY index_name (name(10)));

MySQL dapat membuat index untuk banyak kolom. sebuah index dapat terdiri dari max 15 kolom. index multiple kolom dapat dianggap sebagai array tersortir yang berisi nilai yang dibuat dengan menggabungkan nilai dari kolom yang diindex.
MySQL menggunakan index multiple kolom sedemikian rupa sehingga query menjadi cepat jika Anda menspesifikasi kuantiti yang diketahui untuk kolom pertama dari index dalam klausa WHERE, bahkan jika Anda tidak menspesifikasi nilai untuk kolom yang lain.
Anggap sebuah tabel dibuat menggunakan kriteria berikut:
mysql> CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name,first_name));

Kemudian index name adalah index untuk last_name dan first_name. Index ini akan digunakan untuk query yang menspesifikasi nilai untuk jangkauan yang diketahui dari last_name atau last_name dan first_name. Maka, index name akan digunakan pada query berikut:
mysql> SELECT * FROM test WHERE last_name="Widenius";
mysql> SELECT * FROM test WHERE last_name="Widenius"
AND first_name="Michael";
mysql> SELECT * FROM test WHERE last_name="Widenius"
AND (first_name="Michael" OR first_name="Monty");
mysql> SELECT * FROM test WHERE last_name="Widenius"
AND first_name >="M" AND first_name < "N";

Namun, index name tidak akan digunakan untuk query berikut:
mysql> SELECT * FROM test WHERE first_name="Michael";

mysql> SELECT * FROM test WHERE last_name="Widenius"
OR first_name="Michael";

Program Yang Ada Dalam MySQL:
myisamchk
Program utilitas untuk menggambarkan, mengecek, mengoptimasi dan memperbaiki tabel MySQL.
make_binary_release
Membuat versi binary dari MySQL yang sudah di-compile.
msql2mysql
Sebuah skrip shell yang mengubah program mSQL ke MySQL. Ini tidak menangani semua kasus, tetapi memberikan awal yang baik ketika pengubahan.
mysqlaccess
Skrip yang mengecek hak akses untuk kombinasi host, user, dan database.
mysqladmin
Utilitas untuk melakukan operasi administrative, seperti membuat atau menghapus database, reload grant table, mem-flush taabel ke disk dan membuka ulang file log. mysqladmin dapat juga digunakan untuk mengambil informasi versi, proses dan status dari server.
mysqlbug
Skrip untuk melaporkan bug MySQL. Skrip ini seharusnya selalu digunakan detika mengisi laporan bug ke list MySQL.
mysqld
Daemon SQL. Ini harus selalu berjalan.
mysqldump
Untuk men-dump database MySQL ke sebuah file sebagai pernyataan-pernyataan SQL atau sebagai file teks yang dipisahkan oleh tab.
mysqlimport
Untuk mengimpor file teks ke tabel yang bersangkutan menggunakan LOAD DATA INFILE.
mysqlshow
Menampilkan informasi mengenai database, tabel, kolom, dan index.
mysql_install_db
Membuat tabel grant MySQL dengan hak akses default. Ini biasanya dijalankan cuma sekali, ketika pertama kali menginstall MySQL.
replace
Program utilitas yang digunakan oleh mysql2mysql, tetapi memiliki kegunaan yang lainnya. replace mengubah string di dalam file atau pada input standar. Dapat digunakan untuk menukar string. Contohnya, perintah ini menukar a dan b dalam file yang bersangkutan:
shell> replace a b b a -- file1 file2 ...
safe_mysqld
Script yang menjalankan daemon mysqld dengan option yang aman, seperti me-restart server ketika terjadi error dan mencatat informasi runtime ke file log.


Men-dump Struktur Dan Data Dari Database Dan Tabel MySQL
Utiliti untuk men-dump database atau koleksi dari database untuk backup atau untuk mentransfer data ke server SQL lain. Dump ini akan berisi pernyataan SQL untuk membuat tabel dan/atau mengisi tabel.
shell> mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]

Jika Anda tidak memberikan tabel apapun atau menggunakan –databases atau –all-databases, seluruh database akan di-dump.
Anda akan mendapatkan daftar option dari mysqldump yang didukung oleh versi Anda dengan menjalankan perintah :
shell> mysqldump –help

Penggunaan yang normal dari mysqldump mungkin adalah membuat backup dari seluruh database.
mysqldump --opt database > backup-file.sql

Namun, juga sangat berguna untuk membuat server MySQL lain dengan informasi dari suatu database:
mysqldump --opt database | mysql --host=remote-host -C database

Mungkin juga untuk men-dump beberapa database dengan satu perintah:
mysqldump --databases database1 [database2 database3...] > my_databases.sql

Jika Anda ingin men-dump seluruh database, dapat menggunakan:
mysqldump --all-databases > all_databases.sql


Mengimpor Data Dari File Teks
mysqlimport menyediakan interface baris perintah untuk pernyataan SQL: LOAD DATA INFILE. Sebagian besar option untuk mysqlimport berkaitan langsung dengan option yang sama dari LOAD DATA INFILE.
mysqlimport dijalankan seperti berikut:
shell> mysqlimport [options] database textfile1 [textfile2....]

Untuk tiap file teks yang disebutkan di baris perintah, mysqlimport menghapus ekstensi dari nama file dan menggunakan hasilnya untuk menentukan tabel mana yang harus diisi hasil impor.

Modul Menginstall Linux (Debian)

Dalam modul ini akan diberikan langkah-langkah dalam menginstall Linux, yang dalam hal ini Debian. Modul ini untuk menginstall linux dengan menggunakan cd namun tanpa menginstall X11.

Langkah ke Keterangan
I Persiapan Menginstall Linux (Debian)
II Boot dari CD
III Pilihan Awal Penginstallan
IV Menentukan Partisi Hardisk
V Menginisialisasi Partisi Swap
VI Memilih jenis File System pada Partisi Linux
VII Menginstall Kernel dan Modulnya
VIII Memilih Driver
IX Mengkonfigurasi Jaringan
X Menginstall Base System
XI Membuat System Menjadi Bootable
XII Membuat Boot Floppy
XIII Mereboot Komputer
XIV Konfigurasi System Debian
XV Login



Tutorial Install Linux (tanpa X11)

LANGKAH I
Persiapan Menginstall Linux (Debian)

Nyalakan komputer, kemudian tekan [delete] untuk masuk ke bios,
Setelah di dalam bios, pilih menu
BIOS FEATURES SETUP
tekan [ENTER]
Setelah itu pilihlah menu Boot Sequence agar menjadi CDROM,C,A

[ESC]
Pilih,
SAVE & EXIT SETUP
tekan [ENTER]
tekan y [ENTER]
Maka komputer akan mulai booting kembali dengan boot sequence pertama ke CDROM.

Masukkan CD debian yang ada kedalam CDROM.

LANGKAH II
Boot dari CD

Setelah memasukkan CD ke dalam CDROM maka tinggal tunggu CD boot.
Setelah komputer boot ke CD, akan muncul tampilan sebagai berikut:
Welcome to Deal
This is debian ...........................................
..........................................................

boot:_ [ENTER]

LANGKAH III
Pilihan Awal Penginstallan

Setelah itu komputer akan loading...
Tunggu sampai muncul tulisan sebagai berikut:

' Choose The Language '
Pilih bahasa (disarankan bahasa inggris - en). [ENTER]

' Choose Language Variant '
Pilih ' English (United States) ' [ENTER].

' Relase Notes '
Pilih [ENTER].

' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Configure the Keyboard

tekan [ENTER].

' Select a Keyboard '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pilih,

qwerty/us : U.S. English (QWERTY)

[ENTER]

LANGKAH IV
Menentukan Partisi Hardisk

' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,
Next : Initialize and Activate a Swap Partition
pilih,
Previous: Partition a Hard Disk
[ENTER]

' Select Disk Drive '
pilih,
/dev/hda
[ENTER]

' Lilo Limitations '
[ENTER]

' Note on additional space for the ReiserFS Journal '
[ENTER]

Akan muncul tampilan partisi yang ada pada hard Disk hda, dengan informasi ini anda akan mengetahui letak partisi swap dan letak partisi tempat anda akan meletakkan '/' (root).
pilih [ Quit ]
dengan menggerakan/menekan panah kearah kanan. [ENTER]

LANGKAH V
Menginisialisasi Partisi Swap

' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight pada pilihan yang paling atas dengan tulisan,

Next : Initialize and Activate a Swap Partition
[ENTER]

' Scan for Bad Blocks? '
pilih [ENTER]

' Are You Sure? '
pilih [ENTER]

LANGKAH VI
Memilih jenis File System pada Partisi Linux


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Initialize a Linux Partition
[ENTER]

' Choose Filesystem Type '
Terdapat 3 pilihan pada kotak, pilih,

Ext3 : Next Generation of Ext2, a journaling filesystem
[ENTER]

' Select Partition '
Pilih partisi yang akan dijadikan "Ext3"
Terdapat 3 pilihan pada kotak, pilih,

/dev/hda2 : Linux native
[ENTER]

' Scan for Bad Blocks? '
pilih [ENTER]

' Are You Sure? '
Perhatikan baik-baik apakah benar yang anda pilih /dev/hda2 sebagai "Ext3" kalau sudah benar
pilih [ENTER]

' Mount as the Root Filesystem? '
pilih [ENTER]

LANGKAH VII
Menginstall Kernel dan Modulnya


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight pada pilihan yang paling atas dengan tulisan,

Next : Install kernel and Driver Modules
[ENTER]

' Select Installation Medium '
pilih,
cdrom : CD-ROM drive
[ENTER]

' Please insert the CD-ROM '
pilih [ENTER]

' Please Wait '

' Select Archive path '
Pilih directory tempat menginstall kernel.
/instmnt/dists/woody/main/disks-i386/current
[ENTER]

' Please Wait '

LANGKAH VIII
Memilih Driver


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Configure Device Driver Modules
[ENTER]

' Note about loaded drivers '
pilih, [ENTER]

' Select Category '
Akan tampil pilihan-pilihan module yang akan di pilih,

1. Pilih ' kernel/drivers/input Input Devices. ' [ENTER]

' Select kernel/driver/input modules '
pilih,
' kebdev - Keyboard support ' [ENTER]

' kebdev '
pilih, [ENTER]

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa.
[ENTER]

pilih,
' mousedev - Mouse support ' [ENTER]

' mousedev '
pilih, [ENTER]

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa.
[ENTER]

Pilih ' Exit Finish Return to previous menu. ' [ENTER]

2. Pilih ' kernel/drivers/net Drivers for network interface cards ' [ENTER]

' Select kernel/drivers/net modules '
carilah ' eepro100 ' [ENTER]

' eepro100 '
pilih, [ENTER]

atau bila gagal bisa coba bonding

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa. [ENTER]

Pilih ' Exit Finish Return to previous menu. ' [ENTER]

3. Pilih ' kernel/fs/msdos
MS-DOS file system ' [ENTER]

' Select kernel/fs/msdos modules '
pilih, ' msdos - PC BIOS ' [ENTER]

' msdos '
pilih, [ENTER]

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa.
[ENTER]

Pilih ' Exit Finish Return to previous menu. ' [ENTER]

4. Pilih ' kernel/arch/1386/kernel i386-base drivers. ' [ENTER]
pilih, ' apm ' [ENTER]

' apm '
pilih, [ENTER]

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa.
[ENTER]

pilih, ' cpuid ' [ENTER]

' cpuid '
pilih, [ENTER]

' Enter Command-Line Argumens '
Tidak perlu diisi apa-apa.
[ENTER]

Pilih ' Exit Finish Return to previous menu. ' [ENTER]


Pilih, ' Exit ' [ENTER]

LANGKAH IX
Mengkonfigurasi Jaringan


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Configure the network

[ENTER]

' Choose The Hostname '
Ganti tulisan ' Debian ' dengan ' LAB-OS-27-*** '
*** diganti dengan nomor komputer.
[ENTER]

' Automatic Network Configuration '
pilih, [ENTER]

' Choose the IP Address '
Ganti tulisan default-nya dengan ' 152.118.27.*** '
*** diganti dengan nomor komputer.
[ENTER]

' Choose Network Mask '
Tidak usah diganti.
[ENTER]

' What is your IP gateaway address? '
152.118.27.1
[ENTER]

' Choose Domain Name '
Tulis ' cs.ui.ac.id '
[ENTER]

' Choose the DNS Server Addresses '
Ganti dengan ' 152.118.24.2 '
[ENTER]

LANGKAH X
Menginstall Base System


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di
highlight pada pilihan yang paling atas dengan tulisan,

Next : Install the base system
[ENTER]

' Select Installation Medium '
pilih,

' cdrom : CD-ROM drive '
[ENTER]

' Please insert the CD-ROM '
pilih, [ENTER]

' Select Archive path '
Pilih directory untuk menginstall base sistem.
/instmnt
[ENTER]

' Installing Base System, please wait '
Tunggulah sampai selesai menginstall.

LANGKAH XI
Membuat System Menjadi Bootable


' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Make System Bootable
[ENTER]

' When should the LILO boot loader be installed ? '
Pilih,
/dev/hda : Install LILO in the MBR (use this if unsure).
[ENTER]


' Other bootable partitions '
Pilih,
Include Put all into the menu.
[ENTER]

' Securing LILO '
[ENTER]

LANGKAH XII
Membuat Boot Floppy

' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Make a Boot Floppy

Masukkan disket(dalam keadaan baik)ke dalam floppy disk
[ENTER]

' Change Disk '
[ENTER]

Tunggulah sementara sedang membuat boot floppy

LANGKAH XIII
Mereboot Komputer

' Debian GNU/LINUX Installation Main Menu '
Akan ada macam-macam pilihan didalam kotak dengan bagian yang di highlight
pada pilihan yang paling atas dengan tulisan,

Next : Reboot The System
[ENTER]

' Reboot The System? '
Pilih,
Yes [ENTER]

Kemudian keluarkan disket dari floppy disk, sementara komputer sedang reboot.

Keluarkanlah cd deal dari cdrom.

Tunggu sampai muncul lilo boot seperti dibawah ini,

| Linux |
| WIN/Dos |

Pilih Linux [ENTER]

LANGKAH XIV
Konfigurasi System Debian


Kemudian akan masuk ke tampilan seperti dibawah ini :
' Debian System Configuration '
[ENTER]

' TimeZone Configuration '
Is the hardware clock set to GMT
Pilih,
[ENTER]

What area do you life in?
Pilih,
Asia [ENTER]

Select a city or time zone:
Pilih,
Jakarta [ENTER]

' Password setup '
Shall I enable md5 passwords?
Pilih,
[ENTER]

Shall I enable shadow passwords?
Pilih,
[ENTER]

Enter a password for the root:
Isi saja dengan 12345
[ENTER]

Re-enter password to verify:
Isi lagi dengan 12345
[ENTER]

Shall I create a normal user account now?
Pilih,
[ENTER]

' Debian System Configuration '
Shall I remove the pcmcia packages?
Pilih,
[ENTER]

Do you want to user a PPP connection to install the system.
Pilih,
[ENTER]

' Apt Configuration '
Choose the method apt should user to access to Debian archive:
Pilih,
cdrom [ENTER]

Masukkan cd deal ke dalam cdrom.

Enter CD ROM device file:
/dev/cdrom [ENTER]

Scan another CD?
pilih [ENTER]

Add another apt source?
pilih [ENTER]

Use security updates from security.debian.org?
pilih [ENTER]

Run tasksel?
pilih [ENTER]

Run dselect?
pilih [ENTER]

Run dselect?
pilih, [ENTER]

Tunggu sementara sedang mengkonfigurasi paket apa saja yang akan diambil,
sampai ada tulisan seperti di bawah ini :
Do you want to continue? [Y/n]
Ketikan y [ENTER]

Do you want to erase any previous downloaded.deb files? [Y/n]
Ketik,
y [ENTER]
Please enter to continue
[ENTER]

I can do .....
[---Please return---]
[ENTER]

You must choose one of the options below:
Enter value (default='1', 'x' to restart):
Ketik,
5 [ENTER]

'Debian System Configuration '
Have fun !
Thank you for choosing Debian.
[ENTER]


LANGKAH XV
Login

Nanti akan muncul pesan seperti dibawah ini:
LAB-OS-27-**** login :
(**** sesuai dengan komputer tempat anda menginstall)

Coba masukkan login root dan passwordnya.

Setelah itu kita akan mencoba menginstall paket.
Cara menginstallnya adalah dengan cara sebagai berikut:
ketik perintah ini di console:

apt-get install "nama paket" [ENTER]

Sebagai contoh kita akan mencoba menginstall lynx.
Jadi yang harus diketikkan adalah sebagai berikut :

apt-get install lynx [ENTER]

Do you want to continue? [Y/n]
ketikan y [ENTER]

Setelah selesai menginstall lynx coba ketikkan perintah ini di console :
lynx kambing.vlsm.org [ENTER]

Jika berhasil masuk ke halaman kambing.vlsm.org berarti anda berhasil.
Selamat menggunakan Debian!
Selamat mencoba di rumah!

Cara Mudah membuat Flowchart

Bagi pengguna ms-word tentunya sering menemui kesulitan membuat diagram alir atau flowchart. Walaupun ada software lain yang mempermudah pembuatan flowchart ini, tapi bagi pengguna ms-office, tentu sulit apabila menginstal program baru tersebut. Belum lagi kita mesti belajar program baru tersebut.

Bagi pengguna ms-office, flowchart ini akan lebih lebih mudah dibuat dengan menggunakan ms-excel. Berikut ini adalah langkah-langkahnya:

1. Buka program ms-excel di komputer Anda, lalu buka file baru
2. Lihat bagian bawah, yang kita gunakan adalah "drawing toolbar"
3. Bila belum muncul, pilih menu "View" lalu pilih "Toolbars", centang "Drawing"
4. Sekarang mulai membuat flowchart, yang kita gunakan adalah "Drawing toolbars"
5. Klik menu "Autoshapes" pilih "Flowchart"
6. Klik salah satu gambar yang ada sesuai yang Anda butuhkan.
7. Gambar dengan menggunakan mouse di dokumen, sesuaikan ukurannya
8. Untuk membuat garis penghubung antar gambar, klik menu "Autoshapes"
9. Pilih "Connectors" lalu klik garis yang sesuai.
10. Pemasangan garis penghubung lebih mudah karena sudah ada tanda di tiap sisi(biru)

Inilah mudahnya, karena garis penghubung tersebut otomatis berada di tengah tiap sisi gambar. Anda tinggal mengisi data di tiap gambar dengan "klik kanan" pilih "add text".

Setelah data terisi, Anda bisa memformat teks maupun objeknya dengan mengklik ganda pada gambar tersebut. Tinggal dipilih mana yang akan diubah.

Mudah bukan? Hanya dua menu yang ada di drawing toolbars yang kita gunakan. Semoga bermanfaat.

Sumber uang di Blog!

Iseng iseng saat coba cari tutorial tentang Vibrant Media di google malahan ketemu informasi dibawah ini. Berikut beberapa program-program penghasil duit di internet. Beberapa sudah ku ikuti tapi lebih banyak yang belom. Kalau kira2 kamu mo cari tahu lebih detail tentang program-program dibawah ini, coba aja googling sendiri, buat cari tahu tentang tutorialnya, coba aja daftar dan ikuti semua program ini kalo semuanya ngasil, wah….bukan main tuh hasilnya. Semoga bermanfaat.

A.1.Weblogs, Inc.

http://weblogsinc.com
Anda dapat menggunakan blog ini sebagai blog anda atau tuliskan ide-ide menarik untuk topik yang anda suka. Anda akan dibayar untuk tiap posting yang anda tulis, namun terdapat syarat jumlah posting minimum yang harus dipenuhi sebelum mendapat bayaran.

A.2. Pay PerPost

http://payperpost.com
Anda akan dibayar hingga $500 atau setara dengan Rp. 4 juta-an perbulan untuk menulis artikel dan review sponsor mereka pada blog yang anda miliki.

A.3. Blogsvertise
http://blogsvertise.com
Pihak Pengiklan mereka akan membayar anda ketika anda menyebutkan atau membicarakan website dan produk serta layanan mereka di dalam blog yang anda miliki.

A.4. Review Me
http://reviewme.com
Setelah blog anda diterima dalam jaringan mereka, maka anda akan dibayar sebesar $20-$200 (sekitar Rp. 180.000-Rp. 1.800.000) perposting yang anda tulis.

A.5. Smorty
http://smorty.com
Anda dapat mendapatkan $6-$100 (sekitar Rp. 54.000-Rp. 900.000) untuk tisp posting yang anda tulis dalam blog anda. Jumlah bayaran tiap posting tergantung pada popularitas dan peringkat keseluruhan dalam blog anda.

A.6. SponsoredReviews
http://sponsoredreviews.com
Anda harus menulis review mengenai produk dan layanan pemasang iklan pada website tersebut dalam blog anda, dan anda mendapatkan 35% dari upah transaksi mereka.

A.7. LoudLaunch
http://loudlaunch.com
Anda harus membuat blog tentang pelepasan produk pemasang iklan mereka yang anda minati, untuk itu mereka akan membayar anda perbulan.

A.8. Blogitive
http://blogitive.com
Anda akan dibayar mingguan melalui Paypal apabila anda memposting cerita-cerita menarik kepada mereka.

A.9. Bloggerwave
http://bloggerwave.com
Anda harus menulis tentang website, produk, layanan dan perusahaan sponsor pada blog milik anda

A.10. InBlogAds
http://inblogads.com
Tulislah tentang website, produk, layanan dan perusahaan sponsor pada blog anda dan dapatkan bayarannya.

A.11. Blogtoprofit
http://blogtoprofit.com
Anda dapat mendapatkan lebih dari $250 (sekitar Rp. 2.250.000) dengan menulis posting-posting baru di blog anda.

A.12. Creative Weblogging
http://www.creative-weblogging.com
Anda akan mendapat bayaran $225 tiap bulan dengan menulis 7-10 posting perminggu dalam jaringan mereka

A.13. Wordfirm
http://wordfirm.com
Ingin bekerja di dalam rumah dan mendapatkan uang? Anda cukup mempublikasikan buku sebagai penulis freelance di rumah dan dapatkan bayarannya.

A.14. 451Press
http://451press.com
Anda dapat mendapatkan 40% dari semua pendapatan yang dihasilkan oleh iklan-iklan di blog anda dengan menulis sebuah blog dengan jaringan mereka.

A.15. Digital Journal
http://digitaljournal.com
Jaringan blogger ini akan membayar anda untuk setiap artikel yang anda laporkan yang memiliki nilai berita di jaringan blog mereka.

A.16. BlogBurner
http://blogburner.com
Daftarkan segera diri anda untuk blog gratis dan dapatkan bayaran setiap kali anda menulis posting-posting baru. Komisi berasal dari banyaknya klik Google AdSense di blog yang anda kelola.

A.17. Squidoo
http://squidoo.com
Anda dapat menghasilkan uang dengan menulis blog disini atau memilih untuk mendonasikan pendapatan anda ke yayasan amal.

A.18. About.com
http://beaguide.about.com/index.htm
Anda juga dapat mendapatkan bayaran dengan menjadi penulis artikel panduan daftar-daftar situs di about.com. Kompensasi yanga anda dapatkan bergantung pada perkembangan jumlah kunjungan terhadap tulisan yang anda buat.

A.19. DayTipper
http://daytipper.com
Dapatkan $3 (sekitar Rp.27.000) untuk tiap tips pendek yang anda tulis dan publikasikan

A.20. Helium
http://helium.com
Anda dapat mendapatkan bagian dari hasil iklan mereka dengan menulis artikel di salurannya.

A.21. Dewitts Media
http://indianawebsitedesign.net/pages/contextual-links/contextual.html
Dapatkan bayaran untuk menulis di blog milik anda sendiri. Situs ini mengharuskan anda memiliki paling tidak page rank 3 untuk bergabung.

A.22. BOTW Media
http://botwmedia.com/botw-bloggers
Dapatkan uang dengan menulis sebuah blog di dalam jaringan mereka.

A.23. CreamAid
http://creamaid.com
Dapatkan uang dengan mengajukan posting blog anda dalam direktori mereka.

A.24. BlogFeast
http://blogfeast.net
Anda dapat mendapatkan penghasilan dari iklan Google Adsense yang terinstall, jika anda menggunakan blog di jaringannya.

A.25. Mashable
http://mashable.com/writers
Mashable memperkerjakan freelance dan beberapa staff, untuk menawarkan salah satu dari jaringan platform blog terbesar untuk para blogger.

A.26. ProBlogger
http://www.problogger.net
Anda dapat menghasilkan uang untuk setiap posting di blog anda.

A.27. B5Media
http://www.b5media.com
Tidak jauh berbeda dengan ProBloggerr, anda juga dapat menghasilkan uang untuk posting blog anda disini.

B. Program Periklanan
B.1. Google Adsense
http://google.com/adsense
Google Adsense merupakan penyedia periklanan pay-per-click yang paling populer. Anda dapat menghasilkan uamg antara $0.01-$5.00 (sekitar Rp.100-Rp.50.000) lebih tiap klik iklan di situs anda yang relevan

B.2. Text-Link-Ads
http://text-link-ads.com
Anda dapat menerima atau menolak link pemasang iklan yang muncul di situs milik anda. Mereka akan membayar 60% dari harga penjualan untuk setiap teks link yang terjual di website anda.

B.3. BlogAds
http://blogads.com
Para blogger rata-rata menghasilkan $50-$5000 perbulan untuk penjualan iklan blog. Apabila berminat untuk berpartisipasi dalam program ini, anda harus disponsori oleh orang-orang dalam jaringan mereka.

B.4. LinkWorth
http://linkworth.com
Di dalam website ini, anda akan menemukan 11 pilihan berbeda untuk mencocokkan kebutuhan periklanan yang anda inginkan. Sebagai contoh, anda dapat memilih iklan berbasis teks ataupun iklan bersponsor.

B.5. CrispAds
http://crispads.com
Anda dapat mendapatkan akses ke lebih dari 6000 pemasang iklan dalam program pay-per-click nya. Dengan begitu, anda dapat memilih pemasang iklan yang paling cocok dengan kebutuhan anda.

B.6. Chitika
http://chitika.com
Mereka menawarkan lebih dari 6 jenis periklanan untuk dicocokkan dengan kebutuhan anda.

B.7. AzoogleAds
http://azoogleads.com
Kelebihannya adalah mereka mengantarkan calon pemasang iklan ke jaringan publisher mereka untuk memberikan solusi yang paling menguntungkan bagi semua pihak.

B.8. Vibrant Media
http://vibrantmedia.com
Website ini menawarkan iklan untuk website anda dengan iklan berbasis teks kontekstual.

B.9. MediaFed
http://mediafed.com
Mereka menempatkan iklan di RSS Feed blog anda untuk menghasilkan penghasilan tambahan.

B.10. Qumana
http://qumana.com
Iklan akan dilekatkan langsung dalam posting anda. Iklan diperoleh dari kata kunci yang anda pilih dan tidak terlalu populer dengan pembaca

B.11. PeakClick
http://peakclick.com
Website ini merupakan penyedia iklan berbasis pay-per-click Austria. Mereka menyediakan penempatan otomatis situs target iklan.

B.12. DoubleClick
http://doubleclick.com
Mereka menawarkan sederetan penuh produk yang dapat anda pilih dan analisis sendiri untuk melihat mana yang paling cocok bagi kebutuhan periklanan anda.

B.13. Tribal Fusion
http://tribalfusion.com
Mereka menawarkan pembayaran yang dapat dipercaya, teknologi layanan periklanan, account manager yang baik dan up-to-date, pelaporan real-time, dengan 55% pembayaran dari hasil iklan untuk anda. Pembayaran harus melewati proses penerimaan pengajuan permintaan pembayaran.

B.14. AdBrite
http://adbrite.com
Mereka dapat menerima atau menolak iklan yang dipilih untuk situs anda sesuai persyaratan yang diminta pemilik iklan. Anda dapat memiliki kemampuan untuk menjual ruang iklan langsung dengan link “Your Ad Here” dengan program ini.

B.15. ThankYouPages
http://thankyoupages.com
Program ini memperlihatkan iklan dengan basis demografi dan relevansi. Mayoritas trafik berasal dari Amerika Serikat.

B.16. Clicksor
http://clicksor.com
Program periklanan dengan teks link iklan baris (menggarisbawahi kata-kata langsung dalam posting yang anda buat) sehingga dapat diklik menuju iklan.

B.17. TargetPoint
http://targetpoint.com
Program ini menawarkan iklan pay-per-clicks kontekstual dan sasaran pencarian.

B.18. IndustryBrains
http://industrybrains.com
Anda dapat menempatkan daftar iklan teks kontekstual dan grafis di situs anda.

B.19. BloggingAds
http://bloggingads.com
Dengan program ini, anda hanya dapat memposting iklan satu kali di situs anda. Pembayaran dilakukan melalui PayPal.

B.20. BulletAds
http://bulletads.com
Program ini berjalan dengan basis jaringan online periklanan.

B.21. AdsMarket
http://adsmarket.com
Program periklanan ini mencocokkan trafik anda dengan pemasang iklan yaitu dengan produk dan service-nya sebelum anda dapat memasang iklan mereka di situs anda.

B.22. ROIRocket
http://roirocket.com
Program ini membantu menyediakan target spesifik untuk kebutuhan pemasaran dan periklanan anda.

B.23. AdKnowledge
http://adknowledge.com
Program ini menawarkan sumber-sumber komplit untuk manajemen iklan anda. Selain itu, anda dapat menggunakan atau menjadi tempat pemasangan iklan yang cocok dengan kebutuhan anda..

B.24. Yes Advertising
http://yesadvertising.com
Pembayaran berasal dari iklan yang aktif di situs anda dari sponsor mereka. Program ini juga menawarkan program referral dan anda akan dibayar 20% dari perolehan mereka.

B.25. RevenuePilot
http://revenuepilot.com
Program ini menawarkan sistem iklan pay-per-click dan pay-per-performance untuk situs anda.

B.26. SearchFeed
http://searchfeed.com
Program ini menyediakan Iklan berbayar uang terintegrasi dalam fitur pencari di situs anda.

B.27.BidVertiser
http://bidvertiser.com
Anda dapat meletakkan iklan teks di situs anda dan pemasang iklan akan memberi tawaran untuk penempatannya.

B.28. Pheedo
http://pheedo.com
Anda dapat menghasilkan uang dengan RSS Feed-mu dengan program ini.

B.29. ValueClickMedia
http://valueclickmedia.com
Anda dapat menghasilkan pendapatan dengan iklan melalui banner, pop-up, dan rich media dari program ini yang dipasang pada situs anda.

B.30. OneMonkey
http://onemonkey.com
Program iklan yang berbasis teks.

B.31. Yahoo Publisher Network
http://publisher.yahoo.com
Dengan menggunakan raksasa internet, yahoo, anda dapat memasang iklan target yang mereka sediakan untuk situsm anda.

B.32. Q Ads
http://adgenta.com
Anda dapat menghasilkan uang dengan menempatkan iklan dimanapun yang dapat ditempatkan gambar.

C. Jaringan dan Program Afiliasi

C.1. Amazon Associates
http://affiliate-program.amazon.com/gp/associate/join
Anda dapat menghasilkan bayaran hingga 10% harga penjualan yang dihasilkan dari link yang terpasang di website anda dengan cara memasang link ke produk-produk dan jasa-jasa amazon di website anda.

D. Program Media Sosial

D.1. Dada.net
http://dada.net
Situs sosial dengan program pembagian hasil pendapatan. Situs ini akan membayar anda apabila anda mengajak teman dan menghasilkan trafik.

D.2. Jyve
http://jyve.com
Anda akan dibayar untuk jawaban, saran dan bantuan yang anda berikan kepada mereka yang membutuhkan bantuan di situsnya.

D.3. Cruxy
http://cruxy.com
Situs ini mengkhususkan diri dalam video sosial, tetapi anda dapat menjual media digitalmu juga disini untuk memperoleh penghasilan.

D.4.BitWine
http://bitwine.com
Anda akan dibayar apabila andamemberikan saran dan jawaban pertanyaan untuk orang-orang, pada subyek-subyek yang menarik buatmu dan andapilih sendiri.

D.5. Ether
http://ether.com
Anda akan menghasilkan uang dengan menjawab pertanyaan lewat saluran telepon online. Anda dapat menyesuaikan ketersediaan panggilan dan rasio-nya.

D.6. UpBlogger
http://upblogger.com
Situs jaringan sosial ini akan membayar anda berdasarkan jumlah kunjungan yang diterima pada konten yang anda upload di situs itu.

D.7. JustAnswer
http://justanswer.com
Anda dapat membantu orang lain untuk menyelesaikan masalah mereka dan dapat menghasilkan uang dengan pengetahuan yang anda miliki.

D.8. MetaCafe
http://metacafe.com
Upload sejumlah video dan anda dapat menghasilkan uang berdasarkan pada banyaknya video tersebut dilihat

D.9. ChaCha
http://chacha.com
Anda akan dibayar jika anda memberikan bantuan kepada anggota-anggota komunitas situsnya.

D.10. AssociatedContent
http://associatedcontent.com
Anda dapat menghasilkan uang dengan mengupload video, teks, audio dan gambar milik anda ke situs mereka. Penghasilan yang diterima akan diukur berdasarkan nilai isi yang anda upload.

D.11. myLot
http://mylot.com
Anda akan dibayar untuk posting, menkomentari dan menggunakan jaringan sosial mereka.

D.12. KnowBrainers
http://knowbrainers.com
Situs yang akan membayar anda apabila ikut dalam komunitasnya dan menjawab pertanyaan.

E. Lain-lain
E.1. Google User Research
https://survey.google.com/wix/p082276.aspx
Google membayar anda untuk berpartisipasi dalam studi penelitian online mereka.

E.2. Microsoft Research Panel
http://www.microsoft.com/mscop/marketing_research/
Anda akan dibayar oleh microsoft untuk memberikan umpan balik terhadap produk-produknya.

E.3. Amazon Mechanical Turk
http://www.mturk.com/mturk/welcome
Amazon membayar anda untuk menyelesaikan masalah-masalah kecil yang tidak dapat mereka mengerti. Pembayaran hanyalah beberapa sen.

E.4. eJury
http://ejury.com
Anda dapat menghasilkan $5-$10 untuk tiap orang yang berpura-pura menjadi anggota juri sebagai latihan percobaan.

E.5. WorkingSOL
http://workingsol.com
Perusahaan ini akan membayar anda untuk menangani bantuan teknis bagi berbagai perusahaan besar. Anda dapat bekerja dari rumah dengan komputer anda atau dengan telepon pada jam-jam yang anda tentukan sendiri.

E.6. Appingo
http://appingo.com
Perusahaan ini selalu mencari editor-editor yang berpengalaman dan pembaca tulen untuk dibayar.

E.7. IntelliShop
http://intelli-shop.com
Anda akan dibayar untuk berbelanja di toko-toko dalam area anda dan menulis review tentang pengalaman berbelanja tersebut.

E.8. Mahalo Greenhouse
http://greenhouse.mahalo.com
Mereka akan membayar anda antara $10-$15 untuk setiap situs yang anda ajukan ke direktori mereka.

E.9. Focus Pointe Global.
http://focusgroup.com
Anda akan dibayar untuk mengikuti grup tersebut dan mengeluarkan pendapat, tersedia bagi remaja dan orang dewasa.

E.10. Agloco
http://agloco.com
Download toolbar mereka dan dapatkan uang dengan surfing internet.

E.11. Arise
http://arise.com
Anda dapat mendapatkan uang dengan menyediakan bantuan via telepon, web dan email dan juga membantu penjualan untuk 40 perusahaan lebih di jaringan mereka.

E.12. CraZoo
http://crazoo.com
Anda dapat menghasilkan uang dengan memulai topik baru dan posting di forum online mereka.

E.13. Tutor.com
http://tutor.com
Anda akan dibayar untuk mengajari orang-orang secara online.

E.14. ForumBoosting.com
http://forumboosting.com
Anda dapat menghasilkan uang dengan posting di forumnya.

E.15. Share-A-Pic
http://www.shareapic.net
Dengan upload dan sharing foto-foto yang anda miliki, anda dapat menghasilkan uang di website mereka.

E.16. OpuzzVoice
http://opuzzvoice.com
Anda dapat menghasilkan uang dengan memberikan pendapat untuk klien mereka secara online.

E.17. SlashMySearch
http://slashmysearch.com
Anda dapat menghasilkan uang dengan menggunakan search engine mereka.