class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

основы sql

введение
структура БД
инструментарий
комментарий
идентификаторы
обзор типов данных
интервалы времени
литералы
операции и выражения
обзор функций
преобразование типов
создание таблицы
изменение, удаление таблицы
вставка данных
изменение записей
удаление записей
выбор данных
соединения
агрегатные функции, группировка данных
операции над выборками
добавление итогов
нумерация записей
уникальность первич. ключа
индексы
представления

Dynamic SQL

прочее

Справочник по SQL

Преобразование типов

Множество типов разрешенные для преобразования в констркуции CAST AS определяется реализацией СУБД. Так в MySQL может преобразовать только следующие типы: binary[(n)], char[(n)], date, datetime, decimal[(m[,d])], signed [integer], time, unsigned [integer]. А в Oracle, кроме преобразования встроенных типов, можно преобразовывать выборки со множеством записей в массивы.


-- MySQL
select CAST('5.3' AS decimal)+2
select CAST( (select '5.3') AS decimal(6,2))+2.0

-- Oracle
select CAST('5,22' AS double precision) +2 from dual 

-- PostgreSQL
select CAST('5.22' AS double precision) +2 

В PostgreSQL более расширенные возможности по преобразованию. Во-первых, можно добавить собственное преобразование для встроенных и пользовательских типов. Во-вторых, есть собственный более удобный оператор преобразования типов ::.


select cast('tru' as boolean);
select cast('fa' as boolean);
-- ошибка, строка не похожа на 'true', 'false' 
-- и не равна строкам '1' или '0'
select cast('ok' as boolean) 

-- создадим функцию преобразования
-- просто указываем какие строки
-- понимать как true значение,
-- все остальные строки будут false значением
CREATE OR REPLACE FUNCTION to_bool(varchar) 
RETURNS boolean
AS $$ 
SELECT $1 = 'true' or $1 = 'tru' or 
       $1 = 'tr' or $1 = 't' 
       or $1 = '1' or $1='ok'$$
LANGUAGE SQL;

-- создаем преобразование типа varchar в boolean
CREATE CAST (varchar AS boolean) 
  WITH FUNCTION to_bool(varchar) 
  AS ASSIGNMENT;

-- теперь можно так
select cast ( 'ok'::varchar as boolean);
select cast( varchar 'ok' as boolean); 
select 'ok'::varchar::boolean;

-- уничтожение преобразования
DROP CAST IF EXISTS (varchar AS boolean) ;


В большинстве случае необходимо преобразование в строку либо из строки. Для этого случая СУБД предоставляют дополнительные функции.

функции Oracle

В этих функциях format описание формата даты или числа, а nlsparams - национальные параметры. Формат строки для даты задается следующими элементами:

Формат числовой строки задается следующими элементами:


select to_char(sysdate, 
 '"системное время: "DD-MON-YY hh24.mi:ss CC "век"') 
 as c
   from dual;

select to_date('01012009','ddmmyyyy') as c 
   from dual;

select to_char(-10000,'99G999D99L',
  'NLS_NUMERIC_CHARACTERS = '',.''
   NLS_CURRENCY = ''baks'' ') as c
    from dual;

select to_char(9.12345,'099.99') as c 
    from dual    

функции PostgreSQL

Основные элементы форматирования совпадают с Oracle.

функции MySQL

Ниже приведен список основных элементов форматирования для даты и времени:


Рейтинг@Mail.ru