Alıştırma - Tabloları oluşturma, toplu içeri aktarma ve verileri sorgulama
Üniversite şu anda verilerini bir dizi virgülle ayrılmış dosyada depoluyor. Bu verileri Azure SQL Veritabanı'na geçirmeniz gerekir.
Bu alıştırmada, SQL Veritabanı hizmetini kullanarak bir veritabanı sunucusu ve tek bir veritabanı oluşturacaksınız. Ardından tablolar oluşturacak ve verileri veritabanına aktaracaksınız. Son olarak, verileri sorgulamak için sorgu düzenleyicisini sqlcmd
ve yardımcı programını kullanırsınız.
Var olan virgülle ayrılmış verileri inceleme
Azure Cloud Shell'de aşağıdaki komutu çalıştırarak üniversite sisteminin veri dosyalarını ve uygulama kodunu indirin.
git clone https://github.com/MicrosoftDocs/mslearn-develop-app-that-queries-azure-sql education
Örnek verileri kendi klasörüne taşımak ve klasördeki dosyaları listelemek için aşağıdaki komutları çalıştırın.
mv ~/education/data ~/educationdata cd ~/educationdata ls
Bu klasörde üç dosya vardır: courses.csv, modules.csv ve studyplans.csv.
Courses.csv dosyasının içeriğini görüntüleyin.
cat courses.csv
Dosya, aşağıdaki virgülle ayrılmış verileri içerir. Veriler, üniversitede verilen her bir dersin adından ve kimliğinden oluşur.
ID,Course 1,Computer Science 2,Maths with Computing 3,Maths with Physics 4,Computer Science with Physics 5,Maths with Chemistry 6,Physics with Chemistry 7,Maths 8,Physics 9,Chemistry
Modules.csv dosyasının içeriğini görüntüleyin.
cat modules.csv
Bu dosyada öğrencilerin derslerin gereksinimlerini tamamlamak için alabilecekleri çeşitli modüller listelenir. Her modülün tanımlama kodu ve adı vardır.
Module Code,Title CS101,Introduction to Computer Science CS102,Java Programming CS103,Distributed Applications CS104,Cloud-based systems MA101,Foundations of Applied Maths MA102,Advanced Calculus MA103,Number Theory MA104,String Theory PH101,Foundations of Physics PH102,Basic Experimental Phyics PH103,Basic Theoretical Physics PH104,Subatomic Physics CH101,Elements of Chemistry CH102,Basic Inorganic Chemistry CH103,Basic Organic Chemistry CH104,Chemical Engineering
Studyplans.csv dosyasının içeriğini görüntüleyin.
cat studyplans.csv
Bu dosya bir öğrencinin dersi başarıyla tamamlamak için geçmesi gereken modülleri belirtir. Sequence sütunu, öğrencinin her modülü hangi sırayla alması gerektiğini gösterir. Örneğin, 1. ders (Bilgisayar Bilimi) için öğrencinin MA101 modülünden önce CS101 modülünü alması gerekir. Verilerin bir bölümü burada gösterilmiştir.
Course ID,Module Code,Sequence 1,CS101,1 1,MA101,2 1,CS102,3 1,CS103,4 1,CS104,5 2,MA101,1 2,MA102,2 2,CS101,3 2,CS102,4 2,CS103,5 3,MA101,1 3,MA102,2 3,PH101,3 3,PH102,4 3,PH103,5 ...
SQL Veritabanı’nı kullanarak veritabanı sunucusu ve veritabanı oluşturma
Şimdi uygulamanın verilerini depolamak için veritabanını ve sunucuyu oluşturalım.
Korumalı alanı etkinleştirmek için kullandığınız hesapla Azure portalında oturum açın.
Azure portalı menüsündeki Azure hizmetleri'nin altında Kaynak oluştur'u seçin.
Kaynak oluştur bölmesi görüntülenir.
Sol menü bölmesinde Veritabanları'nı seçin ve Popüler Azure hizmetleri'nin altında SQL Veritabanı'ı seçin.
SQL Veritabanı Oluştur bölmesi görüntülenir.
Temel Bilgiler sekmesinde, her ayar için aşağıdaki değerleri girin.
Ayar Değer Proje ayrıntıları Abonelik Concierge Aboneliği Kaynak Grubu [Sandbox resource group] Veritabanı ayrıntıları Veritabanı adı Veritabanının benzersiz bir adı olmalıdır. coursedatabaseNNN gibi bir ad kullanmanızı öneririz; burada NNN, rastgele bir sayıdır. Sunucu Yeni oluştur bağlantısını seçin ve Yeni sunucu panelinde aşağıdaki tabloda yer alan ayrıntıları girin. SQL esnek havuzu kullanmak ister misiniz? No İşlem + depolama Genel amaçlı Sunucu için her ayar için aşağıdaki değerleri girin.
Ayar Değer Sunucu adı courseserverNNN; burada NNN, veritabanı için seçtiğiniz numaranın aynısıdır Sunucu yöneticisi oturum açma bilgileri azuresql Password Gereksinimleri karşılayan bir parola girin. Parolayı onaylayın Parolanızı onaylayın. Konum Central US Tamam seçeneğini işaretleyin.
İleri: Ağ'ı seçin.
Ağ sekmesinde, her ayar için aşağıdaki değerleri girin.
Ayar Değer Ağ bağlantısı Bağlantı yöntemi Genel uç nokta Güvenlik duvarı kuralları Azure hizmetlerinin ve kaynaklarının bu sunucuya erişmesine izin ver Evet Mevcut istemci IP adresi ekle Evet Gözden geçir ve oluştur’u seçin.
Oluştur’u seçin. Devam etmeden önce sunucu ve veritabanının oluşturulmasını bekleyin.
Tabloları oluşturma
Şimdi .csv dosyalarındaki verilerin depolanacağı tabloları oluşturabilirsiniz.
Kaynağa git’i seçin. coursedatabaseNNN için SQL veritabanınız görüntülenir.
Sol menü bölmesinde Sorgu düzenleyicisi (önizleme) öğesini seçin.
coursedatabaseNNN için Sorgu düzenleyicisi bölmesi görüntülenir.
Her ayar için aşağıdaki değerleri girin.
Ayar Değer SQL server kimlik doğrulaması Oturum aç azuresql Password Bu kullanıcıyı oluştururken kullandığınız parolayı belirtin. Dekont
Veritabanında oturum açarken hata alırsanız, hatada listelenen IP'yi denetleyin ve istemci IP'sine eklenen ip olduğundan emin olun. Genel Bakış>Sunucu güvenlik duvarını ayarla'yı seçerek bunu yapabilirsiniz.
Veritabanı hizmetine bağlanmak için Tamam'ı seçin.
Sorgu 1 bölmesinde aşağıdaki Transact-SQL (T-SQL) deyimini girin ve Çalıştır'ı seçin. Bu deyim ders bilgilerini barındırmak için yeni bir tablo oluşturur. Deyimin hatasız çalıştırıldığını doğrulayın.
CREATE TABLE Courses ( CourseID INT NOT NULL PRIMARY KEY, CourseName VARCHAR(50) NOT NULL )
Modülleri barındıracak bir tabloyu oluşturmak için var olan deyimi aşağıdaki deyimle değiştirin. Çalıştır'ı seçin ve deyimin hatasız çalıştırıldığını doğrulayın.
CREATE TABLE Modules ( ModuleCode VARCHAR(5) NOT NULL PRIMARY KEY, ModuleTitle VARCHAR(50) NOT NULL )
deyimini değiştirerek adlı
StudyPlans
bir tablo oluşturun ve çalıştır'ı seçin.CREATE TABLE StudyPlans ( CourseID INT NOT NULL, ModuleCode VARCHAR(5) NOT NULL, ModuleSequence INT NOT NULL, PRIMARY KEY(CourseID, ModuleCode) )
Veritabanı penceresinde, araç çubuğundaki Yenile simgesini seçin. Tablolar'ı genişletin ve her tabloyu sırayla genişletin. Her tablonun sütunları ve birincil anahtarıyla birlikte üç tabloyu (
dbo.Courses
,dbo.Modules
vedbo.StudyPlans
) görmeniz gerekir.Dekont
dbo, veritabanı sahibini ifade eder. Bu, veritabanındaki varsayılan şemadır. Üç tablo da bu şemayla oluşturulmuştur.
Verileri içeri aktarma
Cloud Shell'e dönün ve klasörde olduğunuzdan
educationdata
emin olun.cd ~/educationdata
Sonraki adımlarda kullandığınız değişkenleri oluşturun.
NNN
öğesini veritabanınız ve sunucunuz için kullandığınız numarayla değiştirin.export DATABASE_NAME=coursedatabaseNNN export DATABASE_SERVER=courseserverNNN export AZURE_USER=azuresql export AZURE_PASSWORD=[enter your password]
bcp
Yardımcı programını çalıştırarak veritabanındaki tablonun şemasındandbo.Courses
bir biçim dosyası oluşturun. Biçim dosyası, verilerin karakter biçiminde () ve virgülle (-c
-t,
) ayrıldığını belirtir.bcp "[$DATABASE_NAME].[dbo].[courses]" format nul -c -f courses.fmt -t, -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD
Kod düzenleyicisinde dosyasını açın
courses.fmt
. Önceki komut tarafından oluşturulan biçim dosyası.code courses.fmt
Dosya şu şekilde görünmelidir:
14.0 2 1 SQLCHAR 0 12 "," 1 CourseID "" 2 SQLCHAR 0 50 "\n" 2 CourseName SQL_Latin1_General_CP1_CI_AS
Dosyayı gözden geçirin. Virgülle ayrılmış dosyanın ilk sütunundaki veriler tablonun sütununa
CourseID
dbo.Courses
gider. İkinci alan sütunaCourseName
gider. İkinci sütun, karakter tabanlıdır ve bununla ilişkilendirilmiş bir harmanlama vardır. Dosyadaki alan ayırıcısının virgül olması beklenir. Satır sonlandırıcı (ikinci alandan sonra) bir yeni satır karakteri olmalıdır. Gerçek dünya senaryosunda verileriniz bu kadar düzgün düzenlenmeyebilir. Sütunlardan farklı bir düzende farklı alan ayırıcıları ve alanlarınız olabilir. Bu durumda bu öğeleri alan bazında değiştirmek için biçim dosyasını düzenleyebilirsiniz. Düzenleyiciyi kapatmak için Ctrl+Q tuşlarına basın.Dosyadaki
courses.csv
verileri değiştirilencourses.fmt
dosya tarafından belirtilen biçimde içeri aktarmak için aşağıdaki komutu çalıştırın.-F 2
bayrağı,bcp
yardımcı programına veri dosyasındaki 2. satırdan verileri içeri aktarmaya başlamasını bildirir. İlk satır üst bilgileri içerir.bcp "[$DATABASE_NAME].[dbo].[courses]" in courses.csv -f courses.fmt -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD -F 2
bcp
yardımcı programının dokuz satırı içeri aktardığını ve herhangi bir hata bildirmediğini doğrulayın.Tablonun verilerini dosyadan içeri aktarmak için aşağıdaki işlem dizisini
dbo.Modules
modules.csv
çalıştırın.Bir biçim dosyası oluşturun.
bcp "[$DATABASE_NAME].[dbo].[modules]" format nul -c -f modules.fmt -t, -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD
Dosyadaki
modules.csv
verileri veritabanındakidbo.Modules
tabloya aktarın.bcp "[$DATABASE_NAME].[dbo].[modules]" in modules.csv -f modules.fmt -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD -F 2
Bu komutun 16 satırı içeri aktardığını doğrulayın.
Tablo verilerini dosyadan içeri aktarmak için aşağıdaki işlem dizisini
dbo.StudyPlans
gerçekleştirinstudyplans.csv
.Bir biçim dosyası oluşturun.
bcp "[$DATABASE_NAME].[dbo].[studyplans]" format nul -c -f studyplans.fmt -t, -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD
Dosyadaki
studyplans.csv
verileri veritabanındakidbo.StudyPlans
tabloya aktarın.bcp "[$DATABASE_NAME].[dbo].[studyplans]" in studyplans.csv -f studyplans.fmt -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD -F 2
Bu komutun 45 satırı içeri aktardığını doğrulayın.
Veritabanındaki verileri sorgulama
Azure portalına geri dönün.
Azure portalı menüsünde SQL veritabanları'nı seçin.
SQL veritabanları bölmesinde coursedatabaseNNN öğesini seçin. coursedatabaseNNN bölmesi görüntülenir.
Sol menü bölmesinde Sorgu düzenleyicisi'ni seçin. coursedatabaseNNN için Sorgu düzenleyicisi bölmesi görüntülenir.
Her ayar için aşağıdaki değerleri girin.
Ayar Değer SQL server kimlik doğrulaması Oturum aç azuresql Password Bu kullanıcının parolasını girin. Veritabanı hizmetine bağlanmak için Tamam'ı seçin.
Sorgu 1 bölmesinde aşağıdaki T-SQL deyimini girin ve Çalıştır'ı seçin.
SELECT * FROM dbo.Courses
Bu deyim verileri tablodan
dbo.Courses
alır. Sonuç penceresinde dokuz satır görüntüleniyor olmalıdır.Sorguyu aşağıda gösterildiği gibi değiştirin ve Çalıştır'ı seçin.
SELECT * FROM dbo.Modules
Bu kez Sonuçlar penceresinde modülleri görüyor olmalısınız. 16 satır vardır.
Cloud Shell'e dönün ve veritabanına bağlanmak için aşağıdaki komutu çalıştırın.
sqlcmd -S "$DATABASE_SERVER.database.windows.net" -d "$DATABASE_NAME" -U $AZURE_USER -P $AZURE_PASSWORD
1>
İstemde, tablodan verileridbo.StudyPlans
getirmek için aşağıdaki T-SQL komutunu çalıştırın.SELECT * FROM StudyPlans; GO
Bu sorgu 45 satır döndürmelidir.
1>
İstemde, sqlcmd yardımcı programını kapatmak için girinexit
.
SQL Veritabanı’nı kullanarak tek bir veritabanı oluşturdunuz. Daha sonra tablolar oluşturmak için Azure portalındaki sorgu düzenleyicisini kullandınız. Ardından bir dizi virgülle ayrılmış veri dosyasından verileri karşıya yüklemek için bcp
yardımcı programını kullandınız. Son olarak, Azure portalında sorgu düzenleyicisinden ve Cloud Shell'de sqlcmd
yardımcı programından veritabanındaki tablolar üzerinde sorgular çalıştırdınız.