Friday, June 28, 2013

Mengurutkan data dengan perintah query

ika anda mempunyai data table karyawan di dalam database Access atau SQL Server. Anda dapat menampilkan data secara terurut berdasarkan field tertentu. Pengurutan data dapat berupa Ascending yaitu dari terkecil ke terbesar atauDescending yaitu mengurutkan dari terbesar ke terkecil.

Untuk megurutkan data table Karyawan berdasarkan Nama maka perintah query select yang ditulis adalah:

- Mengurutkan Ascending

“Select * From Table_Karyawan Order By Nama;” atau
“Select * From Table_Karyawan Order By Nama Asc;”

Clausa Asc boleh ditulis atau tidak karena clause Order By secara default akan mengurutkan Ascending.

- Mengurutkan Descending

“Select * From Table_Karyawan Order By Nama Desc;”

Jika anda perlu mengurutkan data dengan field yang diurutkan lebih dari satu field anda tinggal menyebutkan field-field yang datanya akan diurutkan dibelakng clause Order By.

Misalnya data table karyawan akan diurutkan berdasar nama kemudian tanggal lahir, maka perintah query select yang dituliskan adalah:
“Select * From Table_Karyawan Order By Nama,Tanggal_Lahir;”

Jika model mengurutkannya berbeda, misalnya nama diurutkan ascending dan tanggal lahir diurutkan descending, maka perintah query selectnya menjadi:

“Select * From Table_Karyawan Order By Nama Asc, Tanggal_Lahir Desc;

Fungsi Substring() SQL Server

mengembalikan sebagian baik karakter atau string biner, atau string teks, dan mengambil tiga parameter:
  • Sebuah karakter atau string biner, nama kolom, atau string-ekspresi bernilai yang mencakup nama kolom.
  • Posisi di mana substring harus dimulai.
  • Panjang (dalam jumlah karakter, atau dalam jumlah byte untuk biner) dari string yang akan dikembalikan.
Contoh ini menampilkan nama awal dan terakhir pertama dari setiap karyawan, misalnya, A Fuller:

USE Northwind
SELECT SUBSTRING(FirstName, 1, 1),LastName
FROM Employees 
Contoh ini menampilkan karakter kedua, ketiga, dan keempat dari abcdef konstanta:
SELECT x = SUBSTRING('abcdef', 2, 3) 

x
----------
bcd 

(1 row(s) affected) 

Hapus Data Log SQL Server

SQL Server data file terdiri dari 2 bagian yaitu file data dan file log. Ukuran File data dan file log akan bertambah terus seiring dengan penambahan data pada tabel-tabel dalam database yang telah dibuat.
Biasanya penambahan ukuran file log lebih cepat dari pada ukuran file data. Hal ini dikarenakan file log menyimpan semua informasi perubahan atau transaksi yang telah terjadi selama ada proses penambahan (insert), perubahan (edit) dan penghapusan (delete) data.
Jika ukuran file log sudah terlalu besar, maka kita dapat menghapus file log tersebut. Menghapus file log tidak akan menghapus isi data dalam database yang telah ada.

Cara menghapus file log database SQL server adalah sebagai berikut:
1. Buka Enterprise Manager SQl Server dan login ke SQL Server sebagai Administrator
2. Expand Consol Root hingga kita dapat menemukan database yang file data log-nya akan dihapus
3. Klik kanan pada nama database yang dimaksud lalu pilih All Task lalu pilih Detach Database.


4. Akan muncul windows Detach database, lalu klik tombol OK
5. Jika proses Detach berhasil, maka akan muncul pemberitahuan bahwa proses detach telah berhasil.
6. Hapus file log database SQL Server (extensian .LDF), biasanya secara default file log database akan disimpan pada lokasi yang sama dengan file data di folder C:\Program Files\Microsoft SQL Server\MSSQL\data
7. Jika file log database sudah dihapus aktifkan lagi database dengan meng-attach database yang sebelumnya telah di-detach.

Cara meng-attach database:
1. Pada SQL Server Enterprise Manager, klik kanan pada tree Database
2. Pilih menu All Task lalu pilih Attach database
3. Masukkan nama file database (extension .MDF) atau browse dan cari file database yang akan di-attach, pilih database owner lalu klik tombol OK

4. Database telah aktif kembali dan siap untuk digunakan.

Catatan:
Sebelum menghapus data log file ada baiknya anda membackup database terlebih dahulu untuk mencegah hal yang tidak diharapkan.

Attach Database SQL Server

Apa itu Attach Database?

Attach database adalah proses mengaktifkan file .MDF ke dalam SQL Server. Jika anda ingin memindahkan database SQL Server dari satu database server ke server lain maka anda dapat menggunakan fasilitas attach database.

