Kamis, 15 Desember 2011

Tutorial Syntax SQL

Tutor sintaks2 SQL

-----------------------------------------------------------------------------------

cara masuk ke SQL di lab
start - Programs - Programming - Microsoft - Microsoft SQL Server - Query Analyzer

atau dijalankan di run ketik

isqlw

setelah itu masukkan
SQL Server 10.30.64.20
Login Name NIM
Password ddmmyy(tanggal lahir)

-----------------------------------------------------------------------------------

--membuat table
/*
create table [nama_table]
(
[column 1] [data_type_for_column_1],
[column 2] [data_type_for_column_2],
...
)
*/
create table tes
(
angka int,
nama varchar(30)
)


--mengisi record
--insert into [nama_table] ([column1],column2],...) values ([values1],values2],...)
insert into tes values(1,'alvin tanjaya')
insert into tes values(2,'rakhmat suryahadi')
insert into tes values(3,'william salim')
insert into tes values(4,null)
insert into tes values(5,'HARRY DWI SAPUTRA')


--menampilkan semua data dari dalam table
--select [column_name] from [table_name]
select * from tes


--menghapus table
--drop table [table_name]
drop table tes


/*
Jalankan secara urut dari create table,insert 5-5 nya lalu select maka akan tampil table :
angka nama
1 alvin tanjaya
2 rakhmat suryahadi
3 william salim
4 NULL
5 HARRY DWI SAPUTRA
*/

-----------------------------------------------------------------------------------
--1. isnull : menggantikan nilai data yang berisi null
/*ex :
dari table di atas record ke 4 dari field nama berisi NULL
waktu ditampilkan ingin diganti menjadi 'data kosong' maka menggunakan sintaks*/

-- isnull(table ato field apa yg mo diganti,'mau diganti jd apa')
select angka,isnull(nama,'data kosong') as nama from tes


--2. left : mengambil beberapa character dari kiri
/* ex :
kita ingin menampilkan nama dari field name hanya 3 huruf dari kiri maka menggunakan sintaks*/

-- left(string nya apa,berapa banyak char akan diambil)
select left(nama,3) as '3 huruf nama dari kiri' from tes


--3. right : mengambil beberapa character dari kanan
/* ex :
kita ingin menampilkan nama dari field name hanya 2 huruf dari kanan maka menggunakan sintaks*/

-- right(string nya apa,berapa banyak char akan diambil)
select right(nama,2) as '2 huruf nama dari kanan' from tes


--4. replace : menggantikan string dalam bentuk tertentu
/* ex :
kita ingin mengganti semua huruf a menjadi i maka menggunakan sintaks*/

-- replace (string nya apa,'string yg mau di cari','digantikan menjadi apa')
select replace(nama,'a','i') as 'mengganti a menjadi i' from tes


--5. reverse : membalikkan string
/* ex :
kita ingin membalikkan namanya,jadi yg tampil huruf belakang dl sampai ke depan maka menggunakan sintaks*/

-- reverse(string nya apa)
select reverse(nama) as 'nama dibalik' from tes


--6. upper : membuat string menjadi huruf kapital semua
/* ex :
kita ingin membuat namanya menjadi huruf kapital semua maka menggunakan sintaks*/

-- upper(string nya apa)
select upper(nama) as 'NAMA KAPITAL' from tes


--7. lower : membuat string menjadi huruf kecil semua
/* ex :
kita ingin membuat namanya menjadi huruf kecil semua maka menggunakan sintaks*/

-- lower(string nya apa)
select lower(nama) as 'nama kecil' from tes


--8. len : menghitung panjang suatu string
/* ex :
kita ingin menampilkan kolom yg bersi panjang nama maka menggunakan sintaks*/

-- len(string nya apa)
select len(nama) as 'panjang nama' from tes


--9. charindex : cari posisi suatu string di sebuah string
/* ex :
kita ingin mencari huruf 'a' di field nama index ke berapa
index suatu string d SQL dimulai dari angka 1
jika string yg dicari tidak ditemukan maka mengembalikan 0
sintaks yg digunakan*/

