Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Buat Query di SQL Server 2017

Cara membuat kueri dalam database SQL Server 2017.

Salah satu pertanyaan paling dasar yang dapat Anda lakukan adalah seperti ini:

SELECT * 
FROM TableName;

Kueri ini mengembalikan semua data dari tabel tertentu. TableName adalah nama tabel yang ingin Anda kueri. Yang perlu Anda lakukan adalah menggantinya dengan nama tabel di database Anda, menjalankan kueri, dan isi tabel itu akan ditampilkan.

Database kami terdiri dari tiga tabel. Masing-masing berisi data. Mari kita lihat apa yang ada di setiap tabel.

Para Artists tabel:

SELECT * 
FROM Artists;
Hasil
ArtistId  ArtistName              ActiveFrom              
--------  ----------------------  ------------------------
1         Iron Maiden             1975-12-25T00:00:00.000Z
2         AC/DC                   1973-01-11T00:00:00.000Z
3         Allan Holdsworth        1969-01-01T00:00:00.000Z
4         Buddy Rich              1919-01-01T00:00:00.000Z
5         Devin Townsend          1993-01-01T00:00:00.000Z
6         Jim Reeves              1948-01-01T00:00:00.000Z
7         Tom Jones               1963-01-01T00:00:00.000Z
8         Maroon 5                1994-01-01T00:00:00.000Z
9         The Script              2001-01-01T00:00:00.000Z
10        Lit                     1988-06-26T00:00:00.000Z
11        Black Sabbath           1968-01-01T00:00:00.000Z
12        Michael Learns to Rock  1988-03-15T00:00:00.000Z
13        Carabao                 1981-01-01T00:00:00.000Z
14        Karnivool               1997-01-01T00:00:00.000Z
15        Birds of Tokyo          2004-01-01T00:00:00.000Z
16        Bodyjar                 1990-01-01T00:00:00.000Z

16 row(s) returned

Executed in 1 ms

Albums tabel:

SELECT * 
FROM Albums;
Hasil
AlbumId  AlbumName                 ReleaseDate               ArtistId  GenreId
-------  ------------------------  ------------------------  --------  -------
1        Powerslave                1984-09-03T00:00:00.000Z  1         1      
2        Powerage                  1978-05-05T00:00:00.000Z  2         1      
3        Singing Down the Lane     1956-01-01T00:00:00.000Z  6         3      
4        Ziltoid the Omniscient    2007-05-21T00:00:00.000Z  5         1      
5        Casualties of Cool        2014-05-14T00:00:00.000Z  5         1      
6        Epicloud                  2012-09-18T00:00:00.000Z  5         1      
31       Somewhere in Time         1986-09-29T00:00:00.000Z  1         1      
32       Piece of Mind             1983-05-16T00:00:00.000Z  1         1      
33       Killers                   1981-02-02T00:00:00.000Z  1         1      
34       No Prayer for the Dying   1990-10-01T00:00:00.000Z  1         1      
35       No Sound Without Silence  2014-09-12T00:00:00.000Z  9         4      
36       Big Swing Face            1967-06-01T00:00:00.000Z  4         2      
37       Blue Night                2000-11-01T00:00:00.000Z  12        4      
38       Eternity                  2008-10-27T00:00:00.000Z  12        4      
39       Scandinavia               2012-06-11T00:00:00.000Z  12        4      
40       Long Lost Suitcase        2015-10-09T00:00:00.000Z  7         4      
41       Praise and Blame          2010-06-26T00:00:00.000Z  7         4      
42       Along Came Jones          1965-05-21T00:00:00.000Z  7         4      
43       All Night Wrong           2002-05-05T00:00:00.000Z  3         2      
44       The Sixteen Men of Tain   2000-03-20T00:00:00.000Z  3         2      

20 row(s) returned

Executed in 1 ms

Genres tabel:

SELECT * 
FROM Genres;
Hasil
GenreId  Genre  
-------  -------
1        Rock   
2        Jazz   
3        Country
4        Pop    
5        Blues  
6        Hip Hop
7        Rap    
8        Punk   

8 row(s) returned

Executed in 1 ms

Dalam ketiga kasus, kueri kami sama. Satu-satunya yang berubah adalah nama tabelnya.

