Pelajaran 1: Membuat dan mengkueri objek database

Berlaku untuk: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAnalytics 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 Transact-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.

Jika Anda tidak memiliki instans SQL Server, buat instans tersebut. Untuk membuatnya, pilih platform Anda dari tautan berikut. Jika Anda memilih Autentikasi SQL, gunakan info masuk SQL Server Anda.

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.

  1. Di jendela Editor Kueri, ketik tetapi jangan jalankan kode berikut:

    CREATE DATABASE TestData
    GO
    
  2. Gunakan penunjuk untuk memilih kata CREATE DATABASE, lalu tekan F1. Artikel CREATE DATABASE harus terbuka. Anda dapat menggunakan teknik ini untuk menemukan sintaks lengkap untuk CREATE DATABASE dan untuk pernyataan lain yang digunakan dalam tutorial ini.

  3. 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 seharusnya hanya 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.

Membuat tabel

Berlaku untuk: SQL Server Azure SQL DatabaseAzure Synapse Analytics AnalyticsPlatform 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 tidak peka huruf besar/kecil, dua 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, , ProductNamePrice, dan ProductDescription. Kolom ProductID adalah kunci utama tabel. int, varchar(25), money, dan varchar(max) adalah 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 Kurung siku 3 mm 0.52

Sintaks dasarnya adalah: INSERT, nama tabel, daftar kolom, VALUES, 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 sintaksis yang diizinkan.

Menyisipkan data ke dalam tabel

  1. 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.

  2. Pernyataan berikut menunjukkan bagaimana Anda dapat mengubah urutan di mana parameter disediakan dengan mengalihkan penempatan ProductID dan ProductName 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
    
  3. 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 untuk Price 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
    
  4. 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 dan nilai kolom 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

  1. 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
    
  2. 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, meskipun kolom baru ditambahkan ke tabel nanti.

    -- Returns all columns in the table
    -- Does not use the optional schema, dbo
    SELECT * FROM Products
    GO
    
  3. 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
    
  4. 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
    
  5. 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 menggunakan AS 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 lebih murah 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_Namesprosedur tersimpan , menerima parameter input bernama @VarPrice jenis moneydata . 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 Anda cara mengonfigurasi izin pada objek database. Objek yang dibuat dalam pelajaran 1 juga akan digunakan dalam pelajaran 2.

Buka artikel berikutnya untuk mempelajari selengkapnya: