Senin, 14 April 2014

MAKALAH MY SQL



BAB I
PENDAHULUAN

A.    Latar Belakang

MySQL adalah multiuser database yang menggunakan bahasa structured query language ( SQL ). MySQL dalam operasi client-server melibatkan serverdaemon MySQL disisi server dan berbagai macam program serta library yang berjalan disisi client.
Dalam bahasa SQL pada umumnya informasi tersimpan dalam table - tabel yang secara logic merupakan struktur dua dimensi terdiri dari baris ( row atau record ) dan kolom (column atau field ). Sedangkan dalam sebuah database dapat terdiri dari beberapa tabel.
Pada saat ini, pengelolaan database dengan menggunakan berbagai jenis perangkat lunak sudah mempengaruhi kehidupan masyarakat modern. Hal tersebut dapat dilihat dari kegiatan sehari - hari yang tidak terlepas dari penggunaan database dengan menggunakan DBMS ( DataBase Management System ).
Manajemen data adalah sekumpulan berbagai disiplin ilmu yang berkaitan untuk mengelola data sehingga menjadi sumberdaya yang sangat bernilai. Sumberdaya manajemen data adalah pengembangan dan eksekusi dari arsitektur database, kebijakan, pelatihan dan prosedur yang dikelola secara baik dan secara menyeluruh untuk kepentingan  manajemen data ini adalah :

1.      Database         : Kumpulan data yang saling berhubungan secara logic, dirancang untuk memenuhi
   kebutuhan akan informasi banyak pengguna.
2.      Table               : Baris-baris data yang berada dalam satu atau lebih kolom.
3.      Field                : Merupakan kolom yang terdapat di dalam tabel atau disebut juga attribute.
4.      Record                        : Data yang berada didalamdatabase tersebut.
5.      Tuple               : Suatu baris dari suatu relasi.

Sebuah system basis data menyediakan dua tipe bahasa yaitu : tipe untuk menspesifikasikan skema basis data, disebut DDL,  dan tipe untuk mengekspresikan queri atau update basis data disebut MDL.


B.     Tujuan

SQL (dibaca "ess-que-el") singkatan dari Structured Query Language. SQL digunakan untuk berkomunikasi dengan database. Menurut ANSI (American National StandardsInstitute), SQL merupakan bahasa standar untuk sistem manajemen database relasional.
Perintah SQL digunakan untuk melakukan tugas-tugas seperti update data atau mengambil data dari database. Beberapa sistem manajemen database relasional umum yang menggunakan SQL adalah: Oracle, Sybase, Microsoft SQL Server, Access, Ingres dan lain-lain.
Meskipun sebagian besar sistem database menggunakan SQL, kebanyakan dari mereka juga memiliki ekstensi tambahan milik mereka sendiri yang biasanya hanya digunakan pada sistem mereka.
Meskipun demikian, perintah - perintah SQL standar seperti "Select", "Insert", "Update", "Delete", "Create", dan "Drop" dapat digunakan pada seluruh DBMS tersebut.



BAB II
PEMBAHASAN

A.    Data Base

Bahasa database adalah bahasa khusus yang ditetapkan pembuat DMBS ( database management system ), tentang cara berinteraksi atau berkomunikasi antara pemakai dengan database.
Bahasa ini terdiri atas sejumlah perintah yang diformulasikan untuk dapat diberikan oleh pengguna dan dikenali oleh DBMS. Salah satu bahasa database yang populer adalah SQL.

B.     SQL (Structured Query Language)

SQL ( dibaca "ess-que-el" ) singkatan dari Structured Query Language. SQL( Structured Query  Language ) adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relasional.
Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua serverbasis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.

C.     SEJARAH SQL (Structured Query Language)

SQL dimulai dari artikel seorang peneliti dari IBM bernama EF Codd yang membahas tentang ide pembuatan basis data relasiona l pada bulan Juni 1970. Artikel ini juga membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basisdata tersebut. Bahasa tersebut kemudian diberi nama SEQUEL ( Structured EnglishQuery Language ).
Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadiSQL .
Implementasi basis data relasional dikenal dengan System/R .Di akhir tahun1970- an, muncul perusahaan bernama Oracle yang membuat server basis data popular yang bernama sama dengan nama perusahaannya.
Dengan naiknya kepopuleran Oracle maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data. Standarisasi SQL dimulai pada tahun 1986 ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.
Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi padatahun 1992. Versi terakhir dikenal dengan SQL92 . Pada tahun 1999 dikeluarkanstandar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan mplementasi mereferensi pada SQL92. Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini disebabkan masing - masing server memiliki dialek masing-masing.

D.    Kelebihan MySQL

·         Handal, cepat dan mudah digunakan.
·         Dukungan SQL.
·         Multiplatform dan portable.
MySQL dapat berjalan stabil pada berbagai sistemoperasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
·         Perangkat lunak sumber terbuka.
MySQL di distribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
·         Multi-user.
MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
·         ‘Performance Tuning'.
MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL persatuan waktu.
·         Ragam tipe data.
MySQL memiliki ragam tipe data yang sangat kaya, seperti signed atau unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
·         Perintah dan Fungsi.
MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah ( query ).

·         Keamanan.
MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
·         Skalabilitas dan Pembatasan.
MySQL mampu menangani database dalam skala besar, dengan jumlah rekaman ( records ) lebih dari 50 juta dan 60 ribu tabel serta 5 milyarbaris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
·         Konektivitas.
MySQL dapat melakukan koneksi dengan klien menggunakan protokolTCP / IP, Unix soket ( UNIX ), atau Named Pipes ( NT ).
·         Lokalisasi.
MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari 20 bahasa. Meskipun demikian, bahasa Indonesia belum termasuk di dalamnya.
·         Antar Muka.
MySQL memiliki antar muka ( interface ) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API ( Application Programming Interface ).
·         Klien dan Peralatan.
MySQL dilengkapi dengan berbagai peralatan ( tool ) yang dapat digunakan untuk administrasi database, dan pada setiap peralatan yang ada disertakan petunjuk online.
·         Struktur tabel.
MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE dibandingkan database lainnya semacam PostgreSQL ataupun Oracle.
·         Dapat dikoneksikan pada bahasa C, C++, Java, Perl, PHP dan Python.
·         Memiliki lebih banyak type data seperti : signed / unsigned integer yang memilikipanjang data sebesar 1,2,3,4 dan 8 byte, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET dan tipeENUM.
·         Mendukung penuh terhadap kalimat SQL GROUP BY dan ORDER BY. Mendukung terhadap fungsi penuh COUNT, COUNT DISTINCT, AVG , STD, SUM, MAX AND MIN.
·         Mendukung terhadap LEFT OUTHER JOIN dengan ANSI SQL dan sintak ODBC.
·         Mendukung ODBC for Windows 95 (dengan source program). Semua fungsi ODBC2.5 dan sebagainya. Sebagai contoh kita dapat menggunakan Access untuk connect ke MySQL server.
·         Menggunakn GNU automake, autoconf, dan LIBTOOL untuk portabilitas.
·         Kita dapat menggabungkan beberapa table dari database yang berbeda dalam query yang sama.
·         Ditulis dengan menggunakan bahasa C dan C++. Diuji oleh compiler yang sangat jauh berbeda.
·         Privilege (hak) dan password sangat fleksibel dan aman serta mengujinkan ‘Host - Based’ Verifikasi.

E.     Kekurangan MySQL

·         Untuk koneksi ke bahasa pemrograman visual seperti vb, delphi, dan foxpro, MySQL kurang support, karena koneksi ini menyebabkan field yang dibaca harus sesuai dengan koneksi dari program visual tersebut, dan ini yang menyebabkan MySQL jarang dipakai dalam program visual.
·         Data yang ditangani belum begitu besar.
·         Kelemahan MySQL dari dulu sampai sekarang itu adalah 'feature-creep', artinya MySQL berusaha kompatibel dengan beberapa standard serta berusaha memenuhinya.
Sampai sini terdengar bagus, namun kalau diungkapkan kenyataannya bahwa fitur-fitur itu belum lengkap dan berperilaku sesuai standar.

F.      Pemakaian Dasar
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language ( DDL ) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD). Namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.
G.    Perintah Dasar MySQL dengan Menggunakan Query Select.

·         Select Version.
Perintah query tersebut dipergunakan untuk menampilkan server versi MySQL.
·         Select Current_Date.
Perintah query tersebut dipergunakan untuk menampilkan tanggal saat ini.
·         Select Now.
Perintah query tersebut dipergunakan untuk menampilkan tanggal dan jam saat ini
·         Select User.
Perintah tersebut dipergunakan untuk mengetahui nama user yang bersangkutan dannama client tempat user melakukan login. Dalam contoh di atas user yangmelakukan login adalah root dan login melalui komputer lokal server MySQL ( localhost ).
·         Select Status.
Perintah query ini tidak digunakan dalam MySQL / menampilkan pesan error saat dijalankan.
·         Status
Perintah query ini digunakan untuk menampilkan status MySQL yang sedang digunakan.
·                  Help.
Perintah query ini digunakan untuk menampilkan perintah - perintah dos yang ada pada MySQL.
·                  Select (*,/,-,+).
Perintah query ini digunakan untuk operasi aritmatik ( kali, bagi, kurang dan tambah ).
·                  Select SIN.
Perintah query ini digunakan untuk operasi dalam matematika yang mengubah angka menjadi derajat Sinus.
·                  Select COS.
Perintah query ini digunakan untuk operasi dalam matematika yang mengubah angka menjadi derajat Cosinus.
·                  Select TAN.
Perintah query ini digunakan untuk operasi dalam matematika yang mengubah angka menjadi derajat Tangen.
·                  Select Least.
Fungsi Least digunakan untuk mendapatkan nilai terkecil dari sederetan bilangan atau data yang ada. Seberapapun jumlah bilangan atau data yang ada, fungsi Leasttetap akan mendapatkan nilai terkecil.
·                  Select Greatest.
Fungsi Greatest digunakan untuk mendapatkan nilai terbesar dari sederetan datayang ada.
·                  Select ABS.
Perintah query ini digunakan untuk mengubah setiap bilangan negatif menjadi bilangan positif.
·                  Select MOD.
Perintah query ini digunakan untuk menampilkan sisa hasil bagi1.
·                  Select POW.
Perintah query ini digunakan untuk memangkatkan bilangan.

