Содержание
- 2. Цели После освоения материала данной лекции, Вы должны быть в состоянии выполнить следующие действия: Описать типы
- 3. SQL Функции Функция Арг. 1 Арг. 2 Арг. n Выполняет действие Результат
- 4. Типы SQL Функций Однострочные Многострочные Возвращают один результат для одной строки Возвращают один результат для набора
- 5. Однострочные функции (Single-Row Functions) Особенности однострочных функций: Обрабатывает каждую строку, возвращаемую запросом Возвращает по одному результату
- 6. Однострочные функции (Single-Row Functions) Преобразования (Conversion) Символьные (Character) Числовые (Number) Даты (Date) Общие (General) Single-row functions
- 7. Символьные функции (Character Functions)
- 8. Функции преобразования регистра символов (Case-Manipulation Functions)
- 9. SELECT employee_id, last_name, department_id FROM employees WHERE LOWER(last_name) = 'higgins'; Пример использования Case-Manipulation Functions Выбрать номер,
- 10. Функции манипулирования символами (Character-manipulation)
- 11. SELECT employee_id, CONCAT(first_name, last_name) NAME, job_id, LENGTH (last_name), INSTR(last_name, 'a') "Contains 'a'?" FROM employees WHERE SUBSTR(job_id,
- 12. Числовые функции (Number Functions) ROUND: Округляет значение до десятичных разрядов TRUNC: Усекает значение до десятичных разрядов
- 13. SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1) FROM DUAL; Пример использования функции ROUND 3 3 1 2 1 2
- 14. Пример использования функции TRUNC SELECT trunc(45.923,2) , trunc(45.923) , trunc(45.923,-1) FROM dual; 3 3 1 2
- 15. SELECT last_name, salary, MOD(salary, 5000) FROM employees WHERE job_id = 'SA_REP'; Пример использования функции MOD
- 16. SELECT last_name, hire_date FROM employees WHERE hire_date Работа с датами База данных Oracle хранит даты во
- 17. Работа с датами Функция SYSDATE возвращает: Текущую дату Текущее время Функция сurrent_date возвращает: Текущую дату Текущее
- 18. Arithmetic with Dates Прибавить или вычесть число из даты Найти разность между двумя датами.
- 19. SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS FROM employees WHERE department_id = 90; Использование арфиметических операций с датами
- 20. Date Functions
- 21. Using Date Functions
- 22. Using Date Functions Assume SYSDATE = '25-JUL-03':
- 23. Practice 3: Overview of Part 1 This practice covers the following topics: Writing a query that
- 24. Conversion Functions Implicit data type conversion Explicit data type conversion Data type conversion
- 25. Implicit Data Type Conversion For assignments, the Oracle server can automatically convert the following:
- 26. Implicit Data Type Conversion Oracle Server может автоматически неявно преобразовывать типы:
- 27. Explicit Data Type Conversion
- 28. Explicit Data Type Conversion
- 29. Using the TO_CHAR Function with Dates The format model: Must be enclosed by single quotation marks
- 30. Elements of the Date Format Model
- 31. Elements of the Date Format Model Time elements format the time portion of the date: Add
- 32. SELECT last_name, TO_CHAR(hire_date, 'fmDD Month YYYY') AS HIREDATE FROM employees; Using the TO_CHAR Function with Dates
- 33. Using the TO_CHAR Function with Numbers These are some of the format elements that you can
- 34. SELECT TO_CHAR(salary, '$99,999.00') SALARY FROM employees WHERE last_name = 'Ernst'; Using the TO_CHAR Function with Numbers
- 35. Using the TO_NUMBER and TO_DATE Functions Convert a character string to a number format using the
- 36. Nesting Functions Single-row functions can be nested to any level. Nested functions are evaluated from deepest
- 37. SELECT last_name, UPPER(CONCAT(SUBSTR (LAST_NAME, 1, 8), '_US')) FROM employees WHERE department_id = 60; Nesting Functions
- 38. General Functions The following functions work with any data type and pertain to using nulls: NVL
- 39. NVL Function Converts a null value to an actual value: Data types that can be used
- 40. SELECT last_name, salary, NVL(commission_pct, 0), (salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL FROM employees; Using the NVL Function
- 41. SELECT last_name, salary, commission_pct, NVL2(commission_pct, 'SAL+COMM', 'SAL') income FROM employees WHERE department_id IN (50, 80); Using
- 42. SELECT first_name, LENGTH(first_name) "expr1", last_name, LENGTH(last_name) "expr2", NULLIF(LENGTH(first_name), LENGTH(last_name)) result FROM employees; Using the NULLIF Function
- 43. Using the COALESCE Function The advantage of the COALESCE function over the NVL function is that
- 44. SELECT last_name, COALESCE(manager_id,commission_pct, -1) comm FROM employees ORDER BY commission_pct; Using the COALESCE Function …
- 45. Conditional Expressions Provide the use of IF-THEN-ELSE logic within a SQL statement Use two methods: CASE
- 46. CASE Expression Facilitates conditional inquiries by doing the work of an IF-THEN-ELSE statement: CASE expr WHEN
- 47. SELECT last_name, job_id, salary, CASE job_id WHEN 'IT_PROG' THEN 1.10*salary WHEN 'ST_CLERK' THEN 1.15*salary WHEN 'SA_REP'
- 48. DECODE Function Facilitates conditional inquiries by doing the work of a CASE expression or an IF-THEN-ELSE
- 49. SELECT last_name, job_id, salary, DECODE(job_id, 'IT_PROG', 1.10*salary, 'ST_CLERK', 1.15*salary, 'SA_REP', 1.20*salary, salary) REVISED_SALARY FROM employees; Using
- 50. SELECT last_name, salary, DECODE (TRUNC(salary/2000, 0), 0, 0.00, 1, 0.09, 2, 0.20, 3, 0.30, 4, 0.40,
- 51. Использование групповых функций
- 52. Objectives После завершения этого урока вы должны знать : Что такое групповые функции и как их
- 53. Что такое групповая функция? Групповые функции работают с наборами строк, чтобы дать один результат в каждой
- 54. Типы групповых функций AVG COUNT MAX MIN SUM …
- 55. SELECT [column,] group_function(column), ... FROM table [WHERE condition] [GROUP BY column] [ORDER BY column]; Функции Группа:
- 56. SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary) FROM employees WHERE job_id LIKE '%REP%'; Использование функций AVG и SUM
- 57. SELECT MIN(hire_date), MAX(hire_date) FROM employees; Использование функций MIN и MAX Вы можете использовать MAX и MIN
- 58. COUNT(*) возвращает количество строк в таблице : COUNT(expr) возвращает количество строк с ненулевых значений для expr:
- 59. SELECT COUNT(DISTINCT department_id) FROM employees; Использование DISTINCT COUNT(DISTINCT expr) возвращает число различных ненулевых значениях expr. Для
- 60. Групповые функции и значения Null Групповые функции игнорируют столбцы со значением null : Функция NVL позволяет
- 61. Создание групп данных EMPLOYEES … Average salary in EMPLOYEES table for each department
- 62. Вы можете разделить строки в таблице на более мелкие группы при помощи предложения GROUP BY. Создание
- 63. SELECT department_id, AVG(salary) FROM employees GROUP BY department_id ; Использование предложения GROUP BY Все столбцы в
- 64. Использование предложения GROUP BY Столбец в GROUP не обязательно должен находиться в SELECT . SELECT AVG(salary)
- 65. Группировка по нескольким столбцам EMPLOYEES Add the salaries in the EMPLOYEES table for each job, grouped
- 66. SELECT department_id dept_id, job_id, SUM(salary) FROM employees GROUP BY department_id, job_id ; Использование GROUP BY на
- 67. Некорректные Запросы Использование групповых функций Любой столбец или выражение в списке SELECT, который не является агрегатной
- 68. Вы не можете использовать групповые функции в WHERE. Для этой цели используйте HAVING. SELECT department_id, AVG(salary)
- 69. Ограничение результатов группировки EMPLOYEES … The maximum salary per department when it is greater than $10,000
- 70. SELECT column, group_function FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column]; Ограничение
- 71. SELECT department_id, MAX(salary) FROM employees GROUP BY department_id HAVING MAX(salary)>10000 ; Использование предложения HAVING
- 72. SELECT job_id, SUM(salary) PAYROLL FROM employees WHERE job_id NOT LIKE '%REP%' GROUP BY job_id HAVING SUM(salary)
- 73. SELECT MAX(AVG(salary)) FROM employees GROUP BY department_id; Nesting Group Functions Отображение максимальной средней заработной платы:
- 74. SELECT column, group_function FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column]; Summary
- 75. Количество сотрудников по департаментам. Оставить только департаменты с средней ЗП > 7000 2. Количество уникальных JOB_ID
- 76. Employees 1. Часть сотрудников, при выполнении планов получает премию к ЗП. Доля этой премии указана в
- 78. Скачать презентацию