Menanyakan data Anda - Database Buku Besar Amazon Quantum (AmazonQLDB)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menanyakan data Anda

penting

Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat Memigrasi QLDB Buku Besar Amazon ke Amazon Aurora Postgre. SQL

Tampilan pengguna mengembalikan revisi terbaru yang tidak dihapus dari data pengguna Anda saja. Ini adalah tampilan default di AmazonQLDB. Ini berarti bahwa tidak ada kualifikasi khusus yang diperlukan ketika Anda hanya ingin menanyakan data Anda.

Untuk detail tentang sintaks dan parameter contoh kueri berikut, lihat SELECT di referensi Amazon QLDB PartiQL.

Kueri dasar

SELECTKueri dasar mengembalikan dokumen yang Anda masukkan ke dalam tabel.

Awas

Saat Anda menjalankan kueri QLDB tanpa pencarian yang diindeks, kueri akan memanggil pemindaian tabel lengkap. PartiQL mendukung kueri semacam itu karena kompatibel. SQL Namun, jangan jalankan pemindaian tabel untuk kasus penggunaan produksi diQLDB. Pemindaian tabel dapat menyebabkan masalah kinerja pada tabel besar, termasuk konflik konkurensi dan batas waktu transaksi.

Untuk menghindari pemindaian tabel, Anda harus menjalankan pernyataan dengan klausa WHERE predikat menggunakan operator kesetaraan pada bidang yang diindeks atau ID dokumen; misalnya, atau. WHERE indexedField = 123 WHERE indexedField IN (456, 789) Untuk informasi selengkapnya, lihat Mengoptimalkan kinerja kueri.

Kueri berikut menunjukkan hasil untuk dokumen registrasi kendaraan yang sebelumnya Anda masukkanMembuat tabel dengan indeks dan memasukkan dokumen. Urutan hasil tidak spesifik dan dapat bervariasi untuk setiap SELECT kueri. Anda tidak harus bergantung pada urutan hasil untuk kueri apa punQLDB.