H.    Data Defination Language.
DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek - objek yang diperlukan dalam basis data. Misalnya tabel, view, user, dan sebagainya.
Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek dan SHOW Database digunakan untuk melihat database yang sudah ada pada DBMS MySQL. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.
I.       Elemen SQL
Elemen dari SQL yang paling dasar antara lain pernyataan, nama, tipe data, ekspresi, konstanta dan fungsi bawaan.
·         Pernyataan
Perintah dari SQL yang digunakan untuk meminta sebuah tindakan kepada DBMS. Pernyataan dasar SQL antara lain :
1.      ALTER                 : Merubah struktur tabel
2.      COMMIT              : Mengakhiri eksekusi transaksi
3.      CREATE              : Membuat tabel, indeks
4.      DELETE               : Menghapus baris pada sebuah tabel
5.      DROP                   : Menghapus tabel, indeks
6.      GRANT                : Menugaskan hak terhadap basis data kepada user
7.      INSERT                : Menambah baris pada tabel
8.      REVOKE             : Membatalkan hak kepada basis data
9.      ROLLBACK        : Mengembalikan pada keadaan semula apabila transaksi gagal
      dilaksanakan
10.  SELECT               : Memilih baris dan kolom pada sebuah tabel
11.  UPDATE              : Mengubah value pada baris sebuah tabel
·         Nama
Nama digunakan sebagai identitas, yaitu identitas bagi objek pada DBMS. Misal : tabel, kolom dan penggun
·         Tipe data
Tipe data yang ada dalam MYSQL    :
1.      Tipe data numerik antara lain        :
Ø  TINYINT                    : Nilai integer yang sangat kecil.
Ø  SMALLINT                : Nilai integer yang kecil.
Ø  MEDIUMINT                        : Nilai integer yang sedang.
Ø  INT                             : Nilai integer dengan nilai standar
Ø  BEGINT                     : Nilai integer dengan nilai besar.
Ø  FLOAT                       : Bilangan decimal dengan single-precission.
Ø  DOUBLE                   : Bilangan decimal dengan double-precission.
Ø  DECIMAL(M,D)       : Bilangan float yang dinyatakan sebagai string.
M : jumlah digit yang disimpan,
D : jumlah angka dibelakang koma.

2.      Tipe data String antara lain           :
Ø  CHAR                         : Karakter yang memiliki panjang tetap yaitu sebanyakn
Ø  VARCHAR                : Karakter yang memiliki panjang tidak tetap yaitu
  maksimum
Ø  TINYBLOB               : BLOB dengan ukuran sangat kecil
Ø  BLOB                         : BLOB yang memiliki ukuran kecil
Ø  MEDIUMBLOB        : BLOB yang memiliki ukuran sedang
Ø  LONGBLOB              : BLOB yang memiliki ukuran besar
Ø  TINYTEXT                : teks dengan ukuran sangat kecil
Ø  TEXT                          : teks yang memiliki ukuran kecil
Ø  MEDIUMTEXT         : teks yang memiliki ukuran sedang
Ø  LONGTEXT               : teks yang memiliki ukuran besar
Ø  ENUM                        : kolom diisi dengan satu member enumerasi
Ø  SET                             : Kolom dapat diisi dengan beberapa nilai anggota
  Himpunan

