Differences between INDEX, PRIMARY, UNIQUE, FULLTEXT in MySQL

Differences

  • KEY or INDEX refers to a normal non-unique index. Non-distinct values for the index are allowed, so the index may contain rows with identical values in all columns of the index. These indexes don’t enforce any restraints on your data so they are used only for making sure certain queries can run quickly.
  • UNIQUE refers to an index where all rows of the index must be unique. That is, the same row may not have identical non-NULL values for all columns in this index as another row. As well as being used to speed up queries, UNIQUE indexes can be used to enforce restraints on data, because the database system does not allow this distinct values rule to be broken when inserting or updating data.Your database system may allow a UNIQUE index to be applied to columns which allow NULL values, in which case two rows are allowed to be identical if they both contain a NULL value (the rationale here is that NULL is considered not equal to itself). Depending on your application, however, you may find this undesirable: if you wish to prevent this, you should disallow NULL values in the relevant columns.
  • PRIMARY acts exactly like a UNIQUE index, except that it is always named ‘PRIMARY’, and there may be only one on a table (and there should always be one; though some database systems don’t enforce this). A PRIMARY index is intended as a primary means to uniquely identify any row in the table, so unlike UNIQUE it should not be used on any columns which allow NULL values. Your PRIMARY index should be on the smallest number of columns that are sufficient to uniquely identify a row. Often, this is just one column containing a unique auto-incremented number, but if there is anything else that can uniquely identify a row, such as “countrycode” in a list of countries, you can use that instead.Some database systems (such as MySQL’s InnoDB) will store a table’s records on disk in the order in which they appear in the PRIMARY index.
  • FULLTEXT indexes are different from all of the above, and their behaviour differs significantly between database systems. FULLTEXT indexes are only useful for full text searches done with the MATCH() / AGAINST() clause, unlike the above three – which are typically implemented internally using b-trees (allowing for selecting, sorting or ranges starting from left most column) or hash tables (allowing for selection starting from left most column).Where the other index types are general-purpose, a FULLTEXT index is specialised, in that it serves a narrow purpose: it’s only used for a “full text search” feature.

Similarities

  • All of these indexes may have more than one column in them.
  • With the exception of FULLTEXT, the column order is significant: for the index to be useful in a query, the query must use columns from the index starting from the left – it can’t use just the second, third or fourth part of an index, unless it is also using the previous columns in the index to match static values. (For a FULLTEXT index to be useful to a query, the query must use all columns of the index.)

mySQL String Functions

Untuk mendapatkan result dimana jumlah char untuk field berkenaan adalah 2:

$sql = “SELECT field FROM table WHERE CHAR_LENGTH(field) = 2”

Selain penggunaa LIKE atau RLIKE, untuk mendapatkan result dimana 2 char pertama dlm field tersebut adalah Ah:

$sql = “SELECT field FROM table WHERE LEFT(field,2) = ‘Ah'”

Juga selain penggunaa LIKE atau RLIKE, untuk mendapatkan result dimana 2 char terakhir dlm field tersebut adalah ad:

$sql = “SELECT field FROM table WHERE RIGTH(field,2) = ‘ad'”

Untuk mendapatkan result dimana bermula char kedua sebanyak 3 char dlm field tersebut seperti hma:

$sql = “SELECT field FROM table WHERE MID(field,1,3) = hma'”

Sumber: mySQL.Com

Pemasangan Xampp

Hari ini masa PakCu agak terluang sedikit berbanding minggu-minggu sebelum ini. Jadi PakCu hendak mulakan pos-pos tutorial dengan tajuk Pemasangan Xampp. Terlebih dahulu PakCu nak terangkan mengenai peralatan yang perlu ada untuk menjalankan skrip-skrip PHP di dalam PC anda. Sebelum itu, sila lihat post berikut – http://www.haqis.com/?p=409


Keperluan Aplikasi

PHP adalah salah satu Server Side Scripting Programming Language selain daripada ASP, CMF, JSP, PERL, ROR. Untuk menjalankan skrip-skrip PHP di dalam PC anda, anda perlu melengkapkan PC anda dengan aplikasi-aplikasi berikut:
+ Web Server (apache, IIS,  lighttpdnginx, Cherokee dsbnya)
+ PHP (terkini versi 5.5)
+ Database (mysql, oracle, mssql, sybase, ODBC dsbnya)
+ Editor @ IDE  (Notepad++, sublime text, PHPStorm, Adobe Dreamweaver dsbnya)
+ Web Browser (Google Chrome, Internet Eplorer (IE), Mozilla Firefox, Safari dsbnya)

