Oracle DatabaseНачало работы с Oracle Database


замечания

Oracle - это система управления реляционными базами данных (RDBMS), первоначально созданная Ларри Эллисоном, Бобом Майнером и Эд Оутсом в конце 70-х. Он должен был быть совместим с IBM System R.

Версии

Версия Дата выхода
Версия 1 (неизданная) 1978-01-01
Oracle V2 1979-01-01
Версия Oracle 3 1983-01-01
Версия Oracle 4 1984-01-01
Версия Oracle 5 1985-01-01
Версия Oracle 6 1988-01-01
Oracle7 1992-01-01
Oracle8 1997-07-01
Oracle8i 1999-02-01
Oracle9i 2001-06-01
Oracle 10g 2003-01-01
Oracle 11g 2007-01-01
Oracle 12c 2013-01-01

Привет, мир

SELECT 'Hello world!' FROM dual;
 

В духе Oracle SQL, «dual - это просто таблица состязаний» . Первоначально он был предназначен для двойных рядов через JOIN, но теперь содержит одну строку с значением DUMMY 'X'.

Hello World из PL / SQL

/* PL/SQL is a core Oracle Database technology, allowing you to build clean, secure, 
   optimized APIs to SQL and business logic. */

set serveroutput on 

BEGIN
   DBMS_OUTPUT.PUT_LINE ('Hello World!');
END;
 

Привет, мир! из таблицы

Создайте простую таблицу

create table MY_table (
   what varchar2(10), 
   who varchar2(10), 
   mark varchar2(10)
);
 

Вставить значения (вы можете опустить целевые столбцы, если вы предоставляете значения для всех столбцов)

insert into my_table (what, who, mark) values ('Hello', 'world', '!' );
insert into my_table values ('Bye bye', 'ponies', '?' );
insert into my_table (what) values('Hey');
 

Не забудьте зафиксировать, потому что Oracle использует транзакции

commit;
 

Выберите свои данные:

select what, who, mark from my_table where what='Hello';
 

SQL-запрос

Список сотрудников, зарабатывающих более $ 50000, родился в этом веке. Укажите их имя, дату рождения и зарплату, отсортированную по алфавиту по имени.

SELECT employee_name, date_of_birth, salary
FROM   employees
WHERE  salary > 50000
   AND date_of_birth >= DATE '2000-01-01'
ORDER BY employee_name;
 

Покажите количество сотрудников в каждом отделе не менее 5 сотрудников. Сначала перечислите крупнейшие отделы.

SELECT department_id, COUNT(*)
FROM   employees
GROUP BY department_id
HAVING COUNT(*) >= 5
ORDER BY COUNT(*) DESC;