Saturday, May 2, 2015

Rumus perhitunga pada postgres

Field Hitungan Menggunakan SQL



Data yang disimpan dalam table database seringkali tidak tersedia dalam format yang sebenarnya dibutuhkan oleh aplikasi atau user. Sebagai contoh, mungkin data yang ingin ditampilkan dalam bentuk gabungan dari beberapa kolom/field, ataupun ingin ditampilkan dalam huruf besar sedangkan data yang diinput dalam tabel dalam huruf kecil. Bahkan terkadang dibutuhkan data berupa hasil hitungan dari beberapa kolom/field.
Field hitungan adalah sebuah field yang dihasilkan dari kombinasi field-field yang ada dalam tabel. Field hitungan tidak benar-benar ada dalam tabel database, hanya bersifat on-the fly dalam statement SELECT. Field yang dihasilkan tidak mempunyai nama, tetapi  dapat diberikan alternatif nama dengan pemberian alias.
Rangkaian Field
Rangkian field adalah field yang terbentuk dari gabungan beberapa field data tipe teks yang dirangkaian menjadi sebuah field. Operator yang digunakan untuk merangkai field adalah tanda + ataupun ||, tergantung DBMS yang digunakan.
Contoh penggunaan Rangkaian Field:
SELECT FirstName, LastName, FirstName + '  ' + LastName As NamaLengkap,
Address, City, Country, Address + ', ' + City + ',  ' + Country As Alamat_Lengkap
FROM Employees Order By FirstName
Field Kalkulasi Matematis
Field kalkulasi sering digunakan untuk melakukan perhitungan-perhitungan matematis pada data yang diambil.
Tabel 4.3 Operator Matematis SQL
Operator
Keterangan
+
Penjumlahan
-
Pengurangan
*
Perkalian
/
Pembagian

Contoh penggunaan field kalkulasi matematis:
SELECT  ProductId, UnitPrice, Quantity, UnitPrice * Quantity As Harga_Total FROM [Order Details] ORDER BY ProductId


Fungsi

Fungsi adalah operasi-operasi yang dapat dilakukan pada data untuk memudahkan perubahan dan manipulasi atau ekstraksi data. Fungsi cenderung sangat khusus untuk setiap DBMS. Pada dasarnya sedikit saja fungsi yang secara identik didukung oleh semua DBMS besar. Walaupun semua tipe fungsionalitas biasanya tersedia di setiap DBMS, nama fungsi atau sintaks dapat sangat berbeda.
Contoh  perbedaaan penggunaan fungsi ekstraksi bagian string pada DBMS yang berbeda :

Tabel 4.4 Perbedaan penggunaan fungsi ekstraksi string pada beberapa DBMS

Fungsi
MS.Access
V. Foxpro
SQL Server
Oracle
Ekstraksi bagian string
Mid( )
Substr( )
Substring( )
Substr( )


Tipe-tipe Fungsi
1.        Fungsi Teks
2.        Fungsi Tanggal dan Waktu
3.        Fungsi Numerik
4.        Fungsi Sistem




Fungsi Teks
Fungsi teks digunakan untuk memanipulasi atau mengekstrak string teks (pemotongan atau penambahan nilai, konversi huruf besar dan huruf kecil).

Tabel 4.5 Contoh Fungsi Teks
Fungsi Teks
MS.Access
V.Foxpro
SQL Server
Mengambil beberapa karakter dari kiri string teks
Left( )
Left( )
Left( )
Mengambil beberapa karakter dari kanan string teks
Right( )
Right( )
Right( )
Meng-ekstrak bagian dari string teks
Mid( )
Substr( )
Substring( )
Menghitung panjang string teks
Len()
Len()
Len( )
Menghapus spasi di sebelah kiri string teks
Ltrim( )
Ltrim( )
Ltrim( )
Menghapus spasi di sebelah kanan string teks
Rtrim( )
Rtrim( )
Rtrim( )
Mengubah format string ke huruf besar
Ucase( )
Upper( )
Upper( )
Mengubah format string ke huruf kecil
Lcase( )
Lower( )
Lower( )
Catatan : format parameter yang digunakan dalam setiap fungsi untuk masing-masing DBMS tidak selalu sama.