Ini adalah salah satu pertanyaan paling dasar yang bisa kita lakukan. Ini hanya mengembalikan semua baris dan semua kolom dari satu tabel.

Kami dapat memodifikasi kueri ini dalam beberapa cara untuk mengembalikan hanya data yang ingin kami lihat. Di bawah ini adalah beberapa cara umum yang dapat kami lakukan untuk memodifikasi kueri untuk mengembalikan hasil yang kami butuhkan dengan tepat.

Tentukan kolom

Alih-alih menggunakan tanda bintang (* ) untuk mengembalikan semua kolom, Anda dapat secara eksplisit menyatakan hanya kolom yang ingin Anda kembalikan.

SELECT AlbumId, AlbumName, ArtistId 
FROM Albums;
Hasil
AlbumId  AlbumName                 ArtistId
-------  ------------------------  --------
1        Powerslave                1       
2        Powerage                  2       
3        Singing Down the Lane     6       
4        Ziltoid the Omniscient    5       
5        Casualties of Cool        5       
6        Epicloud                  5       
31       Somewhere in Time         1       
32       Piece of Mind             1       
33       Killers                   1       
34       No Prayer for the Dying   1       
35       No Sound Without Silence  9       
36       Big Swing Face            4       
37       Blue Night                12      
38       Eternity                  12      
39       Scandinavia               12      
40       Long Lost Suitcase        7       
41       Praise and Blame          7       
42       Along Came Jones          7       
43       All Night Wrong           3       
44       The Sixteen Men of Tain   3       

20 row(s) returned

Executed in 1 ms

Persempit Kriteria

Anda dapat menambahkan WHERE klausa untuk mengembalikan hanya baris yang cocok dengan kriteria yang Anda berikan.

SELECT AlbumId, AlbumName, ArtistId 
FROM Albums 
WHERE ArtistId = 1;
Hasil
AlbumId  AlbumName                ArtistId
-------  -----------------------  --------
1        Powerslave               1       
31       Somewhere in Time        1       
32       Piece of Mind            1       
33       Killers                  1       
34       No Prayer for the Dying  1       

5 row(s) returned

Executed in 1 ms

Bergabung dengan Meja Lain

Anda dapat menggunakan gabungan untuk mengembalikan hasil dari beberapa tabel yang berbagi data. Inilah yang dimaksud dengan hubungan. Secara khusus, gabungan biasanya digunakan di mana kunci asing dari satu tabel cocok dengan kunci utama tabel lainnya.

SELECT AlbumId, AlbumName, ArtistName 
FROM Albums 
	INNER JOIN Artists 
	ON Albums.ArtistId = Artists.ArtistId 
WHERE ReleaseDate < '1980-01-01';
Hasil
AlbumId  AlbumName              ArtistName
-------  ---------------------  ----------
2        Powerage               AC/DC     
3        Singing Down the Lane  Jim Reeves
36       Big Swing Face         Buddy Rich
42       Along Came Jones       Tom Jones 

4 row(s) returned

Executed in 1 ms

Anda akan melihat bahwa WHERE klausa masih berfungsi pada kolom yang sebenarnya tidak termasuk dalam output. Dalam hal ini, itu diterapkan ke ReleaseDate kolom, meskipun kami tidak menyertakan kolom tersebut dalam hasil.

Anda juga akan melihat bahwa kami memenuhi syarat kedua ArtistId kolom dengan nama tabel (yaitu Albums.ArtistId dan Artists.ArtistId ). Kita harus melakukan ini agar SQL Server mengetahui tabel mana yang kita rujuk saat mereferensikan kolom itu. Beberapa pengembang basis data menganggap praktik yang baik untuk memenuhi syarat semua nama kolom di semua kueri SQL, namun ini lebih merupakan kasus preferensi pribadi atau konvensi pengkodean khusus proyek.

Tambahkan Alias

Anda juga dapat menambahkan alias tabel ke kueri Anda untuk membuat kode lebih ringkas. Misalnya, Anda dapat memberikan Artists alias ar dan Albums alias al (atau string lain yang Anda suka).

Anda dapat menggunakan alias ini untuk memenuhi syarat nama kolom. Berikut kueri yang sama seperti di atas, tetapi dengan semua nama kolom memenuhi syarat dengan alias tabel:

