Transact-SQL, (disingkat T-SQL): adalah varian dari bahasa basis data sql yang dikeluarkan oleh perusahaan microsoft dan sybase. Microsoft sql server hanya mengenali bahasa sql tipe t-sql ini. Oleh karena itu jika kita ingin menggunakan microsoft sql server, maka kita harus memahami bahasa ini.
Secara umum t-sql tidak berbeda jauh dengan sql standard. Hal ini karena t-sql sebenarnya adalah bahasa sql standar yang diberi tambahan perintah-perintah khusus untuk membantu kerja dalam sql server. Perintah select, from, dan where yang telah kita singgung di awal (label ini), tetap menjadi perintah utama di t-sql.
Untuk membuat perintah-perintah t-sql ini, sql server mempunyai jendela query yang dapat kita buka dengan cara: klik pada tombol new query di bawah menu bar (lihat gambar 12.19). Sebelumnya, pilih terlebih dahulu basis data yang ingin kita gunakan dengan cara: klik pada nama basis data di object explorer. Setelah jendela query terbuka, kita dapat mulai mengetikkan perintah-perintah sql.
Definisi tabel dengan t-sql
Hampir semua aktivitas di dalam SQL Server dapat dilakukan dengan menggunakan perintah-perintah t-sql, atau termasuk membuat tabel. Sebelumya kita telah membuat tabel-tabel dengan menggunakan fasilitas gui. Kita juga bisa membuat tabel-tabel tersebut dengan perintah-perintah sql. Perintah-perintah yang berhubungan dengan definisi tabel termasuk dalam kategori ddl. Perintah untuk pendefinisian atau pembuatan tabel baru adalah create table. Sedangkan untuk menghapus kita menggunakan perintah drop table.Buatlah basis data baru dengan nama Lat-01_SQL. Kemudian, pilih basis data tersebut. Buka jendela query seperti pada gambar 12.18. Kita akan membuat tabel-tabel yang sama seperti pada Lat-01, tetapi dengan perintah sql. Tabel pertama yang kita buat adalah tabel siswa. Ketikkan perintah berikut ini, kemudian jalankan dengan klik tanda seru (!).
CREATE TABLE [dbo].[Bidang](
[IdBidang] [smallint] NOT NULL,
[NamaBidang] [nchar](20)NULL,
[Deskripsi] [nchar](100)NULL,
CONSTRAINT [PK_Bidang] PRIMARY KEY CLUSTERED
(
[IdBidang] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Perintah CREATE TABLE diikuti dengan nama tabel yang akan kita buat ([dbo].[Bidang]) kemudian diikuti dengan daftar kolom yang ada pada tabel tersebut. Pada daftar kolom ini, tipe data, lebar data, dan kondisi lainnya (misalnya NOT NULL atau NULL) harus dicantumkan. Setelah itu baru bagian CONSTRAINT dari tabel tersebut dituliskan. Bagian CONSTRAINT ini biasanya berisi pendefinisian Primary Key dari tabel tersebut.
Perhatikan cara penulisan perintah-perintah di atas.
Setelah kita jalankan, periksalah pada bagian node tables apakah tabel kita sudah terbentuk atau belum. Klik kanan pada Tables basis data kita di object explorer, kemudian pilih refresh. Tabel baru yang kita buat akan muncul di bawah object tables. Buatlah tabel-tabel lainnya dengan cara yang sama. Berikut ini perintah-perintah pembuatan masing-masing tabel.
Tabel program
CREATE TABLE [dbo].[Program](
[IdProgram] [smallint] NOT NULL,
[NamaProgram] [nchar](20) NULL,
[Deskripsi] [nchar](100) NULL,
CONSTRAINT [PK_Program] PRIMARY KEY CLUSTERED
(
[IdProgram] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Tabel guru
CREATE TABLE [dbo].[Guru](
[NIP] [nchar](15) NOT NULL,
[Nama] [nchar](20) NULL,
[Alamat] [nchar](30) NULL,
[Kota] [nchar](20) NULL,
[Telepon] [nchar](15) NULL,
CONSTRAINT [PK_Guru] PRIMARY KEY CLUSTERED
(
[NIP] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Tabel siswa
CREATE TABLE [dbo].[Siswa](
[NoInduk] [nchar](10) NOT NULL,
[Nama] [nchar](20) NULL,
[Alamat] [nchar](30) NULL,
[Kota] [nchar](20) NULL,
[Telepon] [nchar](15) NULL,
[IdProgram] [smallint] NULL,
CONSTRAINT [PK_Siswa] PRIMARY KEY CLUSTERED
(
[NoInduk] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Tabel guru_program
CREATE TABLE [dbo].[Guru_Program](
[NIP] [nchar](15) NOT NULL,
[IdProgram] [smallint] NOT NULL,
CONSTRAINT [PK_Guru_Program] PRIMARY KEY CLUSTERED
(
[NIP] ASC,
[IdProgram] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Tabel guru_bidang
CREATE TABLE [dbo].[Guru_Bidang](
[IdBidang] [smallint] NOT NULL,
[NIP] [nchar](15) NOT NULL,
CONSTRAINT [PK_Guru_Bidang] PRIMARY KEY CLUSTERED
(
[IdBidang] ASC,
[NIP] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Pada perintah-perintah pembuatan tabel di atas, kita belum membuat relasi antar tabel. Relasi antar tabel pada SQL biasanya dinyatakan dalam hubungan FOREIGN KEY. Kita perlu memodifikasi tabel dengan menambahkan CONSTRAINT agar tabel dapat mengerti relasi antar tabel. Buka kembali jendela Query, kemudian ketikkan perintah-perintah berikut ini.
ALTER TABLE [dbo].[Siswa] WITH CHECK ADD CONSTRAINT
[FK_Siswa_Program] FOREIGN KEY([IdProgram])
REFERENCES [dbo].[Program] ([IdProgram])
ALTER TABLE [dbo].[Guru_Program] WITH CHECK ADD
CONSTRAINT [FK_Guru_Program_Guru] FOREIGN KEY([NIP])
REFERENCES [dbo].[Guru] ([NIP )
ALTER TABLE [dbo].[Guru_Bidang] WITH CHECK ADD CONSTRAINT
[FK_Guru_Bidang_Bidang] FOREIGN KEY([IdBidang])
REFERENCES [dbo].[Bidang] ([IdBidang])
ALTER TABLE [dbo].[Guru_Bidang] WITH CHECK ADD CONSTRAINT
[FK_Guru_Bidang_Guru] FOREIGN KEY([NIP])
REFERENCES [dbo].[Guru] ([NIP])
Perintah untuk memodifikasi atau merubah struktur tabel adalah ALTER TABEL, kemudia diikuti dengan nama tabel yang ingin dirubah. Perhatikan pada baris ALTER TABLE [dbo].[Siswa] WITH CHECK ADD CONSTRAINT [FK_Siswa_Program] FOREIGN KEY([IdProgram]). Tabel yang ingin dimodifikasi adalah dbo.Siswa dan tabel ini berhubungan dengan tabel Program sehingga dituliskan FK_Siswa_Program. Kolom IdProgram pada tabel Siswa merupakan FOREIGN KEY, sehingga dituliskan sebagai FOREIGN KEY([IdProgram]). Kolom IdProgram ini berasal dari tabel program, sehingga pada bagian akhir perintah harus dituliskan referensi tabelnya (ditulis dengan REFERENCES [dbo].[Program] ([IdProgram])). Dengan cara yang sama relasi-relasi antar tabel di atas adalah dibuat.
Perintah DROP TABEL sangat mudah dilakukan, yaitu tinggal menambahkan nama tabel didepan perintah tersebut. Misalnya: DROP TABLE [dbo].[Bidang].
Pengisian, perubahan dan penghapusan isi tabel dengan sql
Setelah semua tabel selesai dibuat, maka kita dapat mengisi data pada masing-masing tabel dengan menggunakan perintah INSERT. Perintah ini termasuk dalam kelompok DML. Kita akan mencoba menggunakan perintah ini pada tabel Bidang. Kita periksa dulu isi tabel Bidang dengan cara klik kanan pada nama tabel, kemudian pilih Open Table. Isi tabel akan muncul pada jendela Summary (gambar 12.20). Tutup kembali jendela Open Table tersebut.Buka jendela Query, kemudian ketikkan perintah berikut:
INSERT INTO [Lat-01].[dbo].[Bidang]
([IdBidang]
,[NamaBidang]
,[Deskripsi])
VALUES
(8, 'Jaringan Wireless', NULL)
Perintah INSERT diikuti dengan nama basis data dan nama tabel ([Lat-01].[dbo].[Bidang]) kemudian, diikuti dengan nama kolom yang ada pada tabel tersebut. Kata kunci VALUES digunakan untuk memberi petunjuk bahwa pada bagian setelah kata kunci ini adalah data yang akan dimasukkan. Perhatikan, karena ada 3 kolom di tabel Bidang, maka kita juga memasukkan 3 buah data. Data pertama (8) harus terisi karena pada definisi tabel Bidang, dan kolom IdBidang dinyatakan NOT NULL. Data ketiga yaitu untuk kolom deskripsi kita isi NULL karena kita ingin mengosongkan isi kolom ini.
Jalankan perintah di atas. Kemudian klik kanan pada tabel Bidang, lalu pilih Refresh. Selanjutnya klik kanan lagi pada tabel Bidang, dan pilih Open Table. Data yang kita masukkan sudah berada pada tabel Bidang (gambar 12.21).
Kalau kita perhatikan, perintah INSERT di atas terlalu panjang. Coba hapus bagian daftar nama kolom pada perintah tersebut. Kemudian ganti data di bawah VALUES menjadi (9, 'Digital Animation', NULL). Kemudian, jalankan dan periksalah hasilnya. Apa yang terjadi? Setelah Refresh, kita akan menjumpai bahwa: data kita juga dapat dimasukkan tanpa harus menyebut daftar nama kolom pada perintah INSERT.
Sering-kali dalam pengisian data pada suatu tabel, kita melakukan kesalahan. Kesalahan dapat berupa kesalahan ketik atau kesalahan pembacaan data. Sehingga ketika diperiksa, kita menginginkan untuk merubah/memperbaiki data tersebut. Proses ini biasa disebut sebagai update data. Sql menyediakan perintah UPDATE untuk melakukan proses ini. Perintah ini masih termasuk dalam kelompok DML.
Misalnya kita ingin merubah isi kolom 'NamaBidang pada IdBidang' yang ke-5 (lihat gambar 12.21). Dari 'fotografi', kita rubah menjadi 'fotografi digital' maka, kita ketikkan perintah seperti berikut.
UPDATE [Lat-01].[dbo].[Bidang]
SET [NamaBidang] = 'Fotografi Digital'
WHERE [IdBidang] = 5
Periksa kembali isi tabel bidang. Jangan lupa, untuk me-refresh dulu tabel bidang sebelum perintah open table dijalankan.
Penghapusan data dengan sql dilakukan dengan perintah DELETE. Perlu diperhatikan, bahwa: perintah delete akan menghapus isi seluruh baris. Kalau kita hanya ingin mengosongkan isi satu bagian dari baris (atau satu sel) saja, gunakan perintah UPDATE. Misalnya kita ingin kita menghapus baris yang id-Bidangnya sama dengan 8, maka kita ketikkan dengan perintah seperti berikut.
DELETE FROM [Lat-01].[dbo].[Bidang]
WHERE [IdBidang] = 8
Mencari dan menampilkan data dengan sql
Perintah utama dalam SQL adalah SELECT, FROM, dan WHERE. Sebagian besar aktivitas kita menggunakan SQL berhubungan dengan perintah-perintah ini. Untuk menggunakan perintah-perintah ini, buka jendela Query kemudian ketikkan perintah yang kita inginkan. Jalankan dengan menekan tombol tanda seru (!).Perintah SELECT digunakan untuk memilih kolom mana saja yang akan ditampilkan. Jika kita ingin menampilkan semua kolom, kita cukup menggunakan tanda *.
Perintah FROM digunakan untuk menentukan asal kolom yang ingin kita tampilkan datanya.
Perintah WHERE digunakan untuk membatasi baris-baris yang akan kita tampilkan agar sesuai dengan kriteria yang kita inginkan. WHERE bisa dari tabel atau hasil dari View yang lain. Perhatikan contoh-contoh penggunaan SQL berikut ini.
Contoh 12.4. Menampilkan semua data pada tabel Bidang
Contoh ini kita membutuhkan tabel Bidang. Sedangkan kolom yang kita ingin tampilkan adalah semua kolom. Kita dapat menggunakan tanda * atau mendaftar semua kolom yang ada pada tabel Bidang. Berikut adalah perintah SQL dan hasil eksekusinya.
Jika kita ingin menyimpan dalam bentuk View perintah di atas, tambahkan sebelum pernyataan SELECT perintah CREATE VIEW
Contoh 12.5. Menampilkan data nama dan alamat siswa
Pada contoh ini kita membutuhkan tabel Siswa. Sedangkan kolom yang kita inginkan adalah kolom nama, alamat, dan kota. Kita tidak bisa menggunakan tanda *, tetapi harus mendaftarkan nama kolom nama dan alamat setelah perintah SELECT. Perhatikan perintah SQL dan outpunya berikut ini.
Contoh 12.6. Menampilkan data nama siswa yang rumahnya di Batu
Pada contoh ini kita membutuhkan pernyataan WHERE untuk membatasi baris yang ingin kita tampilkan. Tabel yang dipakai adalah tabel Siswa dan kolom yang ingin ditampilkan adalah kolom Nama. Kalau kita perhatikan hasil eksekusi contoh 12.2 di atas, yang alamat rumahnya di Batu ada dua orang yaitu: Pepe Ricard dan Bubi Red. Pernyataan WHERE diikuti dengan kondisi yang harus dipenuhi. Pada kasus ini adalah Kota='Batu'. Berikut ini perintah SQL secara lengkap dan outputnya. Perhatikan cara penulisannya.
Contoh 12.7. Menampilkan data nama, alamat, dan kota dari guru yang rumahnya tidak di Malang
Pada bagian ini kita juga menggunakan perintah WHERE untuk membatasi data yang ingin kita tampilkan. Tabel yang kita gunakan adalah tabel guru dan kolom yang kita butuhkan adalah kolom nama, alamat, dan kota. Pernyataan yang rumahnya tidak di Malang merupakan kondisi yang harus dipenuhi. Sehingga secara lengkap pernyataan akan tampak seperti berikut.
Contoh 12.8. Menampilkan data nama siswa dan program keahlian yang diikuti
Pada contoh ini kita melibatkan dua buah tabel yang saling berhubungan yaitu tabel Siswa dan tabel Program. Yang kita ingin tampilkan adalah kolom Nama pada tabel Siswa dan kolom NamaProgram pada tabel Program. Untuk kasus seperti ini pada perintah SELECT pemanggilan nama kolom harus didahului dengan nama tabelnya. Sedangkan pada FROM, kita menggunakan perintah INNER JOIN untuk menggabung dua tabel. Perlu kita cermati, pada tabel Siswa terdapat Foreign Key, yaitu: IdProgram yang merupakan Primary Key pada tabel Program. IdProgram ini merupakan penghubung yang dapat kita gunakan untuk menggabung dua tabel. Perhatikan, pernyataan SQL berikut ini dan cermati outputnya.
Contoh 12.9. Menampilkan data nama siswa yang mengikuti program keahlian rpl
Contoh ini merupakan kelanjutan dari contoh 12.4. Kita menambahkan pernyataan WHERE untuk menampilkan nama yang ikut program keahlian rpl. Selain itu, kita hanya ingin menampilkan kolom Nama dari tabel Siswa. Perhatikan, pernyataan SQL berikut dan hasil eksekusinya.
Contoh 12.10. Menampilkan data nama guru dan bidang keahliannya
Contoh ini lebih kompleks dari contoh-contoh di atas. Kita melibatkan tiga buah tabel, yaitu: tabel Guru, tabel Guru_Bidang, dan tabel Bidang. Perhatikan relasi antar tabel tersebut pada gambar 12.11. Ada dua INNER JOIN yang kita gunakan, yaitu: INNER JOIN tabel Guru dengan tabel Guru_Bidang dan INNER JOIN Guru_Bidang dengan tabel Bidang. Perhatikan bagaimana membuat pernyataan INNER JOIN.
Contoh 12.11. Menampilkan data nama guru yang bidang keahliannya Pemrograman Web atau Basis Data
Contoh ini merupakan pengembangan dari contoh 12.10. Kita ingin menampilkan guru yang bidang keahliannya Pemrograman Web atau Basis Data. Kita perlu menambahkan perintah WHERE untuk membatasi baris. Pada WHERE, kita juga perlu operator OR. Perhatikan perintah SQL dan hasil eksekusinya berikut ini.
Bandingkan dengan hasil eksekusi contoh 12.10. Cobalah ganti OR dengan AND dan jalankan kembali perintah SQL tersebut. Bagaimanakah hasilnya?
Contoh-contoh di atas dapat dikembangkan lagi dengan banyak variasi. Dengan banyak mencoba dan berlatih maka kita akan dapat memahami dengan baik dalam penggunaan perintah-perintah SQL.
0 komentar :
Posting Komentar
Terima kasih, atas saran atau usulan anda.