Query atau SQL benar-benar sip. Masih banyak metode/rumus query yang perlu saya pelajari untuk menghasilkan suatu query yang saya butuhkan sewaktu-waktu. Yah meskipun kadang sudah bisa tapi sejalan beriringnya waktu, akhirnya lupa lagi... hehe
Berikut ini adalah trik sederhana untuk menghasilkan data dari TABEL dengan melakukan GROUP BY. Dalam contoh ini saya melakukan GROUP BY MONTH dan YEAR.
Langsung saja.
Isi TABEL seperti ini.
Berikutnya ketikkan Query berikut:
--------------------------------------------------------------------------
select post_po,month(tgl_entrypo) as bulan, year(tgl_entrypo)as tahun from t_po
group by EXTRACT(YEAR_MONTH FROM tgl_entrypo)
--------------------------------------------------------------------------
Maka hasinya seperti ini:
Silahkan kembangkan sendiri ya...
Mau yang lebih lengkap lagi ada disini...
...Baca selengkapnya....!
Query: Group Tabel by Month & Year
Cara Mereset AutoIncrement di MySQL
Berikut adalah cara mereset AutoIncrement pada Tabel.
Cukup anda mengetikkan query berikut ini:
-------------------------------------------
ALTER TABLE nama_tabel AUTO_INCREMENT = 0;
-------------------------------------------
Sebagai saran saja, apabila anda ingin melakukan Reset AutoIncrement , sebaiknya anda membeckup database anda terlebih dahulu. Setelah itu hapus semua Isi tabel yang anda ingin reset, lalu lakukan Reset AutoIncrement diatas.
...Baca selengkapnya....!
Query View untuk Group dan Crosstab Data
Sebenarnya query ini tidak sering kita butuhkan. Ya tergantug kebutuhan. Semua itu balik lagi ke ide-ide kita.
Silahkan baca, perhatikan dan pelajari query dibawah ini. Semoga memberikan inspirasi bagi anda.
SELECT a1.name,
a1.sex,
a2.name,
a2.sex,
a1.species
FROM domestic_animal AS a1
INNER JOIN domestic_animal AS a2
ON a1.species = a2.species
AND a1.sex = 'f'
AND a2.sex = 'm';
--PRODUCES--:
+--------+------+--------+------+---------+
| name | sex | name | sex | species |
+--------+------+--------+------+---------+
| Bertha | f | Bucko | m | cow |
| Buffy | f | Killer | m | dog |
| Babe | f | Bowser | m | pig |
+--------+------+--------+------+---------+
Sumber dari sini...
...Baca selengkapnya....!
SQL Laporan per Bulan Tahun
Setiap laporan keuangan, penjualan, pembelian dsb biasanya membutuhkan laporan perpediode. Baik itu pertahun, persemester, setengah semester(3 Bln), perbulan atau bahkan perbulan sendiri. Nah disini saya ingin memposting contoh Query untuk membuat laporan perbulan dalam setahun terakhir.
Mohon maaf kalau teksnya bahasa planet. Di pojok kanan ada translite. Silahkan translite sendiri(btw bahasa daerah tidak ada lho).
---------------------------------------------------------------------------------
I have to admit that I am totally hooked on the The Rozenshtein Method. My buddy, Richard Campbell showed it to me a year or two ago and I have been hooked ever since. I recently demoed it at TechED in Dallas, a recent WebCast, VSLive in New York and will be showing it off at TechEd in Malaysia next week. I have gotten lots of email and positive feedback so I decided to blog it here.
Here is how it works. You need a crosstab query. You have to move rows into columns. You also need ANSI 92 SQL that will run in any database.Well there are several ways to do this, but the most generic and one of the most powerful ways is called the Rozenshtein Method, which was developed by the Russian mathematician David Rozenshtein. This technique was taken from his book: Optimizing Transact-SQL : Advanced Programming Techniques.
First let’s look at the desired results. We want to take the orders data from Northwind and pivot the sales date (aggregated by month) as columns with the sum of the total sales in the row grouped by customer. It would look something like this:
---------------------------------------------
CompanyName | TotalAmount |Jan |Feb |Mar…|(etc)
---------------------------------------------
Company1 | 100 | 25 | 33 | 10 |
Company2 | 467 | 76 | 62 | 87|
(etc)
The TSQL query to do this is, go ahead and run it in Northwind in SQL Server:
SELECT CompanyName, SUM((UnitPrice*Quantity)) As TotalAmt,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-1)))) AS Jan,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-2)))) AS Feb,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-3)))) AS Mar,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-4)))) AS Apr,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-5)))) AS May,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-6)))) AS Jun,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-7)))) AS Jul,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-8)))) AS Aug,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-9)))) AS Sep,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-10)))) AS Oct,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-11)))) AS Nov,
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-12)))) AS Dec
FROM Customers INNER JOIN
Orders ON Customers.CustomerID = Orders.CustomerID INNER JOIN
[Order Details] ON Orders.OrderID = [Order Details].OrderID
Group By Customers.CompanyName
So how does this work?
This method uses Boolean aggregates, so that each column has a numeric expression that resolves each row as a zero or one and that value (0 or 1) is multiplied by your numeric expression (Like TotalSales or (UnitPrice*Quantity). That is all there is to it, quite simple. But wait, there’s more to explain:
We want to create columns for each Month in our data. To find a month use DatePart. But we need to subtract the DatePart value (1-12) from the amount you’re looking for (1 for Jan, 2 for Feb, etc) as shown here for January:
DatePart(mm,OrderDate)-1
So that true = zero, false > 0 or < 0. For example if the month you were looking for was January and the DatePart was 1 and you subtract 1 from that value you get 0, which is true. If you are looking for March you would get -2 and that would be false.
Next you have to compute the sign of the expression and get the absolute value like so:
ABS(SIGN(DatePart(mm,OrderDate)-1)))
This will give us a positive value. Remember 0 is still true. Now subtract the value computed from 1 in order to get a 0 or 1 from the value of your expression (the Boolean aggregate). The code is:
(1-ABS(SIGN(DatePart(mm,OrderDate)-1))))
For example if you had March return 3 from the Datepart, 3-1=2 and 1-2 =-1. The absolute value is 1. This will always return 0 or 1. If your expression was zero, the value is now one. If was one, the value is zero.
Last step. Taking the SUM of the Boolean values will give you a count of the values that qualify. So you can find out how many sales you made in Jan, Feb, etc. So now multiply the value by the price and quantity, but remember its now one = true. Take a look here:
SUM((UnitPrice*Quantity)*(1-ABS(SIGN(DatePart(mm,OrderDate)-1)))) AS Jan
If its zero, nothing gets added, if its one, you get the value of the sale. The sum of the total expression is the total of sales for the month. If you have a DatePart that is evaluated to 0 then ((UnitPrice*Quantity)*0) is 0 and those results are ignored in the SUM. If you have a month that matches your expression resolves to 1 and ((UnitPrice*Quantity)*1) is the value of the sale.
How easy!
But wait, there’s more! Suppose you wanted two values combined? Compute each value down to zero or one separately. Now you can use AND by multiplying, OR by adding (and reduce to 1 or 0 using SIGN).
Sumber dari sini....
Saya kira penjelasannya sudah sangat jelas. Saya sendiri sudah pernah mencobanya secara langsung dan tinggal edit-edit dikit dan ternyata berhasil. Nah sekarang giliran kalian yang mencoba.... ^^Y
...Baca selengkapnya....!
Merubah DATA NULL menjadi NOL atau berisi data ""
Sekedar iseng-iseng update Blog aja.
Setiap data pada database yang berisi NULL sebenarnya sama saja data tersebut berisi "" (atau kosong sama sekali). Ada beberapa kemungkinan yang menyebabkan data berisi NULL antara lain:
1. Pada saat pengisian/penginputan data, Field tersebut tidak di isi sama sekali, dan tentunya field tersebut diberikan bersifat ALLOW NULL, atau diperbolehkan NULL(kosong atau blank).
2. Pada saat membuat VIEW antar beberapa TABEL menggunakan JOIN.
Berikut ini adalah contoh untuk mengubah nilai/value data yang NULL menjadi data baik data berupa STRING ataupun INTEGER.
COALESCE(nm_tabel.datanull,0)as data
COALESCE disini berfungsi untuk membaca data yang berisi NULL pada field NM_TABEL.DATANULL dan mengubahnya menjadi 0. Kita juga bisa mengganti 0 tersebut dengan kata bertype STRING sesuai kebutuhan.
COALESCE ini biasanya digunakan pada saat penampilan data TABEL ataupun pembuatan VIEW dan menghasilkan data NULL.
...Baca selengkapnya....!
Fungsi System pada MySQL
Fungsi Sistem adalah kelompok Fungsi yang memberikan informasi tentang pemakaian server database. Kelompok Fungsi ini terdiri dari:
• DATABASE()
Fungsi ini digunakan untuk memberikan informasi database apa yang sedang digunakan oleh pemakai.
• LAST_INSERT_ID()
Digunakan untuk menampilkan informasi data yang telah dihasilkan (di-generate) oleh Mysql pada kolom yang menggunakan tipe data AUTO INCREMENT.
• SESSION_USER()
Fungsi yang digunakan untuk manampilkan informasi pemakai yang sedang melakukan akses ke dalam server Mysql. Kadang digunakan oleh pemakai untuk mengetahui siapa yang sedang login ke dalam database yang sedang ditinggalkan oleh pemakainya, atau kadang juga kita ingin mengetahui pada saat ini kita sedang memakai account user milik siapa.
• SYSTEM_USER()
Fungsi ini sama dengan Fungsi SESSION_USER().
• USER()
Fungsi ini sama dengan Fungsi SESSION_USER() dan SYSTEM_USER().
• SHOW DATABASE
Fungsi ini dapat digunakan untuk melihat database yang sudah ada dalam Mysql.
• USE NAMADATABASE
Apabila seorang pemakai telah berada di dalam lingkungan Mysql, pemakai tersebut dapat memilih database mana yang akan dikelola. Untuk keperluan tersebut pemakai dapat menggunakan perintah use diikuti nama database yang akan dikelola. NAMADATABASE adalah nama dari database yang ada pada Mysql.
• SHOW TABLES
Fungsi ini digunakan untuk melihat tabel apa saja yang ada di dalam suatu database.
• DESCRIBE NAMATABEL
Fungsi ini digunakan untuk melihat struktur tabel yang ada dalam suatu database. NAMATABEL adalah tabel yang ingin dilihat strukturnya seperti field-field dan tipe data yang ada dalam tabel tersebut.
• VERSION()
Fungsi yang digunakan untuk mengetahui versi dari server Mysql yang sedang digunakan.
Dan beberapa Fungsi lainnya:
mysql_close() = Digunakan untuk menutup koneksi dengan server MySQL.
mysql_affected_rows() = Get number of affected rows in previous MySQL operation.
mysql_connect() = Untuk membuka koneksi dengan database MySQL Server.
mysql_create_db() = Untuk membuat database baru, perintah ini dapat menggunakan perintah CREATE DATABASE.
mysql_data_seek() = Move internal result pointer.
mysql_db_name() = Untuk menghasilkan nama database.
mysql_db_query() = Untuk mengantarkan query SQL.
mysql_drop_db() = Untuk menghapus database, perintah sa,a fungsinya dengan perintah DROP DATABASE.
mysql_errno() = Untuk menampilkan pesan kesalahan dalam bentuk no dari server MySQL.
mysql_error() = Untuk menampilkan pesan kesalahan dalam bentuk teks dari server MySQL.
mysql_fecth_array() = Menghasilkan data array dari isi tabel yang diseleksi (ditampilkan), untuk mengaksesnya dapat mnegunakan indeks berupa nama kolom dari tabel.
mysql_fecth_assoc() = Menghasilkan data berupa array dalam bentuk field dari tabel MySQL.
mysql_fecth_field() = Menghasilkan informasi kolom dari hasil yang kemudian dikembalikan sebagai suatu objek.
mysql_fecth_lengths() = Menghasilkan besar file dari hasil tabel MySQL.
mysql_fecth_object() = Menghasilkan sebuah baris sebagai suatu objek.
mysql_fecth_row() = Menghasilkan data array dari isi tabel yang diseleksi (ditampilkan), untuk mengaksesnya dapat menggunakan indeks angka (0,1,2,3,...).
mysql_field_name() = Menghasilkan nama field khusu pada database MySQL.
mysql_field_len() = Untuk mendapatkan panjang kolom.
mysql_field_seek() = Set result pointer to a specified field offset.
mysql_field_table() = Get name of the table the specified field is in.
mysql_field_type() =Get the type of the specified field in a result.
mysql_free_result() = Free result memory.
mysql_insert_id() = Get the id generated from the the previous INSERT operation.
mysql_list_dbs() = Untuk mendapatkan daftar semua database yang ada pada server MySQL.
mysql_list_fields() = Untuk mendapatkan daftar semua kolom pada tabel yang aktif.
mysql_list_tables() = Untuk mendapatkan daftar semua tabel pada database yang aktif.
mysql_num_fields() = Mendapatkan jumlah kolom pada hasil perintah.
mysql_num_rows() = Digunakan untuk mendapatkan jumlah hasil dari perintah yang dijalankan, biasanya dari perintah SELECT yang dijalankan.
mysql_pconnect() = Membuka koneksi langsung dengan MySQL.
mysql_query() = Digunakan untuk mengirimkan atau menjalankan perintah SQL.
mysql_result() = Untuk menghasilkan data.
mysql_select_db() = Digunakan untuk masuk atau mengaktifkan database di dalam server MySQL.
mysql_tablename() = Mendapatkan nama tabel.
...Baca selengkapnya....!
Penggunaan FUNGSI LOGIKA di MYSQL
Sama halnya dengan bahasa pemrograman biasanya, di MYSQL kita juga dapat menggunakan oprator FUNGSI LOGIKA. Baik itu pemakaiannya pada STORE PROCEDURE, TRIGGER, ataupun FUNCTION.
Berikut ini adalah contoh sederhana pemakaian FUNGSI LOGIKA pada MYSQL.
* IF
IF session_count > 0 THEN
SELECT 1;
ELSE
SELECT 0;
END IF;
* CASE
DECLARE ambil INTEGER DEFAULT 10;
CASE ambil
WHEN 2 THEN SET ambil= ambil+ 2;
WHEN 5 THEN SET ambil= ambil+ 5;
ELSE
SET ambil= 50;
END CASE
* WHILE
DECLARE n INTEGER DEFAULT 0;
iterwhile: WHILE n <>
SET n = n + 1;
END WHILE iterwhile;
* LOOP
DECLARE n INTEGER DEFAULT 0;
ulang: LOOP
IF n <>
SET n = n + 1;
ELSE
LEAVE ulang;
END IF;
END LOOP ulang;
* REPEAT
DECLARE n INTEGER DEFAULT 0;
ulang : REPEAT
SET n = n + 1;
UNTIL n <>
END REPEAT ulang ;
* ITERATE
DECLARE n INTEGER DEFAULT 0;
testloop: LOOP
IF n = 10 THEN
SET n = n + 12;
ITERATE testloop;
END IF;
IF n > 126 THEN
LEAVE testloop;
END IF;
SET n = n + 1;
END LOOP testloop;
Contoh lain ITERATE:
DECLARE p1 INTEGER;
BEGIN
label1: LOOP
SET p1 = p1 + 1;
IF p1 <>
LEAVE label1;
END LOOP label1;
SET @x = p1;
END
Dari semua FUNGSI-FUNGSI diatas, kita dapat menggabungkan sekaligus sesuai dengan kebutuhan kita.
Selamat mencoba, semoga bermanfaat...
...Baca selengkapnya....!
Cara Buat FUNCTION di MySQL
Terus terang, ini adalah pengalam pertama saya dalam menjelajahi dunia MySQL. Sebelumnya, dalam membuat program-program sederhana, setiap melakukan INSERT, UPDATE maupun DELETE, semuanya QUERY-nya saya ketikkan langsung di CODING PROGRAM, tampa menggunakan STORE PROCEDURE, FUNCTION, apalagi TRIGGER. Jadi jangan heran kalo lihat CODING program saya bikin orang-orang pusing 100 keliling... hehehehe (-_-)!... Berikut ini saya lampirkan contoh sederhana FUNCTION yang pernah saya buat.
Eits, jangan salah, gini-gini aku sampe 4 hari buatnya. Maklum, betul-betul ga' ngerti blas soal gini-ginian...
DELIMITER $$
USE `dbase`$$
DROP FUNCTION IF EXISTS `f_loop`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `f_loop`(depan VARCHAR(2),stat INT(1),digit INTEGER(5))
RETURNS VARCHAR(50)
CHARSET latin1
BEGIN
DECLARE kode VARCHAR(50);
DECLARE n INTEGER(5) DEFAULT 1;
DECLARE thnbln VARCHAR(50);
SET thnbln=CONCAT(YEAR(CURDATE()),MONTH(CURDATE()));
IF stat=1 THEN
SET n= n + 1;
ELSEIF stat=0 THEN
RETURN CONCAT_WS('',depan,thnbln,RIGHT(CONCAT('',"00000000000000",n),digit));
END IF;
END$$
DELIMITER ;
Untuk pemanggilannya tinggal ketikkan Query:
MySql->SELECT f_loop('A','0','5')
Sebenarnya saya ingin membuat suatu FUNCTION pembuatan kode/id yang fleksibel. Jadi kapanpun kita mengentry data ke dalam tabel, kita tidak perlu menuliskan ID/KODE, tinggal memanggil FUNCTION ini baik itu di CODING PROGRAM, STORE PROCEDURE, ataupun di TRIGGER yang anda buat... Ya emang ga' sempurna sih, tapi setidaknya memberikan saya sedikit gambaran.
Untuk selanjutnya silahkan kalian-kalian kembangkan sendiri...hehehehe
Semoga bermanfaat...
...Baca selengkapnya....!
Pengantar STORE PROCEDURE di MySQL
Sebelum kita memulai membuat atau mungkin kita kebingungan tentang STORE PROCEDURE (singkat saja SP), ada baiknya kita mengetahui tentang cara atau kode-kode apa saja yang perlu diperhatikan dalam pembuatan SP. Oke berikut ini penjelasannya...
Kita membutuhkan DELIMITER pada perintah awal. Pada stored procedure di MySQL membutuhkan penanda sebagai akhir dari sebuah urutan perintah di stored procedure. Biasanya jika stored procedure tersebut memiliki satu perintah saja, kita dapat menggunakan semicolon “;” sebagai pemisah standarnya. Tetapi ini bermasalah jika SP tersebut memiliki routine yang panjang sedangkan “;” merupakan end of statement standar dari setiap perintah yang ada di SP. Jadi kita tidak dapat menggunakan “;” sebagai penutup dalam SP. Untuk itu kita perlu mendeklarasikan menggunakan DELIMITER sebagai karakter penutupnya. Tentu saja biasanya dengan karakter-karakter yang unik yang tidak ada pada routine, seperti: $$, //, !!, dan lainnya.
Untuk membuat SP kita memerlukan perintah CREATE PROCEDURE
Di dalam SP selalu dimulai dengan BEGIN dan END;.
Gunakan perintah DECLARE diikuti dengan tipe datanya untuk mendeklarasikan sebuah variable lokal. Kita dapat mebuat variable baru tanpa mendeklarasikannya terlebih dahulu dengan menambahkan @ pada nama variable yang kita butuhkan. Contoh: @kode
Gunakan perintah SET untuk mengisi nilai ke variable nya. Perintah ini sama untuk semua perintah SP pada semua platform.
Di dalam SP kita dapat menggunakan fungsi logika seperti pada program aplikasi yang lainya. Seperti IF
Jalankan perintah SP tersebut dengan menggunakan perintah CALL
Untuk membuat tabel sementara: CREATE TEMPORARY TABLE
Gunakan perintah DECLARE [CONTINUE/EXIT] HANDLER FOR 1054 SET [variabel] = 1 untuk membatalkan error yang terjadi akibat error nomor 1054. CONTINUE jika perintah error diabaikan, akibatnya procedure akan membalikan nilai kosong untuk perintah SQL yang dijalankan. EXIT jika ingin membatalkan perintah SQL yang error.
Untuk melakukan commit rollback pada saat menjalankan perintah untuk insert, update atau delete, gunakan perintah START TRANSACTION;
Untuk mengambil banyaknya record yang dihasilkan dari perintah SQL yang baru dijalankan yaitu: ROW_COUNT() Perintah ini hanya khusus untuk transaksi sql seperti update, insert dan delete. Sedangkan untuk select gunakan FOUND_ROWS()
Untuk mendapatkan jumlah error dari perintah SQL yang baru dijalankan, gunakan: @@ERROR_COUNT Untuk mengambil nilai balikan dari sebuah field dengan tipe data integer auto increment yang baru saja diinsert baru, dengan perintah @@identity
Untuk melakukan eksekusi perintah sql melalui string parameter gunakan perintah seperti contoh dibawah ini:
SET @str = CONCAT(’SELECT * FROM authors WHERE id BETWEEN ‘, _min, ‘ AND ‘, _max);
PREPARE stmt FROM @str;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
atau
SET @s = ‘SELECT * FROM authors WHERE id BETWEEN ? AND ?’;
SET @min = _min;
SET @max = _max;
PREPARE stmt1 FROM @s;
EXECUTE stmt1 USING @min, @max;
DEALLOCATE PREPARE stmt1;
Kadang kita menggunakan table dengan id diset auto increment. Namun pada saat insert data yang baru kadang kita tidak tau berapa nilai auto increment yang baru saja dimasukan. Untuk mendapatkan nilainya, gunakan @@identity / last_insert_id()
MySQL memiliki fungsi untuk format date, fungsi ini tidak dimiliki oleh SQL Server.Gunakan DATE_FORMAT([datetime data],[format output])
Beberapa format yang ada dalam Date_FORMAT.
%a Singkatan nama hari (Sun..Sat)
%b Singkatan nama bulan (Jan..Dec)
%c Bulan berupa angka (0..12)
%D Hari dalam sebulan dalam perhitungan bahasa Inggris (0th, 1st, 2nd, 3rd, …)
%d Hari dalam sebulan berupa angka dengan dua digit (00..31)
%e Hari dalam sebulan berupa angka (0..31)
%f Microseconds (000000..999999)
%H Jam (00..23)
%h Jam (01..12)
%I Jam (01..12)
%i Menit dalam angka (00..59)
%j Hari dalam setahun dalam tiga digit (001..366)
%k Jam (0..23)
%l Jam (1..12)
%M Nama Bulan (January..December)
%m Bulan dalam angka dua digit (00..12)
%p AM atau PM
%r Waktu dalam 12 jam (hh:mm:ss diikuti dengan AM atau PM)
%S Detik (00..59)
%s Detik(00..59)
%T Waktu dalam 24 jam (hh:mm:ss)
%U Minggu (00..53), dengan hari minggu sebagai hari pertama
%u Minggu (00..53), dengan hari senin sebagai hari pertama
%V Minggu (01..53), dengan hari minggu sebagai hari pertama; digunakan dengan %X
%v Minggu (01..53), dengan hari senin sebagai hari pertama; digunakan dengan %x
%W Nama hari (Sunday..Saturday)
%w Nilai hari dalam seminggu (0=Sunday..6=Saturday)
%X Tahun dalam minggu, dengan minggu sebagai hari pertama, berupa angka dengan 4 digit; digunakan dengan %V
%x Tahun dalam minggu, dengan senin sebagai hari pertama, berupa angka dengan 4 digit; digunakan dengan %v
%Y Tahun (empat digit)
%y Tahun (dua digit)
%% Literal dengan karakter ‘%’
%x x, for any ‘x’ not listed above
Gunakan perintah CONVERT([expr] , [tipe]) dan CAST([expr] AS [tipe]) untuk merubah karakter output.
Beberapa type data yang ada pada MySQL
CHAR( ) A fixed section from 0 to 255 characters long.
VARCHAR( ) A variable section from 0 to 255 characters long.
TINYTEXT A string with a maximum length of 255 characters.
TEXT A string with a maximum length of 65535 characters.
BLOB A string with a maximum length of 65535 characters.
MEDIUMTEXT A string with a maximum length of 16777215 characters.
MEDIUMBLOB A string with a maximum length of 16777215 characters.
LONGTEXT A string with a maximum length of 4294967295 characters.
LONGBLOB A string with a maximum length of 4294967295 characters.
TINYINT( ) -128 to 127 normal; 0 to 255 UNSIGNED.
SMALLINT( ) -32768 to 32767 normal; 0 to 65535 UNSIGNED.
MEDIUMINT( ) -8388608 to 8388607 normal; 0 to 16777215 UNSIGNED.
INT( ) -2147483648 to 2147483647 normal; 0 to 4294967295 UNSIGNED.
BIGINT( ) -9223372036854775808 to 9223372036854775807 normal; 0 to 18446744073709551615 UNSIGNED.
FLOAT A small number with a floating decimal point.
DOUBLE( , ) A large number with a floating decimal point.
DECIMAL( , ) A DOUBLE stored as a string , allowing for a fixed decimal point.
DATE YYYY-MM-DD.
DATETIME YYYY-MM-DD HH:MM:SS.
TIMESTAMP YYYYMMDDHHMMSS.
TIME HH:MM:SS.
Sumber disini...
Contoh STORE PROCEDURE Insert data di MySQL
Sudah seharusnya seorang programer SI untuk mengerti atau dapat membuat Store Procedure(SP). Dimana SP sendiri sangat menunjang dalam kinerja program dalam eksekusi datanya. Karena itu tidak jarang program-program SI sudah diharuskan untuk menggunakan store Procedure, Trigger, ataupun View.
Berikut ini adalah contoh sederhana Store Procedure pada MySQL 5...
Tabel yang saya gunakan disini adalah T_HAKAKSES dengan Field:
1. KD VARCHAR(50)
2. HAKAKSES VARCHAR(45)
3. FORM VARCHAR(45)
4. KET VARCHAR(45)
Contoh Store Procedure-nya adalah sebagai berikut:
DELIMITER $$
DROP PROCEDURE IF EXISTS `siamas`.`sp_akses` $$
CREATE PROCEDURE `siamas`.`sp_akses`(KD VARCHAR(50),HAKAKSES VARCHAR(45),FORM VARCHAR(45),KET VARCHAR(45))
BEGIN
insert t_hakakses value(KD,HAKAKSES,FORM,KET);
END $$
DELIMITER ;
Semoga bermanfaat...
...Baca selengkapnya....!
Maximum table size for MySQL databases
Berikut contoh operating system file-size limits:
Full Table - File-size Limit
Lengkapnya bisa baca-baca manualnya disini: http://dev.mysql.com/doc/refman/5.0/en/index.html
Ok sekarang langsung aja kita test…
mysql> show table status from dotproject like 'users' \G;
*************************** 1. row ***************************
Name: users
Engine: MyISAM
Version: 9
Row_format: Dynamic
Rows: 128
Avg_row_length: 82
Data_length: 10508
Max_data_length: 4294967295
Index_length: 28672
Data_free: 0
Auto_increment: 215
Create_time: 2008-08-19 11:27:59
Update_time: 2008-08-19 11:31:21
Check_time: 2008-08-19 11:27:59
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.02 sec)
mysql> ALTER TABLE users MAX_ROWS=1000000000 AVG_ROW_LENGTH=100;
Query OK, 128 rows affected (0.16 sec)
Records: 128 Duplicates: 0 Warnings: 0
mysql> show table status from dotproject like 'users' \G;
*************************** 1. row ***************************
Name: users
Engine: MyISAM
Version: 9
Row_format: Dynamic
Rows: 128
Avg_row_length: 82
Data_length: 10508
Max_data_length: 1099511627775
Index_length: 28672
Data_free: 0
Auto_increment: 215
Create_time: 2008-09-07 00:40:49
Update_time: 2008-09-07 00:40:49
Check_time: 2008-09-07 00:40:49
Collation: latin1_swedish_ci
Checksum: NULL
Create_options: max_rows=1000000000 avg_row_length=100
Comment:
1 row in set (0.00 sec)
mysql> _
Referensi: disini... atau disini...
...Baca selengkapnya....!

