Oracle выполнение sql файла
Создадим два файла test_file.sql и test_file2.none. В файле test_file.sql пропишем создание таблицы table1, а в файле test_file2.none её удаление. Чтобы выполнить команды создания и удаления из этих файлов сделаем следующее:
SQL> @test_file
Table created.
Для файлов, с отличным от *.sql расширением необходимо указывать его явно:
SQL> @test_file2.none
Table dropped.
Если вы находитесь не в директории, где расположен файл для выполнения, то необходимо указать полный путь до файла:
SQL> @/home/oracle/test_file.sql
Table created.
SQL> @/home/oracle/test_file2.none
Table dropped.
Можно выполнять файлы при входе в sqlplus:
sqlplus имя_пользователя/пароль @имяФайла
Пример:
$ sqlplus "/as sysdba" @/home/oracle/test_file.sql
Oracle Выполнение запроса SELECT
Для выполнения запроса используется команда SELECT.
Синтаксис команды :
SELECT * | { [DISTINCT] column | expression, [alias],…} FROM table;
SELECT - это список столбцов для выбора из таблиц
* - выбор всех колонок которые есть в таблице
DISTINCT – отбор строк без повторения
column – колонка
expression – выражение для выборки
alias - псевдоним
FROM – указываются таблицы из которых происходит выборка
WHERE – фильтр для строк, которые выбираются из таблиц. Если WHERE отсутствует, выбор происходит по всем строкам.
Основные составные части команды:
Пример:
SQL> for_test;
T1 T2
---------- ----------
hello 2
Пример2:
SQL> select t1 from for_test;
T1
----------
hello
Пример3
SQL> for_test WHERE t2=2;
T1 T2
---------- ----------
hello 2
Пример4
Выборка нескольких столбцов:
SQL> select DBID NAME, CREATED from v$database;
NAME CREATED
---------- ---------
1159350160 25-AUG-07
Пример выполнения арифметических операций при выборке
SQL> select bytes, bytes - 1000, bytes + 1000, bytes / 1000, bytes * 1000
2 from v$log;
BYTES BYTES-1000 BYTES+1000 BYTES/1000 BYTES*1000
---------- ---------- ---------- ---------- ----------
52428800 52427800 52429800 52428.8 5.2429E+10
52428800 52427800 52429800 52428.8 5.2429E+10
52428800 52427800 52429800 52428.8 5.2429E+10
Пример выполнения арифметических операций при выборке №2 :
Для изменения приоритета выполнения арифметических операции ставим скобки.
SQL> select bytes, (bytes*2)-100 from v$log;
BYTES (BYTES*2)-100
---------- -------------
52428800 104857500
52428800 104857500
52428800 104857500
В запросах также используются NULL – это отсутствие значения.
NULL – не допускает арифметических операций
SQL> students;
NAME POINTS
-------------------------------------------------- ----------
Lisa 10
Anna 60
Max 90
Maria
В данном примере NULL это количество POINTS для Maria.
Присваивание псевдонимов:
SQL> select bytes "size" from v$log;
size
----------
52428800
52428800
52428800
В данном примере bytes был присвоен псевдоним size.
Элементы (в данном примере group# и status) таблицы можно объединять в запросе используя ||:
SQL> select group# || status "log_info" from v$log;
log_info
--------------------------------------------------------
1CURRENT
2UNUSED
3UNUSED
При использовании ключевого слова DISTINCT повторяющиеся значения не отображаются :
SQL> xmpl1;
COUNT
----------
10
20
30
50
50
50
50
50
SQL> select DISTINCT * from xmpl1;
COUNT
----------
30
20
50
10