Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'te SQL veritabanı
Note
Transact-SQL ile Sorgulamaya Başlarken öğrenme yolu, pratik örneklerin yanı sıra daha ayrıntılı içerik sağlar.
Bu derste veritabanı oluşturma, veritabanında tablo oluşturma ve ardından tablodaki verilere erişme ve bunları değiştirme gösterilmektedir. Bu ders Transact-SQL kullanmaya giriş niteliğinde olduğundan, bu deyimler için kullanılabilen birçok seçeneği kullanmaz veya açıklamaz.
Transact-SQL deyimleri aşağıdaki yollarla yazılabilir ve Veritabanı Altyapısı'na gönderilebilir:
SQL Server Management Studio kullanarak. Bu öğreticide, Management Studio kullandığınız varsayılır, ancak Microsoft İndirme Merkezi'nden ücretsiz olarak indirilebilen Management Studio Express'i de kullanabilirsiniz.
sqlcmd yardımcı programını kullanarak.
Oluşturduğunuz bir uygulamadan bağlanarak.
Kod, kod deyimlerini nasıl gönderdiğinizden bağımsız olarak Veritabanı Altyapısı'nda aynı şekilde ve aynı izinlerle yürütülür.
Management Studio'da Transact-SQL deyimlerini çalıştırmak için Management Studio'yu açın ve SQL Server Veritabanı Altyapısı örneğine bağlanın.
Prerequisites
Bu öğreticiyi tamamlamak için SQL Server Management Studio'ya ve bir SQL Server örneğine erişmeniz gerekir.
- SQL Server Management Studioyükleyin.
SQL Server örneğinin yoksa bir tane oluşturun. Bir tane oluşturmak için aşağıdaki bağlantılardan platformunuzu seçin. SQL Kimlik Doğrulaması'nı seçerseniz, SQL Server oturum açma kimlik bilgilerinizi kullanın.
- Windows: SQL Server 2022 Developer Edition'ı indirin.
- Linux: Hızlı Başlangıç: Docker ile SQL Server Linux kapsayıcı görüntülerini çalıştırma.
veritabanı oluşturun
Birçok Transact-SQL deyimi gibi CREATE DATABASE deyiminin de gerekli bir parametresi vardır: veritabanının adı.
CREATE DATABASE ayrıca, veritabanı dosyalarını yerleştirmek istediğiniz disk konumu gibi birçok isteğe bağlı parametresi vardır.
CREATE DATABASE isteğe bağlı parametreler olmadan çalıştırıldığında, SQL Server bu parametrelerin çoğu için varsayılan değerleri kullanır.
Sorgu Düzenleyicisi penceresinde yazın ancak aşağıdaki kodu yürütmeyin:
CREATE DATABASE TestData GOİşaretçiyi kullanarak sözcükleri
CREATE DATABASEseçin ve F1 tuşuna basın. MakaleCREATE DATABASEaçılmalıdır. Bu tekniği,CREATE DATABASEve bu öğreticide kullanılan diğer ifadeler için söz diziminin tamamını bulmak amacıyla kullanabilirsiniz.Sorgu Düzenleyicisi'nde F5 tuşuna basarak ifadeyi çalıştırın ve
TestDataadlı bir veritabanı oluşturun.
Veritabanı oluşturduğunuzda, SQL Server veritabanının model bir kopyasını oluşturur ve kopyayı veritabanı adıyla yeniden adlandırır. Veritabanının ilk boyutunu isteğe bağlı bir parametre olarak belirtmediğiniz sürece bu işlem yalnızca birkaç saniye sürer.
Note
Anahtar sözcüğü GO , tek bir toplu işlemde birden fazla deyim gönderildiğinde deyimleri ayırır.
GO , toplu iş yalnızca bir deyim içerdiğinde isteğe bağlıdır.
Tablo oluştur
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Tablo oluşturmak için tablo için bir ad ve tablodaki her sütunun adlarını ve veri türlerini sağlamanız gerekir. Her sütunda null değerlere izin verilip verilmeyeceğini belirtmek de iyi bir uygulamadır. Tablo oluşturmak için, CREATE TABLE iznine ve tabloyu içerecek şema üzerinde ALTER SCHEMA iznine sahip olmanız gerekir.
db_ddladmin sabit veritabanı rolü bu izinlere sahiptir.
Çoğu tablonun bir veya daha fazla sütundan oluşan bir birincil anahtarı vardır. Birincil anahtar her zaman benzersizdir. Veritabanı Altyapısı, herhangi bir birincil anahtar değerinin tabloda tekrar edilememe kısıtlamasını uygular.
Her birinin açıklaması için veri türlerinin ve bağlantıların listesi için bkz. Veri türleri.
Note
Veritabanı Altyapısı büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarlı olmayan olarak yüklenebilir. Veritabanı Altyapısı büyük/küçük harfe duyarlı olarak yüklenirse, nesne adlarının her zaman aynı büyük/küçük harfe sahip olması gerekir. Örneğin OrderData adlı tablo, ORDERDATA adlı tablodan farklı bir tablodur. Veritabanı Altyapısı büyük/küçük harfe duyarlı olmayan olarak yüklenirse, bu iki tablo adı aynı tablo olarak kabul edilir ve bu ad yalnızca bir kez kullanılabilir.
Sorgu Düzenleyicisi bağlantısını TestData veritabanına değiştirme
Sorgu Düzenleyicisi penceresinde, veritabanı bağlantınızı değiştirmek için aşağıdaki kodu yazın ve yürütebilirsiniz TestData .
USE TestData
GO
Tabloyu oluşturma
Sorgu Düzenleyicisi penceresinde, adlı Productsbir tablo oluşturmak için aşağıdaki kodu yazın ve yürütebilirsiniz. Tablodaki sütunlar , , ProductIDProductNameve Priceolarak adlandırılırProductDescription.
ProductID Sütun, tablonun birincil anahtarıdır.
int, varchar(25), moneyve varchar(max) tüm veri türleridir. Yalnızca Price ve ProductionDescription sütunlarında, bir satır eklendiğinde veya değiştirildiğinde veri olmayabilir. Bu deyim şema olarak adlandırılan isteğe bağlı bir öğe (dbo.) içerir. Şema, tablonun sahibi olan veritabanı nesnesidir. Yöneticiyseniz, dbo varsayılan şemadır.
dbo , veritabanı sahibi anlamına gelir.
CREATE TABLE dbo.Products
(ProductID int PRIMARY KEY NOT NULL,
ProductName varchar(25) NOT NULL,
Price money NULL,
ProductDescription varchar(max) NULL)
GO
Tabloya veri ekleme ve güncelleştirme
Tabloyu oluşturduğunuza Products göre, deyimini kullanarak tabloya veri eklemeye INSERT hazırsınız demektir. Veriler eklendikten sonra, deyimini kullanarak UPDATE satırın içeriğini değiştireceksiniz. Güncelleştirmeyi tek bir satırla WHERE kısıtlamak için deyiminin yan tümcesini kullanırsınızUPDATE. Dört deyim aşağıdaki verileri girer.
| ProductID | ProductName | Price | ProductDescription |
|---|---|---|---|
| 1 | Clamp | 12.48 | Workbench kelepçesi |
| 50 | Tornavida | 3.17 | Düz kafa |
| 75 | Lastik Çubuğu | Lastik değiştirme aracı. | |
| 3000 | 3 mm Braket | 0.52 |
Temel söz dizimi: INSERT, tablo adı, VALUESsütun listesi ve ardından eklenecek değerlerin listesi. Satırın önündeki iki kısa çizgi, satırın bir açıklama olduğunu ve metnin derleyici tarafından yoksayıldığını gösterir. Bu durumda, açıklama söz diziminin izin verilen bir varyasyonunu açıklar.
Tabloya veri ekleme
Önceki görevde oluşturulan tabloya
Productssatır eklemek için aşağıdaki deyimi yürütür.-- Standard syntax INSERT dbo.Products (ProductID, ProductName, Price, ProductDescription) VALUES (1, 'Clamp', 12.48, 'Workbench clamp') GOEkleme başarılı olursa sonraki adıma geçin.
Ekleme işlemi başarısız olursa, bunun nedeni
Producttabloda zaten bu ürün kimliğine sahip bir satır olması olabilir. Devam etmek için tablodaki tüm satırları silin ve önceki adımı yineleyin. TRUNCATE TABLE , tablodaki tüm satırları siler.Tablodaki tüm satırları silmek için aşağıdaki komutu çalıştırın:
TRUNCATE TABLE TestData.dbo.Products; GOTabloyu kestikten sonra, bu komutu bu adımda yineleyin
INSERT.Aşağıdaki ifade, alan listesinde (parantez içinde) ve değerler listesinde
ProductIDileProductNameöğelerinin yerleşimini değiştirerek parametrelerin sağlanma sırasını nasıl değiştirebileceğinizi gösterir.-- Changing the order of the columns INSERT dbo.Products (ProductName, ProductID, Price, ProductDescription) VALUES ('Screwdriver', 50, 3.17, 'Flat head') GOAşağıdaki deyim, değerler doğru sırada listelendiği sürece sütunların adlarının isteğe bağlı olduğunu gösterir. Bu söz dizimi yaygındır, ancak başkalarının kodunuzu anlaması daha zor olabileceği için önerilmez.
NULLbu ürünün fiyatı henüz bilinmediğinden sütun içinPricebelirtilir.-- Skipping the column list, but keeping the values in order INSERT dbo.Products VALUES (75, 'Tire Bar', NULL, 'Tool for changing tires.') GOVarsayılan şemanızdaki bir tabloya eriştiğiniz ve tabloyu değiştirdiğiniz sürece şema adı isteğe bağlıdır. Sütun
ProductDescriptionnull değerlere izin verdiğinden veProductDescriptioniçin değer sağlanmadığından, sütun adı ve değeri ifadeden tamamen çıkarılabilir.-- Dropping the optional dbo and dropping the ProductDescription column INSERT Products (ProductID, ProductName, Price) VALUES (3000, '3 mm Bracket', 0.52) GO
Ürünler tablosunu güncelleştirme
İkinci ürünün UPDATE'ini ProductName'den Screwdriver'e değiştirmek için aşağıdaki Flat Head Screwdriver deyimini yazın ve yürütün.
UPDATE dbo.Products
SET ProductName = 'Flat Head Screwdriver'
WHERE ProductID = 50
GO
Tablodaki verileri okuma
Tablodaki SELECT verileri okumak için deyimini kullanın. deyimi SELECT en önemli Transact-SQL deyimlerinden biridir ve söz diziminde birçok çeşitleme vardır. Bu öğreticide beş temel sürümle çalışacaksınız.
Tablodaki verileri okuma
Tablodaki verileri okumak için, aşağıdaki deyimleri yazın ve yürütün
Products.-- The basic syntax for reading data from a single table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products GOTablodaki tüm sütunları seçmek için yıldız işareti (
*) kullanabilirsiniz. Yıldız işareti geçici sorgular içindir. Kalıcı kodda, tabloya daha sonra yeni bir sütun eklense bile deyiminin tahmin edilen sütunları döndürmesi için sütun listesini sağlayın.-- Returns all columns in the table -- Does not use the optional schema, dbo SELECT * FROM Products GODöndürmek istemediğiniz sütunları atlayabilirsiniz. Sütunlar listelendikleri sırayla döndürülür.
-- Returns only two of the columns from the table SELECT ProductName, Price FROM dbo.Products GOKullanıcıya döndürülen satırları sınırlamak için bir
WHEREyan tümce kullanın.-- Returns only two of the records in the table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products WHERE ProductID < 60 GOSütunlardaki değerlerle döndürüldükleri gibi çalışabilirsiniz. Aşağıdaki örnek, sütunda
Pricebir matematik işlemi gerçekleştirir. Bu şekilde değiştirilmiş sütunların,ASanahtar sözcüğünü kullanarak bir ad belirtmediğiniz sürece bir adı yoktur.-- 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
SELECT deyimindeki yararlı işlevler
Deyimlerdeki SELECT verilerle çalışmak için kullanabileceğiniz bazı işlevler hakkında bilgi için aşağıdaki makalelere bakın:
Görünümler ve saklı yordamlar oluşturun
Görünüm bir saklı SELECT deyimdir ve saklı yordam da toplu iş olarak yürütülen bir veya daha fazla Transact-SQL deyimidir.
Görünümler tablolar gibi sorgulanır ve parametreleri kabul etmemektedir. Saklı prosedürler görünümlerden daha karmaşıktır. Saklı yordamlar hem giriş hem de çıkış parametrelerine sahip olabilir ve ve IF deyimleri gibi WHILE kodun akışını denetlemek için deyimler içerebilir. Veritabanındaki yinelenen tüm eylemler için saklı yordamları kullanmak iyi bir programlama uygulamasıdır.
Bu örnekte, görünüm kullanarak tablodaki CREATE sütunlardan yalnızca ikisini seçen bir görünüm oluşturursunuzProducts. Ardından, bir fiyat parametresi kabul eden ve yalnızca belirtilen parametre değerinden daha düşük maliyetli ürünleri döndüren bir saklı yordam oluşturmak için kullanırsınız CREATE PROCEDURE .
Görünüm oluştur
Select deyimini yürüten ve ürünlerimizin adlarını ve fiyatlarını kullanıcıya döndüren bir görünüm oluşturmak için aşağıdaki deyimi yürütün.
CREATE VIEW vw_Names
AS
SELECT ProductName, Price FROM Products;
GO
Görünümü test edin
Görünümler tıpkı tablolar gibi değerlendirilir. Görünüme erişmek için bir SELECT ifadesi kullanın.
SELECT * FROM vw_Names;
GO
Saklı yordam oluştur
Aşağıdaki deyim bir saklı yordam adı pr_Namesoluşturur ve veri türü @VarPriceadlı money bir giriş parametresini kabul eder. Saklı yordam, Products less than veri tipinden money karakter veri tipine dönüştürülen giriş parametresi ile birleştirilen varchar(10) ifadesini yazdırır. Ardından, yordam görünümde bir SELECT deyimi yürütür ve giriş parametresini WHERE maddesinin bir parçası olarak geçirir. Bu, giriş parametresi değerinden daha düşük maliyetli tüm ürünleri döndürür.
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
Saklı prosedürü test edin
Saklı yordamı test etmek için aşağıdaki komutu yazın ve yürütün. Yordam, Ders 1'de Products tablosuna girilen ve fiyatı 10.00'den küçük olan iki ürünün adını döndürmelidir.
EXECUTE pr_Names 10.00;
GO