3.      Tipe data tunggal dan jam                        :
Ø  DATE                         : date memiliki format tahun-bulan-tanggal
Ø  TIME                          : time memiliki format jam-menit-detik
Ø  DATETIME                : gabungan dari format date dan time
·         Ekspresi
Ekspresi digunakan untuk menghasilkan/menghitung nilai. Misalnya : jumlah=harga-diskon. Ekspresi aritmatika antara lain :
1.      +  : tambah
2.      –  : kurang
3.      /  : bagi
4.      *  : kali
·         Konstanta
Nilai yang tetap
·         Fungsi bawaan
Fungsi adalah subprogram yang dapat menghasilkan suatu nilai apabila fungsi tersebut dipanggil. Fungsi Agregat adalah fungsi yang digunakan untuk melakukan summary, statistik yang dilakukan pada suatu tabel/query.
1.      AVG(ekspresi)      : digunakan untuk mencari nilai rata-rata dalam kolom dari tabel.
2.      COUNT(x)            : digunakan untuk menghitung jumlah baris dari sebuah kolom dari tabel
3.      MAX(ekspresi)     : digunakan untuk mencari nilai yang paling besar dari suatu kolom dari tabel
4.      MIN(ekspresi)       : digunakan untuk mencari nilai yang paling kecil dari suatu kolom dari tabel
5.      SUM(ekspresi)      : digunakan untuk mengitung jumlah keseluruhan dari suatu kolom dari table
J.       Kelompok Penyataan SQL
Pernyataan SQL dapat dikelompokan menjadi 3 kelompok, yaitu : DDL, DML dan DCL.
1.      Pernyataan SQL kelompok DDL (Data Defination Language)
DDL berfungsi untuk mendefinisikan atribut basis data, table, atribut(kolom), batasan-batasan terhadap suatu atribut, serta hubungan antar tabel. Perintah yang digunakan biasanya : CREATE, ALTER, dan DROP
Ø  Membuat Database
Syntax yang digunakan : CREATE DATABASE namadatabase;
Ø  Menghapus Database
Syntax yang digunakan : DROP DATABASE namadatabase;
Ø  Membuat Tabel
Syntax yang digunakan : CREATE TABLE namatabel;
Ø  Menghapus Database
Syntax yang digunakan : DROP DATABASE namadatabase;
Ø  Menghapus Tabel
Syntax yang digunakan : DROP TABEL namatabel;
Ø  Mendefinisikan null/not null
Syntax yang digunakan : CREATE TABLE namatabel
( Field1 TipeData1 NOT NULL, Field2 TipeData2)
Ø  Mendefinisikan Nilai Default
Syntax yang digunakan : CREATE TABLE namatabel ( Field1 TipeData1, Field2 TipeData2 DEFAULT nilai )
Ø  Mendefinisikan Primary Key pada Tabel Dapat dilakukan dengan 3 Syntax :
1.      CREATE TABLE namatabel ( Field1 TipeData1 NOT NULL PRIMARY KEY, Field2 TipeData2 )
2.      CREATE TABLE namatabel ( Field1 TipeData1, Field2 TipeData2, PRIMARY KEY(Field1)
3.      ALTER TABEL namatabel ADD CONSTRAINT namaconstraint PRIMARY KEY (NAMAKOLOM)
Ø  Menghapus Primary Key pada Tabel Syntax yang digunakan ada 2 :
1.      ALTER TABLE namatabel DROP CONSTRAINT NAMACONSTRAINT;
2.      ALTER TABLE NAMATABEL DROP PRIMARY KEY;
Ø  Menambah Kolom Baru pada Tabel
Syntax yang digunakan : ALTER TABEL NAMATABEL ADD newfield tipe
Ø  Mengubah Tipe Data atau Lebar Kolom pada Tabel
Syntax yang digunakan : ALTER TABEL namatabel MODIFY COLUMN field tipe
Ø  Mengubah Nama Kolom
Syntax yang digunakan : ALTER TABEL namatabel CHANGE COLUMN namakolomlama namakolombaru tipe
Ø  Menghapus Kolom pada Tabel
Syntax yang digunakan : ALTER TABEL namatabel DROP COLUMN namakolom
Ø  Mendefinisikan Foreign Key pada Tabel Dapat dilakukan dengan 2 Syntax :
1.      CREATE TABLE namatabel ( Field1 TipeData1, Field2 TipeData2, FOREIGN KEY (Field2) REFERENCES nama table induk (nama kolom induk) ON UPDATE CASCADE ON DELETE NO ACTION)
2.      ALTER TABEL namatabel ADD CONSTRAINT nama constraint FOREIGN KEY (namakolom) REFERENCES nama table induk (nama kolom induk) ON UPDATE CASCADE ON DELETE NO ACTION
Ø  Menghapus Foreign Key
Syntak yang digunakan : ALTER TABEL namatabel DROP FOREIGN KEY namaconstraint

2.DML (Data Manipulation Language)DML berfungsi untuk memanipuladi data yang ada di dalam basis data, contohnya untuk pengambilan data, penyisipan data, pengubahan data dan penghapusan data. Perintah yang digunakan biasanya adalah : INSERT, DELETE, UPDATE, dan SELECT.
Ø  INSERT
menambah baris pada tabel. Syntax yang paling sering digunakan : INSERT INTO namatabel VALUES (nilai1, nilai2, nilai-n)
Ø  DELETE
Menghapus baris pada tabel. Syntax : DELETE FROM namatabel [where kondisi
Ø  UPDATE
Mengubah isi beberapa kolom pada tabel. Syntax : UPDATE namatabel SET kolom1=nilai1, kolom2=nilai2 [where kondisi]
Ø  SELECT
Ø  Menampilkan isi dari suatu tabel yang bisa dihubungkan dengan tabel yang lainnya

K.    Keunggulan MySQL
·         Program yang multi-threaded, sehingga dapat dipasang pada server yang memiliki mulit-CPU
·         Didukung bahasa pemrograman umum seperti C, C++, Java, Perl, PHP, Python, TCL, APls dls.
·         Bekerja pada berbagai platform
·         Memiliki jenis kolom yang cukup banyak sehingga memudahkan konfigurasi system database
·         Memiliki jenis kolom yang cukup banyak sehingga memudahkan konfigurasi system database
·         Memiliki system sekuriti yang cukup baik dengan verifikasi host
·         Mendukung ODBC untuk OS Microsoft Windows
·         Mendukung record yang memiliki kolom dengan panjang tetap
·         Software yang free
·         Saling terintegrasi dengan PHP
L.     Fitur MySQL
Kalau di seri 3.22 MySQL mulai diadopsi banyak orang dan meningkat populasi penggunanya, maka di seri 3.23 dan 4.0-lah terjadi banyak peningkatan dari sisi teknologi. Ini tidak terlepas dari tuntutan pemakai yang semakin mengandalkan MySQL, namun membutuhkan fitur-fitur yang lebih banyak lagi. Seri 3.23. Di seri 3.23 MySQL menambahkan tiga jenis tabel baru: pertama MyISAM, yang sampai sekarang menjadi tipe tabel default; kedua BerkeleyDB, yang pertama kali menambahkan kemampuan transaksi pada MySQL; dan ketiga InnoDB, primadona baru yang potensial. Seri 4.x.
Di seri yang baru berjalan hingga 4.0 tahap alfa ini, pengembang MySQL berjanji akan menjadikan MySQL satu derajat lebih tinggi lagi. Fitur-fitur yang sejak dulu diminta akan dikabulkan, seperti subselek (di 4.1), union (4.0), foreign key constraint (4.0 atau 4.1—meski InnoDB sudah menyediakan ini di 3.23.x), stored procedure (4.1), view (4.2), cursor (4.1 atau 4.2), trigger (4.1). MySQL AB tetap berdedikasi mengembangkan dan memperbaiki MySQL, serta mempertahankan MySQL sebagai database open source terpopuler.


·         Char(M)
Tipe data ini digunakan untuk menyimpan data string dengan jumlah karakter tertentu. Panjang maksimum karakter tipe data Char harus dinyatakan secara eksplisit seperti contoh berikut: Judul CHAR(50)
·         Varchar(M)
Tipe data ini cocok digunakan untuk menyimpan data string dengan panjang yang bervariasi. Sama seperti tipe data Char, panjang maksimum karakter yang akan ditampung dalam field harus dinyatakan Tipe Data. Beberapa jenis tipe data dalam MySQL memiliki tipe tersendiri dalam tiap field di table databasenya.
MySQL mengenal beberapa type data field, yaitu :

1.      Tipe data numeric
Tipe data numerik dapat dibedakan menajdi dua kelompok, yaitu tipe data integer dan tipe data floating point. Tipe data integer untuk data bilangan bulat sedangkan tipe data floating point digunakan untuk bilangan desimal. Tipe data numeric dapat kita sajikan dalam table di bawah ini :
Tipe data Kisaran nilai
Tinyint (-128) – 127 atau 0-225
Smallint (-32768) – 32767 atau 0 – 65535
Mediumint (-8388608)-8388607 atau 0-16777215
Int (-2147683648)-(2147683647) atau 0-4294967295
Bigint (-9223372036854775808)-(9223372036854775807)
Atau 0 – 18446744073709551615
Float(x) (-3.402823466E+38)-(-1.175494351E-38),0,dan 1.175494351E-38 – 3.402823466E + 38
Float Idem Double (-1.7976E+308)–(-2.22E-308),0,dan(2.22E-308)- (1.79E+308)

Besar kebutuhan memori penyimpanan untuk masing-masing tipe data di atas sebagai berikut :
Ø  Column type Storage required
Ø  TINYINT 1 byte
Ø  SMALLINT 2 bytes
Ø  MEDIUMINT 3 bytes
Ø  INT 4 bytes
Ø  INTEGER 4 bytes
Ø  BIGINT 8 bytes
Ø  FLOAT(4) 4 bytes
Ø  FLOAT(8) 8 bytes
Ø  FLOAT 4 bytes
Ø  DOUBLE 8 bytes
Ø  DOUBLE PRECISION 8 bytes
Ø  REAL 8 bytes
Ø  DECIMAL(M,D) M bytes (D+2, if M < D)
Ø  NUMERIC(M,D) M bytes (D+2, if M < D)

2.      Tipe data string
Yang termasuk dalam tipe data string adalah tipe-tipe data berikut : Tipe kolom Kebutuhan memori penyimpanan
CHAR(M) M bytes, 1 <= M <= 255
VARCHAR(M) L+1 bytes, where L <= M and 1 <= M <= 255
TINYBLOB, TINYTEXT L+1 bytes, where L < 2^8
BLOB, TEXT L+2 bytes, where L < 2^16
MEDIUMBLOB,
MEDIUMTEXT
L+3 bytes, where L < 2^24
LONGBLOB,
LONGTEXT
L+4 bytes, where L < 2^32
ENUM
('value1','value2',...)
1 or 2 bytes, depending on the number of enumeration
values (65535 values maximum)
SET
('value1','value2',...)
1, 2, 3, 4 or 8 bytes, depending on the number of set
members (64 members maximum)

3.      Tipe data waktu
Yang termasuk dalam tipe data tanggal dan waktu adalah sebagai berikut :
Column type Storage require
DATETIME 8 bytes
DATE 3 bytes
TIMESTAMP 4 bytes
TIME 3 bytes
YEAR 1 byte

4.      Tipe data char() dan varchar() pada prinsipnya sama. Yang menjadi perbedaannya adalah pada jumlah memori yang dibutuhkan untuk penyimpanan. Memori penyimpanan yang dibutuhkan tipe data char() bersifat statis, besarnya tergantung pada berapa jumlah karakter yang ditetapkan pada saat field tersebut dideklarasikan. Sebaliknya, tipe data varchar() besar memori penyimpanan tergantung terhadap berapa karakter yang digunakan ditambah 1 byte yang berisi data jumlah karakter yang digunakan.

N.    Pengantar Sintak Dasar Mysql

MySQL merupakan bahasa pemograman database di mana penulisan sintaknya tidak serumit bahasa pemograman lainnya seperti java, C++ dan sebagainya. Satu hal yang perlu diingat bahwa setiap penulisan script MySQL di Dos-Prompt harus selalu diakhiri dengan tanda titik koma (;).
Di dalam source MySQL yang telah terinstal secara default telah terisi sebuah database yang bernama mysql dan tes . Untuk dapat menampilkan apa saja nama database yang telah ada maupun yang akan kita buat, gunakan sintak :
Mysql> show databases;
Perhatikan contoh di bawah ini :
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
C:\Users\Fyrman>cd..\..
C:\>cd/xampp/mysql/bin
C:\xampp\mysql\bin>mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cdcol              |
| firman             |
| kampus             |
| mysql              |
| performance_schema |
| perpustakaan       |
| perpustakaan2      |
| perpustakaan_gaul  |
| phpmyadmin         |
| rental             |
| rental_cd          |
| test               |
| webauth            |
+--------------------+
14 rows in set (0.11 sec)
mysql>
Contoh di atas menunjukkan bahwa dengan menggunakan sintak show databases; berarti kita dapat menampilkan seluruh nama database yang telah ada. Sintak untuk bisa masuk kedalam salah satu system database tersebut adalah :
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cdcol              |
| firman             |
| kampus             |
| mysql              |
| performance_schema |
| perpustakaan       |
| perpustakaan2      |
| perpustakaan_gaul  |
| phpmyadmin         |
| rental             |
| rental_cd          |
| test               |
| webauth            |
+--------------------+
14 rows in set (0.11 sec)
mysql> use perpustakaan;
Database changed
mysql>

Dengan mengetikkan sintak use mysql; dan keluar kalimat database change, berarti kita telah masuk ke dalam database mysql yang telah ada. Di setiap database tentu ada terdapat beberapa table yang menjadi komponen dasar sebuah database. Sintak untuk menampilkan seluruh table yang telah ada di dalam database mysql adalah :
mysql> use perpustakaan;
Database changed
mysql> show tables;
+------------------------+
| Tables_in_perpustakaan |
+------------------------+
| anggota                |
| buku                   |
| pinjam                 |
+------------------------+
3 rows in set (0.10 sec)
mysql>

di dalam database perpustakaan sudah ada beberapa table yang telah default dari mysql-nya sendiri. Didalam database tersebut ada table anggota,buku dan pinjam di mana tiap tablenya memiliki fungsi tertentu yang dapat diakses oleh tiap user.

O.    Membuat Database Baru

Ø  Membuat database
Untuk membuat sebuah database dengan nama ‘formulir’ kita tidak perlu harus keluar terlebih dahulu dari salah satu database walau kita sebelumnya telah masuk ke dalamnya, untuk membuatnya gunakan syntax berikut
create database Formulir;
mysql> create database Formulir -> ;
Query OK, 1 row affected (0.01 sec)
mysql>

Query OK, 1 row affected (0.01 sec) berarti kita telah berhasil membuat sebuah database yang bernama formulir. Dan untuk menghapusnya, gunakan sintak sebagai berikut :
mysql>drop database formulir;
Pada kondisi di atas, apabila kita lupa meletakkan tanda titik koma (;) di akhir kalimat maka pada baris setelahnya akan keluar tanda (->). Di samping tanda tersebut harus kita beri tanda titik koma (;) agar dapat berjalan dengan baik.

Ø  Membuat table
Setelah kita memasuki sebuah database, kita dapat mulai membuat tabel – tabel sesuai dengan keperluan kita. Dalam database dikenal primary key, yaitu field yang menjadi acuan data terhadap field-field lainnya dan primary key tidak boleh null.Misalkan nama tabelnya adalah ‘data’, maka sintaknya adalah :
create table data Perhatikan script di bawah ini :
mysql> create table data(
    -> Nama char(30),
    -> Alamat varchar(25),
    -> id_formulir int(5));
Query OK, 0 rows affected (0.14 sec)
mysql>

untuk mengecek tabel formulir yang kita buat diatas dengan cara
(mysql>desc data;)
Lihatlah contoh scrip dibawah ini!!!!!
mysql> desc data;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| Nama        | char(30)    | YES  |     | NULL    |       |
| Alamat      | varchar(25) | YES  |     | NULL    |       |
| id_formulir | int(5)      | YES  |     | 0       |       |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.02 sec)
mysql>

Ø  Mengisi table
Setelah tabel terbentuk, kita dapat memulai pekerjaan mengisi database. Syntax yang digunakan adalah :
mysql>insert into data (field1,field2) values (valuefield1,valuefield2);
perhatikan contoh di bawah ini :
mysql> insert into data values ('Fyrman','Bandung','12345');
Query OK, 1 row affected (0.09 sec)
mysql> insert into data values ('Viola','Jakarta','12543');
Query OK, 1 row affected (0.12 sec)
mysql> insert into data values ('Indah','Jogjakarta','12765');
Query OK, 1 row affected (0.07 sec)
mysql> insert into data values ('Alex','Surabaya','12213');
Query OK,  row affected (0.06 sec)
mysql>

Untuk melihat hasilnya yaitu dengan cara (mysql> select * from data;).
mysql> select * from data;
+--------+------------+-------------+
| Nama   | Alamat     | id_formulir |
+--------+------------+-------------+
| Alex   | Surabaya   |       12213 |
| Fyrman | Bandung    |       12345 |
| Viola  | Jakarta    |       12543 |
| Indah  | Jogjakarta |       12765 |
+--------+------------+-------------+
4 rows in set (0.00 sec)
mysql>


Tanda (*) merupakan perintah untuk menampilkan seluruh kolom beserta isinya. Jika kita ingin menampilkan hanya kolom nama saja, maka sintaknya adalah: (mysql>select field from nama_table;). contoh :
select nama from data;
Perhatikan script di bawah ini!!!!!
mysql> select nama from data;
+--------+
| nama   |
+--------+
| Alex   |
| Fyrman |
| Viola  |
| Indah  |
+--------+
4 rows in set (0.00 sec)
mysql>

Untuk mengurutkan data berdasarkan ascending atau descending yaitu dengan cara:
(Select * from data from data order by field asc;), dan sebaliknya.
mysql> select * from data order by nama asc;
+--------+------------+-------------+
| Nama   | Alamat     | id_formulir |
+--------+------------+-------------+
| Alex   | Surabaya   |       12213 |
| Fyrman | Bandung    |       12345 |
| Indah  | Jogjakarta |       12765 |
| Viola  | Jakarta    |       12543 |
+--------+------------+-------------+
4 rows in set (0.04 sec)

mysql> select * from data order by alamat desc;
+--------+------------+-------------+
| Nama   | Alamat     | id_formulir |
+--------+------------+-------------+
| Alex   | Surabaya   |       12213 |
| Indah  | Jogjakarta |       12765 |
| Viola  | Jakarta    |       12543 |
| Fyrman | Bandung    |       12345 |
+--------+------------+-------------+
4 rows in set (0.00 sec)
mysql>

P.      Kumpulan) Perintah-perintah Dasar MySQL