Contoh penggunaan fungsi teks :
1.      SELECT CompanyName, Length(CompanyName) as PanjangData, Left(CompanyName,4) As Kiri4, Right(CompanyName,4) As Kanan4,Mid(CompanyName,3,5) As Tengah35, Ucase(CompanyName) As HurufBesar, Lcase(CompanyName) As HurufKecil FROM Customers Order By CompanyName
2. SELECT
     Ltrim(‘    JURUSAN        ‘) As SpasiKiri, 
     Rtrim(‘    JURUSAN      ‘) As SpasiKanan, 
     Trim(‘    JURUSAN       ‘) As TanpaSpasi
     Lcase(JURUSAN) As HurufKecil


Fungsi Tanggal
Fungsi Tanggal digunakan untuk memanipulasi nilai tanggal dan waktu atau untuk mengekstrak komponen-komponen spesifik dari nilai-nilai tersebut.

Tabel 4.6 Contoh Fungsi Tanggal
Fungsi Tanggal
MS.Access
V.Foxpro
SQL Server
Mengambil Nilai Tanggal
Day()
Day()
Day()
Mengambil Nilai Bulan
Month()
Month()
Month()
Mengambil Nilai Tahun
Year()
Year()
Year()
Mengambil NilaiTanggal
DatePart('d',x)

DatePart(dd,x)
Mengambil Nilai Bulan
DatePart('m',x)

DatePart(mm,x)
Mengambil Nilai Tahun
DatePart('yyyy',x)

DatePart(yy,x)
Menghitung Selisih Tanggal
DateDiff('d',x,y)

DateDiff(dd,x,y)
Menghitung Selisih Tahun
DateDiff('yyyy',x,y)

DateDiff(yy,x,y )
Menambah Tahun
DateAdd('yyyy',x,y)

DateAdd(yy,x,y)
Mengambil Waktu System (komputer)
Now()

Getdate()
Catatan : Format parameter yang digunakan dalam setiap fungsi untuk masing-masing DBMS tidak selalu sama.
Contoh penggunaan Fungsi Tanggal:
1.    SELECT FirstName + ' ' + LastName As Nama, BirthDate,
     Day(BirthDate) As Tanggal,
     Month(BirthDate) As Bulan,
     Year(BirthDate) As Tahun 
     FROM Employees

2.    SELECT FirstName + ' ' + LastName As Nama, BirthDate,
     Datepart(dd,BirthDate) As Tanggal,
     Datepart(mm,BirthDate) As Bulan,
     Datepart(yy,BirthDate) As Tahun
     FROM Employees

3.    SELECT FirstName + ' ' + LastName As Nama, BirthDate FROM Employees
     WHERE Datepart(yy,BirthDate) Between 1960 And 1968
     ORDER BY BirthDate
Fungsi Numerik
Fungsi Numerik digunakan untuk melakukan operasi-operasi matematik pada data numerik. Fungsi Numerik hanya digunakan untuk manipulasi data numerik, cenderung digunakan untuk perhitungan aljabar, trigonometri, ataupun geometri. Fungsi numerik adalah fungsi yang paling seragam dan konsisten pada DBMS yang besar.

Tabel 4.7 Fungsi Manipulasi Numerik yang Umum Digunakan
Fungsi
Keterangan
ABS()
Menghasilkan nilai mutlak sebuah bilangan
COS()
Menghasilkan cosin trigonometri dari sudut tertentu
EXP()
Menghasilkan nilai eksponen dari bilangan khusus
PI()
Menghasilkan nilai PI
SIN()
Menghasilkan sinus trigonometri dari sudut tertentu
SQRT()
Menghasilkan akar kuadrat bilangan tertentu
ROUND()
Menghasilkan pembulatan bilangan tertentu
Catatan : Lihat dokumentsi DBMS masing-masing untuk daftar fungsi matematis yang didukung.

Contoh penggunaan Fungsi Numerik:
1.    SELECT Abs(-1) as NilaiMutlak, Sqrt(81) As NilaiAkar
2.    SELECT UnitPrice, Sqrt(UnitPrice) As NilaiAkar FROM Products
3.    SELECT  Round(Sqrt(UnitPrice),3) As Pembulatan3 FROM Products


