Содержание
- 2. Явное представление данных Гарантированный доступ к данным Полная обработка неопределённых значений Доступ к описанию БД в
- 3. Базовые порции данных представляют собой отношения (relations) или таблицы Операции над таблицами затрагивают только отношения Свойства
- 4. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ---------- --------- ------- --------------- ------ ---------- ------
- 5. Данные в ячейках структурно неделимы Данные в столбце одного типа Столбцы размещаются в произвольном порядке Строки
- 6. Первичный ключ - столбец или подмножество столбцов, которые уникально, т.е. единственным образом, определяют строки. Первичный ключ,
- 7. Первичный ключ не может быть полностью или частично пустым. Правило целостности обьектов
- 8. Внешний ключ может быть пустым или соответствовать значению первичного ключа. Правило ссылочной целостности
- 9. Типы данных и объекты, заданные пользователем. Полная совместимость с реляционными базами данных. Поддержка мультимедийных и больших
- 10. Команды SQL SELECT: выборка данных INSERT, UPDATE, DELETE: язык манипулирования данными (DML) CREATE, ALTER, DROP, RENAME,
- 11. Каждой строке таблицы в БД ORACLE назначается уникальный ROWID. Идентификаторы записей ROWID
- 12. Файлы данных Расширения Табличные пространства Сегменты отката Временные сегменты Таблицы Индексы Словарь данных Обзоры Последовательности Синонимы
- 13. Написание команд SQL Команды SQL не различают регистры символов. Команды SQL могут занимать одну или несколько
- 14. Выборка данных – оператор SELECT Выбор информации из БД (selection) Проекция (projection) Соединение (join)
- 15. SELECT column1, column2,…., columnN FROM table Основной синтаксис SELECT
- 16. Основной синтаксис SELECT SQL> SELECT * FROM dept; DEPTNO DNAME LOC --------- -------------- ------------- 10 ACCOUNTING
- 17. Основной синтаксис SELECT SQL> SELECT deptno, loc FROM dept; DEPTNO LOC --------- ------------- 10 NEW YORK
- 18. Для типов данных NUMBER и DATE можно использовать арифметические выражения: Арифметические выражения
- 19. SQL> SELECT ename, sal, sal+300 FROM emp; Использование арифм. операторов ENAME SAL SAL+300 ---------- --------- ---------
- 20. * / + - Умножение и деление имеют приоритет над сложением и вычитанием. Операторы с одинаковым
- 21. SQL> SELECT ename, sal, 12*sal+100 FROM emp; ENAME SAL 12*SAL+100 ---------- --------- ---------- SMITH 800 9700
- 22. SQL> SELECT ename, sal, 12*(sal+100) FROM emp; ENAME SAL 12*(SAL+100) ---------- --------- ------------ SMITH 800 10800
- 23. Неопределенное значение (NULL) – значение, которое недоступно, не присвоено, неизвестно или неприменимо. Это не ноль и
- 24. SQL> SELECT ename 12*sal+comm FROM emp; ENAME 12*SAL+COMM ---------- ----------- SMITH ALLEN 19500 WARD 15500 JONES
- 25. Альтернативный заголовок столбца. Удобен при вычислениях. Следует сразу за именем столбца; ключевое слово AS между именем
- 26. SQL> SELECT ename AS name, sal salary FROM emp; NAME SALARY ---------- --------- SQL> SELECT ename
- 27. Соединяет столбцы или символьные строки с другими столбцами. Изображается двумя вертикальными линиями ( || ). Создает
- 28. SQL> SELECT ename || job AS ‘Employees’ FROM emp; Employees ------------------- SMITHCLERK ALLENSALESMAN WARDSALESMAN JONESMANAGER MARTINSALESMAN
- 29. Литерал – символ, выражение или число, включенные в SELECT список. Даты и символьные литералы должны быть
- 30. SQL> SELECT ename ||' '||'is a'||' '|| job AS "Employee details“ FROM emp; Employee details -------------------------
- 31. SQL> SELECT deptno FROM emp; DEPTNO --------- 10 30 10 20 … Дублирование строк По умолчанию
- 32. SQL> SELECT DISTINCT deptno FROM emp; DEPTNO --------- 10 20 30 Дублирование строк Дубликаты устраняются при
- 33. Соединение с БД из командной строки: sqlplus [username [/password [@database]]] Соединение с базой данных
- 34. SQL> DESCRIBE tablename SQL> DESCRIBE dept Name Null? Type ------------------- -------- ------------ DEPTNO NOT NULL NUMBER(2)
- 35. A[PPEND] text C[HANGE] / old / new / C[HANGE] / text / CL[EAR] BUFF[ER] DEL DEL
- 36. Редактирование SQL команд и PL/SQL блоков I[NPUT] I[NPUT] text L[IST] L[IST] n L[IST] m n R[UN]
- 37. SAV[E] filename [CREATE | REPLACE | APPEND] GET filename STA[RT] filename @filename ED[IT] filename SPO[OL] [filename
- 38. SELECT column1, column2,…., columnN FROM table WHERE condition (s) Ограничение колич. выбираемых строк Количество возвращаемых строк
- 39. SQL> SELECT ename, job, deptno FROM emp WHERE job = ‘CLERK’; ENAME JOB DEPTNO ---------- ---------
- 40. Операторы сравнения
- 41. SQL> SELECT ename, sal, comm FROM emp WHERE sal ENAME SAL COMM ---------- ---------- ---------- MARTIN
- 42. Другие операторы сравнения
- 43. SQL> SELECT ename, sal FROM emp WHERE sal BETWEEN 1000 AND 1500; ENAME SAL ---------- ----------
- 44. SQL> SELECT empno, ename, sal, mgr FROM emp WHERE mgr IN (7902, 7566, 7788); EMPNO ENAME
- 45. Оператор LIKE используется для поиска символьных значений по шаблону с метасимволами Условия поиска могут включать алфавитные
- 46. Метасимволы можно комбинировать SQL> SELECT ename FROM emp WHERE ename LIKE ‘_A%’; ENAME ---------- WARD MARTIN
- 47. С помощью оператора IS NULL производится проверка на неопределенные значения SQL> SELECT ename, mgr FROM emp
- 48. Логические операторы
- 49. Оператор AND (‘И’) требует выполнения обоих условий. SQL> SELECT empno, ename, job, sal FROM emp WHERE
- 50. Оператор OR (‘ИЛИ’) требует выполнения любого из условий. SQL> SELECT empno, ename, job, sal FROM emp
- 51. Оператор NOT - логическое отрицание условия. SQL> SELECT ename, job FROM emp WHERE job NOT IN
- 52. Приоритеты операторов Изменить стандартную последовательность вычислений можно при помощи круглых скобок.
- 53. SQL> SELECT ename, job, sal FROM emp WHERE job=‘SALESMAN‘ OR job = ‘PRESIDENT’ AND sal>1500; SQL>
- 54. Предложение ORDER BY используется для сортировки строк: ASC: сортировка по возрастанию (по умолчанию) DESC: сортировка по
- 55. SQL> SELECT ename, job, deptno, hiredate FROM emp ORDER BY hiredate; ENAME JOB DEPTNO HIREDATE ----------
- 56. SQL> SELECT ename, deptno, sal FROM emp ORDER BY deptno ASC, sal DESC; ENAME DEPTNO SAL
- 57. Однострочные функции - символьные - числовые - над датами - преобразования Многострочные функции - групповые FUNCTION
- 58. Обрабатывают каждую полученную по запросу строку. Выдают результат отдельно для каждой строки. Могут иметь вложенность. Могут
- 59. FUNCTION_NAME (column | expression, [arg1, arg2, ...]) Однострочные функции
- 60. Символьные функции Символьные функции Функции преобразования регистра символов Функции манипулиров-я символами LOWER UPPER INITCAP CONCAT SUBSTR
- 61. LOWER : Переводит все символы строки на нижний регистр UPPER : Переводит все символы строки на
- 62. Функции преобразования регистра Преобразование регистра для символьных строк.
- 63. Использование функций преобразования Вывод номера служащего, фамилии и номера отдела для служащего по фамилии Blake SQL>
- 64. Функции манипулирования символами Манипулирование символьными строками.
- 65. Использование символьных функций SQL> SELECT ename, CONCAT(ename, job), LENGTH(ename),INSTR(ename, 'A') FROM emp WHERE SUBSTR(job,1,5) = 'SALES';
- 66. ROUND : Округляет числовое значение до заданной точности. ROUND(45.926, 2) 45.93 TRUNC : Усекает значение до
- 67. Использование функции ROUND SQL> SELECT ROUND(45.923,2),ROUND(45.923,0), ROUND(45.923,-1) FROM DUAL; ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1) --------------- --------------- ---------------- 45.92
- 68. Использование функции TRUNC SQL> SELECT TRUNC(45.923,2),TRUNC(45.923), TRUNC(45.923,-1) FROM DUAL; TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-1) --------------- ------------- ---------------- 45.92
- 69. Использование функции MOD SQL> SELECT ename, sal, comm, MOD(sal, comm) FROM EMP WHERE job='SALESMAN'; ENAME SAL
- 70. Oracle хранит данные во внутреннем цифровом формате. век, год, месяц, число, часы, минуты, секунды По умолчанию
- 71. Просмотр текущей даты SQL> SELECT SYSDATE FROM DUAL; SYSDATE --------- 01-MAY-02
- 72. Результатом прибавления числа к дате и вычитания числа из даты является дата. Результатом вычитания одной даты
- 73. Использование операций с датами SQL> SELECT ename, (SYSDATE-hiredate)/7 WEEKS FROM EMP WHERE deptno=10; ENAME WEEKS ----------
- 74. Функции для работы с датами
- 75. MONTHS_BETWEEN(’01-SEP-95’,’11-JAN-94’) 19.6774194 ADD_MONTHS (’11-JAN-94’,6) ’11-JUL-94’ NEXT_DAY (’01-SEP-95’,’FRIDAY’) ’08-SEP-95’ LAST_DAY (’01-SEP-95’) ’30-SEP-95’ ROUND (’25-JUL-95’,’MONTH’) ’01-AUG-95’ ROUND (’25-JUL-95’,’YEAR’)
- 76. SELECT empno, hiredate, ROUND(hiredate,'MONTH'),TRUNC(hiredate, 'MONTH') FROM emp WHERE hiredate like'%82‘; EMPNO HIREDATE ROUND(HIR TRUNC(HIR -------- ---------
- 77. Функции преобразования Преобразование типа данных Неявное преобразование типа данных Явное преобразование типа данных
- 78. Явное преобразование типов данных
- 79. TO_CHAR (DATE, ‘fmt’) Модель формата: Заключается в апострофы. Различает символы верхнего и нижнего регистров. Может включать
- 80. Элементы формата даты
- 81. SQL> SELECT empno, TO_CHAR(hiredate, 'MM/YY') Month_Hired FROM emp WHERE ename = 'BLAKE'; EMPNO MONTH ---------- -----
- 82. TO_CHAR (number, ‘fmt’) Форматы, используемые с функцией TO_CHAR для вывода числового значения в виде символьной строки.
- 83. SQL> SELECT TO_CHAR(sal,'$99,999') SALARY FROM emp WHERE ename = 'SCOTT‘; SALARY -------- $3,000 Функция TO_CHAR с
- 84. Преобразование строки символов в числовой формат с помощью функции TO_NUMBER. TO_NUMBER (char) Преобразование строки символов в
- 85. Упрощает условные запросы, выполняя работу команды CASE или IF-THEN-ELSE: DECODE (col/expression, search1, result1 [, search2, result2,…,]
- 86. SQL> SELECT job, sal, DECODE (job, 'ANALYST', SAL*1.1, 'CLERK', SAL*1.15, 'MANAGER', SAL*1.20, SAL) REVISED_SALARY FROM EMP;
- 87. Однострочные функции могут быть вложены на любую глубину Вложенные функции вычисляются от самого глубокого уровня к
- 88. Вложенные функции SQL> SELECT ename, NVL(TO_CHAR(mgr), 'No Manager') FROM emp WHERE mgr IS NULL; ENAME NVL(TO_CHAR(MGR),'NOMANAGER')
- 89. Выборка данных из нескольких таблиц EMPNO ENAME … DEPTNO ----- ------ ------ 7839 KING … 10
- 90. Соединение используется для выборки данных из нескольких таблиц. SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1
- 91. Декартово произведение образуется, если: - Опущено условие соединения. - Условие соединения недействительно. - Все строки первой
- 92. Получение декартова произведения EMPNO ENAME … DEPTNO ----- ------ ------ 7839 KING … 10 7698 BLAKE
- 93. Основные типы соединений Эквисоединения Неэквисоединения Дополнительные типы соединений Внешние соединения Соединения таблицы с собой Виды соединений
- 94. Эквисоединение EMPNO ENAME DEPTNO ----- ------- ---------- 7369 SMITH 20 7499 ALLEN 30 7521 WARD 30
- 95. Выборка при помощи эквисоединений SQL> SELECT emp.empno, emp.ename, emp.deptno, dept.deptno,dept.loc FROM emp, dept WHERE emp.deptno =
- 96. Различение столбцов с одинаковыми именами Для различения одноименных столбцов из разных таблиц используются префиксы в виде
- 97. Дополнит. условия при эквисоединении SQL> SELECT emp.empno, emp.ename, emp.deptno, dept.deptno,dept.loc FROM emp, dept WHERE emp.deptno =
- 98. Псевдонимы таблиц Использование псевдонимов таблиц упрощает запросы. SQL> SELECT emp.empno, emp.ename, emp.deptno, dept.deptno,dept.loc FROM emp, dept
- 99. Не-эквисоединение EMPNO ENAME SAL ----- ------- ---------- 7499 ALLEN 1600 7566 JONES 2975 7654 MARTIN 1250
- 100. SQL> SELECT e.ename, e.sal, s.grade FROM emp e, salgrade s WHERE e.sal BETWEEN s.losal AND s.hisal;
- 101. Внешние соединения EMPNO ENAME … DEPTNO ----- ------ ------ 7839 KING … 10 7698 BLAKE …
- 102. Внешнее соединение используется для выборки строк, не удовлетворяющих обычным условиям соединения. Оператором внешнего соединения является знак
- 103. SQL> SELECT e.ename, d.deptno, d.dname FROM emp e, dept d WHERE e.deptno(+)=d.deptno ORDER BY e.deptno; ENAME
- 104. Соединение таблицы с собой EMPNO ENAME MGR ----- ------- ---------- 7499 ALLEN 7698 7654 MARTIN 7698
- 105. SQL> SELECT worker.ename ||' works for '|| manager.ename FROM emp worker, emp manager WHERE worker.mgr =
- 106. Групповые функции DEPTNO SAL ---------- ---------- 20 800 30 1600 30 1250 20 2975 30 1250
- 107. AVG COUNT MAX MIN STDDEV SUM VARIANCE Типы групповых функций
- 108. AVG и SUM применяются к столбцам с числовыми данными. SQL> SELECT AVG(sal), MAX(sal), MIN(sal), SUM(sal) FROM
- 109. MIN и MAX применяются к данным любого типа. SQL> SELECT MIN(hiredate), MAX(hiredate) FROM emp; MIN(HIRED MAX(HIRED
- 110. COUNT(*) возвращает количество строк в таблице. SQL> SELECT COUNT(*) FROM emp WHERE deptno = 30; COUNT(*)
- 111. COUNT(expr) возвращает количество строк с определёнными значениями (не NULL). SQL> SELECT COUNT(COMM) FROM emp WHERE deptno
- 112. Групповые функции игнорируют неопределенные значения в столбцах. SQL> SELECT AVG(comm) FROM emp; AVG(COMM) ---------- 550 Групповые
- 113. Функция NVL заставляет групповые функции включать неопределенные значения. SQL> SELECT AVG(NVL(comm,0)) FROM emp; AVG(NVL(COMM,0)) ---------------- 157.142857
- 114. Создание групп данных DEPTNO SAL ---------- ---------- 10 2450 10 5000 10 1300 20 800 20
- 115. Создание групп данных: GROUP BY SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expression] [ORDER
- 116. Все столбцы, которые входят в SELECT список и к которым не применяются групповые функции, должны быть
- 117. SQL> SELECT deptno, job, sum(sal) FROM emp GROUP BY deptno, job; DEPTNO JOB SUM(SAL) ---------- ---------
- 118. SQL> SELECT deptno, COUNT(ename) FROM emp; SQL> SELECT deptno, AVG(sal) FROM emp WHERE AVG(sal) > 2000
- 119. Исключение групп DEPTNO SAL ---------- ---------- 10 2450 10 5000 10 1300 20 800 20 1100
- 120. SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column]; Выводятся
- 121. SQL> SELECT job, SUM(sal) PAYROLL FROM emp WHERE job NOT LIKE 'SALES%‘ GROUP BY job HAVING
- 122. SQL> SELECT max(avg(sal)) FROM emp GROUP BY deptno; MAX(AVG(SAL)) ------------- 2916.66667 Вложенные групповые функции
- 123. Подзапросы SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table); Вложенный запрос выполняется один
- 124. Использование подзапроса SELECT ename FROM emp WHERE sal > (SELECT sal FROM emp WHERE empno =
- 125. Подзапрос должен быть заключен в скобки. Подзапрос должен находиться справа от оператора сравнения. Подзапрос не может
- 126. Однострочный подзапрос. Многострочный подзапрос. Многостолбцовый подзапрос. Типы подзапросов Главный запрос Главный запрос Главный запрос подзапрос подзапрос
- 127. Выполнение однострочных подзапросов SELECT ename, job FROM emp WHERE job = (SELECT job FROM emp WHERE
- 128. Использование гр. функций в подзапросах SELECT ename, job, sal FROM emp WHERE sal = (SELECT MIN(sal)
- 129. HAVING с подзапросами SELECT deptno, MIN(sal) FROM emp GROUP BY deptno HAVING MIN(sal) > (SELECT MIN(sal)
- 130. SQL> SELECT empno, ename FROM emp WHERE sal = (SELECT MIN(sal) FROM emp GROUP BY deptno);
- 131. Многострочные запросы Возвращают более одной строки Используют многострочные операторы сравнения
- 132. Оператор IN SQL> SELECT ename, sal, deptno FROM emp WHERE sal IN (800, 950, 1300); ENAME
- 133. Оператор ANY SQL> SELECT empno, ename, job FROM emp WHERE sal (SELECT sal FROM emp WHERE
- 134. Оператор ALL SQL> SELECT empno, ename, job FROM emp WHERE sal > ALL (SELECT avg(sal) FROM
- 135. Многостолбцовые подзапросы SELECT column, column, ... FROM table WHERE (column, column, ...) IN (SELECT column, column,
- 136. Использование многостолбц. подзапросов SELECT ordid, prodid, qty FROM item WHERE (prodid, qty) IN (SELECT prodid, qty
- 137. Сравнения столбцов Парное PRODID QTY 101863 100 100861 100 102130 10 100890 5 100870 500 101860
- 138. Подзапрос с непарным сравнением SELECT ordid, prodid, qty FROM item WHERE prodid IN (SELECT prodid FROM
- 139. Неопределенные значения в подзапросе SQL> SELECT employee.ename FROM emp employee WHERE employee.empno NOT IN (SELECT manager.mgr
- 140. Подзапрос в предложении FROM SQL> SELECT a.ename, a.sal, a.deptno, b.salavg FROM emp a, (SELECT deptno, avg(sal)
- 141. Использование переменных подстановки SQL*Plus для временного хранения значений. - Одиночный амперсанд(&) - Двойной амперсанд (&&) -
- 142. Данная переменная позволяет запросить значение у пользователя. SQL> SELECT empno, ename, sal, deptno FROM emp WHERE
- 143. Если задан режим SET VERIFY ON, SQL*Plus выводит текст команды до и после замены переменных подстановки
- 144. Даты и символьные значения заключаются в апострофы. SQL> SELECT ename, deptno, sal*12 FROM emp WHERE job
- 145. Переменные подстановки могут замещать: Условие WHERE Предложение ORDER BY Выражение со столбцами Имя таблицы Целую команду
- 146. SQL> SELECT empno, ename, job, &column_name FROM emp WHERE &condition ORDER BY &order_column; Enter value for
- 147. Переменная подстановки с двумя амперсандами (&&) позволяет многократно использовать значение переменной, не запрашивая его повторно у
- 148. Задать переменную можно с помощью одной из двух команд SQL*Plus: - DEFINE: создает пользовательскую переменную с
- 149. Создает более удобное приглашение пользователю ввести данные. Явно задает переменную типа NUMBER или DATE. Скрывает вводимые
- 150. SQL> ACCEPT dept PROMPT 'Provide the department name:' SELECT * FROM dept WHERE dname = UPPER('&dept');
- 151. Переменная остается заданной: - До её удаления командой UNDEFINE - До выхода из SQL*Plus Проверить изменения
- 152. Переменная для хранения названия отдела: SQL> DEFINE deptname = sales SQL> DEFINE deptname DEFINE DEPTNAME =
- 153. Для управления текущим сеансом пользуйтесь командой SET. SET system_variable value Проверка заданных значений с помощью SHOW:
- 154. ARRAYSIZE {20 | n} COLSEP {_ | text} FEEDBACK {6 | n | OFF | ON}
- 155. COLUMN [column option] TTITLE [text | OFF | ON] BTITLE [text | OFF | ON] BREAK
- 156. Управляет форматом вывода столбца COLUMN [column option] CLE[AR]: сбрасывает все установки для столбца. FOR[MAT] format: изменяет
- 157. Создание заголовков столбцов: COLUMN ename HEADING 'Employee|Name' FORMAT A15 COLUMN sal JUSTIFY LEFT FORMAT $99,990.00 COLUMN
- 158. Модели формата в команде COLUMN
- 159. Устраняет дубликаты и группирует строки Для устранения дубликатов SQL> BREAK ON ename ON job Для вычисления
- 160. Вывод заголовков и нижних колонтитулов TTI[TLE] [text|OFF|ON] Задание заголовка отчета SQL> TTITLE ‘Salary|Report’ Задание нижнего колонтитула
- 161. Команды DML выполняются при следующих операциях: - Добавление новых строк в таблицу - Изменение существующих строк
- 162. Для добавления новых строк в таблицу используется команда INSERT. INSERT INTO table [(column [, column…])] VALUES
- 163. Символьные значения и даты заключаются в апострофы. SQL> INSERT INTO dept (deptno, dname, loc) VALUES (50,
- 164. Неявный метод: столбец не указывается в списке столбцов. SQL> INSERT INTO dept (deptno, dname) VALUES (60,
- 165. Функция SYSDATE записывает текущие дату и время. SQL> INSERT INTO emp (empno, ename, job, mgr, hiredate,
- 166. Добавление нового служащего. SQL> INSERT INTO emp VALUES (2296, ‘AROMANO‘,’SALESMAN’, 7782, TO_DATE(‘FEB,3,97’,’MON DD, YY’), 1300, NULL,
- 167. SQL> INSERT INTO dept (deptno, dname, loc) VALUES (&department_id, ‘&department_name’, ‘&location’); Enter value for department_id: 80
- 168. Команда INSERT включает подзапрос. SQL> INSERT INTO managers (id, name, salary, hiredate) SELECT empno, ename, sal,
- 169. Для обновления существующих строк в таблице используется команда UPDATE. UPDATE table SET column = value [,
- 170. Предложение WHERE позволяет изменить конкретную строку или строки. SQL> UPDATE emp SET deptno = 20 WHERE
- 171. Изменение должности и номера отдела служащего под номером 7698 на такие же значения, как у служащего
- 172. Для изменения строк таблицы на основе значений из другой таблицы следует использовать подзапросы в командах UPDATE.
- 173. Для удаления существующих строк используется команда DELETE. DELETE [FROM] table [WHERE condition]; В случае необходимости можно
- 174. Конкретная строка или строки удаляются с помощью предложения WHERE. SQL> DELETE FROM department WHERE dname =
- 175. Для изменения строк таблицы на основе значений из другой таблицы следует использовать подзапросы в командах UPDATE.
- 176. Содержат что-либо из следующего: Команды DML, выполняющие единое согласованное изменение данных. Одну команду DDL. Одну команду
- 177. Начинаются с выполнения первой исполняемой команды SQL. Заканчиваются одним из сл. cобытий: - Выполнение команды COMMIT
- 178. COMMIT SAVEPOINT name ROLLBACK [TO SAVEPOINT name] Управление транзакциями
- 179. Управление транзакциями INSERT UPDATE INSERT DELETE COMMIT Точка сохранения A Точка сохранения B ТРАНЗАКЦИЯ ROLLBACK to
- 180. Автоматическая фиксация изменений (COMMIT) происходит в сл. случаях: - Выполнение команды DDL - Выполнение команды DCL
- 181. Состояние данных может быть восстановлено. Текущий пользователь может просмотреть результаты своих операций DML с помощью команды
- 182. Внесение изменений. SQL> UPDATE emp SET deptno = 10 WHERE empno = 7782; 1 row updated.
- 183. Внесение изменений. SQL> DELETE FROM employee; 14 rows deleted. Откат изменений. SQL> ROLLBACK; Rollback complete. Откат
- 184. SQL> UPDATE... SQL> SAVEPOINT update_done; Savepoint created. SQL> INSERT... SQL> ROLLBACK TO update_done; Rollback complete. Откат
- 185. Если ошибка возникла при выполнении одной конкретной команды DML, отменяются только результаты этой команды. Сервер Oracle
- 186. Согласованность чтения гарантирует непротиворечивое представление данных в любой момент времени. Изменения, сделанные одним пользователем, не вступают
- 187. Exclusive (исключительный) Share (разделяемый) Блокировка данных
- 188. Объекты базы данных
- 189. Имя начинается с буквы Может быть длиной до 30 символов Должно содержать только символы A-Z, a-z,
- 190. Необходимо иметь: - привилегию CREATE TABLE - область хранения CREATE TABLE [schema.] table (column datatype [DEFAULT
- 191. Задает значение по умолчанию, если при добавлении данных значение не указывается явно. ...hiredate DATE DEFAULT SYSDATE,
- 192. SQL> CREATE TABLE ABC (DEPTNO NUMBER (2), DNAME VARCHAR2 (14), LOC VARCHAR2 (13)); Table created. SQL>
- 193. Таблицы пользователей - таблицы, создаваемые и поддерживаемые пользователями - содержат информацию пользователей Словарь базы данных -
- 194. Вывод определений таблиц, принадлежащих пользователю. SELECT * FROM user_tables; Просмотр типов объектов, принадлежащих пользователю. SELECT DISTINCT
- 195. Типы данных
- 196. Количество заданных столбцов должно совпадать с количеством столбцов в подзапросе CREATE TABLE table [column (, column...)]
- 197. CREATE TABLE dept30 AS SELECT empno, ename, sal*12 ANNSAL, hiredate FROM emp WHERE deptno = 30;
- 198. Используется для следующих операций: - Добавления / Удаления столбца - Изменение существующего столбца - Задание значения
- 199. Столбцы добавляются с помощью предложения ADD. ALTER TABLE dept30 ADD (job VARCHAR2(9)); Table altered. EMPNO ENAME
- 200. Столбцы изменяются с помощью предложения MODIFY. ALTER TABLE dept30 MODIFY (ename VARCHAR2(15)); Table altered. Изменение столбца
- 201. Столбцы удаляются с помощью предложения DROP COLUMN. ALTER TABLE dept30 DROP COLUMN job; Table altered. Удаление
- 202. Столбцы помечаются, как неиспользуемые с помощью предложения SET UNUSED. ALTER TABLE table SET UNUSED (column); Удаление
- 203. Удаляются все данные и структура таблицы. Все незафиксированные транзакции фиксируются. Все индексы удаляются. Откат этой команды
- 204. Для переименования таблицы, представления, последова- тельности или синонима используется команда RENAME. SQL> RENAME dept TO department;
- 205. Команда TRUNCATE TABLE: - Удаляет все строки из таблицы - Освобождает пространство, используемое таблицей SQL> TRUNCATE
- 206. Добавление комментария к таблице или столбцу при помощи команды COMMENT. SQL> COMMENT ON TABLE emp IS
- 207. Ограничения обеспечивают выполнение правил на уровне таблицы. Ограничения предотвращают удаление таблицы при наличии подчиненных данных в
- 208. CREATE TABLE [schema.] table (column datatype [DEFAULT expr] [column_constraint], ... [table_constraint]); CREATE TABLE emp empno NUMBER(4),
- 209. Ограничение на уровне столбца. column [CONSTRAINT constraint_name] constraint_type Ограничение на уровне таблицы. column,... [CONSTRAINT constraint_name] constraint_type
- 210. Предотвращает появление неопределенных значений в столбце CREATE TABLE EMP ( EMPNO NUMBER(4), ENAME VARCHAR2(10) NOT NULL,
- 211. Может быть задано на уровне столбца или таблицы CREATE TABLE DEPT ( DEPTNO NUMBER(2), DNAME VARCHAR2(14),
- 212. Может быть задано на уровне столбца или таблицы CREATE TABLE DEPT ( DEPTNO NUMBER(2), DNAME VARCHAR2(14),
- 213. Может быть задано на уровне столбца или таблицы CREATE TABLE EMP ( EMPNO NUMBER(4) NOT NULL,
- 214. FOREIGN KEY: определяет столбец в подчиненной таблице, используемый в качестве внешнего ключа. REFERENCES: определяет родительскую таблицу
- 215. Задаёт условие, которому должна удовлетворять каждая строка таблицы Не допускаются: - Ссылки на псевдостолбцы CURRVAL, NEXTVAL,
- 216. ALTER TABLE table ADD [CONSTRAINT constraint] type (column); Ограничение можно добавить, удалить, но не изменить. Ограничение
- 217. Добавление ограничения FOREIGN KEY для таблицы EMP. Это ограничение означает, что информация о менеджере уже должна
- 218. Удаление ограничения FOREIGN KEY из таблицы EMP. ALTER TABLE emp DROP CONSTRAINT emp_mgr_fk; Table altered. Удаление
- 219. Для отключения ограничения используется команда ALTER TABLE с предложением DISABLE. Для отмены ограничения вместе с зависимыми
- 220. Для включения ограничения используется команда ALTER TABLE с предложением ENABLE. При включении ограничения UNIQUE или PRIMARY
- 221. Вместе с предложением DROP COLUMN можно использовать опцию CASCADE CONSTRAINTS. Опция CASCADE CONSTRAINTS удаляет все ссылочные
- 222. Просмотреть все определения и имена ограничений можно с помощью запроса к представлению USER_CONSTRAINTS. SQL> SELECT constraint_name,
- 223. Просмотреть столбцы, связанные с ограничениями можно с помощью запроса к представлению USER_CONS_COLUMNS. SQL> SELECT constraint_name, column_name
- 224. Ограничение доступа к базе данных. Упрощение сложных запросов. Обеспечение независимости от данных. Представление одних и тех
- 225. Простые и сложные представления
- 226. В команду CREATE VIEW включается подзапрос. CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias]...)] AS subquery
- 227. Создание представления EMPVU10 с информацией о служащих отдела 10. SQL> CREATE VIEW empvu10 AS SELECT empno,
- 228. Создание представления SALVU30 с использованием псевдонимов в подзапросе. SQL> CREATE VIEW salvu30 AS SELECT empno EMPLOYEE_NUMBER,
- 229. SQL> SELECT * FROM salvu30; EMPLOYEE_NUMBER NAME SALARY --------------- ---------- ---------- 7499 ALLEN 1600 7521 WARD
- 230. Запрос к представлению SQL*Plus SELECT * FROM empvu10; 7839 KING PRESIDENT 7782 CLARK MANAGER 7934 MILLER
- 231. Изменение представления EMPVU10 с помощью предложения CREATE OR REPLACE VIEW. Добавление псевдонима для каждого столбца. SQL>
- 232. Создание сложного представления с групповыми функциями для вывода данных из двух таблиц. SQL> CREATE VIEW dept_sum_vu
- 233. Операции DML можно выполнять с простыми представлениями. Нельзя удалить строку, если представление содержит: - Групповые функции
- 234. Необходимо следить за тем, чтобы результаты DML операций оставались в пределах домена представления. SQL> CREATE OR
- 235. Использование опции WITH READ ONLY запрещает выполнять над представлением любые DML операции. SQL> CREATE OR REPLACE
- 236. Удаление представления не вызывает потери данных, т. к. представление основано на реальных таблицах базы данных. DROP
- 237. Автоматически генерирует уникальные числа. Является совместно используемым объектом. Обычно используется для генерации значений первичного ключа. Заменяет
- 238. Определение последовательности для автоматической генерации чисел. CREATE SEQUENCE sequence [INCREMENT BY n] [START WITH n] [{MAXVALUE
- 239. Создание последовательности DEPT_DEPTNO для использования в качестве первичного ключа таблицы DEPT. При генерации значений первичных ключей
- 240. Проверить значения последовательности можно в представлении USER_SEQUENCES словаря данных. SELECT sequence_name, min_value, max_value, increment_by, last_number FROM
- 241. NEXTVAL генерирует следующее свободное число в последовательности. Столбец возвращает уникальное значение при каждом обращении к нему
- 242. Добавление нового отдела. SQL> INSERT INTO dept (deptno, dname, loc) VALUES (dept_deptno.NEXTVAL, ‘ MARKETING’, ’MOSCOW’); 1
- 243. Изменение шага приращения, макс. и мин. значений, режима циклической генерации значений и кэширования. ALTER SEQUENCE dept_deptno
- 244. Для изменения последовательности необходимо быть её владельцем или иметь привилегию ALTER для неё. Команда влияет только
- 245. Для удаления последовательности используется команда DROP SEQUENCE. SQL> DROP SEQUENCE dept_deptno; Sequence dropped. Удаление последовательности
- 246. Используется для ускорения выборки строк с помощью указателя. Уменьшает количество операций дискового ввода-вывода за счёт использования
- 247. Автоматически -Уникальный индекс создаётся автоматически, если в определении таблицы задано ограничение PRIMARY KEY или UNIQUE. Вручную
- 248. Создание индекса по одному или нескольким столбцам. CREATE INDEX index ON table (column[, column]...); Увеличение скорости
- 249. Представление словаря данных USER_INDEXES содержит имя индекса и информацию о его уникальности. Представление словаря данных USER_IND_COLUMNS
- 250. Это индексы, основанные на каком-либо выражении. Выражение может строиться на основе значений столбцов, констант, функций SQL
- 251. Удаление индекса SQL> DROP INDEX index; Удаление индекса EMP_ENAME_IDX SQL> DROP INDEX emp_ename_idx; Index dropped. Для
- 252. Синонимы (альтернативные имена объектов) упрощают доступ к объектам: Позволяют обращаться к таблицам других пользователей. Устраняют необходимость
- 253. Создание более короткого имени для представления DEPT_SUM_VU. SQL> CREATE SYNONYM d_sum FOR dept_sum_vu; Synonym created. Удаление
- 254. Безопасность базы данных - Безопасность системы - Безопасность данных Системные привилегии: получение доступа к базе данных.
- 255. Команда создания пользователя – CREATE USER: CREATE USER user IDENTIFIED BY password; SQL> CREATE USER scott
- 256. Сразу после создания пользователя АБД может предоставить ему конкретные системные привилегии. GRANT privilege [, privilege...] TO
- 257. Сразу после создания пользователя АБД может предоставить ему конкретные системные привилегии. SQL> GRANT create table, create
- 258. SQL> CREATE ROLE manager Role created. SQL> GRANT create table, create view TO manager; Grant succeeded.
- 259. Используется команда ALTER USER SQL> ALTER USER scott IDENTIFIED BY lion; User altered. Изменение пароля пользователя
- 260. Объектные привилегии
- 261. Объектные привилегии разные для разных типов данных. Владелец объекта имеет все привилегии на этот объект. Владелец
- 262. Предоставление привилегии на выполнение запросов к таблице EMP. SQL> GRANT select ON emp TO sue, rich;
- 263. Предоставление полномочий пользователю на передачу привилегий. SQL> GRANT select, insert ON dept TO scott; WITH GRANT
- 264. Проверка предоставленных привилегий
- 265. Для отмены привилегий, прелоставленных другим пользователям, используется команда REVOKE. Одновременно отменяются привилегии, предоставленные другим пользователям посредством
- 266. Отмена пользователем ALICE привилегий SELECT и INSERT, предоставленных пользователю SCOTT на таблицу DEPT. SQL> REVOKE select,
- 267. Расширение SQL
- 268. Соединения SQL:1999 Тип соединения указывается явно в классе FROM Предикаты соединения могут быть указаны в классе
- 269. Пересекающееся соединение Эквивалентно декартову произведению двух таблиц SELECT c.country_name , r,region_name From countries c CROSS JOIN
- 270. Естественное соединение Объединение по эквивалентности, основанное на всех столбцах, у которых одинаковые наименования Соединяющиеся столбцы должны
- 271. Пример естественного соединения SELECT department_id, location_id , city, country_id From departments NATURAL JOIN locations;
- 272. Эквивалентное соединение и класс USING Отдельно от естественного соединения можно создать правильное эквивалентное соединение с классом
- 273. Пример класса USING SELECT e.employee_id, e.last_name , d.location_id From employees e JOIN departments d USING (department_id)
- 274. Предикаты соединения и класс ON Используются для разделения предикатов соединения от других предикатов Класс ON позволяет
- 275. Трехстороннее соединение с классом ON SELECT d.department_name , l.city, c.country_name From departments d JOIN locations l
- 276. Внешние соединения Типы: LEFT, RIGHT, FULL Больше внушительности и наглядности, чем оператор (+) PROD TYPE TYPE
- 277. Пример внешнего соединения SELECT p.prod, p.type , t.type, t.descr From p {LEFT|RIGHT|FULL} OUTER JOIN t ON
- 278. Усовершенствованные CASE выражения 4 типа в SQL:1999: Простое Поисковое NULLIF COALESCE
- 279. Простое CASE выражение Аналогично функции DECODE Поиск и замена значений внутри выражения Select e.last_name , (CASE
- 280. Поисковое CASE выражение Аналогично конструкции IF…THEN …ELSE Поиск по условию и замена значений внутри выражения Select
- 281. NULLIF и COALESCE NULLIF (expr1, expr2) ⬄ CASE WHEN expr1 = expr2 THEN NULL ELSE expr1
- 282. Скалярные подзапросы Возвращают одну строку с одним значением столбца Ограниченная поддержка в Oracle8i В Oracle9i разрешены
- 283. Пример скалярного подзапроса Select d.department_name , (select count(*) from employees e where e.department_id = d.department_id) as
- 284. Явный DEFAULT Insert into employees (employee_id, first_name, department_id) Values (1, ‘Scott’, DEFAULT); Update employees Set department_id
- 285. Команда MERGE Известна также как “upsert” Производит обновление, если строки выполнены, в противном случае выполняется вставка
- 286. Фраза GROUPING SETS надмножество GROUP BY {ROLLUP|CUBE} Выдает единственный результат, который эквивалентен приблизительно UNION ALL Select
- 287. Составные столбцы Обработка группы столбцов как одной единицы: GROUP BY ROLLUP (a, b ,c) возвращает 4
- 288. Связанные группы Перемножение многочисленных групп Задаются перечислением многочисленных GROUPNG SETS, CUBE, ROLLUP Select prod_id, channel_id, time_id
- 289. Класс WITH Наименование блока запроса в команде SELECT для ссылки, если несколько блоков в запросе Класс
- 291. Скачать презентацию