Ø  Create Database
Digunakan untuk membuat database baru.
Syntax dasar: CREATE DATABASE database_nama
Contoh: CREATE DATABASE databaseku
Ø  Create Table
Digunakan untuk membuat tabel data baru dalam sebuah database.
Syntax dasar: CREATE TABLE ( Column_name1 table_nama data_type Column_name2 table_nama data_type Column_name3 table_nama data_type )
Contoh: CREATE TABLE bukutamu ( Id int, Nama varchar (255), Email varchar(50), Kota varchar(255)
Ø  Select
Digunakan untuk memilih data dari table database.
Syntax dasar: SELECT column_name(s) FROM table_name Atau SELECT * FROM table_name
Contoh 1: SELECT nama, email FROM buku tamu
Contoh 2: SELECT * FROM buku tamu
Ø  Select Distinct
Digunakan untuk memilih data-data yang berbeda (menghilangkan duplikasi) dari sebuah table database.
Syntax dasar: SELECT DISTINCT column_name(s) FROM table_name
Contoh: SELECT DISTINCT kota FROM buku tamu


Ø  Where
Digunakan untuk memfilter data pada perintah Select
Syntax dasar: SELECT column name(s) FROM table_name WHERE column_name operator value
Contoh: SELECT * FROM buku tamu WHERE kota=’PAMULANG’
Ø  Order By
Digunakan untuk mengurutkan data berdasarkan kolom (field) tertentu. Secara default, urutan tersusun secara ascending (urut kecil ke besar). Anda dapat mengubahnya menjadi descending (urut besar ke kecil) dengan menambahkan perintah DESC.
Syntax dasar: SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC
Contoh 1: SELECT * FROM bukutamu ORDER BY nama
Contoh 2: SELECT * FROM bukutamu ORDER BY id DESC
Ø  Like
Digunakan bersama dengan perintah Where, untuk proses pencarian data dengan spesifikasi tertentu.
Syntax dasar: SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
Contoh 1: SELECT * FROM bukutamu WHERE nama LIKE ‘a%’
Keterangan : Contoh di atas digunakan untuk pencarian berdasarkan kolom nama yang berhuruf depan “a”.
Contoh 2: SELECT * FROM bukutamu WHERE nama LIKE ‘a%’
Keterangan : Contoh di atas digunakan untuk pencarian berdasarkan kolom nama yang berhuruf belakang “a”.
Ø  In
Digunakan untuk pencarian data menggunakan lebih dari satu filter pada perintah Where.
Syntax dasar : SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2, . . .)
Contoh: SELECT * FROM bukutamu WHERE kota IN (‘Tangerang’,’Depok’)
Ø  Between
Digunakan untuk menentukan jangkauan pencarian.
Syntax dasar: SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
Contoh : SELECT * FROM bukutamu WHERE id BETWEEN 5 and 15
Keterangan : Contoh di atas digunakan untuk mencari data yang memiliki nomor id antara 5 dan 15.
Ø  Insert Into
Digunakan untuk menambahkan data baru di tabel database.
Syntax dasar : INSERT INTO table_name VALUES (value1, value2, value3, . . .) Atau INSERT INTO table_name (column1, column2, column3, . . .) VALUES (value1, value2, value3, . . .)
Contoh 1 : INSERT INTO buku tamu VALUESm ( 1, ’Arlicious’, ’arly@arlicious.com’, ’Tangerang’)
Contoh 2: INSERT INTO buku tamu ( id , nama , email , kota ) VALUES ( 1, ’Arlicious’, ’arly@arlicious.com’, ’Tangerang’)
Ø  Update
Digunakan untuk mengubah/memperbarui data di tabel database.
Syntax dasar: UPDATE table_name SET column1=value,column2=value, . . . WHERE some_column=some_value
Contoh : UPDATE bukutamu SET email=’arly@arlicious.com’, kota=’Tangerang’ WHERE
Ø  Delete
Digunakan untuk menghapus data di table database. Tambahkan perintah Where untuk memfilter data-data tertentu yang akan dihapus. Jika tanpa perintah Where, maka seluruh data dalam tabel akan terhapus
Syntax dasar : DELETE FROM table_name WHERE some_column=some_value
Contoh: DELETE FROM bukutamu WHERE id=1
Ø  Inner Join
Digunakan untuk menghasilkan baris data dengan cara menggabungkan 2 buah tabel atau lebih menggunakan pasangan data yang match pada masing-masing tabel. Perintah ini sama dengan perintah join yang sering digunakan.
Syntax dasar : SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2 column-name
contoh : SELECT bukutamu.nama,bukutamu.email,order.no_order FROM bukutamu INNER JOIN order ON bukutamu.id=order.id ORDER BY bukutamu.nama
Ø  Left Join
Digunakan untuk menghasilkan baris data dari tabel kiri (nama tabel pertama) yang tidak ada pasangan datanya pada tabel kanan (nama tabel kedua).
Syntax dasar : SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2. column_name
contoh : SELECT bukutamu.nama,bukutamu.email,order.no_order FROM bukutamu LEFT JOIN order ON bukutamu.id=order.id ORDER BY bukutamu.nama
Ø  Right Join
Digunakan untuk menghasilkan baris data dari tabel kanan (nama tabel kedua) yang tidak ada pasangan datanya pada tabel kiri (nama tabel pertama).
Syntax dasar : SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2 column_name
contoh : SELECT bukutamu.nama,bukutamu.emailmorder.no_order FROM bukutamu RIGHT JOIN order ON bukutamu.id=order.i ORDER BY bukutamu.nama
Ø  Full Join
Digunakan untuk menghasilkan baris data jika ada data yang sama pada salah satu tabel.
Syntax dasar : SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2 column_name
Contoh : SELECT bukutamu.nama,bukutamu.email,order.no_order FROM bukutamu FULL JOIN order ON bukutamu.id=order.id ORDER BY bukutamu.nama
Ø  Union
Digunakan untuk menggabungkan hasil dari 2 atau lebih perintah Select.
Syntax dasar : SELECT column_name(s)FROM table_name1 UNION column_name(s) FROM table_name2 Atau SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
Contoh : SELECT nama FROM mhs_kampus1 UNION SELECT nama FROM mhs_kampus2
Ø  Alter Table
Digunakan untuk menambah, menghapus, atau mengubah kolom (field) pada tabel yang sudah ada.
Syntax untuk menambah kolom : ALTAR TABLE table_name ADD column_name datatyoe
Contoh : ALTER TABLE Persons ADD DateOfBirth date Syntax untuk menghapus kolom : ALTER TABLE table_name DROP COLUMN column_name
Contoh : ALTER TABLE Persons DROP COLUMN DateOfBirth
Syntax untuk mengubah kolom : ALTER TABLE table_name ALTER TABLE clumn_name datatype
Contoh : ALTER TABLE Persons ALTER COLUMN DateOfBirth year
Ø  Now ()
Digunakan untuk mendapatkan informasi waktu (tanggal dan jam saat ini.)
Syntax dasar : Now()
Contoh : SELECT NOW()
Ø  Curdate
Digunakan unutk mendapatkan informasi tanggal saat ini.
Syntax dasar : Curdate()
Contoh : SELECT CURDATE()
Ø  Curtime()
Digunakan untuk mendapatkan informasi jam saat ini.
Syntax dasar : Curtime()
Contoh : SELECT CURTIME()
Ø  Extract()
Digunakan untuk mendapatkan informasi bagian-bagian dari data waktu tertentu, seperti tahun, bulan, hari, jam, menit, dan detik tertentu.
Syntax dasar : Extract(unit FROM date)
Keterangan : Parameter unit dapat berupa :
• MICROSECOND
• SECOND
• MINUTE
• HOUR
• DAY
• WEEK
• MONTH
• QUARTER
• YEAR
• SECOND_MICROSECOND
• MINUTE_SECOND
• HOUR_MICROSECOND
• HOUR_SECOND
• HOUR_MINUTE
• DAY_MICROSECOND
• DAY_SECOND
• DAY_MINUTE
• DAY_HOUR
• YEAR_MONTH
Contoh :
SELECT EXTRAXT (YEAR FROM tglorder( AS Th_Order, EXTRACT (MONTH FROM tglorder) AS Bulan_Order,EXTRACT (FAY FROM tglorder AS Hari_Order,
FROM order
WHERE
Ø  Date_Add() dan Date_Sub()
Fungsi Date_Add() digunakan unutk menambahkan interval waktu tertentu pada sebuah tanggal, sedangkan fungsi Date_Sub() digunakan untuk pengurangan sebuah tanggal dengan interval tertentu.
Syntax dasar :
DATE_ADD (date,INTERVAL expr type)
DATE_SUB (date,INTERVAL expr type)
Keterangan :
Tipe data parameter INTERVAL dapat berupa :
• MICROSECOND
• SECOND
• MINUTE
• HOUR
• DAY
• WEEK
• MONTH
• QUARTER
• YEAR
• SECOND_MICROSECOND
• MINUTE_MICROSECOND
• MINUTE_SECOND
• HOUR_MICROSEDOND
• HOUR_SECOND
• HOUR_MINUTE
• DAY_MICROSECOND
• DAY_SECOND
• DAY_MINUTE
• DAY_HOUR
• YEAR_MONTH
Contoh 1:
SELECT id,DATE_ADD (tglorder,INTERVAL 30 DAY)
AS Waktu_pembayaran
FROM order
Contoh 2:
SELECT id,DATE_SUB(tglorder,INTERVAL 5 DAY)
AS Pengurangan_Waktu
FROM order
Ø  DateDiff()
Digunakan untuk mendapatkan informasi waktu di antara 2 buah tanggal.
Syntax dasar :
DATEIFF(date1,date2)
Contoh :
SELECT DATEIFF(‘2010-06-30’,’2010-06-29’)
AS Selisih_waktu
Ø  Date_Format()
Digunakan untuk menampilkan informasi jam dan tanggal dengan format tertentu.
Syntax dasar :
DATE_FORMAT(date,format)
Keterangan :
Parameter format dapat berupa :
• %a, nama hari yang disingkat
• %b, nama bulan yang disingkat
• %c, bulan (numerik)
• %D hari dalam sebulan dengan format English
• %d, hari dalam sebulan (numerik 00-31)
• %e, hari dalam sebulan (numerik 0-31)
• %f, micro detik
• %H, jam (00-23)
• %h, jam (01-12)
• %I, jam (01-12)
• %i, menit (00-59)
• %j, hari dalam setahun (001-366)
• %k, jam (0-23)
• %l, jam (1-12)
• %M, nama bulan
• %m, bulan (numerik 00-12)
• %p, AM atau PM
• %r, waktu jam dalam format 12 jam (hh:mm:ss AM or PM)
• %S, detik (00-59)
• %s, detik (00-59)
• %T, waktu jam dalam format 24 jam (hh:mm:ss)
• %U, minggu (00-53) dimana Sunday sebagai hari pertama dalam seminggu
• %u, minggu (00-53) dimana Monday sebagai hari pertama dalam seminggu
• %W, nama hari kerja
• %w, hari dalam seminggu (0=Sunday, 6=Saturday)
• %X, tahun dalam seminggu dimana Sunday sebagai hari pertama dalam seminggu (4 digits) digunakan dengan %V
• %x, tahun dalam seminggu di mana Monday sebagai hari pertama dalam seminggu (4 digits) digunakan dengan %v
• %Y, tahun 4 digit
• %y, tahun 2 digit
Contoh :
DATA_FORMAT (NOW(),’%b %d %Y %h : %i %p’)
DATE_FORMAT (NOW(),’%m-%d-%Y’)
DATE_FORMAT (NOW(),’%d %b %Y’)
DATE_FORMAT (NOW(),’%d %b %Y %T : %f’)
Ø  Drop Table
Digunakan untuk menghapus tabel beserta seluruh datanya.
Syntax dasar :
DROP TABLE table_name
Contoh :
DROP TABLE mhs
Ø  Drop Database()
Digunakan untuk menghapus database.
Syntax dasar :                    
DROP DATABASE database_name
Ø  AVG()
Digunakan untuk menghitung nilai-rata-rata dari suatu data.
Syntax dasar :
SELECT  AVG (column_name) FROM table_name
Contoh :
SELECT AVG(harga) AS Harga_rata2FROM order
Ø  Count()
Digunakan untuk menghitung jumlah (cacah) suatu data.
Syntax dasar :
SELECT COUNT (column_name) FROM table_name
Contoh :
SELECT COUNT(id) AS Jumlah_tamu FROM bukutamu
Ø  Max()
Digunakan untuk mendapatkan nilai terbesar dari data-data yang ada.
Syntax dasar :
SELECT MAX (column_name) FROM table_name
Contoh :
SELECT MAX(harga) AS Harga_termahal FROM order 
Ø  Min()
Digunakan untuk mendapatkan nilai terkecil dari data-data yang ada.
Syntax dasar :
SELECT MIN (column_name) FROM table_name
Contoh:
SELECT MIN(harga) AS Harga_termurah FROM order
Ø  Sum()
Digunakan untuk mendapatkan nilai total penjumlahan dari data-data yang ada.
Syntax dasar :
SELECT SUM (column_name) FROM table_name
Contoh :
SELECT SUM(harga) AS Harga_total FROM order
Ø  Group By()
Digunakan untuk mengelompokkan data dengan kriteria tertentu.
Syntax dasar :
SELECT column_name,aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
Contoh :
SELECT nama_customer,SUM(harga) FROM order GROUP BY nama_customer
Ø  Having()
Digunakan untuk memfilter data dengan fungsi tertentu.
Syntax dasar :
SELECT column_name,aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
Contoh :
SELECT nama_customer,SUM(harga) FROM order
WHERE nama_customer=’Arlicious’ OR nama_customer=’Dvallen’
GROUP BY nama_customer
HAVING SUM (harga)>25000
Ø  Ucase()
Digunakan untuk mengubah huruf pada data tertentu menjadi huruf besar.
Syntax dasar :
SELECT UCASE (column_name) FROM table_name
Contoh :
SELECT UCASE(nama) as Nama FROM bukutamu
Ø  Lcase()
Digunakan untuk mengubah huruf pada data tertentu menjadi huruf kecil.
Syntax dasar :
SELECT LCASE (column_name) FROM table_name
Contoh :
SELECT LCASE(nama) as Nama FROM bukutamu
Ø  Mid()
Digunakan untuk mengambil beberapa karakter dari field teks.
Syntax dasar:
SELECT MID(column_name,start[,length]) FROM table_name
Contoh:
SELECT MID (kota,1,4) as singkatan_kota FROM
Buku tamu
Ø  Len()
Digunakan unutk mendapatkan informasi jumlah karakter dari field teks.
Syntax dasar:
SELECT LEN (column_name) FROM table_name
Contoh:
SELECT LEN(nama) as panjang_nama
FROM bukutamu
Ø  Round()
Digunakan untuk pembuatan bilangan pecahan.
Syntax dasar:
SELECT ROUND (column_name,decimals)
FROM table_name
Contoh:
SELECT no_mhs, ROUND (nilai,0) as nilai_bulat
FROM tnilai

Q.    Daftar Perintah DDL pada MySQL 5.0 

Berikut adalah contoh perintah DDL yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut.
·   Pembuatan (CREATE)
o  CREATE DATABASE
o  CREATE FUNCTION
o  CREATE TABLE
·         Perubahan (ALTER & RENAME)
o    ALTER DATABASE
o    ALTER FUNCTION
o    ALTER PROCEDURE
o    ALTER TABLE
o    ALTER VIEW
o    RENAME TABLE
·         Penghapusan (DROP)
o    DROP DATABASE
o    DROP FUNCTION
o    DROP INDEX
o    DROP PROCEDURE
o    DROP TABLE
o    DROP TRIGGER
o    DROP VIEW
R.     Macam-macam dari perintah DML adalah:

1.      Insert : untuk memasukkan / menambahkan data baru INSERT INTO nama_table (nama_kolom) values (values);
contoh –> insert into mahasiswa (nim, nama, alamat, jurusan) values (12345,’andhi’,’yogya’,’informatika’);
keterangan:
insert into –> perintah untuk menambah data
mahasiswa –> nama table yang akan ditambahkan datanya
nim, nama, alamat, jurusan –> nama kolom dari table mahasiswa
12345,’andhi’,’yogya’,’informatika’ –> data yang dimasukkan ke dalam table mahasiswa (sesuai dengan urutan kolom yang telah disebutkan sebelumnya)
nb: untuk data yang bertipe karakter harus diapit tanda petik tunggal (‘ ‘)
2.      Select : untuk menyeleksi / memilih data yang akan ditampilkan SELECT * | {nama_kolom} FROM nama_table [WHERE condition];
contoh –> select nim, nama, jurusan from mahasiswa;
keterangan: perintah di atas menampilkan data nim, nama dan jurusan pada table mahasiswa.
nb: untuk menampilkan semua kolom dapat menggunakan tanda (*) contoh: select * from mahasiswa, sedangkan jika ada syarat/kondisi untuk data yang akan ditampilkan dapat menggunakan klausa where contoh: select nim, nama from mahasiswa where nama=’andhi’
3.      Update : untuk membperbaharui data yang sudah ada UPDATE nama_table SET nama_kolom = value [WHERE condition];
contoh –> update mahasiswa set jurusan =’kedokteran’ where nama=’andhi’;
keterangan: perintah di atas akan mengubah data mahasiswa yang bernama andhi dengan mengganti data pada kolom jurusan, yang sebelumnya informatika menjadi kedokteran.
Nb: kita dapat mengubah lebih dari satu kolom dalam satu perintah update contoh: update mahasiswa set nim=45678, jurusan=’kedokteran’ where nama=’andhi’;
Perhatian : Jika kita tidak menggunakan klausa where maka semua baris pada kolom yang akan di update akan berubah.
4.      Delete : untuk menghapus baris data DELETE [FROM] nama_table [ WHERE condition];
contoh –> delete mahasiswa where nama=’andhi’;
keterangan: perintah di atas menghapus baris data pada tabel mahasiswa yang bernaa andhi
Perhatian : Jika tidak menggunakan klausa where maka semua baris data pada tabel tersebut akan dihapus.

Database MySQL diperuntuhkkan untuk PHP, dengan kata lain, pengaksesan melalui jaringan adalah fitur utama dari database ini. Pengaksesan melalui jaringan pada prinsipnya MySQL dijalankan di server (Server Side) sehingga hak akses yang digunakan sebenarnya lokal. Hal yang berbeda kalau kita ingin mengakses database tersebut secara Client Side.
Misalnya ingin mengakses database dari sebuah PC dengan menggunakan Visual Basic. Kita harus mempersiapkan MySQL yang bisa menggunakan jaringan.
Untuk kegiatan ini diperlukan requirement sebagai berikut:
  1. Antar muka MySQL seperti PHPMyAdmin
  2. Windows XP di Server (dan akses ke control panelnya)
Sedangkan Langkah-langkah yang harus kita lakukan adalah:
  1. Atur  firewall komputer server
  2. Menambahkan user MySQL untuk komputer klien 
T.      Atur firewall komputer server
untuk melakukan langkah ini, anda bisa membuka Control Panel, dengan mengklik Start > Control Panel  > Network Connections. Pada bagian kiri dari control panel klik Change Windows Firewall Setting (lihat gambar di bawah ini). 
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHdf6cpFxvW3y_noCu44gQ4dIvcW1zhqfaFwKMXvg4_leipzI8OekFTBegOHL_ttGiSe6AeLD_3zMcxlrKjHtHHfSn0eh0ANuJ8TvhqmQ4S3D6LTgIj7daNb2NGDOV5CFSUlhgiXgsXpVc/s320/xpbervirus+%2528sebelum+dibuat+service%2529+%255BRunning%255D+-+Oracle+VM+VirtualBox_2013-01-31_04-04-09.jpg
Mengatur Firewall
Selanjutnya dari tab yang ada pilih Exception. Kemudian klik Add Program untuk menambahkan program MySQL. Pada jendela Add Program Klik tombol Browse dan telusuri file mysql-nt di folder \Mysql\bin, seperti di C:\Appserv\mysql\bin atau di C:\xampp\mysql\bin. lihat contoh gambar berikut:
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk2nUkPda9KCHAJc_x72jnKNPw63dHN7ykpkwyYa9T5aV58wovGYju4yO-nKVVYbYKcHkMCtuC5ZH_SjoDhYQSCIHjFg6qdjBEu0vZonZaUvmq9shnaN6MFtUZZsNZO9-Tz94Uc6bKyFj-/s400/xpbervirus+%28sebelum+dibuat+service%29+%5BRunning%5D+-+Oracle+VM+VirtualBox_2013-01-31_04-13-31.jpg
Menambahkan mysql-nt di exception
Langkah yang kita lakukan diatas adalah untuk membuat windows Firewall mengizinkan mysql untuk berkomunikasi dengan jaringan tanpa di blok. Dan kita bisa k tahap selanjutnya!

U.    Menambahkan user MySQL untuk komputer klien 


Menambahkan user berarti kita perlu perangkat pengelola MySQL seperti phpmyadmin dalam gambar saya menggunakan phpMyAdmin - 2.10.3. Buka Localhost\phpmyadmin di browser komputer anda, dan klik Privileges seperti gambar dibawah. Privileges adalah pengaturan user di MySQL, siapa yang berhak mengakses dan hak apa saja yang mereka miliki, bisa mengakses dari komputer mana saja dan seterusnya.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-39XnSlD8trbPG8D9Uhq4UVIxXMxR_IsQQgiGqPxX8Yyjogjzy1A4wWKFBcv_oJvIoTpN3l2hqG13MfUYjaTqe2_e1Z0if1VxUfXLe-kjmxBCLSwJgooBtqBii1r9KCgJiUtVdpVHKyTg/s320/localhost+_+localhost+_+phpMyAdmin+2.10.3_2013-01-31_04-25-35.jpg
Mengatur privileges di MySQL.
Pada privileges, ternyata ada 3 user root yang bisa mengakses database dari 127.0.0.1, localhost dan production.mysql.com. 127.0.0.1 dan localhost menunjuk pada komputer itu sendiri. sedangkan production.mysql.com mungkin untuk kepentingan pengembang MySQL, saya kurang tahu. Nah disinilah kita akan menambahkan 1 user lagi dengan klien yang bebas. Klik Add New User untuk menambahkan user baru. 
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj743Tl02DYkEbOiV4xIIAbVBxwlkcBea56WGp0_yHU6tnGigkObdVCEkuCCBMUXcG3T7_RffAK4bMiMrH25xwt2tB8LhK96oh3vr8c5-pYiuBjrou6Bz21pii0N3eGwrQjoPDRNXXkaLLx/s320/xpbervirus+%28sebelum+dibuat+service%29+%5BRunning%5D+-+Oracle+VM+VirtualBox_2013-01-31_04-28-39.jpg
Daftar User di MySQL
Berdasarkan layar input yang muncul berikutnya, isikan nama user dengan root, kemudian kosongkan bagian host dengan combo Any host terpilih seperti gambar dibawah. tambahkan password dan pada Global Privileges klik pada link Check All untuk memberikan semua akses pada root tersebut.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPPbvMxmm55tRgkp_eTcvYhGI3DCUoMmnYi_doCj0NMR2lnv5aP1-IuWyB6hSI-oG0a3FCBnoLDZjpUgIUw5TFvaQ-aEshHjhsYWu3hvRXIo5CdcgVBIsHeFudPDXxeLtTOyor2nrGA9NA/s400/xpbervirus+%28sebelum+dibuat+service%29+%5BRunning%5D+-+Oracle+VM+VirtualBox_2013-01-31_04-33-48.jpg
Menambahkan user baru pada MySQL dengan kemampuan menggunakan jaringan
Setelah proses produksi selesai, user root jaringan ini sebaiknya anda ganti dengan user yang lebih terbatas kemampuannya, karena bisa mengakses root berarti bisa mengakses semua sumberdaya MySQL anda. 

V.    Keterangan Data Type MySQL (Indonesia)


Kuliah pertemuan Kedua (Basis Data) Membahas mengenai kesulitan - kesulitan yang di hadapi ketika mengerjakan Tugas Basis Data (Part1) ternyata salah satu yang di tanyakan adalah tentang Data Type. dalam postingan kali ini akan menjelaskan mengenai Keterangan dari masing - masing Data Type.
Seperti halnya dengan DBMS (Database Management System) maupun RDBMS ( Relasional Database Manajemen Sistem ) lainnya, MySQL juga memiliki tipe data untuk melakukan pengaturan record data yang ditanganinya. Untuk itu, Anda dapat melihat daftar dan penjelasannya pada ketiga tabel berikut:
1.      Tipe Data Numerik
Tipe data numerik berisi sekumpulan tipe data sejenis yang mampu menangani data-data numerik. Berikut ini beberapa tipe data yang digunakan dalam MySQL.
Tabel 1.1 Daftar Tipe Data Numerik

Type
Bytes
Keterangan
TINYINT

1
Type ini merupakan bentuk numerik yang paling kecil dalam menangani data di dalamnya, yang  dapat menangani data mulai dari anggka –128 sampai dengan 127.
SMALLINT

2
Memiliki kemampuan menyimpan data lebih besar dari TINYINT, yaitu mampu untuk menangani data mulai dari -32768 sampai dengan 32767.
MEDIUMINT

3
Mampu menangani data mulai dari -8388608 sampai dengan 8388607.
INT

4
Type INT merupakan type yang sangat sering digunakan dalam pembuatan database, karena type ini dirasakan sangat cukup menampung dalam menangani data, yaitu mampu menyimpan data mulai dar i-2147483648  sampai 2147483647.
BIGINT

8
Bentuk terbesar dalam menangani data Numerik, mampu menangani data mulai dari -9223372036854775808  sampai 9223372036854775807.
2.      Tipe Data untuk Penanggalan dan Waktu
Untuk menangani data-data yang berkaitan dengan waktu dan penanggalan, Anda dapat melihat beberapat tipe pada tabel berikut:
Tabel 2.2 Daftar Tipe Data Tanggal dan Waktu

Type
Keterangan
DATETIME
Bentuk ini dapat menyimpan dua buah bentuk type data sekaligus, yaitu penanggalan dan waktu. Bentuk yang dapat diciptakan oleh DATETIME adalah '0000-00-00 00:00:00'. '0000-00-00’ merupakan bentuk penanggalan yang dimulai dari tahun, bulan, dan tanggal. Sedangkan 00:00:00 adalah tempat menyimpan waktu atau jam. Misalnya: ‘2004-06-22 08:15:45’.
DATE
Bentuk ini digunakan untuk menyimpan data penanggalan saja, dengan bentuk penulisan '0000-00-00'. Penggunaan ini mirip seperti pada DATETIME, hanya saja yang ditampilkan hanya penanggalan saja. Misalnya, ‘2004-06-22’.
TIMESTAMP
Bentuk penanggalan dengan TIMESTAMP ditampilkan berjajar tanpa ada pembatasnya, dengan bentuk penulisan  00000000000000 .
TIME
Bentuk TIME hanya digunakan untuk menyimpan data berbentuk jam. Yaitu dimulai dari tahun yang dibaca dari dua karakter terakhir dan selanjutnya diikuti bulan dan tanggal .bentuk penulisanya adalah '00:00:00' . pada prototype pewaktuan tersebut dapat dijabarkan bahwa 00 perma adalah jam yang diikuti menit dan detik. Contoh 08:35:55 .
YEAR
Bentuk yang paling sederhana adalah YEAR yang hanya menyimpan data berupa tahun saja. Ditulis secara lengkap 4 digit, misalnya: 2004 atau 1999 .
3.      Tipe Data String
Dengan menyesuaikan banyaknya data, MySQL telah membagi datanya menjadi beberapa tipe, sehingga penggunaannya dapat disesuaikan. Perhatikan tabel berikut:
Tabel 3.3 Daftar Tipe Data String

Type
Bytes
Keterangan
TINYTEXT

255
Type ini merupakan bentuk terkecil dari data String, yang mampu manangani data sampai dengan 2^8-1 data .
TINYBLOB

255
Bentuk  TINYTEXT adalah bentuk yang sama dengan TINYBLOB , yaitu mampu menangani data sampai dengan 2^8-1 data .
TEXT

65535
Bentuk TEXT  salah satu bentuk type String yang mampu menangani data sampai dengan berukuran 2^16-1 (64K-1) data.
BLOB

65535
Memiliki kemampuan sama dengan TEXT, yaitu sampai dengan 2^16-1 (64K-1) data.
MEDIUMTEXT

16777215
Dapat menyimpan data dengan ukuran cukup besar, sampai dengan 2^24-1 (16M-1) data .
MEDIUMBLOB

16777215
Bentuk MEDIUMTEXT dapat Anda ganti dengan bentuk data MEDIUMBLOB, yang mampu menyimpan data sampai dengan 2^24-1 (16M-1) data.
LONGBLOB

4294967295
Type data LONGBLOB adalah bentuk Type data yang paling besar dalam menangani data. Data yang disimpan sampai dengan berukuran Giga Byte. Type ini memiliki batasan penyimpanan sampai dengan  2^32-1 (4G-1) data.
Tabel 4.4 Daftar Tipe Data String yang Sering Digunakan

Type
Keterangan
VARCHAR
Bentuk ini dapat menyimpan data sampai dengan 225 karakter. Anda dapat menggunakan type ini apabila data yang dimasukan tidak lebih dari batasan tersebut.
CHAR
Bentuk CHAR  hamper sama dengan VARCHAR, mampu menangani data sampai dengan 225 karakter. Namun, kedua type tersebut sangat signifikan dalam menyimpan data. Misalnya, Anda membuat kolom dengan Type VARCHAR(25). Meskipun Anda memasukan data kurang dari 25 digit, tetap dibaca sebanyak digit yang dimasukkan.
Namun, jika Anda menggunakan type data CHAR(4), meskipun Anda memasukkan digit kurang dari 4, akan tetap dibaca 4 digit.
ENUM
Digunakan untuk validasi. Type data seperti ini, biasanya, kolom ditentukan terlebih dahulu. Misalnya, pada pembuatan kolom yang isinya mengenai golongan darah A, B, AB, dan O, bentuk penulisanya adalah ENUM(‘A’,’B’,’AB’,’O’).
Jika memasukkan data tidak sesuai criteria, akan terjadi kesalahan atau tidak bisa dibaca (kosong).
SET
Type data SET sebenarnya memiliki fungsi yang sama dengan type ENUM, yaitu dengan mendeklarasikan anggota dari isi kolom yang mungkin akan menjadi anggotanya.


W.   Sistem Keamanan pada MySQL

Untuk keamanan pada MySQL, kita harus mengatur hak akses (privilage) dari setiap user karena tidak semua user dibolehkan untuk mengakses data yang ada.

Cara kerja sistem privilege :
Sistem privilege MySQL memastikan bahwa user dapat melakukan hanya hal-hal yang diperbolehkan untuk mereka. Ketika anda connect ke server MySQL, identitas anda ditentukan oleh host tempat anda melakukan koneksi dan username yang anda ingin gunakan. Sistem memberi privilege sesuai dengan identitas anda dan apa yang ingin ada lakukan.
MySQL mempertimbangkan baik hostname dan username dalam mengidentifikasi karena mungkin ada alasan untuk menganggap bahwa username yang diberikan adalah milik orang yang sama dimanapun di Internet. Sebagai contoh, user bill yang connect dari whitehouse.gov tidak harus orang yang sama dengan user bill yang connect dari microsoft.com. MySQL menangani hal ini dengan mengijinkan anda untuk menentukan user dari host yang berbeda yang mungkin namanya sama : anda dapat memberi bill sebuah himpunan privilege untuk koneksi dari whitehouse.gov, dan himpunan privilege yang lain untuk koneksi dari microsoft.com.
Kendali akses MySQL melibatkan dua tingkat:
Ø  Tingkat 1: server mengecek apakah anda diijinkan untuk connect ke server.
Ø  Tingkat 2: Dianggap anda dapat connect, server mengecek tiap permintaan yang anda jalankan untuk melihat apakah privilege anda cukup untuk menjalankannya. Contohnya, jika anda mencoba untuk memilih baris dari tabel dalam database atau menghapus sebuah tabel dari database, server memastikan bahwa anda memiliki privilege select untuk tabel tersebut atau privilege drop untuk database.
Dalam database mysql terdapat lima buah tabel yang dapat digunakan untuk mengatur user dan izin akses masing-masing user-user privileges Yaitu : user, db, host, tables_priv dan columns_priv. Kelima tabel ini disebut grant tables.
Fungsi dari kelima tabel tersebut :
a)      User : Berisi data user yang mendapatkan izin akses MySQL, asal koneksi dan izin akses kepada user Tingkatan akses : Global
b)      Db :Mengatur database apa saja yang dapat diakses oleh seorang user dan jenis izin aksesnya Tingkatan akses : Database
c)      Host : Mengatur asal host yang diperkenankan bagi user untuk mengakses MySQL, jika lebih dari satu host. Tingkatan akses : Database
d)     tables_priv : Mengatur tabel apa saja yang dapat diakses oleh seorang user dan jenis izin aksesnya Tingkatan akses : Tabel
e)      columns_priv : Mengatur kolom (field) apa saja yang dapat diakses oleh seorang user dan jenis izin aksesnya Tingkatan akses : Kolom – field.
Jenis Izin Akses User - User Privileges
Izin akses bagi user terdirli dari tiga bagian, yaitu :
1.   Tingkatan akses user biasa
      Mencakup izin akses kedalam database atau kolom, yaitu :
