Consultar seus dados - Banco de dados Amazon Quantum Ledger (AmazonQLDB)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Consultar seus dados

Importante

Aviso de fim do suporte: os clientes existentes poderão usar a Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte Migrar um Amazon QLDB Ledger para o Amazon Aurora Postgre. SQL

A visualização do usuário retorna somente a última revisão não excluída dos seus dados do usuário. Essa é a visualização padrão na AmazonQLDB. Isso significa que nenhum qualificador especial é necessário quando você deseja consultar somente seus dados.

Para obter detalhes sobre a sintaxe e os parâmetros dos exemplos de consulta a seguir, consulte a SELECT referência do Amazon QLDB PartiQL.

Consultas básicas

Consultas SELECT básicas retornam os documentos que você inseriu na tabela.

Atenção

Quando você executa uma consulta QLDB sem uma pesquisa indexada, ela invoca uma verificação completa da tabela. O partiQL suporta essas consultas porque é compatível. SQL No entanto, não execute varreduras de tabela para casos de uso de produção emQLDB. Verificações de tabela podem causar problemas de performance em tabelas grandes, incluindo conflitos de simultaneidade e tempos limite de transação.

Para evitar verificações de tabelas, você deve executar instruções com uma cláusula de predicado WHERE usando um operador de igualdade em um campo indexado ou em um ID de documento, por exemplo, WHERE indexedField = 123 ou WHERE indexedField IN (456, 789). Para ter mais informações, consulte Otimizar a performance da consulta.

As consultas a seguir mostram os resultados dos documentos de registro do veículo que você inseriu anteriormente em Criação de tabelas com índices e inserção de documentos. A ordem dos resultados não é específica e pode variar para cada consulta SELECT. Você não deve confiar na ordem dos resultados para qualquer consulta emQLDB.

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" }
Importante

No PartiQL, você usa aspas simples para denotar cadeias de caracteres na linguagem de manipulação de dados () ou em instruções de consulta. DML Mas o QLDB console e o QLDB shell retornam os resultados da consulta no formato de texto Amazon Ion, então você vê cadeias de caracteres entre aspas duplas.

Essa sintaxe permite que a linguagem de consulta PartiQL SQL mantenha a compatibilidade e o formato de texto Amazon Ion mantenha a JSON compatibilidade.

Projeções e filtros

Você pode fazer projeções (SELECT direcionadas) e outros filtros padrão (cláusulas WHERE). A consulta a seguir retorna um subconjunto dos campos do documento da tabela VehicleRegistration. Ela filtra veículos com os seguintes critérios

  • Filtro de string: está registrado em Seattle.

  • Filtro decimal - Tem um valor de multa pendente menor que 100.0.

  • Filtro de data: tem uma data de registro válida em ou após 4 de setembro de 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" }] } }

Junções

Você também pode escrever consultas de junção internas. O exemplo a seguir mostra uma consulta de junção interna implícita que retorna todos os documentos de registro junto com os atributos dos veículos registrados.

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" }

Ou você pode escrever a mesma consulta de junção interna na sintaxe explícita da seguinte forma.

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

Dados aninhados

Você pode usar o PartiQL in QLDB para consultar dados aninhados em documentos. O exemplo a seguir mostra uma subconsulta correlacionada que nivela os dados aninhados. O caractere @ é tecnicamente opcional aqui. Mas isso indica explicitamente que você deseja a estrutura Owners em VehicleRegistration, não uma coleção com um nome Owners diferente (se houver).

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: [] }

Veja a seguir uma subconsulta na lista SELECT que projeta dados aninhados, além de uma junção interna.

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"] }

A consulta a seguir retorna o número de índice PersonId e (ordinal) de cada pessoa na lista Owners.SecondaryOwners de um documento VehicleRegistration.

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
}

Para saber como consultar os metadados do seu documento, vá para Consultar metadados do documento.