Latihan - Membuat tabel, mengimpor secara massal, dan data kueri

Selesai

Universitas saat ini menyimpan data mereka dalam serangkaian file yang dibatasi koma. Anda perlu memigrasikan data ini ke Azure SQL Database.

Dalam latihan ini, Anda membuat server database dan database tunggal dengan menggunakan layanan SQL Database. Selanjutnya, Anda membuat tabel dan mengimpor data ke dalam database. Terakhir, Anda menggunakan editor kueri dan sqlcmd utilitas untuk mengkueri data.

Memeriksa data yang dibatasi koma yang ada

  1. Di Azure Cloud Shell, jalankan perintah berikut untuk mengunduh file data dan kode aplikasi untuk sistem universitas.

    git clone https://github.com/MicrosoftDocs/mslearn-develop-app-that-queries-azure-sql education
    
  2. Jalankan perintah berikut untuk memindahkan data sampel ke foldernya sendiri dan buat daftar file dalam folder tersebut.

    mv ~/education/data ~/educationdata
    cd ~/educationdata
    ls
    

    Folder ini berisi tiga file: courses.csv, modules.csv, dan studyplans.csv.

  3. Menampilkan isi file berkascourses.csv.

    cat courses.csv
    

    File ini memuat data yang dipisahkan koma berikut ini. Ini termasuk nama mata kuliah dan ID untuk setiap mata kuliah yang ditawarkan universitas.

    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
    
  4. Menampilkan isi berkasmodules.csv.

    cat modules.csv
    

    File ini mencantumkan berbagai modul yang dapat diambil siswa untuk memenuhi persyaratan mata kuliah. Setiap modul memiliki kode identifikasi dan nama.

    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
    
  5. Menampilkan isi berkasstudyplans.csv.

    cat studyplans.csv
    

    File ini berisi data yang menentukan modul mana yang harus lulus siswa untuk menyelesaikan kursus dengan sukses. Kolom Urutan memperlihatkan urutan di mana siswa harus mengambil setiap modul. Misalnya untuk kursus 1 (Ilmu Komputer), mahasiswa harus mengambil modul CS101 sebelum modul MA101. Bagian dari data diperlihatkan di sini.

    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
    ...
    

Membuat server database dan database dengan menggunakan SQL Database

Mari kita membuat database dan server untuk menyimpan data untuk aplikasi.

  1. Masuk ke portal Azure menggunakan akun yang sama yang digunakan untuk mengaktifkan sandbox.

  2. Dari menu portal Microsoft Azure, di bagian Layanan Azure, pilih Buat sumber daya.

    Screenshot of Azure portal menu and Create a resource option.

    Panel Buat sumber daya akan muncul.

  3. Di panel menu kiri, pilih Database, dan di bawah Layanan Azure Populer, pilih SQL Database.

    Screenshot of the Databases and SQL Database options.

    Panel Buat Database SQL akan muncul.

  4. Pada tab Dasar, masukkan nilai berikut untuk setiap pengaturan.

    Pengaturan Nilai
    Detail proyek
    Langganan Langganan Concierge
    Grup Sumber Daya [Grup sumber daya kotak pasir]
    Detail database
    Nama database Database harus memiliki nama yang unik. Kami sarankan menggunakan sesuatu seperti coursedatabaseNNN, di mana NNN adalah angka acak.
    Server Pilih tautan Buat baru, dan di panel Server baru, masukkan detail yang ada di tabel berikut.
    Ingin menggunakan kumpulan elastis SQL? Tidak
    Komputasi + penyimpanan Tujuan umum

    Untuk server, masukkan nilai berikut untuk setiap pengaturan.

    Pengaturan Nilai
    Nama server courseserverNNN, di mana NNN adalah angka yang sama yang Anda pilih untuk database
    Proses masuk admin server azuresql
    Kata sandi Masukkan kata sandi yang memenuhi persyaratan
    Mengonfirmasikan kata sandi Konfirmasikan sandi Anda.
    Lokasi US Tengah
  5. Pilih OK.

  6. Pilih Berikutnya : Jaringan.

  7. Pada tab Jaringan, masukkan nilai berikut untuk setiap pengaturan.

    Pengaturan Nilai
    Konektivitas jaringan
    Metode konektivitas Titik akhir publik
    Aturan Firewall
    Izinkan layanan dan sumber daya Azure untuk mengakses ruang kerja ini Ya
    Tambahkan alamat IP klien saat ini Ya
  8. Pilih Tinjau + buat.

  9. Pilih Buat. Tunggu server dan database dibuat sebelum Anda melanjutkan.