Setiap aplikasi di atas perlu dipasang (installation) satu-persatu dan dibuat tetapan (configuration) terlebih dahulu di dalam PC anda. Namun terdapat aplikasi yang telah mengabungkan beberapa aplikasi di atas dan memudahkan pengguna untuk membuat tetapan bagi setiap aplikasi tersebut. Sebagai contoh, Xampp, Easyphp, WAMP, PHPTriad dsbnya). Aplikasi ini telah mengumpulkan aplikasi PHP, Apache dan mySQL ke dalamnya. Jadi hanya perlu memasang aplikasi ini sahaja dan ketiga-tiga elemen penting untuk pembangunan website menggunakan PHP telah dipasang ke dalam PC anda. Kadang-kadang terdapat aplikasi/skrip tambahan turut di pasang di dalam aplikasi tersebut. Contohnya, PHPMyAdmin (GUI untuk menguruskan mysql), tomcat, filezilla, mercury dan sebagainya). Aplikasi ini adalah pilihan bagi anda yang ingin menggunakan aplikasi tersebut.

Namun perlu diingatkan aplikasi bundle ini hanya sesuai digunakan untuk pembangunan (development) sahaja dan bukan untuk produksi (production). Bagi tujuan produksi, adalah disarankan memasangan setiap aplikasi tersebut dibuat satu-persatu.


Pemasangan Xampp

Aplikasi yang akan digunakan untuk tutorial PakCu ini adalah:
+ Apache (web server)
+ PHP 5.4
+ mySQL (database)
+ Notepad++ (mungkin juga akan bertukar yg lain pada masa akan datang :p)
+ Google Chrome (i hate IE)

Anda boleh memuatturun aplikasi Xampp di url berikut – http://www.apachefriends.org/en/xampp.html. Ketika artikel ini ditulis, Xampp telah mengeluarkan versi 1.8.2 (bagi pengguna windows).

1 download

Apabila anda memuatturun versi apache/mysql/php yang hendak digunakan dalam proses pembangunan, sewajarnya hendaklah versi-versi tersebut sama seperti versi yang telah dipasang di dalam server produksi. Ini bagi mengelakkan masalah penggunaan fungsi di dalam aplikasi tersebut setelah ia dipindakan daripada server pembangunan ke server produksi.

Setelah fail tersebut berjaya dimuatturun, proses berikutnya adalah proses pemasangan aplikasi Xampp ke dalam PC anda. Klik 2 kali pada fail exe tersebut dan paparan berikut akan dipaparkan:

2 bahasa

Klik pada butang OK dan paparan berikut akan dipaparkan:

3 uac

Klik butang OK dan paparan berikut akan dipaparkan:

4 welcome

Klik butang Next untuk proses pemasangan selanjutnya dan paparan berikut akan dipaparkan:

5 component

Klik butang Next dan paparan berikut akan dipaparkan:

6 localtion

Anda boleh menukar lokasi pemasangan. Kemudian klik butang Install dan paparan progres pemasangan berikut akan dipaparkan:

7 install

Tunggu sehingga progres berakhir dan klik butang Next dan paparan berikut akan dipaparkan:

8 configure

Paparan ini akan tertutup secara automatik setelah proses configure selesai. Paparan berikut akan dipaparkan menandakan proses pemasangan Xampp selesai:

9 finish

 

 

HAQIS IT Training & Consultant

Sukacita dimaklumkan pihak pengurusan dan pentadbiran HAQIS IT Training & Consultant telah dikemaskini dan diambilalih sepenuhnya oleh Pn. Adryana Anati Sulaiman Shah. Ini bagi tujuan memastikan pengurusan HAQIS akan menjadi lebih mantap selaras dengan halatuju syarikat.

Insyallah, kami telah merancang dan menjadualkan beberapa program seperti mengadakan latihan/kursus, pembangunan web dan aplikasi serta membuat tutorial berguna lagi kepada pengunjung web ini.

PHPMeetup 2011: Framework Shootout

