آموزش Hive

آموزش Hive – عملگرهای تعبیه شده ی داخلی

در این بخش عملگرهای تعبیه شده ی داخلیِ Hive را توضیح میدیم. Hive، چهار نوع عملگر داره:

  •  عملگرهایِ رابطه ای
  •  عملگرهای محاسباتی
  •  عملگرهای منطقی
  •  عملگرهای پیچیده

عملگرهای رابطه ای

این عملگرها برای مقایسه ی دو عملوند استفاده میشن. در جدول زیر عملگرهای رابطه ایِ Hive توضیح داده شدن:

عملگر

عملوند

توضیحات

A = B

تمام انواع اولیه

اگه عبارتِ A معادل با عبارتِ B باشه True و در غیر این صورت False است.

A != B

تمام انواع اولیه

اگه عبارتِ A معادل با عبارتِ B نباشه True و در غیر این صورت False است.

A < B

تمام انواع اولیه

اگه عبارتِ A کوچک تر از عبارتِ B باشه True و در غیر این صورت False است.

A <= B

تمام انواع اولیه

اگه عبارتِ A کوچک تر یا مساوی عبارتِ B باشه True و در غیر این صورت False است.

A > B

تمام انواع اولیه

اگه عبارتِ A بزرگ تر از عبارتِ B باشه True و در غیر این صورت False است.

A >= B

تمام انواع اولیه

اگه عبارتِ A بزرگ تر یا مساوی عبارتِ B باشه True و در غیر این صورت False است.

A IS NULL

تمام انواع داده ای

اگه عبارتِ A معادل با NULL باشه True و در غیر این صورت False است.

A IS NOT NULL

تمام انواع داده ای

اگه عبارتِ A معادل با NULL باشه False و در غیر این صورت TRUE است.

A LIKE B

هاString

درصورتی که الگوی رشته ایِ A مطابق با B باشه TRUE و در غیر این صورت False است.

A RLIKE B

هاString

درصورتی که A یا B معادل با NULL باشن، NULL است، درصورتی که یکی از زیررشته هایِ A معادل با عبارت منظم جاوایِ B باشه TRUE و در غیر این صورت FALSE است.

A REGEXP B

هاString

مشابه RLIKE

مثال

همان طور که در زیر میبینین، فرض می کنیم جدولِ Employee از فیلدهایِ  Id, Name, Salary, Designation و Dept تشکیل شده. برای بازیابی کارمندهایی که Id آن ها معادل با 1205 است، یک کوئری ایجاد کنین.

+-----+--------------+--------+---------------------------+------+
| Id  | Name         | Salary | Designation               | Dept |
+-----+--------------+------------------------------------+------+
|1201 | Gopal        | 45000  | Technical manager         | TP   |
|1202 | Manisha      | 45000  | Proofreader               | PR   |
|1203 | Masthanvali  | 40000  | Technical writer          | TP   |
|1204 | Krian        | 40000  | Hr Admin                  | HR   |
|1205 | Kranthi      | 30000  | Op Admin                  | Admin|
+-----+--------------+--------+---------------------------+------+

کوئری زیر برای بازیابی اطلاعات کارمندها بر اساس جدول بالاست:

hive> SELECT * FROM employee WHERE Id=1205;

درصورتی که کوئری با موفقیت اجرا شده باشه، پاسخی به صورت زیر خواهید دید:

+-----+-----------+-----------+----------------------------------+
| ID  | Name      | Salary    | Designation              | Dept  |
+-----+---------------+-------+----------------------------------+
|1205 | Kranthi   | 30000     | Op Admin                 | Admin |
+-----+-----------+-----------+----------------------------------+

کوئری زیر برای بازیابی اطلاعات کارمندهاییِه که حقوق (salary) آن ها بیش تر یا مساویِ Rs 40000 است.

hive> SELECT * FROM employee WHERE Salary>=40000;

درصورتی که کوئری با موفقیت اجرا شده باشه، پاسخی به صورت زیر خواهید دید:

+-----+------------+--------+----------------------------+------+
| ID  | Name       | Salary | Designation                | Dept |
+-----+------------+--------+----------------------------+------+
|1201 | Gopal      | 45000  | Technical manager          | TP   |
|1202 | Manisha    | 45000  | Proofreader                | PR   |
|1203 | Masthanvali| 40000  | Technical writer           | TP   |
|1204 | Krian      | 40000  | Hr Admin                   | HR   |
+-----+------------+--------+----------------------------+------+

عملگرهای محاسباتی

این عملگرها از انواع عملیات های محاسباتی بر روی عملوندها پشتیبانی می کنن. خروجی تمام این عملگرها، از نوع عددی است. در جدول زیر عملوندهایِ Hive توضیح داده شده ان:

عملگرها

عملوند

توضیحات

A + B

تمام انواع عددی

نتیجه ی جمعِ A با  B را برمی گرداند.

A - B

تمام انواع عددی

نتیجه ی تفریقِ A و B را برمی گرداند.

A * B

تمام انواع عددی

نتیجه ی ضربِ A و B را برمی گرداند.

A / B

تمام انواع عددی

نتیجه ی تقسیمِ A و B را برمی گرداند.

A % B

تمام انواع عددی

باقیمانده ی تقسیمِ A و B را برمی گرداند.

A & B

تمام انواع عددی

نتیجه ی AND بیتی A و B را برمی گرداند.

A | B

تمام انواع عددی

نتیجه ی OR بیتی A و B را برمی گرداند.

A ^ B

تمام انواع عددی

نتیجه ی XOR بیتی A و B را برمی گرداند.

~A

تمام انواع عددی

نتیجه ی NOT بیتی A و B را برمی گرداند.

مثال

کوئری زیر اعداد 20 و 30 را با هم جمع می کنه.

hive> SELECT 20+30 ADD FROM temp;

درصورتی که کوئری با موفقیت اجرا شده باشه، پاسخی به صورت زیر خواهید دید:

+--------+
|   ADD  |
+--------+
|   50   |
+--------+

عملگرهایِ منطقی

عملگرها، عبارات منطقی هستن؛ همه ی آن ها TRUE یا FALSE برمی گردانند.

عملگرها

عملوندها

توضیحات

A AND B

boolean

اگه A و B هر دو TRUE باشن، TRUE در غیر این صورت FALSE است.

A && B

boolean

مشابه A AND B.

A OR B

boolean

اگه A یا B یا هر دو TRUE باشن، TRUE در غیر این صورت FALSE است.

A || B

boolean

مشابه A OR B.

NOT A

boolean

اگه A، FALSE باشه، TRUE و در غیر این صورت FALSE است.

!A

boolean

مشابه NOT A.

مثال

کوئری زیر اطلاعات کارمندهایی را برمی گرداند که Departman آن ها TP باشه و Salary آن ها بیش تر از RS 40000 باشه.

hive> SELECT * FROM employee WHERE Salary>40000 && Dept=TP;

درصورتی که کوئری با موفقیت اجرا شده باشه، پاسخی به صورت زیر خواهید دید:

+------+--------------+-------------+-------------------+--------+
| ID   | Name         | Salary      | Designation       | Dept   |
+------+--------------+-------------+-------------------+--------+
|1201  | Gopal        | 45000       | Technical manager | TP     |
+------+--------------+-------------+-------------------+--------+

عملگرهای پیچیده

این عملگرها عبارتی برای دسترسی به عناصر انواع داده ای پیچیده ارائه میدن.

عملگر

عمگر

توضیحات

A[n]

A یک آرایه و n یک int است

Nامین عنصرِ آرایه ی A را برمی گرداند. ایندکس اولین عنصر، 0 است.

M[key]

M یک <K, V> و key از نوعِ k است

مقدار مرتبط با key را در map برمی گرداند.

S.x

S یک Struct است.

فیلدِ x از S را برمی گرداند.

در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش Hive

Learn Hive

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...