ClickHouse/docs/tr/sql_reference/operators.md

278 lines
8.7 KiB
Markdown
Raw Normal View History

2020-04-15 13:56:49 +00:00
---
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-->