-- charindex('string yg dicari','kita mencari di string mana',cari mulai dari indeks ke berapa)
-- parameter ketiga optional,jika ga diisi maka mulai dari index ke 1
select charindex('a',nama) as 'index a pertama' from tes
--jika ingin mencari index a kedua
select charindex('a',nama,charindex('a',nama)+1)as 'index a kedua' from tes


--10. substring : mengambil string dari posisi tertentu
/* ex :
kita ingin mengambil nama hanya mulai dari kata ke 3 sebanyak 5 huruf maka menggunakan sintaks*/

-- substring(string nya apa,mulai dari index ke berapa,sebanyak berapa char)
select substring(nama,3,5) as 'nama dari index ke 3 sebanyak 5 huruf' from tes

--jika hanya ingin mengambil kata ke 2
select substring(nama,charindex(' ',nama)+1,len(nama)-charindex(' ',nama)) as 'kata ke 2 dari nama' from tes


--11. day : mengembalikan tanggal
/* ex :
dari tanggal 15 mei 2008 kita ingin ambil tanggalnya saja maka menggunakan sintaks*/

-- day(tanggalnya brapa)
select day('5/15/2008') as tanggal


--12. month : mengembalikan bulan
/* ex :
dari tanggal 15 mei 2008 kita ingin ambil bulannya saja maka menggunakan sintaks*/

-- month(tanggalnya brapa)
select month('5/15/2008') as bulan


--13. year : mengembalikan tahun
/* ex :
dari tanggal 15 mei 2008 kita ingin ambil tahunnya saja maka menggunakan sintaks*/

-- year(tanggalnya brapa)
select year('5/15/2008') as tahun


--14. getdate : balikin tanggal sekarang
/* ex :
kita ingi tahu sekarang tanggal berapa maka menggunakan sintaks*/

select getdate() as 'tanggal sekarang'


--15. datepart : dapetin tanggal, bulan, tahun dsb dari suatu tanggal (string)
/* ex :
kita ingin mengambil informasi dari suatu tanggal maka menggunakan sintaks*/

-- datepart(yg mau diambil apanya,tanggalnya)
-- ingin mengembalikan tahun sekarang
select datepart(yy,getdate()) as tahun
--or
select datepart(year,getdate()) as tahun
-- ingin mengembalikan bulan sekarang
select datepart(mm,getdate()) as bulan
--or
select datepart(month,getdate()) as bulan
--ingin mengembalikan tanggal sekarang
select datepart(dd,getdate()) as tanggal
--or
select datepart(day,getdate()) as tanggal
--ingin mengembalikan hari sekarang
select datepart(dw,getdate()) as hari
--or
select datepart(weekday,getdate()) as hari
--lainnya dapat dilihat di help


--16. datename : dapetin tanggal, bulan, tahun dsb dari suatu tanggal (string)
/* ex :
kita ingin mengambil informasi dari suatu tanggal maka menggunakan sintaks*/

-- datepart(yg mau diambil apanya,tanggalnya)
-- ingin mengembalikan tahun sekarang
select datename(yy,getdate()) as tahun
--or
select datename(year,getdate()) as tahun
-- ingin mengembalikan bulan sekarang
select datename(mm,getdate()) as bulan
--or
select datename(month,getdate()) as bulan
--ingin mengembalikan tanggal sekarang
select datename(dd,getdate()) as tanggal
--or
select datename(day,getdate()) as tanggal
--ingin mengembalikan hari sekarang
select datename(dw,getdate()) as hari
--or
select datename(weekday,getdate()) as hari
--lainnya dapat dilihat di help


--17. datediff : menghitung selisih waktu antara 2 tanggal
/* ex :
kita ingin tahu beda antara tanggal 3 maret 2008 dan 14 april 2008 berapa hari maka menggunakan sintaks*/

-- datediff(menghitung berdasarkan satuan waktu apa,tanggal mulai,tanggal berakhir)
select datediff(day,'3/3/2008','4/14/2008') as 'selisih tanggal'
--misalkan ingin tahu selisih bulan dan tanggal 14 april diisi di parameter kedua
select datediff(month,'4/14/2008','3/3/2008') as 'selisih tanggal'