SELECT * FROM VehicleRegistration WHERE LicensePlateNumber IN ('LEWISR261LL', 'CA762X')
{ VIN: "1N4AL11D75C109151", LicensePlateNumber: "LEWISR261LL", State: "WA", City: "Seattle", PendingPenaltyTicketAmount: 90.25, ValidFromDate: 2017-08-21T, ValidToDate: 2020-05-11T, Owners: { PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" }, SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }] } }, { VIN: "KM8SRDHF6EU074761", LicensePlateNumber: "CA762X", State: "WA", City: "Kent", PendingPenaltyTicketAmount: 130.75, ValidFromDate: 2017-09-14T, ValidToDate: 2020-06-25T, Owners: { PrimaryOwner: { PersonId: "IN7MvYtUjkp1GMZu0F6CG9" }, SecondaryOwners: [] } }
SELECT * FROM Vehicle WHERE VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{ VIN: "1N4AL11D75C109151", Type: "Sedan", Year: 2011, Make: "Audi", Model: "A5", Color: "Silver" }, { VIN: "KM8SRDHF6EU074761", Type: "Sedan", Year: 2015, Make: "Tesla", Model: "Model S", Color: "Blue" }
penting

Di PartiQL, Anda menggunakan tanda kutip tunggal untuk menunjukkan string dalam bahasa manipulasi data () atau pernyataan kueri. DML Tetapi QLDB konsol dan QLDB shell mengembalikan kueri dalam format teks Amazon Ion, sehingga Anda melihat string terlampir dalam tanda kutip ganda.

Sintaks ini memungkinkan bahasa kueri PartiQL untuk SQL mempertahankan kompatibilitas, dan format teks Amazon Ion untuk menjaga kompatibilitas. JSON

Proyeksi dan filter

Anda dapat melakukan proyeksi (ditargetkanSELECT) dan filter standar lainnya (WHEREklausa). Query berikut mengembalikan subset bidang dokumen dari VehicleRegistration tabel. Ini menyaring kendaraan dengan kriteria sebagai berikut:

  • String filter - Ini terdaftar di Seattle.

  • Filter desimal — Ini memiliki jumlah tiket penalti yang tertunda kurang dari. 100.0

  • Filter tanggal - Ini memiliki tanggal pendaftaran yang berlaku pada atau setelah 4 September 2019.

SELECT r.VIN, r.PendingPenaltyTicketAmount, r.Owners FROM VehicleRegistration AS r WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761') AND r.City = 'Seattle' --string AND r.PendingPenaltyTicketAmount < 100.0 --decimal AND r.ValidToDate >= `2019-09-04T` --timestamp with day precision
{ VIN: "1N4AL11D75C109151", PendingPenaltyTicketAmount: 90.25, Owners: { PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" }, SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }] } }

Gabungan

Anda juga dapat menulis kueri gabungan batin. Contoh berikut menunjukkan permintaan gabungan internal implisit yang mengembalikan semua dokumen pendaftaran bersama dengan atribut kendaraan terdaftar.

SELECT * FROM VehicleRegistration AS r, Vehicle AS v WHERE r.VIN = v.VIN AND r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{ VIN: "1N4AL11D75C109151", LicensePlateNumber: "LEWISR261LL", State: "WA", City: "Seattle", PendingPenaltyTicketAmount: 90.25, ValidFromDate: 2017-08-21T, ValidToDate: 2020-05-11T, Owners: { PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" }, SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }] }, Type: "Sedan", Year: 2011, Make: "Audi", Model: "A5", Color: "Silver" }, { VIN: "KM8SRDHF6EU074761", LicensePlateNumber: "CA762X", State: "WA", City: "Kent", PendingPenaltyTicketAmount: 130.75, ValidFromDate: 2017-09-14T, ValidToDate: 2020-06-25T, Owners: { PrimaryOwner: { PersonId: "IN7MvYtUjkp1GMZu0F6CG9" }, SecondaryOwners: [] }, Type: "Sedan", Year: 2015, Make: "Tesla", Model: "Model S", Color: "Blue" }

Atau, Anda dapat menulis kueri gabungan dalam yang sama dalam sintaks eksplisit sebagai berikut.

SELECT * FROM VehicleRegistration AS r INNER JOIN Vehicle AS v ON r.VIN = v.VIN WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')

Data bersarang

Anda dapat menggunakan PartiQL untuk menanyakan data bersarang QLDB dalam dokumen. Contoh berikut menunjukkan subquery berkorelasi yang meratakan data bersarang. @Karakter secara teknis opsional di sini. Tetapi secara eksplisit menunjukkan bahwa Anda menginginkan Owners struktur di dalamnyaVehicleRegistration, bukan koleksi berbeda bernama Owners (jika ada).

SELECT r.VIN, o.SecondaryOwners FROM VehicleRegistration AS r, @r.Owners AS o WHERE r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{ VIN: "1N4AL11D75C109151", SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }] }, { VIN: "KM8SRDHF6EU074761", SecondaryOwners: [] }

Berikut ini menunjukkan subquery dalam SELECT daftar yang memproyeksikan data bersarang, sebagai tambahan untuk gabungan dalam.

SELECT v.Make, v.Model, (SELECT VALUE o.PrimaryOwner.PersonId FROM @r.Owners AS o) AS PrimaryOwner FROM VehicleRegistration AS r, Vehicle AS v WHERE r.VIN = v.VIN AND r.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
{ Make: "Audi", Model: "A5", PrimaryOwner: ["294jJ3YUoH1IEEm8GSabOs"] }, { Make: "Tesla", Model: "Model S", PrimaryOwner: ["IN7MvYtUjkp1GMZu0F6CG9"] }

Query berikut mengembalikan PersonId dan indeks (ordinal) nomor setiap orang dalam Owners.SecondaryOwners daftar untuk VehicleRegistration dokumen.

SELECT s.PersonId, owner_idx FROM VehicleRegistration AS r, @r.Owners.SecondaryOwners AS s AT owner_idx WHERE r.VIN = '1N4AL11D75C109151'
{
    PersonId: "5Ufgdlnj06gF5CWcOIu64s",
    owner_idx: 0
}

Untuk mempelajari cara menanyakan metadata dokumen Anda, lanjutkan ke. Meminta metadata dokumen