Membuat tabel

Sekarang Anda dapat membuat tabel untuk menyimpan data dari .csv file.

  1. Pilih Buka sumber daya. Database SQL Anda untuk coursedatabaseNNN muncul.

  2. Di panel menu sebelah kiri, pilih Editor kueri (pratinjau).

    The database page in the Azure portal with the query editor option highlighted.

    Panel Editor kueri untuk coursedatabaseNNN muncul.

  3. Masukkan nilai berikut untuk setiap pengaturan.

    Pengaturan Nilai
    Autentikasi server SQL
    Masuk azuresql
    Kata sandi Tentukan kata sandi yang Anda gunakan ketika Anda membuat pengguna ini.

    Catatan

    Jika Anda mendapatkan kesalahan saat masuk ke database, periksa IP yang tercantum dalam kesalahan, dan pastikan IP adalah IP yang ditambahkan sebagai IP klien. Anda dapat melakukannya dengan memilih Gambaran Umum>Atur firewall server.

  4. Pilih OKE untuk menyambung ke layanan database.

  5. Di panel Kueri 1 , masukkan pernyataan Transact-SQL (T-SQL) berikut ini, lalu pilih Jalankan. Pernyataan ini membuat tabel baru untuk menampung informasi kursus. Verifikasi bahwa pernyataan tersebut berjalan tanpa kesalahan.

    CREATE TABLE Courses
    (
        CourseID INT NOT NULL PRIMARY KEY,
        CourseName VARCHAR(50) NOT NULL
    )
    

    The Query editor window in the Azure portal. The user has entered a statement to create the Courses table.

  6. Timpa pernyataan yang ada dengan pernyataan berikut yang membuat tabel untuk menangguhkan modul. Pilih Jalankan, dan kemudian verifikasi bahwa pernyataan berjalan tanpa kesalahan.

    CREATE TABLE Modules
    (
        ModuleCode VARCHAR(5) NOT NULL PRIMARY KEY,
        ModuleTitle VARCHAR(50) NOT NULL
    )
    
  7. Ubah pernyataan untuk membuat tabel bernama StudyPlans, lalu pilih Jalankan.

    CREATE TABLE StudyPlans
    (
        CourseID INT NOT NULL,
        ModuleCode VARCHAR(5) NOT NULL,
        ModuleSequence INT NOT NULL,
        PRIMARY KEY(CourseID, ModuleCode)
    )
    
  8. Di jendela database, pilih ikon Refresh pada bar alat. Luaskan Tabel, lalu luaskan setiap tabel secara bergantian. Anda akan melihat tiga tabel (dbo.Courses, dbo.Modules, dan dbo.StudyPlans), bersama dengan kolom dan kunci utama untuk setiap tabel.

    Catatan

    dbo adalah singkatan dari database.owner. Ini skema default dalam database. Ketiga tabel dibuat dalam skema ini.

    The database window in the Azure portal, showing the tables and columns.

