Второй дитрибутив - Developer Studio для разработчика, после скачки надо по пути \sqldeveloper-4.0.2.15.21-no-jre\sqldeveloper\sqldeveloper\bin\sqldeveloper.conf добавить в конец файла две строчки для избежания ошибок при подключении: AddVMOption -Duser.language=en
AddVMOption -Duser.region=us
DML - язык манипулирования данными:
SELECT
INSERT
UPDATE
DELETE
DDL - язык определения данных:
CREATE
ALTER
DROP
RENAME
TRUNCATE
DCL - язык управления данных:
GRANT
REVOKE
Транзакции:
COMMIT
ROLLBACK
SAVEPOINT
Все примеры команд SQL будут исполняться над тестовыми данными, имеющимися после установки Oracle Express
Для начала посмотрим на структуру таблицы, с которой будем работать:
DESC HR.EMPLOYEES; или
DESCRIBE HR.EMPLOYEES;
Примеры SELECT:
--Выборка всех колонок
SELECT * FROM HR.EMPLOYEES;
--Выборка определенных колонок
SELECT FIRST_NAME, LAST_NAME FROM HR.EMPLOYEES;
--Конкатенация стобцов
SELECT FIRST_NAME||LAST_NAME AS FN FROM HR.EMPLOYEES;
--Заголовку столбца выборки присваивается некоторое название
SELECT FIRST_NAME AS NAME FROM HR.EMPLOYEES;
--Производится арифметическое действие со значением столбцов
SELECT SALARY + 304 FROM HR.EMPLOYEES;
--q[] экранирует апострофы
SELECT q'[worker's: ]'||LAST_NAME FROM HR.EMPLOYEES;
--"Удаление" дублей
SELECT DISTINCT LAST_NAME FROM HR.EMPLOYEES;
--Прибавляем условие "ГДЕ" - WHERE
--Условия в WHERE
--И\ИЛИ AND \ OR
--Равно\Неравно = \ <>
--Больше\Больше-равно > \ >=
--Меньше\Меньше-равно < \ <=
--Между двух значений BETWEEN x AND x
--В списке значений IN(x)
--Совпадает с шаблоном LIKE
--Равно\неравно значению NULL IS NULL \ IS NOT NULL
SELECT * FROM HR.EMPLOYEES WHERE DEPARTMENT_ID = 90;
SELECT * FROM HR.EMPLOYEES WHERE COMMISSION_PCT IS NOT NULL;
SELECT * FROM HR.EMPLOYEES WHERE COMMISSION_PCT IN(0.3, 0.2);
SELECT * FROM HR.EMPLOYEES WHERE FIRST_NAME LIKE 'A%';
SELECT * FROM HR.EMPLOYEES WHERE FIRST_NAME LIKE '_n%';
--Условия сортировки ASC(по возрастанию (по умолчанию), можно не указывать), DESC - по убыванию
SELECT * FROM HR.EMPLOYEES ORDER BY SALARY;
SELECT * FROM HR.EMPLOYEES ORDER BY SALARY DESC;
SELECT FIRST_NAME, SALARY*0.87 AS money FROM HR.EMPLOYEES ORDER BY money;
--Работа со строками
--Обрезание по позициям символов
SELECT FIRST_NAME, SUBSTR(' is manager! ', 5,11) AS m FROM HR.EMPLOYEES;
--Склеивание строк
SELECT FIRST_NAME, CONCAT(' is', ' manager! ') AS m FROM HR.EMPLOYEES;
--Длина строки
SELECT FIRST_NAME, LENGTH(' is manager! ') AS m FROM HR.EMPLOYEES;
--Позиция в строке символа
SELECT FIRST_NAME, INSTR(' is manager! ', 'n') AS m FROM HR.EMPLOYEES;
--Замена символов
SELECT FIRST_NAME, REPLACE(' is manager! ', 'is', 'is not') AS m FROM HR.EMPLOYEES;
--Перевод в нижний\верхний регистр
SELECT LOWER(FIRST_NAME) FROM HR.EMPLOYEES;
SELECT UPPER(FIRST_NAME) FROM HR.EMPLOYEES;
--Работа с числами (DUAL - это фиктивная таблица, используемая для просмотра SYSDATE)
--ROUND - округляет, TRUNC - обрезает, MOD - остаток от деления
SELECT ROUND(23.4567,2), TRUNC(23.4567,2), MOD(23,12) FROM DUAL;
--Работа с датой и временем
--Вывод даты
SELECT sysdate FROM dual;
--Разница в месяцах между датами
SELECT FIRST_NAME, TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)) AS "МесяцевСНами" FROM HR.EMPLOYEES;
--Прибавить месяцев
ADD_MONTHS('01-JAN-96',3) --Следующий день
NEXT_DAY('01-JAN-96','FRIDAY') --Последний день месяца
LAST_DAY('01-JAN-96')
--Округление до месяца\года
SELECT ROUND(SYSDATE,'YEAR') FROM dual;
SELECT ROUND(SYSDATE,'MONTH') FROM dual;
SELECT TRUNC(SYSDATE,'YEAR') FROM dual;
SELECT TRUNC(SYSDATE,'MONTH') FROM dual;