Fungsi Sistem
Fungsi Sistem mengembalikan informasi-informasi khusus ke DBMS yang sedang digunakan, seperti siapa yang sedang meng-akses database, daftar nama user yang terdaftar dan lain-lain. Fungsi sistem sangat khusus untuk setiap DBMS.
Contoh penggunaan Fungsi Sistem:
SELECT User_Name(1), User_Name(2), User_Name(3), Current_User




Menyisipkan Data
Statement INSERT digunakan untuk menyisipkan (menambah)  baris ke suatu tabel database. Insert/menyisipkan data dapat dilakukan dengan penginputan perbaris data secara langsung atau data yang disisipkan dapat berasal dari bari-baris tabel lain (hasil dari query).

a.    Insert dan Input Satu Baris Data

Pola :
INSERT INTO TableName[(columns,…)]
VALUES (value1, value2,…)
Contoh :
Insert sebuah baris tunggal lengkap :
Penulisan tabel secara implisit :
INSERT INTO Pelanggan
             VALUES ('XYZZ',
                        'PT. Maju Mundur',
                        ‘Anty',
                        ‘Secretary',
                        'Jl. Pengayoman No. 20',
                        'Makassar',
                        'MKS',
                        '1234',
                        'Indonesia',
                        '(0411) 444123',
                        '(0411) 444321')
Penulisan tabel secara eksplisit :
INSERT INTO Pelanggan (CustomerId,
                           CompanyName,
                           ContactName,
                           ContactTitle,
                           Address,
                           City,
                           Region,
                           PostalCode,
                           Country,
                           Phone,
                           Fax)
   VALUES ('XYZZ',
               'PT. Maju Mundur',
               ‘Anty',
               ‘Secretary',
               'Jl. Pengayoman No. 20',
               'Makassar',
               'MKS',
               '1234',
               'Indonesia',
               '(0411) 444123',
               '(0411) 444321')

Insert sebuah baris tunggal sebagian:
INSERT INTO Pelanggan (CustomerId,
                           CompanyName,
                           Address,
                           City)
   VALUES ('XYZZ',
               'PT. Maju Mundur',
               ‘Anty',
               ‘Secretary',
               'Jl. Pengayoman No. 20',
               'Makassar')

b.      Insert Data Dari Tabel /Hasil Query
Pola:
INSERT INTO TableName
SELECT columns,…
FROM TableName
[WHERE]….

Contoh :
1.    INSERT INTO Pelanggan
SELECT * FROM Customers
WHERE Region Is Null
2.    INSERT  INTO Pelanggan  (CustomerId,
                                                   CompanyName,
                                                   Address)
SELECT  CustomerId,
                     CompanyName,
                     Address
FROM Customers
WHERE CompanyName Like ‘[ABC]*’


c.         Meng-copy /menyalindari tabel
Pola :
SELECT * Into DestinationTable
FROM SourceTable

Contoh :
Membuat Tabel Pelanggan dengan meng-copy Tabel Customers:
SELECT * INTO Pelanggan FROM Customers

Memperbaharui Struktur Tabel
Untuk memperbaharui defenisi tabel digunakan statemen ALTER TABLE. Namun demikian perubahan tabel yang sudah ada, bukanlah masalah sederhana. Pastikan merujuk dokumentasi DBMS untuk melihat bagaimana perubahan bisa dilakukan.
Pola :
ALTER TABLE
(
  ADD|DROP COLUMN |ALTER COLUMN column DataType [NULL|NOT NULL] [constraints],
     ADD|DROP COLUMN |ALTER COLUMN column DataType [NULL|NOT NULL] [constraints],
    ….
)
Contoh :
1.  ALTER TABLE Mahasiswa
     ADD Jurusan Char(15) NULL
2. ALTER TABLE Mahasiswa
     ALTER COLUMN Jurusan Char(20) NULL
3.  ALTER TABLE Mahasiswa
     DROP COLUMN Jurusan
Share This
Previous Post
Next Post

Saya Seorang yang Gemar dalam bidang teknologi, Saya fokus pada ilmu jaringan komputer,Sedang mendalamin ilmu programing, Salam kenal dari saya semoga tulisan yang ada di blog ini dapat meringankan ingatan anda...mksh.