ClickHouse/docs/tr/sql_reference/operators.md
2020-04-15 16:56:49 +03:00

278 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
machine_translated: true
machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
toc_priority: 37
toc_title: "Operat\xF6rler"
---
# Operatörler {#operators}
ClickHouse onların öncelik, öncelik ve ilişkilendirme göre sorgu ayrıştırma aşamasında karşılık gelen işlevlere işleçleri dönüştürür.
## Erişim Operatörleri {#access-operators}
`a[N]` Access to an element of an array. The `arrayElement(a, N)` işlev.
`a.N` Access to a tuple element. The `tupleElement(a, N)` işlev.
## Sayısal Olumsuzlama Operatörü {#numeric-negation-operator}
`-a` The `negate (a)` işlev.
## Çarpma ve bölme operatörleri {#multiplication-and-division-operators}
`a * b` The `multiply (a, b)` işlev.
`a / b` The `divide(a, b)` işlev.
`a % b` The `modulo(a, b)` işlev.
## Toplama ve çıkarma operatörleri {#addition-and-subtraction-operators}
`a + b` The `plus(a, b)` işlev.
`a - b` The `minus(a, b)` işlev.
## Karşılaştırma Operatörleri {#comparison-operators}
`a = b` The `equals(a, b)` işlev.
`a == b` The `equals(a, b)` işlev.
`a != b` The `notEquals(a, b)` işlev.
`a <> b` The `notEquals(a, b)` işlev.
`a <= b` The `lessOrEquals(a, b)` işlev.
`a >= b` The `greaterOrEquals(a, b)` işlev.
`a < b` The `less(a, b)` işlev.
`a > b` The `greater(a, b)` işlev.
`a LIKE s` The `like(a, b)` işlev.
`a NOT LIKE s` The `notLike(a, b)` işlev.
`a BETWEEN b AND c` The same as `a >= b AND a <= c`.
`a NOT BETWEEN b AND c` The same as `a < b OR a > c`.
## Veri kümeleriyle çalışmak için operatörler {#operators-for-working-with-data-sets}
*Görmek [Operatör İNLERDE](statements/select.md#select-in-operators).*
`a IN ...` The `in(a, b)` işlev.
`a NOT IN ...` The `notIn(a, b)` işlev.
`a GLOBAL IN ...` The `globalIn(a, b)` işlev.
`a GLOBAL NOT IN ...` The `globalNotIn(a, b)` işlev.
## Tarih ve Saatlerle çalışmak için operatörler {#operators-datetime}
### EXTRACT {#operator-extract}
``` sql
EXTRACT(part FROM date);
```
Belirli bir tarihten parçaları ayıklayın. Örneğin, belirli bir tarihten bir ay veya bir zamandan bir saniye alabilirsiniz.
Bu `part` parametre almak için tarihin hangi bölümünü belirtir. Aşağıdaki değerler kullanılabilir:
- `DAY` — The day of the month. Possible values: 131.
- `MONTH` — The number of a month. Possible values: 112.
- `YEAR` — The year.
- `SECOND` — The second. Possible values: 059.
- `MINUTE` — The minute. Possible values: 059.
- `HOUR` — The hour. Possible values: 023.
Bu `part` parametre büyük / küçük harf duyarsızdır.
Bu `date` parametre, işlenecek tarihi veya saati belirtir. Ya [Tarihli](../sql_reference/data_types/date.md) veya [DateTime](../sql_reference/data_types/datetime.md) türü desteklenir.
Örnekler:
``` sql
SELECT EXTRACT(DAY FROM toDate('2017-06-15'));
SELECT EXTRACT(MONTH FROM toDate('2017-06-15'));
SELECT EXTRACT(YEAR FROM toDate('2017-06-15'));
```
Aşağıdaki örnekte bir tablo oluşturuyoruz ve içine bir değer ekliyoruz `DateTime` tür.
``` sql
CREATE TABLE test.Orders
(
OrderId UInt64,
OrderName String,
OrderDate DateTime
)
ENGINE = Log;
```
``` sql
INSERT INTO test.Orders VALUES (1, 'Jarlsberg Cheese', toDateTime('2008-10-11 13:23:44'));
```
``` sql
SELECT
toYear(OrderDate) AS OrderYear,
toMonth(OrderDate) AS OrderMonth,
toDayOfMonth(OrderDate) AS OrderDay,
toHour(OrderDate) AS OrderHour,
toMinute(OrderDate) AS OrderMinute,
toSecond(OrderDate) AS OrderSecond
FROM test.Orders;
```
``` text
┌─OrderYear─┬─OrderMonth─┬─OrderDay─┬─OrderHour─┬─OrderMinute─┬─OrderSecond─┐
│ 2008 │ 10 │ 11 │ 13 │ 23 │ 44 │
└───────────┴────────────┴──────────┴───────────┴─────────────┴─────────────┘
```
Daha fazla örnek görebilirsiniz [testler](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/00619_extract.sql).
### INTERVAL {#operator-interval}
Oluşturur bir [Aralıklı](../sql_reference/data_types/special_data_types/interval.md)- aritmetik işlemlerde kullanılması gereken tip değeri [Tarihli](../sql_reference/data_types/date.md) ve [DateTime](../sql_reference/data_types/datetime.md)- tip değerleri.
Aralık türleri:
- `SECOND`
- `MINUTE`
- `HOUR`
- `DAY`
- `WEEK`
- `MONTH`
- `QUARTER`
- `YEAR`
!!! warning "Uyarıcı"
Farklı tiplere sahip aralıklar birleştirilemez. Gibi ifadeler kullanamazsınız `INTERVAL 4 DAY 1 HOUR`. Aralıkların, örneğin aralığın en küçük birimine eşit veya daha küçük olan birimlerdeki aralıkları belirtin, `INTERVAL 25 HOUR`. Aşağıdaki örnekte olduğu gibi ardışık işlemleri kullanabilirsiniz.
Örnek:
``` sql
SELECT now() AS current_date_time, current_date_time + INTERVAL 4 DAY + INTERVAL 3 HOUR
```
``` text
┌───current_date_time─┬─plus(plus(now(), toIntervalDay(4)), toIntervalHour(3))─┐
│ 2019-10-23 11:16:28 │ 2019-10-27 14:16:28 │
└─────────────────────┴────────────────────────────────────────────────────────┘
```
**Ayrıca Bakınız**
- [Aralıklı](../sql_reference/data_types/special_data_types/interval.md) veri türü
- [toİnterval](../sql_reference/functions/type_conversion_functions.md#function-tointerval) tip dönüştürme işlevleri
## Mantıksal Olumsuzlama Operatörü {#logical-negation-operator}
`NOT a` The `not(a)` işlev.
## Mantıksal ve operatör {#logical-and-operator}
`a AND b` The`and(a, b)` işlev.
## Mantıksal veya operatör {#logical-or-operator}
`a OR b` The `or(a, b)` işlev.
## Koşullu Operatör {#conditional-operator}
`a ? b : c` The `if(a, b, c)` işlev.
Not:
Koşullu işleç B ve c değerlerini hesaplar, ardından a koşulunun karşılanıp karşılanmadığını kontrol eder ve ardından karşılık gelen değeri döndürür. Eğer `b` veya `C` is an [arrayJoin()](../sql_reference/functions/array_join.md#functions_arrayjoin) işlev, her satır ne olursa olsun çoğaltılır “a” koşul.
## Koşullu İfade {#operator_case}
``` sql
CASE [x]
WHEN a THEN b
[WHEN ... THEN ...]
[ELSE c]
END
```
Eğer `x` belirtilen sonra `transform(x, [a, ...], [b, ...], c)` function is used. Otherwise `multiIf(a, b, ..., c)`.
Eğer herhangi bir `ELSE c` ifadedeki yan tümce, varsayılan değer `NULL`.
Bu `transform` fonksiyonu ile çalışmıyor `NULL`.
## Birleştirme Operatörü {#concatenation-operator}
`s1 || s2` The `concat(s1, s2) function.`
## Lambda Oluşturma Operatörü {#lambda-creation-operator}
`x -> expr` The `lambda(x, expr) function.`
Parantez oldukları için aşağıdaki operatörler bir önceliğe sahip değildir:
## Dizi Oluşturma Operatörü {#array-creation-operator}
`[x1, ...]` The `array(x1, ...) function.`
## Tuple Oluşturma Operatörü {#tuple-creation-operator}
`(x1, x2, ...)` The `tuple(x2, x2, ...) function.`
## İlişkisellik {#associativity}
Tüm ikili operatörler ilişkisellikten ayrıldı. Mesela, `1 + 2 + 3` dönüştür toülür `plus(plus(1, 2), 3)`.
Bazen bu beklediğiniz gibi çalışmaz. Mesela, `SELECT 4 > 2 > 3` 0 ile sonuç willlanır.
Verimlilik için, `and` ve `or` işlevler herhangi bir sayıda bağımsız değişkeni kabul eder. İlgili zincirler `AND` ve `OR` operatörler bu işlevlerin tek bir çağrısına dönüştürülür.
## İçin kontrol `NULL` {#checking-for-null}
ClickHouse destekler `IS NULL` ve `IS NOT NULL` operatörler.
### IS NULL {#operator-is-null}
- İçin [Nullable](../sql_reference/data_types/nullable.md) türü değerleri `IS NULL` operatör döner:
- `1` değeri ise `NULL`.
- `0` başka.
- Diğer değerler için, `IS NULL` operatör her zaman döner `0`.
<!-- -->
``` sql
SELECT x+100 FROM t_null WHERE y IS NULL
```
``` text
┌─plus(x, 100)─┐
│ 101 │
└──────────────┘
```
### IS NOT NULL {#is-not-null}
- İçin [Nullable](../sql_reference/data_types/nullable.md) türü değerleri `IS NOT NULL` operatör döner:
- `0` değeri ise `NULL`.
- `1` başka.
- Diğer değerler için, `IS NOT NULL` operatör her zaman döner `1`.
<!-- -->
``` sql
SELECT * FROM t_null WHERE y IS NOT NULL
```
``` text
┌─x─┬─y─┐
│ 2 │ 3 │
└───┴───┘
```
[Orijinal makale](https://clickhouse.tech/docs/en/query_language/operators/) <!--hide-->