Impor data

  1. Kembali ke Cloud Shell, dan pastikan Anda berada di educationdata folder .

    cd ~/educationdata
    
  2. Buat variabel yang Anda gunakan di langkah selanjutnya. Ganti NNN dengan nomor yang Anda gunakan untuk database dan server Anda.

    export DATABASE_NAME=coursedatabaseNNN
    export DATABASE_SERVER=courseserverNNN
    export AZURE_USER=azuresql
    export AZURE_PASSWORD=[enter your password]
    
  3. Jalankan bcp utilitas untuk membuat file format dari skema dbo.Courses tabel dalam database. File format menentukan bahwa data dalam format karakter (-c) dan dipisahkan oleh koma (-t,).

    bcp "[$DATABASE_NAME].[dbo].[courses]" format nul -c -f courses.fmt -t, -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD
    
  4. Di editor kode, buka courses.fmt. File format yang dihasilkan oleh perintah sebelumnya.

    code courses.fmt
    

    File tersebut akan terlihat seperti ini:

    14.0
    2
    1       SQLCHAR             0       12      ","    1     CourseID                                     ""
    2       SQLCHAR             0       50      "\n"   2     CourseName                                   SQL_Latin1_General_CP1_CI_AS
    
  5. Tinjau file tersebut. Data di kolom pertama file yang dipisahkan koma masuk ke CourseID kolom dbo.Courses tabel. Bidang kedua masuk ke CourseName kolom. Kolom kedua berbasis karakter dan memiliki kolase yang terkait dengannya. Pemisah bidang dalam file diharapkan berupa koma. Terminator baris (setelah bidang kedua) harus berupa karakter baris baru. Dalam skenario dunia nyata, data Anda mungkin tidak diatur dengan begitu rapi. Anda mungkin memiliki pemisah bidang dan bidang berbeda dalam urutan yang berbeda dari kolom. Dalam situasi tersebut, Anda dapat mengedit file format untuk mengubah item ini pada setiap bidang. Tekan Ctrl + Q untuk menutup editor.

  6. Jalankan perintah berikut untuk mengimpor data dalam courses.csv file dalam format yang ditentukan oleh file yang diubah courses.fmt . -F 2Bendera mengarahkanbcp utilitas untuk mulai mengimpor data dari baris 2 di file data. Baris pertama berisi header.

    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
    

    Verifikasikan bahwa bcp utilitas mengimpor sembilan baris dan tidak melaporkan kesalahan.

  7. Jalankan urutan operasi berikut untuk mengimpor data untuk dbo.Modules tabel dari modules.csv file.

    1. Buat file format.

      bcp "[$DATABASE_NAME].[dbo].[modules]" format nul -c -f modules.fmt -t, -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD
      
    2. Impor data dari modules.csv file ke dbo.Modules dalam tabel dalam database.

      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
      

      Pastikan perintah ini mengimpor 16 baris.

  8. Lakukan urutan operasi berikut untuk mengimpor data untuk dbo.StudyPlans tabel dari studyplans.csv file.

    1. Buat file format.

      bcp "[$DATABASE_NAME].[dbo].[studyplans]" format nul -c -f studyplans.fmt -t, -S "$DATABASE_SERVER.database.windows.net" -U $AZURE_USER -P $AZURE_PASSWORD
      
    2. Impor data dari studyplans.csv file ke dbo.StudyPlans dalam tabel dalam database.

      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
      

      Pastikan perintah ini mengimpor 45 baris.

Kueri data di database

  1. Kembali ke portal Microsoft Azure.

  2. Pada menu portal Azure, pilih database SQL.

  3. Pada panel Database SQL, pilih coursedatabaseNNN. Panel coursedatabaseNNN muncul.

  4. Di panel menu sebelah kiri, pilih Editor kueri. Panel Editor kueri untuk coursedatabaseNNN muncul.

  5. Masukkan nilai berikut untuk setiap pengaturan.

    Pengaturan Nilai
    Autentikasi server SQL
    Masuk azuresql
    Kata sandi Masukkan kata sandi untuk pengguna ini.
  6. Pilih OKE untuk menyambung ke layanan database.

  7. Di panel Kueri 1 , masukkan pernyataan T-SQL berikut ini, lalu pilih Jalankan.

    SELECT * FROM dbo.Courses
    

    Pernyataan ini mengambil data dari dbo.Courses tabel. Jendela hasil harus menampilkan sembilan baris.

    Screenshot of the query editor in the Azure portal, showing the data retrieved from the Courses table.

  8. Ubah kueri sebagai berikut, lalu pilih Jalankan.

    SELECT * FROM dbo.Modules
    

    Kali ini Anda akan melihat modul di jendela Hasil. Ada 16 baris.

  9. Kembali ke Cloud Shell, dan jalankan perintah berikut untuk tersambung ke database.

    sqlcmd -S "$DATABASE_SERVER.database.windows.net" -d "$DATABASE_NAME" -U $AZURE_USER -P $AZURE_PASSWORD
    
  10. 1> Pada perintah , jalankan perintah T-SQL berikut untuk mengambil data dari dbo.StudyPlans tabel.

    SELECT * FROM StudyPlans;  
    GO
    

    Kueri ini harus menghasilkan 45 baris.

  11. 1> Pada perintah, masukkan exit untuk menutup utilitas sqlcmd.

Anda membuat database tunggal dengan menggunakan SQL Database. Berikutnya, Anda menggunakan editor kueri di portal Azure untuk membuat tabel. Anda kemudian menggunakan utilitas bcp untuk mengunggah data dari serangkaian file data yang dibatasi koma. Terakhir, Anda menjalankan kueri pada tabel dalam database dari editor kueri di portal Azure dan dari sqlcmd utilitas di Cloud Shell.