

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

# Perbedaan dalam membaca item menggunakan kunci utamanya
<a name="SQLtoNoSQL.ReadData.SingleItem"></a>

Salah satu pola akses umum untuk basis data adalah untuk membaca satu item dari tabel. Anda harus menentukan kunci primer dari item yang Anda inginkan.

**Topics**
+ [Membaca item menggunakan kunci primernya dengan SQL](#SQLtoNoSQL.ReadData.SingleItem.SQL)
+ [Membaca item menggunakan kunci primernya di DynamoDB](#SQLtoNoSQL.ReadData.SingleItem.DynamoDB)

## Membaca item menggunakan kunci primernya dengan SQL
<a name="SQLtoNoSQL.ReadData.SingleItem.SQL"></a>

Dalam SQL, Anda akan menggunakan pernyataan `SELECT` untuk mengambil data dari tabel. Anda dapat meminta satu kolom atau lebih dalam hasil (atau semuanya, jika Anda menggunakan operator `*`). Klausa `WHERE` menentukan baris mana yang dikembalikan.

Berikut ini adalah pernyataan `SELECT` untuk mengambil satu baris dari tabel *Music*. Klausa `WHERE` menentukan nilai-nilai kunci primer.

```
SELECT *
FROM Music
WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'
```

Anda dapat memodifikasi kueri ini untuk mengambil hanya subset dari kolom.

```
SELECT AlbumTitle, Year, Price
FROM Music
WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'
```

Perhatikan bahwa kunci utama untuk tabel ini terdiri dari *Artis* dan *SongTitle*.

## Membaca item menggunakan kunci primernya di DynamoDB
<a name="SQLtoNoSQL.ReadData.SingleItem.DynamoDB"></a>

Di Amazon DynamoDB, Anda dapat menggunakan DynamoDB API atau [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) (bahasa kueri yang kompatibel dengan SQL) untuk membaca item dari tabel.

------
#### [ DynamoDB API ]

Dengan DynamoDB API, Anda menggunakan operasi `PutItem` untuk menambahkan item ke tabel.

DynamoDB menyediakan operasi `GetItem` untuk mengambil item dengan kunci primernya. `GetItem` sangat efisien karena menyediakan akses langsung ke lokasi fisik item. (Untuk informasi selengkapnya, lihat [Partisi dan distribusi data di DynamoDB](HowItWorks.Partitions.md).)

Secara default, `GetItem` mengembalikan seluruh item dengan semua atribut.

```
{
    TableName: "Music",
    Key: {
        "Artist": "No One You Know",
        "SongTitle": "Call Me Today"
    }
}
```

Anda dapat menambahkan parameter `ProjectionExpression` untuk mengembalikan hanya beberapa atribut.

```
{
    TableName: "Music",
    Key: {
        "Artist": "No One You Know",
        "SongTitle": "Call Me Today"
    },
    "ProjectionExpression": "AlbumTitle, Year, Price"
}
```

Perhatikan bahwa kunci utama untuk tabel ini terdiri dari *Artis* dan *SongTitle*.

Operasi `GetItem` DynamoDB sangat efisien. Ini menggunakan nilai-nilai kunci primer untuk menentukan lokasi penyimpanan yang tepat dari item yang bersangkutan, dan mengambilnya langsung dari sana. Pernyataan `SELECT` SQL sama efisiennya, dalam hal mengambil item dengan nilai-nilai kunci primer.

Pernyataan `SELECT` mendukung berbagai jenis tabel kueri dan pindai. DynamoDB menyediakan fungsionalitas serupa dengan operasi `Query` dan `Scan`, yang dijelaskan dalam [Perbedaan dalam menanyakan tabel](SQLtoNoSQL.ReadData.Query.md) dan [Perbedaan dalam memindai tabel](SQLtoNoSQL.ReadData.Scan.md).

Pernyataan `SELECT` SQL dapat melakukan gabungan tabel, memungkinkan Anda untuk mengambil data dari beberapa tabel pada waktu yang sama. Gabungan paling efektif di mana tabel basis data dinormalisasi dan hubungan antara tabel jelas. Namun, jika Anda menggabungkan terlalu banyak tabel dalam satu performa aplikasi pernyataan `SELECT` dapat terpengaruh. Anda dapat mengatasi masalah tersebut dengan menggunakan replikasi basis data, tampilan terwujud, atau penulisan ulang kueri.

DynamoDB adalah basis data non-relasional dan tidak mendukung gabungan tabel. Jika Anda memigrasikan aplikasi yang ada dari basis data relasional ke DynamoDB, Anda perlu mendenormalisasi model data Anda untuk menghapus kebutuhan gabungan.

------
#### [ PartiQL for DynamoDB ]

Dengan PartiQL, Anda menggunakan operasi `ExecuteStatement` untuk membaca item dari tabel, menggunakan pernyataan `Select` PartiQL.

```
SELECT AlbumTitle, Year, Price
FROM Music
WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'
```

Perhatikan bahwa kunci utama untuk tabel ini terdiri dari Artis dan SongTitle. 

**catatan**  
 Pernyataan pilih PartiQL dapat digunakan juga pada tabel Kueri atau Pindai DynamoDB

Untuk contoh kode menggunakan `Select` dan `ExecuteStatement`, lihat [Pernyataan pemilihan PartiQL untuk DynamoDB](ql-reference.select.md).

------