--18. dateadd : menambahkan interval pada suatu tanggal
/* ex :
kita ingin tahu besok lusa tanggal berapa maka menggunakan sintaks*/

-- dateadd(menghitung berdasarkan satuan waktu apa,berapa banyak yg mau ditambahkan,tanggal yang mau ditambahkan)
select dateadd(day,2,getdate()) as 'tanggal lusa'
--jika ingin menghitung tanggal 3 minggu yg lalu
select dateadd(week,-2,getdate()) as 'tanggal 3 minggu lalu'


--19. cast : mengubah suatu tipe data menjadi tipe data lain
/* ex :
misalkan di table angka mau kita tambahkan 'no.' maka kita harus ubah dulu tipe datanya menjadi charnya
maka menggunakan sintaks*/

-- cast( [yg mo di ubah apa] as [tipe datanya jd apa])
select 'no. ' + cast(angka as varchar) as Nomer from tes


--20. convert : jika parameter ketiga tidak diisi fungsinya sama seperti cast,jika parameter ketiga diisi lebih maka gunanya untuk konversi tanggal
/* ex :
misalkan di table angka mau kita tambahkan 'no.' maka kita harus ubah dulu tipe datanya menjadi charnya
maka menggunakan sintaks*/
-- convert(tipe datanya jd apa,yg mau dibuah apa)
select 'no. ' + convert(varchar,angka) as Nomer from tes
--jika ingin mengubah format tanggal sekarang menjadi dd mm yy maka menggunakan sintaks
-- convert (biasanya digunakan varchar,tanggalnya,tipenya)
select convert(varchar,getdate(),106) as tanggal
--untuk keterangan tipe dapat dilihat di help


--21. top : balikin sejumlah baris awal
/* ex :
kita hanya ingin menampilkan 3 baris teratas dari table tes maka menggunakan sintaks*/

select top 3 * from tes


--22. like : keyword untuk pencarian pola
/* ex :
kita mau mencari nama yg mengandung huruf 'y' maka menggunakan sintaks*/

select nama from tes where nama like '%y%'

/*
jika kita menggunakan operator '=' maka yg ketika kita tulis where nama ='%y%'
dia tidak mencari yg berformat '%y%' melainkan benar2 mencari string yg bertuliskan '%y%'
% mewakili banyak character
_ mewakili 1 character
maka jika ingin mencari huruf ke 2nya adalah a*/
select nama from tes
where nama like '_a%'


--23. distinct : keyword agar hasilnya tidak berulang jika ada record yg isinya sama persis

/* ex :
misalakan kita tambahkan insert yg terakhir lagi pada table tes maka data terakhir akan ada sebanyak 2*/

insert into tes values(5,'HARRY DWI SAPUTRA')

--jika dicetak tanpa distinct

select * from tes

/*maka hasilnya
angka nama
1 alvin tanjaya
2 rakhmat suryahadi
3 william salim
4 NULL
5 HARRY DWI SAPUTRA
5 HARRY DWI SAPUTRA
*/

--jika menggunakan distinct
select distinct * from tes
/*maka hasilnya

angka nama
1 alvin tanjaya
2 rakhmat suryahadi
3 william salim
4 NULL
5 HARRY DWI SAPUTRA
*/

4 komentar:

Toko Ditro mengatakan...

waaaah, tq yaaaaa..... buat syntax nyaa... bingung cari penjelasannya, eh ketemu disini.. tq, SALAM SUKSES!

devitanur mengatakan...

sama2. ^^ salam sukses juga

Unknown mengatakan...

misi master mau tanya
kalau mau ambil kata kedua saja gimana,aku coba d atas kok muncul kata kedua sampai kata terakhir

select substring(nam,charindex(' ',nam)+1,len(nam)-charindex(' ',nam)) as 'kata ke 2 dari nama' ,nam
from test_nama

Anwar mengatakan...

Posting yang sederhana tapi sangat berguna