a. ALTER
b. CRETATE
c. DELETE
d. DROP
e. INDEX
f. INSERT
g. SELECT
h. UPDATE
i. REFERENCES
2.   Tingkatan akses administrator - Global administrative
                  Hanya digunakan oleh user setingkat root atau administrator dan tidak diberikan kepada user biasa, yaitu :
a. FILE
b. PROCESS
c. RELOAD
d. SHUTDOWN
e. CREATE TEMPORARY TABLE
f. EXCUTE
g. LOCK TABLES
h. REPLICATION CLIENT
l. REPLICATION SLAVE
j. SHOW DATABASES
k. SUPER
3.   Tingkatan Akses khusus — Special privileges
Dapat diterapkan pada setiap user dengan izin akses sebagai berikut :
a. ALL
b. USAGE
Memberikan Password Untuk Root Dapat dilakukan dengan perintah Update. update user set password:password(’xxxxxxxxxx’)
where user=’root’ ;
Lanjutkan dengan perintah FLUSH
flush privileges
Fungsl flush :
Mysql membaca grant tables hanya satu kali pada saat server pertama kali dijalankan, perintah flush akan memerintahkan kepada sistem untuk membaca ulang kelima grant tables tanpa harus merestart server mysql.

1.      Perintah GRANT
Grant merupakan perintah untuk memberikan hak izin akses bagi user di MySQL agar dapat mengakses database, tabel dan kolom. Selain itu juga dapat menambahkan user baru dengan perintah Grant ini. Ada hal yang harus diperhatikan jika melakukan perubahan izin akses pada user MySQL yang masih aktif bekerja tidak langsung bisa menerapkan perubahan meski sudah melakukan flush privileges. Konfigurasi ini berlaku ketika user sudah menutup koneksi kemudian melakukan koneksi kembali. Izin akses penuh ini digunakan untuk mengakses seluruh database dalam server.
Bentuk umum :
      GRANT jenis_akses (nama_kolom) ON nama_database
      TO nama_user IDENTIFIED BY ”nama_password”
      [WITH GRANT pilihan_akses]
