Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Tabel Referensi SQL:Cara Membuat dan Menulis Query Dasar

Artikel ini akan fokus pada penulisan kueri SQL terhadap tabel referensi database dengan struktur yang cukup sederhana untuk dipahami dan diterapkan.

Selain itu, kami akan mengklarifikasi konsep di balik penulisan kueri SQL yang efektif bersama dengan beberapa kiat kehidupan profesional.

Sebelum Membuat Kueri Tabel Database

Karena artikel ini tentang membuat kueri tabel database dengan bantuan skrip SQL, pembaca harus memiliki latar belakang tertentu untuk memahami konsep dan contoh sepenuhnya. Kita perlu memiliki kesan bagaimana mereferensikan sebuah tabel. Juga, peralatan yang diperlukan harus ada:

Anda membutuhkan:

  1. Pengetahuan dasar tentang database relasional dan SQL.
  2. Server database SQL diinstal secara lokal atau jarak jauh.
  3. Alat manajemen basis data seperti SQL Server Management Studio atau dbForge Studio untuk SQL Server.

Anda harus dapat membuat database sampel (dengan bantuan skrip yang disediakan), terhubung ke SQL Server, dan menjalankan database sampel tersebut.

Sebelum kami melanjutkan untuk menjalankan kueri terhadap database kosong, Anda mungkin perlu merujuk ke artikel sebelumnya yang didedikasikan untuk subjek untuk menyegarkan pengetahuan:

Cara Menulis Query SQL Sederhana dari Database Kosong

Menulis Query SQL Dimulai dari Tabel Referensi

Kita perlu menulis kueri SQL terhadap database sampel yang berisi dua tabel. Rencananya adalah untuk melihat data dari salah satu tabel yang dikenal sebagai tabel referensi SQL. Catatan:Tabel referensi dapat berupa tabel apa saja yang tidak memerlukan data dari tabel lain.

Pertama, kita perlu memahami struktur database sampel untuk menanyakannya secara akurat.

Contoh Tabel Referensi Basis Data

Kami menggunakan contoh BookSimple2 database yang terdiri dari dua tabel, BookType dan Buku .

Jenis Buku tabel berisi jenis buku yang akan ditugaskan ke buku. Buku tabel berisi nama, jenis, dan stok (jumlah eksemplar yang tersedia) buku.

Mudah ditebak bahwa kedua tabel dihubungkan melalui kunci. Jenis buku yang disimpan di Buku tabel awalnya didefinisikan di BookType meja. Ini memungkinkan menjaga data tetap konsisten dan andal.

Oleh karena itu, Jenis Buku tabel adalah tabel referensi – tabel ini memberikan referensinya (tipe buku) ke Buku utama tabel.

Perhatikan ilustrasi di bawah ini:

Jika kami tidak menautkan Buku tabel dengan BookType untuk mendapatkan jenis buku, kita harus menentukan jenis yang diperlukan setiap kali buku baru disimpan. Akibatnya, kesalahan akan segera terjadi karena kami menyimpan jenis yang sama berulang kali. Selain itu, kami mungkin akan membuat lebih banyak jenis karena kesalahan ejaan.

Katakanlah jika kita mengabaikan penggunaan tabel referensi dan hanya membuat satu tabel utama, kita dapat menggunakan cara yang berbeda untuk mewakili satu jenis, seperti Desain , Merancang , dan Desain . Ini membingungkan, terutama saat menanyakan dan memahami data.

Anda juga dapat merujuk ke artikel sebelumnya untuk informasi lebih lanjut tentang bagaimana tabel berhubungan satu sama lain dalam SQL:

Pelajari Desain Database dengan SQL Server Management Studio (SSMS) – Bagian 2

Sekarang setelah Anda melihat latar belakang penggunaan tabel referensi dan tabel utama, kita dapat melanjutkan ke contoh.

Cara Membuat Tabel Referensi di SQL

Buka alat pengembangan basis data (bisa berupa SQL Server Management Studio atau dbForge Studio untuk SQL Server) dan sambungkan ke instance server SQL yang diinstal.

Tulis skrip berikut pada database master untuk menyiapkan database sampel BookSimple2 dengan dua tabel:

-- Create sample database BookSimple2
USE MASTER
GO

CREATE DATABASE BookSimple2
GO

USE BookSimple2

-- Creating a reference table BookType
CREATE TABLE dbo.BookType
(
	BookTypeId INT IDENTITY(1,1),
	Name VARCHAR(50)NOT NULL,
	Detail VARCHAR(200)NULL 
	CONSTRAINT PK_BookType_BookTypeId PRIMARY KEY (BookTypeId)
)
GO

