

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

# AWS IoT Referensi SQL
<a name="iot-sql-reference"></a>

Dalam AWS IoT, aturan didefinisikan menggunakan sintaks seperti SQL. Pernyataan SQL terdiri dari tiga jenis klausa:

**SET**  
(Opsional) Mendefinisikan variabel yang dapat Anda gunakan kembali di seluruh pernyataan SQL dan template substitusi. Tetapkan nilai ke variabel menggunakan ekspresi. Referensi variabel-variabel ini dalam klausa SELECT dan WHERE, dan dalam template substitusi tindakan.  
Klausa SET mendukung[Jenis Data](iot-sql-data-types.md),[Operator](iot-sql-operators.md),,[Fungsi](iot-sql-functions.md), [Literal](iot-sql-literals.md)[Pernyataan kasus](iot-sql-case.md), [Variabel [Ekstensi JSON](iot-sql-json.md)](iot-sql-set.md#iot-sql-set-usage), dan[Kueri objek bersarang](iot-sql-nested-queries.md).

**SELECT**  
(Wajib) Mengekstrak informasi dari muatan pesan yang masuk dan melakukan transformasi pada informasi. Pesan yang akan digunakan diidentifikasi oleh [filter topik](topics.md#topicfilters) yang ditentukan dalam klausa FROM.  
Klausa SELECT mendukung [Jenis Data](iot-sql-data-types.md)[Operator](iot-sql-operators.md),[Fungsi](iot-sql-functions.md),[Literal](iot-sql-literals.md),[Pernyataan kasus](iot-sql-case.md), [Ekstensi JSON](iot-sql-json.md)[Templat substitusi](iot-substitution-templates.md), [Variabel](iot-sql-set.md#iot-sql-set-usage)[Kueri objek bersarang](iot-sql-nested-queries.md), dan[Muatan biner](binary-payloads.md).

**FROM**  
[Filter topik](topics.md#topicfilters) pesan MQTT yang mengidentifikasi pesan untuk mengekstrak data. Aturan diaktifkan untuk setiap pesan yang dikirim ke topik MQTT yang cocok dengan filter topik yang ditentukan di sini. Diperlukan untuk aturan yang diaktifkan oleh pesan yang melewati broker pesan. Opsional untuk aturan yang hanya diaktifkan menggunakan fitur [Basic Ingest](iot-basic-ingest.md). 

**WHERE**  
(Opsional) Menambahkan logika bersyarat yang menentukan apakah tindakan yang ditentukan oleh aturan dilakukan.   
Klausa WHERE mendukung [Jenis Data](iot-sql-data-types.md)[Operator](iot-sql-operators.md),,[Fungsi](iot-sql-functions.md),[Literal](iot-sql-literals.md), [Pernyataan kasus](iot-sql-case.md)[Ekstensi JSON](iot-sql-json.md), [Variabel](iot-sql-set.md#iot-sql-set-usage), dan[Kueri objek bersarang](iot-sql-nested-queries.md).

Contoh pernyataan SQL terlihat seperti ini:

```
SELECT color AS rgb FROM 'topic/subtopic' WHERE temperature > 50
```

Contoh pesan MQTT (juga disebut payload masuk) terlihat seperti ini:

```
{
    "color":"red",
    "temperature":100
}
```

Jika pesan ini diterbitkan pada `'topic/subtopic'` topik, aturan dipicu dan pernyataan SQL dievaluasi. Pernyataan SQL mengekstrak nilai `color` properti jika `"temperature"` properti lebih besar dari 50. Klausa WHERE menentukan kondisi. `temperature > 50` `AS`Kata kunci mengganti nama `"color"` properti menjadi. `"rgb"` Hasilnya (juga disebut *payload keluar*) terlihat seperti ini:

```
{
    "rgb":"red"
}
```

Data ini kemudian diteruskan ke tindakan aturan, yang mengirimkan data untuk diproses lebih lanjut. Untuk informasi selengkapnya tentang tindakan aturan, lihat[AWS IoT tindakan aturan](iot-rule-actions.md).

**catatan**  
Komentar saat ini tidak didukung dalam sintaks AWS IoT SQL.  
Nama atribut dengan spasi di dalamnya tidak dapat digunakan sebagai nama bidang dalam pernyataan SQL. Meskipun payload yang masuk dapat memiliki nama atribut dengan spasi di dalamnya, nama tersebut tidak dapat digunakan dalam pernyataan SQL. Namun, mereka akan diteruskan ke payload keluar jika Anda menggunakan spesifikasi nama bidang wildcard (\*).