Alıştırma - Veritabanınıza bağlanma ve örnek veriler ekleme
Veritabanını uygulamanıza bağlamadan önce bağlanıp bağlanamadığını kontrol etmek, basit bir tablo eklemek ve örnek verilerle çalışmak istersiniz.
Azure SQL veritabanının altyapısını, yazılım güncelleştirmelerini ve düzeltme eklerini sizin yerinize biz idare ederiz. Azure SQL veritabanınızı, diğer TÜM SQL Server yüklemeleri gibi değerlendirebilirsiniz. Örneğin, Azure SQL veritabanınızı yönetmek için Visual Studio, SQL Server Management Studio, Azure Data Studio veya diğer araçları kullanabilirsiniz.
Veritabanınıza erişme ve veritabanını uygulamanıza bağlama yöntemini siz belirlersiniz. Veritabanınızla çalışma konusunda biraz deneyim elde etmek için doğrudan portaldan veritabanına bağlanalım, bir tablo oluşturalım ve birkaç temel CRUD işlemi çalıştıralım. Burada şunları öğrenirsiniz:
- Cloud Shell'in ne olduğu ve portaldan erişme.
- Bağlantı dizeleri dahil olmak üzere veritabanınızla ilgili bilgilere Azure CLI'den erişme.
sqlcmd
kullanarak veritabanınıza bağlanma.- Veritabanınızı basit bir tablo ve örnek verilerle kullanmaya başlama.
Azure Cloud Shell nedir?
Azure Cloud Shell, Azure kaynaklarını yönetmenizi ve geliştirmenizi sağlayan bir tarayıcı tabanlı kabul deneyimidir. Cloud Shell'i bulutta çalışan etkileşimli bir konsol olarak düşünebilirsiniz.
Cloud Shell arka planda Linux üzerinde çalışır. Ancak, Linux veya Windows ortamını tercih edip etmediğinize bağlı olarak, aralarından seçim yapabileceğiniz iki deneyiminiz vardır: Bash ve PowerShell.
Cloud Shell'e her yerden erişebilirsiniz. Cloud Shell'e portalın yanı sıra shell.azure.com adresinden, Azure mobil uygulamasından veya Visual Studio Code'dan erişebilirsiniz.
Cloud Shell'de popüler araçlar ve metin düzenleyiciler bulunur. Burada, bu alıştırmada az
kullandığınız üç araç olan , jq
ve sqlcmd
yardımcı programlarına kısaca göz atabilirsiniz.
az
, Azure CLI olarak da bilinir. Azure kaynaklarıyla çalışmak için kullanabileceğiniz komut satırı arabirimidir. Bağlantı dizesi dahil olmak üzere veritabanınız hakkında bilgi almak için bu arabirimi kullanırsınız.jq
, bir komut satırı JSON ayrıştırıcısıdır. JSON çıkışındanaz
önemli alanları ayıklamak için komutlardan çıkışı bu aracına aktarırsınız.sqlcmd
, SQL Server üzerinde deyim yürütmenizi sağlar. Azure SQL veritabanınızla etkileşimli bir oturum oluşturmak için kullanırsınızsqlcmd
.
Azure SQL veritabanınız hakkında bilgi edinme
Veritabanınıza bağlanmadan önce var olup olmadığını ve çevrimiçi olma durumunu doğrulamak iyi bir yöntemdir.
Burada az
yardımcı programını kullanarak veritabanlarınızı listeleyecek ve Logistics veritabanının maksimum boyutu ve durumu gibi bazı bilgileri göreceksiniz.
az
Çalıştırdığınız komutlar için kaynak grubunuzun adı ve Azure SQL mantıksal sunucunuzun adı gerekir. Tuş vuruşlarını kaydetmek için buazure configure
komutu çalıştırarak bunları varsayılan değer olarak belirtin.değerini, oluşturduğunuz Azure SQL mantıksal sunucusunun adıyla ve
[resource-group]
sunucunuz için kullandığınız kaynak grubuyla değiştirin[server-name]
.az configure --defaults group=[resource-group] sql-server=[server-name]
Dekont
Portalda bulunduğunuz bölmeye bağlı olarak, SQL server adınız FQDN (örneğin, servername.database.windows.net) olarak görüntülenebilir. Ancak bu komut için .database.windows.net soneki olmadan yalnızca mantıksal ad gereklidir.
Azure SQL mantıksal sunucunuzdaki tüm veritabanlarını listelemek için aşağıdaki
az sql db list
komutu çalıştırın:az sql db list
Çıkış olarak büyük bir JSON bloğu elde edersiniz.
Yalnızca veritabanı adlarını almak istediğimiz için komutunu ikinci kez çalıştırın. Ancak bu kez, yalnızca ad alanlarını görüntülemek için
jq
çıkışı öğesine yöneltin.az sql db list | jq '[.[] | {name: .name}]'
Şu çıkışı almanız gerekir:
[ { "name": "Logistics" }, { "name": "master" } ]
Logistics
veritabanınızdır. SQL Server gibi sistem veritabanı damaster
oturum açma bilgileri ve sistem yapılandırma ayarları gibi sunucu meta verilerini içerir.Veritabanıyla ilgili
Logistics
ayrıntıları almak için aşağıdakiaz sql db show
komutu çalıştırın:az sql db show --name Logistics
Önceki gibi çıktı olarak büyük bir JSON bloğu görürsünüz.
komutunu ikinci kez çalıştırın. Bu kez çıkışı yalnızca
jq
Logistics veritabanının adı, maksimum boyutu ve durumuyla sınırlamak için çıkışa yöneltin.az sql db show --name Logistics | jq '{name: .name, maxSizeBytes: .maxSizeBytes, status: .status}'
Veritabanının çevrimiçi olduğunu ve veritabanının depolayabileceğiniz maksimum miktarda veri olduğunu görürsünüz.
{ "name": "Logistics", "maxSizeBytes": 2147483648, "status": "Online" }
Veritabanınıza bağlanma
Veritabanınızla ilgili temel bilgileri kavradığınıza göre şimdi sqlcmd
komutunu kullanarak bağlantı kuracak, taşımacılık sürücüleriyle ilgili bilgileri içeren bir tablo oluşturacak ve birkaç basit CRUD işlemi gerçekleştireceksiniz.
CRUD kısaltmasının Oluşturma, Okuma, Güncelleştirme ve Silme terimlerini ifade ettiğini unutmayın. Bu terimler tablo verilerinde gerçekleştirdiğiniz işlemlere başvurur ve uygulamanız için ihtiyacınız olan dört temel işlemdir. Şimdi bu işlemleri tek tek gerçekleştirebilirsiniz.
veritabanına bağlantı dizesi kullanabileceği bir biçimde
sqlcmd
almak içinLogistics
aşağıdakiaz sql db show-connection-string
komutu çalıştırın:az sql db show-connection-string --client sqlcmd --name Logistics
Çıkışınız aşağıdaki örneğe benzer. Bu çıkışı bir sonraki adımda kullanmak üzere kopyalayın.
"sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U <username> -P <password> -N -l 30"
Bir önceki adımın çıkışındaki
sqlcmd
deyimini çalıştırarak etkileşimli bir oturum oluşturun. Komutun etrafındaki tırnak işaretlerini kaldırın ve<username>
ile<password>
yerine veritabanınızı oluştururken belirlediğiniz kullanıcı adını ve parolayı yazın. Bir örnek aşağıda verilmiştir:sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
Bahşiş
"&" ve diğer özel karakterlerin işlem yönergesi olarak yorumlanmaması için parolanızı tek tırnak içine alın.
Önemli
Aşağıdaki örneğe benzer bir hata iletisi görebilirsiniz:
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server: Cannot open server 'contoso' requested by the login. Client with IP address 'nnn.nnn.nnn.nnn' is not allowed to access the server. To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range. It may take up to five minutes for this change to take effect.
Bu hata oluşursa, istemciniz için başka bir güvenlik duvarı kuralı eklemeniz gerekir. Bunun için aşağıdaki adımları uygulayın:
Azure portal oturum açın.
Azure Giriş sayfasında, Azure hizmetleri'nin altında Tüm kaynaklar'ı seçin. Tüm kaynaklar bölmesi görüntülenir.
Veritabanınız için arama yapın ve bunu seçin. SQL veritabanınızın Lojistik bölmesi görüntülenir.
Üst menü çubuğunda Sunucu güvenlik duvarını ayarla'yı seçin. Ağ bölmesi görüntülenir.
Güvenlik duvarı kuralları bölümünde Güvenlik duvarı kuralı ekle'yi seçin. Güvenlik duvarı kuralı ekle bölmesi görüntülenir.
Benzersiz bir Kural adı belirtin ve sonra hem Başlangıç IP'si hem de Bitiş IP’si alanları için hata iletisinden IP adresinizi girin. Tamam seçeneğini işaretleyin.
Kaydet'i seçin.
sqlcmd
Etkileşimlisqlcmd
oturumunuzu başlatmak için deyimini yeniden çalıştırın. Aşağıdaki örneğe benzer olmalıdır:
sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
Oturumunuzu başlattığınıza
sqlcmd
göre, kalan komutlar Transact-SQL veya T-SQL dilini kullanır.Bahşiş
Bu modülde T-SQL komutlarını çalıştırırken,
GO
ikinci satırdaki komutu istemine kopyalanamayabilirsqlcmd
. Komutun ilk satırını girdikten sonra, komutu yazmanızGO
gerekebilir. T-SQL komutu bu olmadan yürütülmez, bu nedenleGO
komutunu çalıştırdığınızdan emin olun.Oturumunuzda
sqlcmd
aşağıdaki T-SQL deyimlerini çalıştırarak adlıDrivers
bir tablo oluşturun:CREATE TABLE Drivers (DriverID int, LastName varchar(255), FirstName varchar(255), OriginCity varchar(255)); GO
Tabloda dört sütun bulunur: benzersiz tanıtıcı, sürücünün soyadı, adı ve memleketi.
Tablonun mevcut olduğunu
Drivers
doğrulamak için aşağıdaki T-SQL deyimlerini çalıştırın:SELECT name FROM sys.tables; GO
Şu çıkışı almanız gerekir:
name -------------------------------------------------------------------------------------------------------------------------------- Drivers (1 rows affected)
Oluşturma işlemini test etmek için aşağıdaki T-SQL deyimlerini çalıştırarak tabloya örnek bir satır ekleyin:
INSERT INTO Drivers (DriverID, LastName, FirstName, OriginCity) VALUES (123, 'Zirne', 'Laura', 'Springfield'); GO
Bu çıkış işlemin başarılı olduğunu gösterir:
(1 rows affected)
Okuma işlemini test etmek için aşağıdaki T-SQL deyimlerini çalıştırarak tablodaki
DriverID
tüm satırlardaki veOriginCity
sütunlarını listeleyin:SELECT DriverID, OriginCity FROM Drivers; GO
Önceki adımda oluşturduğunuz satır için ve
OriginCity
ileDriverID
bir sonuç alırsınız.DriverID OriginCity ----------- -------------------------- 123 Springfield (1 rows affected)
Güncelleştirme işlemini test etmek için aşağıdaki T-SQL deyimlerini çalıştırarak kaynak şehri 123 olan sürücü
DriverID
için "Springfield" yerine "Boston" olarak değiştirin:UPDATE Drivers SET OriginCity='Boston' WHERE DriverID=123; GO
ve
OriginCity
sütunlarını yeniden listelemekDriverID
için aşağıdaki T-SQL deyimlerini çalıştırın:SELECT DriverID, OriginCity FROM Drivers; GO
Şimdi aşağıdaki çıkışı almanız gerekir.
OriginCity
öğesinin Boston güncelleştirmesini yansıttığına dikkat edin.DriverID OriginCity ----------- -------------------------- 123 Boston (1 rows affected)
Son olarak, kaydı silmek için aşağıdaki T-SQL deyimlerini çalıştırarak silme işlemini test edin:
DELETE FROM Drivers WHERE DriverID=123; GO
(1 rows affected)
Tablonun boş olduğunu doğrulamak
Drivers
için aşağıdaki T-SQL deyimlerini çalıştırın:SELECT COUNT(*) FROM Drivers; GO
Tabloda satır bulunmadığını göreceksiniz.
----------- 0 (1 rows affected)
Cloud Shell'den Azure SQL Veritabanı ile çalışmak için genel bir fikriniz olduğuna göre, sql server management studio, Visual Studio veya başka bir şeyden olsun, sık kullandığınız SQL yönetim aracının bağlantı dizesi alabilirsiniz.
Cloud Shell, Azure kaynaklarınıza erişmeyi ve üzerinde çalışma yapmayı kolaylaştırır. Cloud Shell tarayıcı tabanlı olduğundan Windows, macOS veya Linux'tan erişebilirsiniz; temelde web tarayıcısı olan herhangi bir sistem.
Azure veritabanınızla ilgili bilgilere ulaşmak için Azure CLI komutlarını çalıştırma konusunda deneyim edindiniz. Bonus olarak T-SQL becerilerinizi de geliştirdiniz.
Sonraki ünitede bu modülü tamamlayacağız ve veritabanınızı nasıl kaldıracağımızı açıklayacağız.