SELECT al.AlbumId, al.AlbumName, ar.ArtistName 
FROM Albums al
	INNER JOIN Artists ar
	ON al.ArtistId = ar.ArtistId 
WHERE al.ReleaseDate < '1980-01-01';
Hasil
AlbumId  AlbumName              ArtistName
-------  ---------------------  ----------
2        Powerage               AC/DC     
3        Singing Down the Lane  Jim Reeves
36       Big Swing Face         Buddy Rich
42       Along Came Jones       Tom Jones 

4 row(s) returned

Executed in 1 ms

Anda juga dapat menetapkan alias ke kolom (bukan hanya tabel). Kami melakukan ini pada contoh berikutnya.

Format Tanggal

Ada banyak cara yang berbeda bahwa tanggal dan waktu dapat diperlakukan dalam database. Di SQL Server ada tipe data yang berbeda untuk menyimpan tanggal (seperti date , time , datetime , smalldatetime , dll) dan ada banyak fungsi berbeda untuk menangani tanggal (misalnya SYSDATETIME() , GETDATE( ) , CURRENT_TIMESTAMP , dll).

Dalam contoh ini, kita akan menggunakan YEAR() berfungsi untuk mengembalikan hanya bagian tahun dari tanggal.

SELECT AlbumName, YEAR(ReleaseDate) AS Year 
FROM Albums;
Hasil
AlbumName                 Year
------------------------  ----
Powerslave                1984
Powerage                  1978
Singing Down the Lane     1956
Ziltoid the Omniscient    2007
Casualties of Cool        2014
Epicloud                  2012
Somewhere in Time         1986
Piece of Mind             1983
Killers                   1981
No Prayer for the Dying   1990
No Sound Without Silence  2014
Big Swing Face            1967
Blue Night                2000
Eternity                  2008
Scandinavia               2012
Long Lost Suitcase        2015
Praise and Blame          2010
Along Came Jones          1965
All Night Wrong           2002
The Sixteen Men of Tain   2000

20 row(s) returned

Executed in 1 ms

Dalam contoh ini kami juga menetapkan alias ke kolom. Lebih khusus, kami menetapkan alias untuk hasil YEAR() fungsi, yang kita lewati ReleaseDate kolom sebagai argumen.

Hal lain tentang contoh ini adalah bahwa kami menggunakan AS kata kunci saat menetapkan alias. Ini opsional, dan kita juga bisa menggunakan AS kata kunci saat menetapkan alias ke tabel pada contoh sebelumnya.

Tentang SQL dan Transact-SQL

Kueri di atas (dan kueri lainnya dalam tutorial ini) ditulis dalam Structured Query Language (SQL). Lebih khusus lagi, SQL Server menggunakan Transact-SQL (terkadang disingkat menjadi T-SQL ), yang merupakan ekstensi milik Microsoft dan Sybase untuk SQL.

SQL adalah bahasa kueri standar yang digunakan pada sebagian besar sistem manajemen basis data relasional. Ini adalah standar dari American National Standards Institute (ANSI), dan Organisasi Internasional untuk Standardisasi (ISO).

Sementara sebagian besar kueri dasar akan bekerja di sebagian besar basis data relasional, beberapa kueri mungkin perlu sedikit dimodifikasi saat porting antara satu sistem basis data dan sistem basis data lainnya. Misalnya, Anda mungkin memiliki skrip yang berjalan di SQL Server. Anda juga dapat menggunakan skrip tersebut di MySQL, namun, Anda mungkin perlu mengubah beberapa hal sebelum berhasil dijalankan.

Skrip SQL dalam tutorial ini hanya menunjukkan contoh kecil dari hal-hal yang dapat Anda lakukan dengan SQL. Untuk informasi lebih lanjut, lihat Tutorial SQL saya atau kunjungi Referensi Microsoft Transact-SQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa cara tercepat untuk menyisipkan banyak data secara massal di SQL Server (klien C#)

  2. Masalah Tabel Sementara RODBC saat menghubungkan ke MS SQL Server

  3. Jenis Kursor SQL Server - Kursor Dinamis | Tutorial SQL Server / Tutorial TSQL

  4. Kesalahan SQL Server 4104:Pengidentifikasi multi-bagian tidak dapat diikat.

  5. Buat Akun Email Basis Data (SSMS)