Perintah diatas akan memberikan izin akses penuh setara dengan root. Sebaiknya hal ini tidak boleh dilakukan.Option Identified By nama password akan menerapkan user tersebut agar tetap memasukkan password saat mengakses database. Jika anda tidak memberikan option password maka user tersebut dapat mengakses database tanpa password.
Penyertaan With Grand Option akan memberikan hak penuh pada user sehingga user tersebut juga mampu melakukan perintah Grant tertentu pada user lainnya. Namun terdapat kekurangan ketika kita sebelumnya tidak memilih database MySQL maka server akan mengabaikan akses Reload, Shutdown, Process, File dan Grant.
2.      Perintah REVOKE
Revoke merupakan kebalikan dari perintah grant yaitu menghapus atau mencabut kembali izin akses user MySQL yang sebelumnya telah diberikan. Tingkat pilihan yang dapat digunakan juga sama dengan perintah grant sehingga semua izin akses dengan grant dapat dicabut kembali.
Bentuk umum :
      REVOKE jenis_akses ON nama_database
       FROM nama_user

Perintah diatas membuat salah satu user tidak mempunyai izin akses lagi. Meski sudah dicabut aksesnya user tersebut masih dapat login ke database MySQL tapi tidak perlu khawatir karena user tersebut tidak bisa berbuat apa-apa lagi.
3.      Menghapus Akses Database
mysql> revoke all on nm_db.nm_tbl from nm_user@localhost identified by ‘nm_passwd’;
Perintah diatas izin akses user pada tabel tertentu telah dicabut sehingga tidak bisa mengakses kembali.
4.      Menghapus Akses Kolom
mysql> revoke update(nama) on nm_db.nm_tbl from nm_user@localhost identified by ‘nm_passwd’;
Perintah diatas akan mencabut akses untuk kolom yang telah ditentukan sebelumnya.