Komuniti PHP.net.my dengan kerjasama MIMOS sekali lagi menganjurkan PHP Meetup. Perjumpaan kali ini akan berkisar mengenai framework yang ada di komuniti sumber terbuka.

Tentatif :
8.30 – Pendaftaran
9.00 – Ucapan alu-aluan dari Founder Php.net.my
– Ucapan alu-aluan dari Mimos Berhad
– CakePHP
10.25 – Breakfast
10.55 – Most Wanted Programmers
– Django
– DooPHP
1.10 – Lunch
2.15 – ZendFramework
– CodeIgniter
– Ruby On Rails
– PHP Hyppo
5.05 – Tea Break and Chats

– Presenters:
1. Zend Framework (TerasAmpuh)
2. CakePHP (Bazet)
3. PHPHyppo (hymns)
4. Code Igniter (aizuddinmanap.com)
5. dooPHP – Leng Sheng Hong (darkredz)
– Guest Languages:
6. Django – framework untuk Python (Doubt).
7. Ruby on Rails (Azrad)
– Non-framework topic
8. Become the Most Wanted Programmer in the Market (Lee Johnson – 40Square)

Bahasa pengantar adalah mengikut presenter.

masuk adalah percuma. keluar pun sama. 🙂

Breakfast, Lunch dan makan petang disediakan. First come first makan basis.

Penaja Bersama :
AIST – http://www.aist.com.my/
PRIMUSCORE – http://www.primuscore.com/
EXPERIAN HITWISE – http://www.hitwise.com/
JMOBI – http://www.i-mobe.com/

Yang datang akan dapat MUG PERCUMA selagi stok masih ada.

Semoga segalanya dipermudahkan olehNYA.

FB: http://www.facebook.com/event.php?eid=147833501942196

UPDATED

Aku seronok dpt jumpa member2 zaman sekolah dulu2. Semuanya melalui Facebook !! Betullah kata member, kalo ko nak cari member ko, ko taip jer nama dia dlm facebook mesti jumpa punya.. Tapi bukan semua.. Menariknya, jumpa seorang, akan jumpa yg lain lagi 🙂

Skang ni aku tengah bangunkan laman web Jabatan Maklumat Kesihatan. Nampak simple tetapi ada beberapa interactive function yang akan menjadikan ianya lebih menarik utk dikunjungi. Team webmaster dah ada.. Depa cari/tambah/kemaskini content.. aku lak, buat programming utk function2 ni… nasib baik ada Hezra yg bantu aku buat layout… senang skit kerja.

mIRC !! Dah lama aku x online, abg Mahmud balik kg sempena cuti sekolah 2 minggu ni.. So segala perkembangan utk mIRC terbantut !!

Kod yang di fahami

Ini adalah rumusan dari PHP Advent 2009 : Comprehensible Code oleh Paul M Jones.

Seorang yang bodoh boleh menulis kod yang komputer faham. Pengaturcara yang baik, menulis kod yang manusia faham – Refactoring : Improving the Design of Existing Code, by Martin Fowler .

Membaca adalah sukar dan memerlukan usaha yang tinggi ( Jika tidak, sudah tentu peratus membaca di M’sia sangat tinggi ) . Setelah anda pandai membaca, anda biasa memandang rendah usaha membaca. Membaca dengan usaha untuk memahami masih kekal satu kerja yang sukar bagi semua.

Cuba bayangkan apakah usaha yang diperlukan untuk membaca kod orang lain ? . Bukan sahaja anda memerlukan pengetahuan dalam bahasa tersebut, anda perlu memahami corak dan struktur pengaturcaraan tersebut. Setiap pengaturcara adalah seorang pengarang yang mempunyai corak sendiri. Walaupun bahasa pengaturcaran tidak selembut bahasa percakapan, ia masih memerlukan usaha yang tinggi untuk memahaminya.

Usaha lawan Ganjaran