-- Populating (adding rows to the) table BookType
SET IDENTITY_INSERT dbo.BookType ON
GO
INSERT INTO dbo.BookType
(
  BookTypeId
 ,Name
 ,Detail
)
VALUES
(
  1  -- ID - INT Primary Key
 ,'Designing' -- Name - varchar(50) NOT NULL
 ,'This is Designing' -- Detail - varchar(200)
),
(
  2  -- ID - INT Primary Key
 ,'Testing' -- Name - varchar(50) NOT NULL
 ,'This is Testing' -- Detail - varchar(200)
),
(
  3  -- ID - INT Primary Key
 ,'Coding' -- Name - varchar(50) NOT NULL
 ,'This is Coding' -- Detail - varchar(200)
);
GO
SET IDENTITY_INSERT dbo.BookType OFF
GO

-- Creating a table Book
CREATE TABLE dbo.Book
(
	BookId INT IDENTITY(1,1),
	Name VARCHAR(50),
	BookTypeId INT,
	Stock INT,
	CONSTRAINT PK_Book_BookId PRIMARY KEY (BookId)
)
GO

Setelah menjalankan skrip, Anda dapat melihat database yang baru dibuat di SSMS Object Explorer atau bagian Database Explorer dari dbForge Studio untuk SQL Server:

Cara Mereferensikan Dua Tabel dengan Kunci Asing SQL

Saya sengaja mengecualikan bagian skrip yang membuat hubungan antara tabel referensi (BookType ) dan tabel utama (Buku ) dalam bentuk kunci.

Jalankan skrip berikut terhadap database sampel untuk menautkan tabel referensi dengan tabel utama:

-- Creating foreign key constraint on Book table to get BookTypeId values from BookType table
ALTER TABLE dbo.Book
    ADD CONSTRAINT [FK_Book_BookType_BookTypeId] 
FOREIGN KEY ([BookTypeId]) REFERENCES dbo.[BookType] ([BookTypeId]);

Luaskan BookSimple2 database> Buku tabel> Tombol map:

Kita dapat melihat bahwa kedua tabel berhasil ditautkan.

Di atas adalah tangkapan layar dari SQL Server Management Studio. Namun, tampilannya sama persis jika Anda melihat database di Database Explorer dari dbForge Studio untuk SQL Server.

Kiat penting tentang memilih database yang diinginkan: Anda harus memastikan bahwa Anda menjalankan kueri terhadap database yang benar – database sampel. Oleh karena itu, pilih dari daftar database yang tersedia atau jalankan skrip berikut:

-- Select the sample SQL database to query it
USE BookSimple2

Penting! Penggunaan skrip untuk memilih database tidak berlaku jika Anda bekerja dengan database SQL versi cloud yang dikenal sebagai Azure SQL Database.

Menulis Kueri Pertama

Untuk mengkueri tabel database, kita hanya perlu mengingat pernyataan SELECT dalam bentuk berikut:

SELECT * FROM <TableName>

Ganti dengan nama tabel yang ada, dan skrip akan mengembalikan Anda semua record (baris) dari tabel tersebut.

Pernyataan SELECT jauh lebih fleksibel, tetapi untuk saat ini, kami hanya akan fokus melihat semua record (baris) dari sebuah tabel.

Kiat penting tentang SQL :Ingat bahwa SQL (khususnya mengacu pada T-SQL) tidak peka huruf besar/kecil . Ini terkait dengan kata yang dicadangkan SQL (SELECT sama dengan Pilih ) atau nama yang ditentukan pengguna (BookType sama dengan jenis buku ) .

Lihat semua Baris dari Tabel Referensi BookType

Tulis skrip berikut pada database sampel:

-- View all data from the BookType table
SELECT * FROM dbo.BookType

Outputnya adalah:

Kita bisa melihat semua kolom dan baris dari tabel. Sejauh ini, ini adalah metode tercepat untuk mendapatkan semua data dari sebuah tabel.

Kiat Penting tentang SELECT *: Anda harus menggunakan SELECT * untuk mendapatkan semua baris dan kolom dari tabel hanya saat Anda memeriksa tabel kecil (seperti tabel referensi). Jika tidak, mungkin akan memakan banyak waktu, sementara kita mungkin memerlukan data pada beberapa kolom dan baris dari tabel yang lebih besar.

Temukan semua Baris dari Tabel BookType Menggunakan Nama Tabel

Ada cara yang lebih baik untuk menanyakan tabel. Kami memberi nama tabel dan mengikatnya dengan semua kolom seperti yang ditunjukkan di bawah ini:

-- View all data from the BookType table using bt alias
SELECT bt.* FROM dbo.BookType bt

Lihat Kolom yang Dipilih dari Tabel Referensi

Menggunakan nama tabel membawa lebih banyak manfaat. Pertama, kita dapat dengan cepat memilih kolom yang diinginkan dari tabel. Kemudian, penggunaan tabel dan kolom terbatas menjadi lebih jelas karena dalam banyak kasus kita hanya membutuhkan beberapa kolom.

Berikut adalah contoh mendapatkan ID dan nama hanya dari BookType tabel:

-- View book type id and name columns from the reference table
SELECT bt.BookTypeId,bt.Name FROM dbo.BookType bt

Hasilnya adalah:

Meningkatkan Sintaks SELECT

Jadi, berdasarkan informasi yang disebutkan di atas, kita dapat meningkatkan sintaks SELECT sebagai berikut:

SELECT t.<column1>,t.<column2> FROM <TableName> t

Urutkan Data Berdasarkan Nama Kolom menggunakan Urutan Berdasarkan Klausa

Anda dapat mengurutkan kumpulan hasil berdasarkan kolom atau kumpulan kolom tertentu. Menyortir data memberikan sudut pandang yang berbeda.

Penggunaan Order By klausa dalam hal ini adalah:

SELECT t.<column1>,t.<column2> FROM <TableName> t order by t.<column1>

Misalnya kita ingin melihat jenis buku yang diurutkan berdasarkan nama jenisnya (urutan abjad). Dalam hal ini, kami menggunakan klausa Order By dalam skrip pernyataan SELECT sebagai berikut:

-- View book types (name) sorted by type name 
SELECT bt.Name FROM dbo.BookType bt ORDER BY bt.Name

Outputnya adalah:

Urutkan Data Berdasarkan Nama Kolom dalam Urutan Menurun

Kami juga dapat mengurutkan data dalam urutan menurun sesuai kebutuhan. Misalnya, kita ingin melihat daftar semua jenis buku berdasarkan kolom Nama dalam urutan menurun (Z ke A). Sintaksnya adalah:

SELECT t.<column1>,t.<column2> FROM <TableName> t order by t.<column1> desc

Skrip T-SQL adalah sebagai berikut:

-- View book types (name) sorted by a type name in descending order (from Z to A)
SELECT bt.Name FROM dbo.BookType bt ORDER BY bt.Name desc

Kumpulan hasil di bawah ini:

Melihat Catatan TOP N dari Tabel

Terakhir, kita dapat memilih jumlah baris yang diinginkan untuk ditarik dari database dengan menggunakan klausa TOP. Setelah klausa itu, kami harus memberikan nomor yang diperlukan:

SELECT Top N t.<column1>,t.<column2> FROM <TableName> t 

Namun, klausa TOP tanpa urutan apa pun bukanlah pilihan terbaik. Kita harus menentukan urutan kolom untuk dipertimbangkan saat memilih baris ke-n.

Di sini, kita dapat memperbaiki sintaks di atas sebagai berikut:

SELECT Top N t.<column1>,t.<column2> FROM <TableName> t order by <column> Desc/Asc

Ingat bahwa kita harus menyebutkan urutan menurun dengan menggunakan DESC pada akhirnya. Namun, urutan menaik tidak wajib disebutkan – ini adalah opsi default.

Mari kita lihat 2 jenis buku teratas yang diurutkan berdasarkan nama dalam urutan menurun:

--View Top 2 types of the books ordered by name in descending order (from Z to A)
SELECT TOP 2 bt.Name FROM dbo.BookType bt 
ORDER BY bt.Name DESC

Outputnya adalah:

Kiat Penting tentang TOP N: gunakan klausa TOP N (dengan urutan berdasarkan) untuk melihat tabel daripada melihat semua baris tabel jika Anda ingin memeriksa data yang dikenal sebagai sneak peek dengan cepat.

Dalam skenario kehidupan profesional, klausa Top N berfungsi untuk memperbarui potongan besar data dari tabel besar secara bertahap.

Sekarang, kami telah berhasil membuat kueri tabel database SQL. Selain itu, kami telah mengetahui beberapa kiat untuk menjalankan kueri seperti seorang profesional dan mempelajari beberapa praktik terbaik untuk penulisan kueri SQL.

Praktik Tabel Referensi DB

Sekarang Anda dapat menulis, menjalankan, dan meningkatkan efektivitas kueri SQL terhadap tabel apa pun. Cobalah latihan berikut untuk meningkatkan keterampilan baru:

  1. Coba tulis skrip untuk melihat id jenis buku (BookTypeId ) dengan detail (Detail ) kolom saja.
  2. Coba urutkan referensi BookType tabel menurut id (BookTypeId ) dalam urutan menurun (dari 3 ke 1).
  3. Coba dapatkan 2 baris teratas dari BookType tabel hanya menyertakan id (BookTypeId ) dan detail (Detail ) dari jenis buku yang diurutkan berdasarkan Detail kolom.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghapus jejak default – Bagian 2

  2. Bermigrasi dari AnswerHub ke WordPress:Kisah 10 Teknologi

  3. Menambahkan Lebih Banyak Penyimpanan Data ke Microsoft Power BI

  4. Konten Tidak Terstruktur:Sumber Bahan Bakar yang Belum Dimanfaatkan untuk AI dan Pembelajaran Mesin

  5. Statistik Penantian Lutut :PAGELATCH