X.    SISTEM KEAMANAN PADA PostgreSQL
PostgreSQL merupakan salah satu database yang memiliki kinerja yang sangat tinggi, karena telah didukung hampir berbagai platform dan didukung oleh banyak bahasa pemrograman. PostgreSQL juga memiliki dukungan standar SQL92, SQL99, dan SQL2003 yang digunakan untuk standar bahasa yang digunakan. Oleh karena itu, PostgreSQL juga memilki sebuah fitur yang berguna untuk menangani dalam hal keamanan data. Adapun keamanan yang dimiliki untuk Keamanan PostgreSQL mulai dari Keamanan Saat Menjalankan PostgreSQL, User, Password dan Hak Akses dalam PostgreSQL, File pg_hba.conf
Data Encryption:
Pada Server Database PostgreSQL, memiliki suatu fitur kriptografi yang hanya terbatas pada MD5 dan fungsi enkripsi dan deskripsi. Fitur – fitur yang biasanya terdapat pada kriptografi biasanya adalah:
Ø  MD5, yakni semacam cara mengenkripsi password yang disimpan di dalam storage yang melintasi suatu jaringan tertentu, sehingga mengakibatkan seorang admin tidak akan mengetahui password user yang telah disimpan.
Ø  SHA1, semacam fitur hashing yang berguna untuk melindungi password diambil oleh user yang tidak berhak mengakses database.
Ø  SHA224/256/384/512
Ø  Blowfish
Ø  ES/3DES/CAST5*
Ø  PGP Symmetric encryption
Ø  PGP Public-Key encryption, yakni suatu cara mengenkripsi data pada saat melintasi jaringan dengan menggunakan openSSL, sehingga data tersebut berupa suatu password ataupun data hasil query. Otentikasi SSL adalah ketika sertifikat pertukaran client dan server yang telah ditandatangani oleh pihak ketiga yang telah dipertanyakan kredensial. Sambungan ditolak baik oleh server atau client bila tidak menerima sertifikat yang sah dari yang lain.
Authentication :
Otentikasi adalah merupakan sebuah proses dimana server backend dan postmaster memastikan bahwa pengguna meminta akses ke data. Semua user yang memakai PostgreSQL diperiksa melalui pg_user untuk memastikan bahwa mereka mempunyai hak akses. Namun, verifikasi identitas pengguna yang sebenarnya dilakukan dalam berbagai cara, yaitu:
Ø  Dari shell pengguna: Sebuah server backend dimulai dari user shell, user-id sebelum melakukan setuid ke user-id dari user postgres. User id-efektif digunakan sebagai dasar untuk cek kontrol akses. Tidak ada otentikasi lainnya yang dilakukan.
Ø  Dari jaringan: PostgreSQL dibangun sebagai database distribusi, akses ke port TCP Internet dari proses postmaster tersedia untuk setiap user. DBA mengkonfigurasi file pg_hba.conf dalam direktori PGDATA untuk menentukan sistem otentikasi apa yang akan digunakan sesuai dengan host pembuat koneksi. pg_hba.conf untuk penjelasan tentang sistem otentikasi yang tersedia. Tentu saja, otentikasi berbasis host tidak bisa dikelabui di Unix. Hal ini dimaksudkan agar jika penyusup bertekad ingin mengetahui informasi dari host. Isu-isu keamanan berada di luar lingkup Postgres.

