

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

# Membaca data dari tabel menggunakan `SELECT` pernyataan CQL di Amazon Keyspaces
<a name="getting-started.dml.read"></a>

Di [Memasukkan dan memuat data ke dalam tabel Amazon Keyspaces](getting-started.dml.create.md) bagian ini, Anda menggunakan `SELECT` pernyataan untuk memverifikasi bahwa Anda telah berhasil menambahkan data ke tabel Anda. Di bagian ini, Anda menyempurnakan penggunaan `SELECT` untuk menampilkan kolom tertentu, dan hanya baris yang memenuhi kriteria tertentu.

Bentuk umum `SELECT` pernyataan tersebut adalah sebagai berikut.

```
SELECT column_list FROM table_name [WHERE condition [ALLOW FILTERING]] ;
```

**Topics**
+ [Pilih semua data di tabel Anda](#getting-started.dml.read.all)
+ [Pilih subset kolom](#getting-started.dml.read.columns)
+ [Pilih subset baris](#getting-started.dml.read.rows)

## Pilih semua data di tabel Anda
<a name="getting-started.dml.read.all"></a>

Bentuk paling sederhana dari `SELECT` pernyataan mengembalikan semua data dalam tabel Anda.

**penting**  
 Dalam lingkungan produksi, biasanya bukan praktik terbaik untuk menjalankan perintah ini, karena ia mengembalikan semua data dalam tabel Anda. 

**Untuk memilih semua data tabel**

1. Buka AWS CloudShell dan sambungkan ke Amazon Keyspaces menggunakan perintah berikut. Pastikan untuk memperbarui *us-east-1* dengan Wilayah Anda sendiri. 

   ```
   cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
   ```

1. Jalankan query berikut.

   ```
   SELECT * FROM catalog.book_awards ;
   ```

   Menggunakan karakter wild-card (`*`) untuk `column_list` memilih semua kolom. Output dari pernyataan terlihat seperti contoh berikut.

   ```
    year | award            | category    | rank | author             | book_title            | publisher
   ------+------------------+-------------+------+--------------------+-----------------------+---------------
    2020 |             Wolf | Non-Fiction |    1 |        Wang Xiulan |      History of Ideas |  AnyPublisher
    2020 |             Wolf | Non-Fiction |    2 | Ana Carolina Silva |         Science Today | SomePublisher
    2020 |             Wolf | Non-Fiction |    3 |  Shirley Rodriguez | The Future of Sea Ice |  AnyPublisher
    2020 | Kwesi Manu Prize |     Fiction |    1 |         Akua Mansa |     Where did you go? | SomePublisher
    2020 | Kwesi Manu Prize |     Fiction |    2 |        John Stiles |             Yesterday | Example Books
    2020 | Kwesi Manu Prize |     Fiction |    3 |         Nikki Wolf | Moving to the Chateau |  AnyPublisher
    2020 |      Richard Roe |     Fiction |    1 |  Alejandro Rosalez |           Long Summer | SomePublisher
    2020 |      Richard Roe |     Fiction |    2 |        Arnav Desai |               The Key | Example Books
    2020 |      Richard Roe |     Fiction |    3 |      Mateo Jackson |      Inside the Whale |  AnyPublisher
   ```

## Pilih subset kolom
<a name="getting-started.dml.read.columns"></a>

**Untuk menanyakan subset kolom**

1. Buka AWS CloudShell dan sambungkan ke Amazon Keyspaces menggunakan perintah berikut. Pastikan untuk memperbarui *us-east-1* dengan Wilayah Anda sendiri. 

   ```
   cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
   ```

1. Untuk mengambil hanya`award`,`category`, dan `year` kolom, jalankan query berikut.

   ```
   SELECT award, category, year FROM catalog.book_awards ;
   ```

   Output hanya berisi kolom yang ditentukan dalam urutan yang tercantum dalam `SELECT` pernyataan.

   ```
    award            | category    | year
   ------------------+-------------+------
                Wolf | Non-Fiction | 2020
                Wolf | Non-Fiction | 2020
                Wolf | Non-Fiction | 2020
    Kwesi Manu Prize |     Fiction | 2020
    Kwesi Manu Prize |     Fiction | 2020
    Kwesi Manu Prize |     Fiction | 2020
         Richard Roe |     Fiction | 2020
         Richard Roe |     Fiction | 2020
         Richard Roe |     Fiction | 2020
   ```

## Pilih subset baris
<a name="getting-started.dml.read.rows"></a>

Saat menanyakan kumpulan data besar, Anda mungkin hanya menginginkan catatan yang memenuhi kriteria tertentu. Untuk melakukan ini, Anda dapat menambahkan `WHERE` klausa ke akhir pernyataan kami`SELECT`.

**Untuk menanyakan subset baris**

1. Buka AWS CloudShell dan sambungkan ke Amazon Keyspaces menggunakan perintah berikut. Pastikan untuk memperbarui *us-east-1* dengan Wilayah Anda sendiri. 

   ```
   cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
   ```

1. Untuk mengambil hanya catatan untuk penghargaan tahun tertentu, jalankan kueri berikut.

   ```
   SELECT * FROM catalog.book_awards WHERE year=2020 AND award='Wolf' ;
   ```

   `SELECT`Pernyataan sebelumnya mengembalikan output berikut.

   ```
    year | award | category    | rank | author             | book_title            | publisher
   ------+-------+-------------+------+--------------------+-----------------------+---------------
    2020 |  Wolf | Non-Fiction |    1 |        Wang Xiulan |      History of Ideas |  AnyPublisher
    2020 |  Wolf | Non-Fiction |    2 | Ana Carolina Silva |         Science Today | SomePublisher
    2020 |  Wolf | Non-Fiction |    3 |  Shirley Rodriguez | The Future of Sea Ice |  AnyPublisher
   ```

### Memahami `WHERE` klausa
<a name="getting-started.dml.where"></a>

`WHERE`Klausul ini digunakan untuk memfilter data dan hanya mengembalikan data yang memenuhi kriteria yang ditentukan. Kriteria yang ditentukan dapat berupa kondisi sederhana atau kondisi majemuk. 

**Cara menggunakan kondisi dalam `WHERE` klausa**
+ Kondisi sederhana - Satu kolom.

  ```
  WHERE column_name=value
  ```

  Anda dapat menggunakan kondisi sederhana dalam `WHERE` klausa jika salah satu dari kondisi berikut terpenuhi:
  + Kolom adalah satu-satunya kolom kunci partisi dari tabel.
  + Anda menambahkan `ALLOW FILTERING` setelah kondisi dalam `WHERE` klausa.

    Ketahuilah bahwa penggunaan `ALLOW FILTERING` dapat menghasilkan kinerja yang tidak konsisten, terutama dengan tabel besar dan multi-partisi.
+ Kondisi majemuk — Beberapa kondisi sederhana yang dihubungkan oleh`AND`.

  ```
  WHERE column_name1=value1 AND column_name2=value2 AND column_name3=value3...
  ```

  Anda dapat menggunakan kondisi majemuk dalam `WHERE` klausa jika salah satu dari kondisi berikut terpenuhi:
  + Kolom yang dapat Anda gunakan dalam `WHERE` klausa harus menyertakan semua atau subset kolom dalam kunci partisi tabel. Jika Anda ingin menggunakan hanya subset kolom dalam `WHERE` klausa, Anda harus menyertakan satu set kolom kunci partisi yang berdekatan dari kiri ke kanan, dimulai dengan kolom utama kunci partisi. Misalnya, jika kolom kunci partisi adalah`year`,`month`, dan `award` kemudian Anda dapat menggunakan kolom berikut dalam `WHERE` klausa: 
    + `year`
    + `year`DAN `month`
    + `year``month`DAN `award`
  + Anda menambahkan `ALLOW FILTERING` setelah kondisi majemuk dalam `WHERE` klausa, seperti pada contoh berikut.

    ```
    SELECT * FROM my_table WHERE col1=5 AND col2='Bob' ALLOW FILTERING ;
    ```

    Ketahuilah bahwa penggunaan `ALLOW FILTERING` dapat menghasilkan kinerja yang tidak konsisten, terutama dengan tabel besar dan multi-partisi.

### Cobalah
<a name="getting-started.dml.try"></a>

Buat kueri CQL Anda sendiri untuk menemukan yang berikut dari tabel Anda: `book_awards`
+ Temukan pemenang penghargaan Wolf 2020 dan tampilkan judul buku dan penulis, diurutkan berdasarkan peringkat.
+ Tunjukkan pemenang hadiah pertama untuk semua penghargaan pada tahun 2020 dan tampilkan judul buku dan nama penghargaan.