Membaca kod orang lain, dirasakan sebagai tidak produktif (Cuba anda habiskan masa membaca kod orang lain di ofis dalam masa satu hari, ia akan dianggap anda mencuri tulang sama dengan bermain Farmville di Facebook Wink . Dengan membaca, anda mungkin mendapat pengetahuan tentang pengaturcaraan, tetapi anda tidak menghasilkan perkara baru. Kepada pengaturcara, terutamanya yang berfikir mereka hanya dibayar untuk menulis kod (dah bukan membaca) , tahap usaha yang diperlukan untuk memahami kod orang lain adalah seperti membuang masa. Tahap usaha dengan ganjaran yang diterima sangat mengecewakan.

Tetapi, ganjaran untuk usaha menulis kod sangat mudah dan dirasakan sangat positif. Ia kurang mengecewakan dari cuba memahami kod orang lain, kerana anda adalah pembangun tersebut. Ia dirasakan amat positif oleh kerana setiap baris baru adalah satu yang anda boleh tunjuk sebagai hasil kepada usaha anda. Perasaan ini sangat sukar untuk ditolak.

Kod sebagai komunikasi

Masalah besar bagi membaca kod orang lain adalah mereka tidak berfikir tentang masa hadapan, tidak memikirkan kepada pembangun yang membaca aturcara mereka. Ia adalah normal untuk memikirkan kod anda adalah untuk komputer, tetapi fikiran tersebut adalah salah. Sebagai pengaturcara, anda terpaksa berhadapan dengan dua pembaca: komputer dan pengaturcara lain. Program anda adalah satu medium untuk komunikasi tidak langsung kepada pembangun lain. Kod adalah perbualan di antara anda dengan pengaturcara lain yang perlu berinteraksi dengannya.

Untuk pengaturcara lain , membaca kod anda adalah kerja yang sukar. Kepada merkea, membaca kod anda adalah pembelajaran yang baru. Mereka terpaksa belajar memahami apa yang anda cuba selesaikan dan kenapa anda perlu mengambil pendeketan tersebut. Setelah anda sedar, bahawa membaca kod adalah satu pembelajaran, anda akan mula menghargai bahawa anda harus menulis sebagai pengajarang kepada mereka supaya mudah memahami kod anda dengan lebih pantas. Ia memang lebih banyak kerja kepada anda, tetapi ganjaran yang tinggi bagi kerja tersebut adalah antara sebab pengaturcara suka (untuk terus membaca kod anda ).

Singkatan: apabila anda menulis kod, ingatlah kepada sesiapa yang malang terpaksa membaca kod anda. Orang yang malang itu mungkin anda dalam masa enam bulan akan datang.

Ke arah komunikasi yang lebih baik

1. Gunakan standard aturcara yang digunakan oleh orang lain. Saya adalah peminat bagi Pear style guide.
2. Pengaturcara adalah siri arahan, bukanlah ayat yang bersiri . Secara kasarnya, lebih baik menggunakan kod yang lebih panjang dan mudah difahami dari pendek dan memerlukan masa untuk pemahaman.
3. Tukar cara yang anda rasa bijak di dalam kod, kepada cara yang lebih mudah dan jelas. Anda mungkin rasa anda ingin menunjukkan anda bijak dengan menggunakan sintaks yang pendek.Tetapi dengan niat tersebut, anda menyusahkan pengaturcara lain untuk memahami kod anda. Jika perlu untuk “menunjuk”, sila komen kod anda seperti karangan lebih 80 patah perkataan (saya menambah)

Seni dalam perbualan.

Pemahaman teknikal dalam bahasa pengaturcaraan, tidak menjamin anda seorang yang mempunyai bakat untuk berkomunikasi di dalam kod. Seperti perbualan biasa, ia adalah satu seni dan bukan sains. Ia adalah bakat yang akan berkembang dengan latihan dan sentiasa ada ruang untuk diperbaiki.

Dengan melihat kod anda sebagai peluang untuk berkomunikasi dengan pembangun lain, saya harap anda akan melihat habuan yang tinggi bagi menulis sebagai pengajaran kepada orang yang perlu bekerja dengan kod anda, dengan itu menghadiahkan ganjaran yang tinggi bagi usaha membaca kod anda.

Memperbaiki kualiti perbualan anda di dalam kod akan meningkatkan lebih ramai orang bekerja dengan kod anda dan mengurangkan kekecewaan bagi orang lain memahami kehendak kod anda. Untuk orang lain, membaca dan memahamkan kod anda adalah kerja yang berat. Sentiasa ingat bahawa pembangun yang lain itu mungkin ada pada masa akan datang, datang semula untuk mengemaskinikan kerja anda. Jika bukan untuk orang lain, tulis kod yang mudah difahami untuk anda.

Sumber: PHP.NET.MY