Компания Oracle выпустила новую версию своей базы данных Oracle 23c
Среди нововведений:
SELECT
выражений без указания раздражающего FROM DUAL
select
'Hello world' as txt,
7 * 6 as nmbr,
sysdate as sdate;
поддержка типа boolean (очень надеюсь что в ближайшее его завезут и в MySQL):
select true, false;
create table bool_test (
val varchar2(10),
flg boolean
);
insert into bool_test values ('true' , true );
insert into bool_test values ('false' , false);
insert into bool_test values ('null' , null );
insert into bool_test values ('t' ,'t' );
insert into bool_test values ('yes' ,'yes' );
insert into bool_test values ('True' ,'True');
insert into bool_test values ('f' ,'f' );
insert into bool_test values ('0' , 0 );
обратите внимание что строки 'y', 'yes', 't', 'true' неявно конвертируются в True, а значения 'n', 'no', 'f', 'false' в False в не зависимости от регистра и начальных/конечных пробелов. Число 0 сохраняется как False остальные любые числа как True
Поле типа boolean может быть использовано в where:
select * from bool_test where flg;
select * from bool_test where not flg;
Вместе с новым типом данных введена новая функция to_boolean()
Некоторые плюшки из MySQL перенесены в Oracle. Например
DROP/CREATE TABLE IF [NOT] EXISTS
drop table IF EXISTS my_test;
create table IF NOT EXISTS my_test (num number, txt varchar2(10));
GROUP BY on expression aliases/position number
Все новые уже функции доступны на SQLize.online