Untuk melakukan pemindahan database lakukan langkah-langkah berikut.
  1. Copy file database (file .mdf dari sumber server database) ke server tujuan. Copy file bisa melalui share folder atau bisa juga melalui flash disk atau hard disk extenal.
  2. Setelah file selesai dicopy, pada server buka Enterprise Manager dan expand sampai muncul folder Database.

  3. Klik kanan pada folder database pilih All Tasks > Attach Database. Akan muncul jendela Attach Database.

  4. Browse data file mdf dengan mengklik tombol browse (sebelah kanan text box mdf file)
  5. Klik tombol Verify. Pada bagian file Log akan anda tanda silang berwarna merah. Hal ini tidak apa-apa. Klik tombol OK.
  6. Pada Attach As isikan nama database.
  7. Pada Specify database owner set nama user di SQL Server yang akan menjadi pemilik atau owner database.

Fungsi DateDiff SQL Server

Apakah anda memerlukan proses perhitungan perbedaan hari, bulan atau tahun di antara dua data tanggal pada SQL Server ? Jika Ya maka anda akan memerlukan fungsi DateDiff untuk keperluan ini.

Fungsi DateDiff SQL Server menghasilkan data angka selisih tanggal dan waktu di antara dua tanggal.

Cara penulisan : DateDiff(datepart, startdate, enddate)

Argument:
  • datepart parameter yang menentukan pada bagian mana bagian tanggal untuk dihitung perbedaanya. Berikut adalah daftar dateparts dan singkatannya.
    DatepartSingkatan
    Yearyy, yyyy
    quarterqq, q
    Monthmm, m
    dayofyeardy, y
    Daydd, d
    Weekwk, ww
    Hourhh
    minutemi, n
    secondss, s
    millisecondms
  • startdate adalah tanggal awal. startdate adalah sebuah expressi yang menghasilkan tipe data datetime atau smalldatetime atau karakter string dalam format tanggal. Karena akurasi smlldatetime sampai pada menit maka ketika smalldatetime digunakan detik dan milidetik akan bernilai 0.
  • enddate adalah tanggal akhir untuk proses perhitungan. enddate adalah sebuah expressi yang menghasilkan tipe data datetime atau smalldatetime atau karakter string dalam format tanggal.
Tipe data hasil fungsi DateDiff adalah nilai Integer.

Catatan:
startdate dikurangi oleh enddate. Jika startdate lebih kecil dari enddate maka nilai hasil akan negatif.

Contoh:
Contoh berikut menentukan perbedaan dalam hari antara tanggal saat ini dengan tanggal publication pada tabel titles di database pudb pada SQL server.

USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO

Fungsi Convert() dan Cast() SQL Server

Fungsi Convert dan Cast digunakan untuk mengkonversi ekpresi dari suatu tipe data ke tipe data lainnya. Cast dan Convert mempunyai fungsi yang sama.
Penulisan:
Menggunakan CAST:

CAST ( expression AS data_type )

Menggunakan CONVERT:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Argumen:
expression
Adalah semua bentuk ekpresi yang valida dalam Microsoft SQL Server
data_type
Adalah target tipe data hasil konversi, termasuk bigin dan sql_variant. User-defined data types tidak bisa digunakan.
length
Parameter opsional dari tipe data nchar, nvarchar, char, varchar, binary, atau varbinary.
style
Adalah style dari format tipe data yang digunakan untuk mengkonversi tipe data datetime atau smalldatetime menjadi data karakter (tipe data nchar, nvarchar, char, varchar, nchar, or nvarchar), atau format string jika mengkonversi data float, real, money, atau smallmoney ke data karakter (tipe data nchar, nvarchar, char, varchar, nchar, atau nvarchar).
Contoh Penggunaan fungsi CONVERT dan CAST
SELECT CAST('01/01/1753' AS datetime)
SELECT CONVERT(datetime,'01/01/1753')
Kedua perintah Transact-SQL di atas menghasilkan hasil yang sama.

Menghitung umur dalam query SQL Server

Jika kita mempunyai table karyawan dalam SQL Server dimana pada table tersebut ada data atau field tanggal lahir karyawan, kita dapat menghitung umur karyawan dengan menggunakan query select.

Pada posting kali ini saya akan memberikan tips cara menghitung umur karyawan dengan menggunakan query select.

Misalnya pada table karyawan ada data atau field Nama dan Tanggal lahir, maka perintah query untuk menghitung umur karyawan adalah sebagai berikut:

select nama,tanggal_lahir,datediff(yy,tanggal_lahir,getdate()) as umur_saat_ini from karyawan;

Penjelasan perintah query select di atas:

Untuk menghitung umur karyawan digunakan fungsi datediff. Pada contoh ini tertulis datediff(yy,tanggal_lahir,getdate()) as umur_saat_ini.
  • parameter 1 yy adalah untuk menghitung perbedaan tanggal dengan hasil tahun
  • parameter 2 tanggal_lahir diambil dari field tanggal_lahir pada table karyawan
  • parameter 3 getdate() adalah untuk mengambil data tanggal saat ini dari sistem komputer
  • as umur_saat_ini adalah untuk menampilkan tulisan umur_saat_ini pada judul kolom umur.
Jadi datediff(yy,tanggal_lahir,getdate()) adalah untuk menghitung waktu antara saat ini dengan tanggal lahir karyawan ke dalam satuan tahun.