Pelajaran 1: Membuat dan mengkueri objek database
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Analytics Platform System (PDW)
Catatan
Jalur pembelajaran Memulai Kueri dengan Transact-SQL menyediakan konten yang lebih mendalam, bersama dengan contoh praktis.
Pelajaran ini memperlihatkan kepada Anda cara membuat database, membuat tabel dalam database, lalu mengakses dan mengubah data dalam tabel. Karena pelajaran ini adalah pengantar untuk menggunakan Transact-SQL, pelajaran ini tidak menggunakan atau menjelaskan banyak opsi yang tersedia untuk pernyataan ini.
Pernyataan T-SQL dapat ditulis dan dikirimkan ke Mesin Database dengan cara berikut:
Dengan menggunakan SQL Server Management Studio. Tutorial ini mengasumsikan bahwa Anda menggunakan Management Studio, tetapi Anda juga dapat menggunakan Management Studio Express, yang tersedia sebagai unduhan gratis dari Pusat Unduhan Microsoft.
Dengan menggunakan utilitas sqlcmd.
Dengan menyambungkan dari aplikasi yang Anda buat.
Kode dijalankan pada Mesin Database dengan cara yang sama dan dengan izin yang sama, terlepas dari bagaimana Anda mengirimkan pernyataan kode.
Untuk menjalankan pernyataan Transact-SQL di Management Studio, buka Management Studio dan sambungkan ke instans Mesin Database SQL Server.
Prasyarat
Untuk menyelesaikan tutorial ini, Anda memerlukan SQL Server Management Studio dan akses ke instans SQL Server.
- Instal SQL Server Management Studio.
Jika Anda tidak memiliki instans SQL Server, buat instans tersebut. Untuk membuatnya, pilih platform Anda dari tautan berikut. Jika Anda memilih Autentikasi SQL, gunakan kredensial masuk SQL Server Anda.
- Windows: Unduh SQL Server 2022 Developer Edition.
- Linux: Unduh SQL Server 2022 dalam kontainer.
Membuat database
Seperti banyak pernyataan Transact-SQL, pernyataan CREATE DATABASE memiliki parameter yang diperlukan: nama database. CREATE DATABASE
juga memiliki banyak parameter opsional, seperti lokasi disk tempat Anda ingin meletakkan file database. Saat Anda menjalankan CREATE DATABASE
tanpa parameter opsional, SQL Server menggunakan nilai default untuk banyak parameter ini.
Di jendela Editor Kueri, ketik tetapi jangan jalankan kode berikut:
CREATE DATABASE TestData GO
Gunakan penunjuk untuk memilih kata
CREATE DATABASE
, lalu tekan F1. ArtikelCREATE DATABASE
harus terbuka. Anda dapat menggunakan teknik ini untuk menemukan sintaks lengkap untukCREATE DATABASE
dan untuk pernyataan lain yang digunakan dalam tutorial ini.Di Editor Kueri, tekan F5 untuk menjalankan pernyataan dan membuat database bernama
TestData
.
Saat Anda membuat database, SQL Server membuat salinan model
database, dan mengganti nama salinan menjadi nama database. Operasi ini hanya boleh memakan waktu beberapa detik, kecuali Anda menentukan ukuran awal database yang besar sebagai parameter opsional.
Catatan
Kata kunci GO memisahkan pernyataan ketika lebih dari satu pernyataan dikirimkan dalam satu batch. GO bersifat opsional ketika batch hanya berisi satu pernyataan.
Buat tabel
Berlaku untuk: SQL ServerAzure SQL DatabaseAzure Synapse Analytics Analytics Platform System (PDW)
Untuk membuat tabel, Anda harus memberikan nama untuk tabel, serta nama dan jenis data setiap kolom dalam tabel. Ini juga merupakan praktik yang baik untuk menunjukkan apakah nilai null diizinkan di setiap kolom. Untuk membuat tabel, Anda harus memiliki CREATE TABLE
izin, dan ALTER SCHEMA
izin pada skema yang akan berisi tabel. Peran database tetap db_ddladmin memiliki izin ini.
Sebagian besar tabel memiliki kunci primer, terdiri dari satu atau beberapa kolom tabel. Kunci primer selalu unik. Mesin Database memberlakukan pembatasan bahwa nilai kunci utama apa pun tidak dapat diulang dalam tabel.
Untuk daftar jenis data dan tautan untuk deskripsi masing-masing, lihat Jenis Data (Transact-SQL).
Catatan
Mesin Database dapat diinstal sebagai peka huruf besar/kecil atau tidak peka huruf besar/kecil. Jika Mesin Database diinstal sebagai peka huruf besar/kecil, nama objek harus selalu memiliki kasus yang sama. Misalnya, tabel bernama OrderData adalah tabel yang berbeda dari tabel bernama ORDERDATA. Jika Mesin Database diinstal sebagai non-peka huruf besar/kecil, kedua nama tabel tersebut dianggap sebagai tabel yang sama, dan nama tersebut hanya dapat digunakan satu kali.
Mengalihkan koneksi Editor Kueri ke database TestData
Di jendela Editor Kueri, ketik dan jalankan kode berikut untuk mengubah koneksi Anda ke TestData
database.
USE TestData
GO
Membuat tabel
Di jendela Editor Kueri, ketik dan jalankan kode berikut untuk membuat tabel bernama Products
. Kolom dalam tabel diberi nama ProductID
, , ProductName
, Price
dan ProductDescription
. Kolom ProductID
adalah kunci utama tabel. int
, , varchar(25)
money
, dan varchar(max)
semua jenis data. Price
Hanya kolom dan ProductionDescription
yang tidak dapat memiliki data saat baris disisipkan atau diubah. Pernyataan ini berisi elemen opsional (dbo.
) yang disebut skema. Skema adalah objek database yang memiliki tabel. Jika Anda adalah administrator, dbo
adalah skema default. dbo
singkatan dari pemilik database.
CREATE TABLE dbo.Products
(ProductID int PRIMARY KEY NOT NULL,
ProductName varchar(25) NOT NULL,
Price money NULL,
ProductDescription varchar(max) NULL)
GO
Menyisipkan dan memperbarui data dalam tabel
Sekarang setelah Anda membuat Products
tabel, Anda siap untuk menyisipkan data ke dalam tabel dengan menggunakan pernyataan INSERT. Setelah data disisipkan, Anda akan mengubah konten baris dengan menggunakan pernyataan UPDATE. Anda menggunakan klausa WHERE dari pernyataan UPDATE untuk membatasi pembaruan ke satu baris. Empat pernyataan tersebut memasukkan data berikut.
ProductID | ProductName | Harga | Deskripsi Produk |
---|---|---|---|
1 | Clamp | 12.48 | Klem workbench |
50 | Obeng | 3.17 | Kepala datar |
75 | Bilah Ban | Alat untuk mengganti ban. | |
3000 | Braket 3 mm | 0.52 |
Sintaks dasarnya adalah: INSERT, nama tabel, daftar kolom, NILAI, lalu daftar nilai yang akan disisipkan. Dua tanda hubung di depan garis menunjukkan bahwa baris adalah komentar dan teks diabaikan oleh pengkompilasi. Dalam hal ini, komentar menjelaskan variasi sintaks yang diizinkan.
Menyisipkan data ke dalam tabel
Jalankan pernyataan berikut untuk menyisipkan baris ke
Products
dalam tabel yang dibuat di tugas sebelumnya.-- Standard syntax INSERT dbo.Products (ProductID, ProductName, Price, ProductDescription) VALUES (1, 'Clamp', 12.48, 'Workbench clamp') GO
Jika penyisipan berhasil, lanjutkan ke langkah berikutnya.
Jika penyisipan gagal, mungkin karena
Product
tabel sudah memiliki baris dengan ID produk di dalamnya. Untuk melanjutkan, hapus semua baris dalam tabel dan ulangi langkah sebelumnya. TRUNCATE TABLE menghapus semua baris dalam tabel.Jalankan perintah berikut untuk menghapus semua baris dalam tabel:
TRUNCATE TABLE TestData.dbo.Products; GO
Setelah Anda memotong tabel, ulangi
INSERT
perintah dalam langkah ini.Pernyataan berikut menunjukkan bagaimana Anda dapat mengubah urutan di mana parameter disediakan dengan mengalihkan penempatan
ProductID
danProductName
di daftar bidang (dalam tanda kurung) dan dalam daftar nilai.-- Changing the order of the columns INSERT dbo.Products (ProductName, ProductID, Price, ProductDescription) VALUES ('Screwdriver', 50, 3.17, 'Flat head') GO
Pernyataan berikut menunjukkan bahwa nama kolom bersifat opsional, selama nilai tercantum dalam urutan yang benar. Sintaks ini umum tetapi tidak disarankan karena mungkin lebih sulit bagi orang lain untuk memahami kode Anda.
NULL
ditentukan untukPrice
kolom karena harga untuk produk ini belum diketahui.-- Skipping the column list, but keeping the values in order INSERT dbo.Products VALUES (75, 'Tire Bar', NULL, 'Tool for changing tires.') GO
Nama skema bersifat opsional selama Anda mengakses dan mengubah tabel dalam skema default Anda.
ProductDescription
Karena kolom memungkinkan nilai null dan tidak ada nilai yang disediakan,ProductDescription
nama kolom dan nilai dapat dihilangkan dari pernyataan sepenuhnya.-- Dropping the optional dbo and dropping the ProductDescription column INSERT Products (ProductID, ProductName, Price) VALUES (3000, '3 mm Bracket', 0.52) GO
Memperbarui tabel produk
Ketik dan jalankan pernyataan berikut UPDATE
untuk mengubah ProductName
produk kedua dari Screwdriver
, menjadi Flat Head Screwdriver
.
UPDATE dbo.Products
SET ProductName = 'Flat Head Screwdriver'
WHERE ProductID = 50
GO
Membaca data dari tabel
Gunakan pernyataan SELECT untuk membaca data dalam tabel. Pernyataan SELECT adalah salah satu pernyataan Transact-SQL yang paling penting, dan ada banyak variasi dalam sintaks. Untuk tutorial ini, Anda akan bekerja dengan lima versi dasar.
Membaca data dalam tabel
Ketik dan jalankan pernyataan berikut untuk membaca data dalam
Products
tabel.-- The basic syntax for reading data from a single table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products GO
Anda bisa menggunakan tanda bintang (
*
) untuk memilih semua kolom dalam tabel. Tanda bintang adalah untuk kueri ad hoc. Dalam kode permanen, berikan daftar kolom sehingga pernyataan mengembalikan kolom yang diprediksi, bahkan jika kolom baru ditambahkan ke tabel nanti.-- Returns all columns in the table -- Does not use the optional schema, dbo SELECT * FROM Products GO
Anda dapat menghilangkan kolom yang tidak ingin Anda kembalikan. Kolom dikembalikan dalam urutan yang tercantum.
-- Returns only two of the columns from the table SELECT ProductName, Price FROM dbo.Products GO
WHERE
Gunakan klausa untuk membatasi baris yang dikembalikan kepada pengguna.-- Returns only two of the records in the table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products WHERE ProductID < 60 GO
Anda bisa bekerja dengan nilai dalam kolom saat dikembalikan. Contoh berikut melakukan operasi matematika pada
Price
kolom . Kolom yang telah diubah dengan cara ini tidak memiliki nama kecuali Anda menyediakannya dengan menggunakanAS
kata kunci.-- Returns ProductName and the Price including a 7% tax -- Provides the name CustomerPays for the calculated column SELECT ProductName, Price * 1.07 AS CustomerPays FROM dbo.Products GO
Fungsi yang berguna dalam pernyataan SELECT
Untuk informasi tentang beberapa fungsi yang bisa Anda gunakan untuk bekerja dengan data dalam pernyataan SELECT, lihat artikel berikut ini:
Membuat tampilan dan prosedur tersimpan
Tampilan adalah pernyataan SELECT tersimpan, dan prosedur tersimpan adalah satu atau beberapa pernyataan Transact-SQL yang dijalankan sebagai batch.
Tampilan dikueri seperti tabel dan tidak menerima parameter. Prosedur tersimpan lebih kompleks daripada tampilan. Prosedur tersimpan dapat memiliki parameter input dan output dan dapat berisi pernyataan untuk mengontrol alur kode, seperti pernyataan IF dan WHILE. Adalah praktik pemrograman yang baik untuk menggunakan prosedur tersimpan untuk semua tindakan berulang dalam database.
Untuk contoh ini, Anda menggunakan CREATE VIEW untuk membuat tampilan yang hanya memilih dua kolom dalam Products
tabel. Kemudian, Anda menggunakan CREATE PROCEDURE untuk membuat prosedur tersimpan yang menerima parameter harga dan hanya mengembalikan produk yang harganya kurang dari nilai parameter yang ditentukan.
Buat tampilan
Jalankan pernyataan berikut untuk membuat tampilan yang menjalankan pernyataan pilih, dan mengembalikan nama dan harga produk kami kepada pengguna.
CREATE VIEW vw_Names
AS
SELECT ProductName, Price FROM Products;
GO
Menguji tampilan
Tampilan diperlakukan seperti tabel. SELECT
Gunakan pernyataan untuk mengakses tampilan.
SELECT * FROM vw_Names;
GO
Membuat prosedur tersimpan
Pernyataan berikut membuat nama pr_Names
prosedur tersimpan , menerima parameter input bernama @VarPrice
jenis money
data . Prosedur tersimpan mencetak pernyataan Products less than
yang digabungkan dengan parameter input yang diubah dari money
jenis data menjadi varchar(10)
jenis data karakter. Kemudian, prosedur menjalankan SELECT
pernyataan pada tampilan, meneruskan parameter input sebagai bagian WHERE
dari klausa. Ini mengembalikan semua produk yang harganya lebih murah dari nilai parameter input.
CREATE PROCEDURE pr_Names @VarPrice money
AS
BEGIN
-- The print statement returns text to the user
PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10));
-- A second statement starts here
SELECT ProductName, Price FROM vw_Names
WHERE Price < @VarPrice;
END
GO
Menguji prosedur tersimpan
Untuk menguji prosedur tersimpan, ketik dan jalankan pernyataan berikut. Prosedur harus mengembalikan nama kedua produk yang dimasukkan ke dalam Products
tabel di Pelajaran 1 dengan harga kurang dari 10.00
.
EXECUTE pr_Names 10.00;
GO
Langkah berikutnya
Artikel berikutnya mengajarkan cara mengonfigurasi izin pada objek database. Objek yang dibuat dalam pelajaran 1 juga akan digunakan dalam pelajaran 2.
Buka artikel berikutnya untuk mempelajari selengkapnya: