اوراکل در نسخه 23c دیتا تایپ Boolean را در SQL معرفی کرده است(البته این نوع داده قبلا در PLSQL وجود داشته است) و با این قابلیت، در هنگام ساخت جدول می توان نوع داده ستونها را به Boolean تنظیم کرد.
SQL> CREATE TABLE jadval1 (id NUMBER, is_accept BOOLEAN);
SQL> CREATE TABLE jadval1 (id NUMBER, is_accept BOOLEAN);
Table created
SQL> CREATE TABLE jadval1 (id NUMBER, is_accept BOOLEAN);
Table created
از کلمه BOOL هم می توان به جای Boolean استفاده کرد.
SQL> CREATE TABLE jadval1 (id NUMBER, is_accept BOOL);
SQL> CREATE TABLE jadval1 (id NUMBER, is_accept BOOL);
Table created
SQL> CREATE TABLE jadval1 (id NUMBER, is_accept BOOL);
Table created
برای ستونهای از نوع Boolean میتوان مقدار پیش فرض تنظیم نمود:
SQL> CREATE TABLE jadval1 (id NUMBER, is_accept BOOL DEFAULT FALSE);
SQL> CREATE TABLE jadval1 (id NUMBER, is_accept BOOL DEFAULT FALSE);
Table created
SQL> CREATE TABLE jadval1 (id NUMBER, is_accept BOOL DEFAULT FALSE);
Table created
برای مقداردهی ستون is_accept می توانیم از سه کلمه کلیدی TRUE، FALSE و NULL استفاده کنیم:
SQL> insert into jadval1 values(1,true);
SQL> insert into jadval1 values(2,null);
SQL> insert into jadval1 values(3,false);
SQL> select * from jadval1;
SQL> insert into jadval1 values(1,true);
1 row inserted
SQL> insert into jadval1 values(2,null);
1 row inserted
SQL> insert into jadval1 values(3,false);
1 row inserted
SQL> select * from jadval1;
ID IS_ACCEPT
---------- ----------
1 1
2
3 0
SQL> insert into jadval1 values(1,true);
1 row inserted
SQL> insert into jadval1 values(2,null);
1 row inserted
SQL> insert into jadval1 values(3,false);
1 row inserted
SQL> select * from jadval1;
ID IS_ACCEPT
---------- ----------
1 1
2
3 0
البته برای مقداردهی این ستون، صرفا به سه کلمه کلیدی فوق محدود نیستیم و از رشته ها هم می توانیم استفاده کنیم.
رشته های زیر معادل FALSE هستند:
'false' , 'no' , 'off' , '0' , 'f' , 'n'
'false' , 'no' , 'off' , '0' , 'f' , 'n'
'false' , 'no' , 'off' , '0' , 'f' , 'n'
رشته های زیر معادل TRUE هستند:
'true', 'yes', 'on', '1', 't', 'y'
'true', 'yes', 'on', '1', 't', 'y'
'true', 'yes', 'on', '1', 't', 'y'
مثال زیر را ببینید:
SQL> CREATE TABLE jadval1 (id NUMBER, c1 BOOL,c2 BOOL,c3 BOOL,c4 BOOL,c5 BOOL,c6 BOOL,c7 BOOL,c8 BOOL);
SQL> insert into jadval1 values(1,true,'true', 'yes', 'on', '1', 't', 'y',false);
SQL> insert into jadval1 values(2,false,'false' , 'no' , 'off' , '0' , 'f' , 'n',true);
SQL> CREATE TABLE jadval1 (id NUMBER, c1 BOOL,c2 BOOL,c3 BOOL,c4 BOOL,c5 BOOL,c6 BOOL,c7 BOOL,c8 BOOL);
Table created
SQL> insert into jadval1 values(1,true,'true', 'yes', 'on', '1', 't', 'y',false);
1 row inserted
SQL> insert into jadval1 values(2,false,'false' , 'no' , 'off' , '0' , 'f' , 'n',true);
1 row inserted
SQL> CREATE TABLE jadval1 (id NUMBER, c1 BOOL,c2 BOOL,c3 BOOL,c4 BOOL,c5 BOOL,c6 BOOL,c7 BOOL,c8 BOOL);
Table created
SQL> insert into jadval1 values(1,true,'true', 'yes', 'on', '1', 't', 'y',false);
1 row inserted
SQL> insert into jadval1 values(2,false,'false' , 'no' , 'off' , '0' , 'f' , 'n',true);
1 row inserted

عدد صفر هم به منزله false می باشد و مابقی اعداد به معنی TRUE هستند:
SQL> insert into jadval1 values(1,0,66,9.10);
SQL> select * from jadval1;
SQL> insert into jadval1 values(1,0,66,9.10);
1 row created.
SQL> select * from jadval1;
ID C1 C2 C3
--- ------ ------ -----
1 FALSE TRUE TRUE
SQL> insert into jadval1 values(1,0,66,9.10);
1 row created.
SQL> select * from jadval1;
ID C1 C2 C3
--- ------ ------ -----
1 FALSE TRUE TRUE
در زمان اجرای پرس و جو باید در نظر داشته باشیم که عملگرهای AND و OR برای ستونهای با نوع داده BOOLEAN هم قابل استفاده هستند:
SQL> select * from jadval1 where c1 and c2;
SQL> select * from jadval1 where c3 and c2;
SQL> select * from jadval1 where c1 and c2;
no rows selected
SQL> select * from jadval1 where c3 and c2;
ID C1 C2 C3
--- ------ ------ -----
1 FALSE TRUE TRUE
SQL> select * from jadval1 where c1 and c2;
no rows selected
SQL> select * from jadval1 where c3 and c2;
ID C1 C2 C3
--- ------ ------ -----
1 FALSE TRUE TRUE
ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور......................
تلفن: 09128110897
ایمیل:vahidusefzadeh@gmail.com
Comment (1)