Privileges:
Pada PostgreSQL juga memiliki hak akses (privilage) dari setiap user karena tidak semua user dibolehkan untuk mengatur akses data yang ada. PostgreSQL juga sama dengan MySQl yaitu menggunakan perintah Grant, selanjutnya untuk peran biasa, pengguna biasa dapat:
Ø  Mengakses database apabila cluster data menggunakan kebijakan otentikasi standar seperti yang dijelaskan dalam pg_hba.conf.
Ø  Membuat objek dalam skema PUBLIC dari setiap database pengguna dapat mengakses.
Ø  Buat sesi (sementara) obyek dalam sesi sementara, seperti skema
Ø  Alter parameter runtime.
Ø  Membuat fungsi yang ditetapkan pengguna.
Ø  Jalankan ditetapkan pengguna fungsi yang dibuat oleh pengguna lain dalam skema PUBLIK (selama mereka berinteraksi hanya dengan benda-benda yang pengguna telah diberikan hak untuk mengakses).
Adapun perintah user biasa hanya bermaksud untuk melaksanakan perintah-perintah yang memanipulasi data menggunakan perintah INSERT , UPDATE , dan DELETE. Namun, tindakan ini dikarenakan skema UMUM terbuka untuk semua.
Menjadikan para pengguna dapat menambahkan data yang ada di tabel, bahkan mungkinkan untuk memodifikasinya dengan menambahkan aturan dan dapat, menyimpan data dalam tabel yang terletak dalam skema PUBLIC, yang kemudian bisa di akses.
PostgreSQL juga memiliki control dasar yang bernama control access-Host, dimana pada setiap cliet diijinkan untuk mengakses suatu database dan client tersebut dapat mengotentikasikannya sendiri.
Dimana setiap sistem database akan berisi sebuah file yang bernama pg_hba.conf yang akan di akses ole setiap client. Adapun metode otentikasi pada TCP/IP socket domain, yakni :
1.      Unconditionally : yakni sambungan diperbolehkan.
2.      Reject : sambungan ditolak tanpa syarat.
3.      Crypt : Client diminta untuk memasukkan password untuk memastikan, kalau cocok maka sambungan akan diperbolehkan.
4.      Password : hampir sama dengan sebelumnya


BAB III
PENUTUP

A.    Kesimpulan
SQL (Structured Query Language) adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL)dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD), namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI.

B.     Saran
MySQL merupakan database yang sangat cepat, dapat diandalkan dan mudah untuk digunakan. Jika hal itu yang anda cari maka anda harus mencobanya. Selain itu, source programnya pun dapat anda dapatkan secara gratis dan syntax - syntaxnya mudah untuk dipahami dan tidak rumit serta pengaksesan database dapat dilakukan dengan mudah dan cepat.




DAFTAR PUSTAKA

6 komentar: