Значения производной таблица: Таблица производных и правила дифференцирования

Содержание

Курс высшей математики, Т.1

Курс высшей математики, Т.1
  

В.И.Смирнов Курс высшей математики, Т.1.: Изд-во «Наука». 1974. — 479 с.

Фундаментальный учебник по высшей математике, выдержавший более двадцати изданий, переведенный на множество языков мира, отличается, с одной стороны, систематичностью и строгостью изложения, а с другой – простым языком, подробными пояснениями и многочисленными примерами. Книга состоит из пяти томов. Тома третий и четвертый – каждый из двух частей.

Для студентов университетов и технических вузов.



Оглавление

ПРЕДИСЛОВИЕ К ВОСЬМОМУ ИЗДАНИЮ
ГЛАВА I. ФУНКЦИОНАЛЬНАЯ ЗАВИСИМОСТЬ И ТЕОРИЯ ПРЕДЕЛОВ
1. Величина и ее измерение.
2. Число.

3. Величины постоянные и переменные.
4. Промежуток.
5. Понятие о функции.
6. Аналитический способ задания функциональной зависимости.
7. Неявные функции.
8. Табличный способ.
9. Графический способ изображения чисел.
10. Координаты.
11. График и уравнение кривой.
12. Линейная функция.
13. Приращение. Основное свойство линейной функции.
14. График равномерного движения.
15. Эмпирические формулы.
16. Парабола второй степени.
17. Парабола третьей степени.
18. Закон обратной пропорциональности.
19. Степенная функция.
20. Обратные функции.
21. Многозначность функции.
22. Показательная и логарифмическая функции.
23. Тригонометрические функции.
24. Обратные тригонометрические, или круговые, функции.
§ 2. ТЕОРИЯ ПРЕДЕЛОВ. НЕПРЕРЫВНЫЕ ФУНКЦИИ
25. Упорядоченное переменное.
26. Величины бесконечно малые.
27. Предел переменной величины.
28. Основные теоремы.
29. Величины бесконечно большие.

30. Монотонные переменные.
31. Признак Коши существования предела.
32. Одновременное изменение двух переменных величин, связанных функциональной зависимостью.
33. Примеры.
34. Непрерывность функции.
35. Свойства непрерывных функций.
36. Сравнение бесконечно малых и бесконечно больших величин.
37. Примеры.
38. Число е.
39. Недоказанные предложения.
40. Вещественные числа.
41. Действия над вещественными числами.
42. Точные границы числовых множеств. Признаки существования предела.
43. Свойства непрерывных функций.
44. Непрерывность элементарных функций.
ГЛАВА II. ПОНЯТИЕ О ПРОИЗВОДНОЙ И ЕГО ПРИЛОЖЕНИЯ
45. Понятие о производной.
46. Геометрическое значение производной.
47. Производные простейших функций.
48. Производные сложных и обратных функций.
49. Таблица производных и примеры.
50. Понятие о дифференциале.
51. Некоторые дифференциальные уравнения.
52. Оценка погрешностей.
§ 4. ПРОИЗВОДНЫЕ И ДИФФЕРЕНЦИАЛЫ ВЫСШИХ ПОРЯДКОВ
53. Производные высших порядков.
54. Механическое значение второй производной.
55. Дифференциалы высших порядков.
56. Разности функций.
§ 5. ПРИЛОЖЕНИЕ ПОНЯТИЯ О ПРОИЗВОДНОЙ К ИЗУЧЕНИЮ ФУНКЦИЙ
57. Признаки возрастания и убывания функций.
58. Максимумы и минимумы функций.
59. Построение графиков.
60. Наибольшее и наименьшее значения функций.
61. Теорема Ферма.
62. Теорема Ролля.
63. Формула Лагранжа.
64. Формула Коши.
65. Раскрытие неопределенностей.
66. Различные виды неопределенностей.
§ 6. ФУНКЦИИ ДВУХ ПЕРЕМЕННЫХ
68. Частные производные и полный дифференциал функции двух независимых переменных.
69. Производные сложных и неявных функций.
§ 7. НЕКОТОРЫЕ ГЕОМЕТРИЧЕСКИЕ ПРИЛОЖЕНИЯ ПОНЯТИЯ О ПРОИЗВОДНЫХ
70. Дифференциал дуги.
71. Выпуклость, вогнутость и кривизна.
72. Асимптоты.
73. Построение графиков.
74. Параметрическое задание кривой.
75. Уравнение Ван-дер-Ваальса.
76. Особые точки кривых.
77. Элементы кривой.
78. Цепная линия.
79. Циклоида.
80. Эпициклоиды и гипоциклоиды.
81. Развертка круга.
82. Кривые в полярных координатах.
83. Спирали.
85. Овалы Кассини и лемниската.
ГЛАВА III. ПОНЯТИЕ ОБ ИНТЕГРАЛЕ И ЕГО ПРИЛОЖЕНИЯ
86. Понятие о неопределенном интеграле.
87. Определенный интеграл как предел суммы.
88. Связь определенного и неопределенного интегралов.
89. Свойства неопределенного интеграла.
90. Таблица простейших интегралов.
91. Правило интегрирования по частям.
92. Правило замены переменных. Примеры.
93. Примеры дифференциальных уравнений первого порядка.
§ 9. СВОЙСТВА ОПРЕДЕЛЕННОГО ИНТЕГРАЛА
94. Основные свойства определенного интеграла.
95. Теорема о среднем.
96. Существование первообразной функции.
97. Разрыв подынтегральной функции.
98. Бесконечные пределы.
99. Замена переменной под знаком определенного интеграла.
100. Интегрирование по частям.
§ 10. ПРИЛОЖЕНИЯ ПОНЯТИЯ ОБ ОПРЕДЕЛЕННОМ ИНТЕГРАЛЕ
101. Вычисление площадей.
102. Площадь сектора.
103. Длина дуги.
104. Вычисление объемов тел по их поперечным сечениям.
105. Объем тела вращения.
106. Поверхность тела вращения.
107. Определение центров тяжести. Теоремы Гульдина.
108. Приближенное вычисление определенных интегралов; формулы прямоугольников и трапеций.
109. Формула касательных и формула Понселе.
110. Формула Симпсона.
111. Вычисление определенного интеграла с переменным верхним пределом.
112. Графические способы.
113. Площади быстро колеблющихся кривых.
§ 11. ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ ОБ ОПРЕДЕЛЕННОМ ИНТЕГРАЛЕ
115. Разбиение промежутка на части и образование различных сумм.
116. Интегрируемые функции.
117. Свойства интегрируемых функций.
ГЛАВА IV. РЯДЫ И ИХ ПРИЛОЖЕНИЯ К ПРИБЛИЖЕННЫМ ВЫЧИСЛЕНИЯМ
118. Понятие о бесконечном ряде.
119. Основные свойства бесконечных рядов.
120. Ряды с положительными членами. Признаки сходимости.
121. Признаки Коши и Даламбера.
122. Интегральный признак сходимости Коши.
123. Знакопеременные ряды.
124. Абсолютно сходящиеся ряды.
125. Общий признак сходимости.
§ 13. ФОРМУЛА ТЕЙЛОРА И ЕЕ ПРИЛОЖЕНИЯ
126. Формула Тейлора.
127. Различные виды формулы Тейлора.
128. Ряды Тейлора и Маклорена.
129. Разложение exp(x).
130. Разложение sin x и cos x.
131. Бином Ньютона.
132. Разложение log(1+x).
133. Разложение arctg x.
134. Приближенные формулы.
135. Максимумы, минимумы и точки перегиба.
136. Раскрытие неопределенностей.
§ 14. ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ ИЗ ТЕОРИИ РЯДОВ
137. Свойства абсолютно сходящихся рядов.
138. Умножение абсолютно сходящихся рядов.
139. Признак Куммера.
140. Признак Гаусса.
141. Гипергеометрический ряд.
142. Двойные ряды.
143. Ряды с переменными членами. Равномерно сходящиеся ряды.
144. Равномерно сходящиеся последовательности функций.
145. Свойства равномерно сходящихся последовательностей.
146. Свойства равномерно сходящихся рядов.
147. Признаки равномерной сходимости.
148. Степенные ряды. Радиус сходимости.
149. Вторая теорема Абеля.
150. Дифференцирование и интегрирование степенного ряда.
ГЛАВА V. ФУНКЦИИ НЕСКОЛЬКИХ ПЕРЕМЕННЫХ
§ 15. ПРОИЗВОДНЫЕ И ДИФФЕРЕНЦИАЛЫ ФУНКЦИИ
152. О предельном переходе.
153. Частные производные и полный дифференциал первого порядка.
154. Однородные функции.
155. Частные производные высших порядков.
156. Дифференциалы высших порядков.
157. Неявные функции.
158. Пример.
159. Существование неявных функций.
160. Кривые в пространстве и поверхности.
§ 16. ФОРМУЛА ТЕЙЛОРА. МАКСИМУМЫ И МИНИМУМЫ ФУНКЦИИ ОТ НЕСКОЛЬКИХ ПЕРЕМЕННЫХ
161. Распространение формулы Тейлора на случай функции от нескольких независимых переменных.
162. Необходимые условия максимума и минимума функции.
163. Исследование максимума и минимума функции двух независимых переменных.
164. Примеры.
165. Дополнительные замечания о нахождении максимумов и минимумов функции.
166. Наибольшее и наименьшее значения функции.
167. Относительные максимумы и минимумы.
168. Дополнительные замечания.
169. Примеры.
ГЛАВА VI. КОМПЛЕКСНЫЕ ЧИСЛА, НАЧАЛА ВЫСШЕЙ АЛГЕБРЫ И ИНТЕГРИРОВАНИЕ ФУНКЦИЙ
170. Комплексные числа.
171. Сложение и вычитание комплексных чисел.
172. Умножение комплексных чисел.
173. Деление комплексных чисел.
174. Возвышение в степень.
175. Извлечение корня.
176. Показательная функция.
177. Тригонометрические и гиперболические функции.
178. Цепная линия.
179. Логарифмирование.
180. Синусоидальные величины и векторные диаграммы.
181. Примеры.
182. Кривые в комплексной форме.
183. Представление гармонического колебания в комплексной форме.
§ 18. ОСНОВНЫЕ СВОЙСТВА ЦЕЛЫХ МНОГОЧЛЕНОВ И ВЫЧИСЛЕНИЕ ИХ КОРНЕЙ
185. Разложение многочлена на множители.
186. Кратные корни.
187. Правило Горнера.
188. Общий наибольший делитель.
189. Вещественные многочлены.
190. Зависимость между корнями уравнения и его коэффициентами.

191. Уравнение третьей степени.
192. Решение кубического уравнения в тригонометрической форме.
193. Способ итерации.
194. Способ Ньютона.
195. Способ простого интерполирования.
§ 19. ИНТЕГРИРОВАНИЕ ФУНКЦИИ
196. Разложение рациональной дроби на простейшие.
197. Интегрирование рациональной дроби.
198. Интеграл от выражений, содержащих радикалы.
199. Интегралы вида…
200. Интегралы вида…
201. Интегралы вида…

Электронный учебник по математическому анализу

4.1 Производная

4.2 Первый дифференциал

4.1.1 Определение производной

Понятие производной — одно из ключевых в математическом анализе. Пусть $f(x)$ задана на некотором интервале $(a,b) \subset\mathbb{R}$, точка $x_0 \in (a,b)$.

Рассмотрим отношение \[ A(x_0, \vartriangle x)=\frac{f(x_0+\Delta x)-f(x_0)}{\Delta x }. \]

Это функция двух переменных — $x_0$ и еще одной переменной, которую обозначают $ \Delta x$.

Числитель этой дроби обозначают иногда как $\Delta f=f(x_0+\Delta x)-f(x_0)$ и называют приращением функции $f(x)$ в точке $x_0$, соответствующим приращению аргумента $\Delta x$, так что \[ A(x_0, \Delta x)=\frac{\Delta f}{\Delta x }. \]

Определение. Если существует конечный предел \[ \lim _{\Delta \to 0}\frac{f(x_0+\Delta x)-f(x_0)}{\Delta x }=k, \] то говорят, что функция $f(x)$ дифференцируема в точке $x=x_0$, имеет там производную, равную $k$, которую обозначают $\frac{df}{dx}(x_0)$ или $f'(x_0)$.

Итак, если $f(x)$ дифференцируема в точке $x=x_0$, то \[ \frac{df}{dx}(x_0)=f'(x_0)=\lim _{\Delta x \to 0}\frac{f(x_0+\Delta x)-f(x_0)}{\Delta x }. \]

Можно получить определение левой производной, если допускать лишь отрицательные значения $ \Delta x$, и правой производной, допуская лишь положительные значения $ \Delta x$.

Примеры.

1. Рассмотрим случай $f(x)=const =C$. В этом случае $f(x_0+\Delta x)-f(x_0)=C-C=0$, так что $A(x_0,\Delta x)=0$ и имеем: $C’=0$. 2)’=2x$.

Замечание. В точках разрыва функции $f(x)$ функция не имеет производной.

Контрольный вопрос.

Докажите последнее утверждение.

Первые физические приложения.

1. Путь $S(t)$ — путь, пройденный движущейся по прямой точкой. Тогда мгновенной скоростью точки будет \[ v(t)=\lim _{\Delta t \to 0} \frac{S(t+\Delta t)-S(t)}{\Delta t}= \frac {dS}{dt}(t). \]

2. Пусть через данное сечение провода к моменту $t$ протек заряд $Q(t)$, тогда электрический ток \[ I(t)=\lim _{\Delta t \to 0} \frac{Q(t+\Delta t)-Q(t)}{\Delta t}= \frac {dQ}{dt}(t). \]

Обсудим геометрический смысл производной. На рисунке изображен график функции $y=f(x)$, проходящий через (близкие друг другу) точки $A$ и $B$. Проведем через них хорду $AB$. Отношение $(f(x+\Delta x)-f(x))/\Delta x$ соответствует тангенсу угла наклона хорды $AB$. Когда $\Delta x \rightarrow 0$, точка $B$ стремится к точке $A$, при этом хорда превращается в касательную к графику функции, проходящую через точку $(x,f(x))$. {x_0}. \]

3. $f(x)=\sin x$, $f'(x)=\cos x$.

Вычисление. \[ A(x_0, \Delta x)=\frac{\sin (x_0+\Delta x)-\sin (x_0)}{\Delta x}. \]

Используя известное тригонометрическое тождество (разность синусов равна…), имеем: \[ A(x_0, \Delta x)=2\frac{\sin (\Delta x/2)\cos (x_0+\Delta x/2)}{\Delta x}= \] \[ \frac{\sin (\Delta x/2)\cos (x_0+\Delta x/2)}{\Delta x /2}. \]

С помощью тригонометрического предельного соотношения при $\Delta x \rightarrow 0$ получаем: \[ \lim _{\Delta x\rightarrow 0}A(x_0, \Delta x)=\cos (x_0). \]

4. $f(x)=\cos x$, $f'(x)=-\sin x$.

Вычисление. \[ A(x_0, \Delta x)=\frac{\cos (x_0+\Delta x)-\cos (x_0)}{\Delta x}. \]

Используя известное тригонометрическое тождество (разность косинусов равна…), имеем: \[ A(x_0, \Delta x)=-2\frac{\sin (\Delta x/2)\sin (x_0+\Delta x/2)}{\Delta x}= \] \[ -\frac{\sin (\Delta x/2)\sin (x_0+\Delta x/2)}{\Delta x /2} \]

С помощью тригонометрического предельного соотношения при $\Delta x \rightarrow 0$ получаем: \[ \lim _{\Delta x\rightarrow 0}A(x_0, \Delta x)=-\sin (x_0) \]

5. $f(x)=\ln x$, $f'(x)=1/ x$.

Вычисление. \[ A(x_0, \Delta x)=\frac{\ln (x_0+\Delta x)-\ln (x_0)}{\Delta x}= \] \[ \frac{\ln ((x_0+\Delta x)/x_0)}{\Delta x}=\frac{1}{x_0}\frac{\ln (1+\Delta x/x_0)}{\Delta x/x_0} \]

С помощью логарифмического предельного соотношения при $\Delta x \rightarrow 0$ получаем: \[ \lim _{\Delta x\rightarrow 0}A(x_0, \Delta x)=\frac{1}{x_0} \]

4.1.3 Производная от суммы, произведения и частного функций

Производная возникает в результате предельного перехода. Поэтому свойства пределов приводят к соответствующим свойствам производных.

Теорема. Пусть функции $f(x)$, $g(x)$ дифференцируемы в точке $x$. Тогда
1. Функция $f(x)+g(x)$ также дифференцируема, причем $$(f(x)+g(x))’=f'(x)+g'(x),$$
2. Функция $f(x)\cdot g(x)$ дифференцируема, причем справедлива формула Лейбница $$(f(x)\cdot g(x))’=f'(x)\cdot g(x)+f(x)\cdot g'(x),$$
3. Если $g(x) \neq 0$, тогда $f(x)/g(x)$ дифференцируема в точке $x$, причем $$ \left (\frac{f(x)}{g(x)}\right )’=\frac{f'(x)g(x)-f(x)g'(x)}{g^2(x)}. $$

Доказательство.

1. \[ A(x_0, \Delta x)=\frac{(\left ( f(x_0+\Delta x) +g(x_0+\Delta x)\right )-\left ( f(x_0) +g(x_0)\right )}{\Delta x}= \] \[ \frac{ f(x_0+\Delta x) — f(x_0) }{\Delta x}+\frac{ g(x_0+\Delta x) — g(x_0) }{\Delta x}. \]

Согласно условиям теоремы, обе дроби в последнем выражении имеют пределы при $\Delta x \rightarrow 0$, так что используя тот факт, что предел суммы равен сумме пределов (конечных!) получаем: \[ \lim _{\Delta x \rightarrow 0} A(x_0, \Delta x)=f'(x_0)+g'(x_0). \]

2.

\[ A(x_0, \Delta x)= \] \[ \frac{ f(x_0+\Delta x)\cdot g(x_0+\Delta x)- f(x_0) \cdot g(x_0)}{\Delta x}= \] \[ \frac{ f(x_0+\Delta x)\cdot g(x_0+\Delta x)- f(x_0+\Delta x)\cdot g(x_0)}{\Delta x} \] \[ {+f(x_0+\Delta x)\cdot g(x_0)- f(x_0) \cdot g(x_0)}{\Delta x} \] \[ =f(x_0+\Delta x)\frac{g(x_0+\Delta x)- g(x_0)}{\Delta x}+ \] \[ g(x_0)\frac{f(x_0+\Delta x)- f(x_0)}{\Delta x}. \]

Согласно условиям теоремы, при $\Delta x \rightarrow 0$ выражения $$ \frac{g(x_0+\Delta x)- g(x_0)}{\Delta x}, \quad \frac{f(x_0+\Delta x)- f(x_0)}{\Delta x}$$ имеют пределы, равные производным функций $g'(x_0), f'(x_0)$. Так как функция $f(x)$ дифференцируема в точке $x_0$, то она непрерывна в этой точке, значит $f(x_0+\Delta x) \rightarrow f(x_0) $ при $\Delta x \rightarrow 0$. В итоге получаем: \[ \lim _{\Delta x \rightarrow 0} A(x_0, \Delta x)=f'(x_0)\cdot g(x_0)+f(x_0)\cdot g'(x_0). \]

3.

\[ A(x_0, \Delta x)=\frac{\frac{f(x_0+\Delta x)}{g(x_0+\Delta x)}-\frac{f(x_0)}{g(x_0)}}{\Delta x}= \] \[ \frac{f(x_0+\Delta x)g(x_0)-f(x_0)g(x_0+\Delta x)}{g(x_0+\Delta x)g(x_0)\Delta x}= \] \[ \frac{1}{g(x_0+\Delta x)g(x_0)}\frac{f(x_0+\Delta x)g(x_0)-f(x_0)g(x_0)}{\Delta x}+ \] \[ {f(x_0)g(x_0)-f(x_0)g(x_0+\Delta x)}{\Delta x}= \] \[ \frac{1}{g(x_0+\Delta x)g(x_0)}\frac{f(x_0+\Delta x)g(x_0)-f(x_0)g(x_0)}{\Delta x}- \] \[ \frac{f(x_0)g(x_0+\Delta x)-f(x_0)g(x_0)}{\Delta x} . 2)$.

Предположим, что известны производные $dg/dx$, $dh/dy$. Возникает вопрос: как вычислить производную сложной функции $dz/dx$, где $z=h(g(x))$?

Теорема. Пусть $f(x)$ дифференцируема в точке $x=x_0$, $h(y)$ дифференцируема в точке $y_0=f(x_0)$. Тогда $z=h(g(x))$ дифференцируема в точке $x=x_0$, причем \begin{equation} \left. \frac{dz}{dx} \right|_{x=x_0}=\left. \frac{dh}{dy}\right|_{y=f(x_0)}\cdot \left.\frac{df}{dx}\right|_{x=x_0}. (8) \label{comp} \end{equation}

Доказательство.

Обозначим $y_0=f(x_0)$. В соответствии с нашими предположениями составим выражение \[ A(x_0, \Delta x)=\frac{h(f(x_0+\Delta x))-h(f(x_0))}{\Delta x}= \] \[ \frac{h(f(x_0+\Delta x))-h(f(x_0))}{f(x_0+\Delta x)-f(x_0)}\cdot \frac{f(x_0+\Delta x)-f(x_0)}{\Delta x}. \]

При $\Delta x \to 0$ в силу непрерывности $f(x)$ в точке $x_0$ имеем: $y_0+\Delta y=f(x_0+\Delta x) \to f(x_0)=y_0$. В силу условий теоремы первый множитель имеет пределом при $\Delta x \to 0$ величину $\left. h'(y)\right|_{y=f(x_0)}$, второй множитель имеет пределом величину $f'(x_0)$. В итоге получаем: \[ \lim _{\Delta x \to 0}A(x_0, \Delta x)=\left. h'(y)\right|_{y=f(x_0)}\cdot f'(x_0). \]

Замечание. Соотношение (8) содержит в левой части 2 сомножителя — в соответствии с тем, что сложная функция образована композицией двух функций. Если сложная функция образована композицией 3 функций, в левой части имеется 3 сомножителя и т.д.

Напомним, что если задана функция $y=f(x)$, то обратной к ней функцией называется функция $x=h(y)$ со следующими свойствами: $h(f(x))=x$, $f(h(y))=y$. Разумеется, обратная функция существует не всегда.

Теорема. Пусть функция $y=f(x)$ имеет непрерывную производную в некоторой окрестности $V$ точки $x=x_0$, причем $f'(x_0) \neq 0$. Тогда в некоторой окрестности $U \subset V$, $x_0 \in U$, функция $f(x)$ имеет обратную, определенную в некоторой окрестности точки $y_0=f(x_0)$, причем выполняется равенство: \begin{equation} h'(y_0)=\left. 2}. \]

Далее, пусть для некоторых функций $a(t),b(t)$, заданных на интервале $\left[t_1,t_2\right]$, $x=a(t)$, $y=b(t)$ (в этом случае говорят, что переменные $ x $ и $ y $ заданы параметрически). Предположим, что для функции $x=a(t)$ существует обратная функция $t=\phi (x)$. Тогда $y=b(t)=b(\phi(x))$, так что появляется зависимость между $x$ и $y$. В этом случае говорят, что функция $y(x)$ задана параметрически (с помощью параметра $t$). Если известны производные функций $a(t)$, $b(t)$, то можно вычислить производную функции $y'(x)$.

Теорема. Предположим, что функции $a(t),b(t)$ дифференцируемы на интервале $\left[t_1,t_2\right]$, причем существует обратная функция $t=\phi (x)$, дифференцируемая при всех интересующих нас $x$. Тогда производная $y'(x)$ существует, причем \begin{equation} y'(x)=\left.\frac{b'(t)}{a'(t)}\right |_{t=\phi (x)}. (10) \label{par} \end{equation}

Доказательство.

Согласно условиям теоремы, функцию $y(x)$ можно представить как сложную функцию, $y(x)=b( \phi (x))$. 2}.$$

4.2 Первый дифференциал

Все, что вам нужно знать

Время чтения: 10 минут

При изучении табличных выражений первое и самое простое табличное выражение, которое вы можете изучить, это Производная таблица . Они могут помочь вам быстро собрать нужную информацию без необходимости написания большого количества кода.

Производные таблицы — это всего лишь один из типов табличных выражений, доступных нам в SQL Server. Для ознакомления с всеми различными видами табличных выражений ознакомьтесь с полное руководство для начинающих :

Табличные выражения SQL Server: полное руководство для начинающих

В этом руководстве мы ответим на следующие вопросы о производных таблицах:

  1. Что такое производная таблица?
  2. Какой синтаксис для создания производной таблицы?
  3. Примеры производных таблиц.
  4. Каковы ограничения производной таблицы?
  5. Советы, рекомендации и ссылки

Кроме того, не забудьте загрузить БЕСПЛАТНОЕ РУКОВОДСТВО :

БЕСПЛАТНАЯ одностраничная простая шпаргалка по SQL Server Table Expressions!

Это руководство содержит все ключевые моменты, необходимые для понимания всех различных табличных выражений, которые вы можете создать в Microsoft SQL Server, сжатое в простое одностраничное руководство . Это будет отличным ресурсом, на который вы можете ссылаться во время своей карьеры специалиста по базам данных. Обязательно загрузите его сегодня!

Начнем сверху.

1. Что такое производная таблица?

Производная таблица — это просто внутренний запрос, определенный в предложении FROM внешнего запроса. Этому внутреннему запросу дается псевдоним для представления набора результатов. Объект базы данных создается , а не , когда определена производная таблица, и производная таблица выходит из области действия после завершения внешнего запроса.

Производная таблица — отличное решение, если вы пытаетесь собрать информацию в временный вид пути. Вы можете думать об этом как о представлении, которое не сохраняется в базе данных.

2. Каков синтаксис для создания производной таблицы?

На самом деле в этом нет ничего особенного:

SELECT <список столбцов> FROM (<внутренний оператор SELECT>) AS

« » служит именем вашего производного table, и вы можете обращаться с ним так же, как с любым другим столом. Но помните, областью действия вашей производной таблицы является жизнь внешнего запроса .

Есть несколько моментов, о которых вам нужно знать, когда речь заходит о внутреннем операторе SELECT в производной таблице:

  1. Во внутреннем операторе SELECT все ваши столбцы должны иметь имен . Например, если один из ваших столбцов является результатом вычисления или агрегации, вам нужно убедиться, что вы присвоили этому столбцу псевдоним .
  2. Имена столбцов должны быть уникальными . Во внутреннем операторе SELECT не может быть двух или более столбцов с одинаковыми именами.
  3. У вас не может быть предложения ORDER BY во внутреннем операторе SELECT. Если вы читали мое обсуждение Views, вы знакомы с этой идеей. Единственный способ, которым вы могли бы иметь предложение ORDER BY во внутреннем SELECT, — это если бы в вашем списке SELECT также использовались TOP или OFFSET-FETCH.

3. Примеры производных таблиц.

Давайте, наконец, рассмотрим несколько примеров производных таблиц.

Настройка некоторых данных

Взгляните на следующие Клиенты , Продукты и Заказы таблицы:

Вот операторы CREATE TABLE и INSERT, чтобы вы могли создать эти данные в своей среде и следовать им:

 CREATE TABLE Customers(
CustID int IDENTITY(50,5) NOT NULL,
Имя varchar(20) NULL,
Фамилия varchar(20) NULL
)

СОЗДАТЬ ТАБЛИЦУ Продукты(
ProductID int IDENTITY(20,2) NOT NULL,
ProductName varchar(20) NULL,
Десятичная цена (5, 2) NULL
)

СОЗДАТЬ ТАБЛИЦУ Заказы(
OrderID int IDENTITY(100,10) NOT NULL,
CustID целое NULL,
ID продукта целое NULL,
Кол-во крошечных NULL,
Дата заказа дата и время NULL
)

ВСТАВЬТЕ клиентов (имя, фамилия)
ЦЕННОСТИ
(«Джошуа», «Портер»),
(«Эндрю», «Блюфилд»),
(«Джек», «Донован»),
(«Синди», «Тэтчер»),
(«Гордон», «Акры»),
(«Гретхен», «Гамильтон»)

ВСТАВЬТЕ продукты (название продукта, цена)
ЦЕННОСТИ
(«Большая скамейка», 198. 00),
(«Скамья», 169,40),
(«Журнальный столик», 220.00),
("Боковые столы", 265.20),
(«Вешалка», 45.00)

ВСТАВЬТЕ заказы (CustID, ProdID, Qty, Orderdate)
ЦЕННОСТИ
(55, 22, 1, '2021-06-01'),
(60, 28, 2, '2021-06-06'),
(75, 26, 1, '2021-06-13'),
(50, 20, 1, '2021-07-01'),
(55, 28, 1, '2021-07-06'),
(65, 24, 1, '2021-07-14'),
(55, 26, 1, '2021-07-18'),
(50, 26, 1, '2021-07-24'),
(70, 24, 1, '2021-08-06'),
(70, 26, 1, '2021-08-06'),
(70, 22, 3, 2021-09-01') 

Давайте подумаем о следующем операторе SELECT (в котором , а не еще не использует производную таблицу):

Этот оператор SELECT использует INNER JOIN, чтобы дать нам некоторые подробные сведения о заказах, которые наша компания выполнила. По сути, каждая строка сообщает нам следующую информацию:

  • OrderID заказа
  • .
  • CustID Клиента, купившего продукт
  • Продукт, который они купили
  • Цена продажи заказа, которая представляет собой цену продукта, умноженную на количество купленных товаров.
  • Дата размещения заказа

Пример производной таблицы

Допустим, нас интересует только информация о заказе, где SalePrice больше, чем 200,00 долларов.

Было бы неплохо, если бы мы могли добавить предложение WHERE к приведенному выше запросу. Мы могли бы написать следующее предложение WHERE:

Но если подумать, это создает ситуацию, когда мы повторяем работу . Чтобы отфильтровать заказы на сумму более 200,00 долларов США, нам нужно умножить Price на Qty , что мы уже делали однажды в списке столбцов:

Повторять код никогда не бывает хорошо. И нет, мы не можем использовать псевдоним «SalePrice» в предложении WHERE. Вы можете использовать псевдонимы только в предложении ORDER BY.

Это прекрасный пример того, когда мы могли бы использовать производную таблицу. Я покажу вам, как это выглядит, тогда мы поговорим об этом:

Давайте разберем, что у нас есть.

Предыдущий оператор SELECT теперь находится во внутреннем запросе . Набор результатов этого внутреннего запроса используется для нашей производной таблицы с именем OrderInfo . Вот снова набор результатов только этого внутреннего запроса:

В нашем внешнем операторе SELECT, когда мы выбираем столбцы из производной таблицы OrderInfo , это единственные столбцы, из которых мы можем выбрать . Вот эти столбцы:

  • OrderID
  • Идентификатор клиента
  • Название продукта
  • Цена продажи
  • Дата заказа

Наш внешний запрос использует, например, только столбцы OrderID , CustID и Saleprice .

Именование столбцов в производной таблице

Следующее, на что следует обратить внимание в производной таблице, это то, что все столбцы имеют имен . Опять же, это требование ко всем производным таблицам (и фактически ко всем другим табличным выражениям).

Мы должны были указать псевдоним для расчета нашей продажной цены ( Кол-во*Цена ), например. Этот псевдоним, конечно, «SalePrice»

Мы также должны были дать нашей производной таблице псевдоним. Мы назвали его « OrderInfo ». Я видел, как другие разработчики решили сделать псевдоним одной буквой (например, « O »), но я думаю, что это просто плохая практика. Вы хотите, чтобы имена ваших табличных выражений имели смысл и были описательными.

Буква « O » может быть любой. Может быть, « Орангутанг »?

Далее обратите внимание на предложение WHERE. Опять же, вы должны обращаться с производной таблицей так же, как с обычной таблицей, а к обычной таблице, очевидно, может быть применено предложение WHERE. Поскольку мы хотим отфильтровать наши результаты, чтобы увидеть только SalePrice больше, чем $200,00 , мы можем легко настроить это.

Производную таблицу можно рассматривать как любую другую таблицу

Последнее, на что я хотел бы обратить внимание, это то, что я затронул в предыдущем пункте: С производной таблицей следует обращаться так же, как с обычной таблицей . Это означает, например, что мы могли бы использовать эту производную таблицу на одной стороне JOIN.

Допустим, мы хотели увидеть имена и фамилии клиентов, потративших более 200 долларов. Мы можем легко настроить JOIN с таблицей Customer в нашем внешнем операторе SELECT:

Вы можете использовать производную таблицу везде, где ожидается таблица !

4. Каковы ограничения производной таблицы?

Как я уже говорил ранее, областью действия производной таблицы является длительность внешнего запроса .

….так что не очень долго.

Объект таблицы не хранится в базе данных , поэтому производную таблицу нельзя использовать ни в каком другом запросе. Чтобы довести до конца, мы не можем сделать это:

Неважно, что я выполнил оба запроса в одном пакете. Вот эти два запроса: ДВА ЗАПРОСА!

Повторю еще раз, что я сказал ранее: производные таблицы также не могут иметь предложение ORDER BY. Внешний запрос может, но внутренний запрос не может . Опять же, чтобы довести мысль до конца:

Вот это полное сообщение об ошибке:

Предложение ORDER BY недопустимо в представлениях, встроенных функциях, производных таблицах, подзапросах и общих табличных выражениях, кроме TOP, OFFSET или FOR XML. также уточняется.

Если вы хотите, чтобы ваши результаты были упорядочены по CustID , как я только что попытался сделать, вам нужно будет указать предложение ORDER BY во внешнем запросе : решение

Последнее, на что я хочу обратить внимание, это то, что производная таблица не всегда может быть самым чистым решением . Например, давайте посмотрим на следующий запрос (который использует производную таблицу для , а не ):

Этот запрос использует предложение GROUP BY, чтобы сообщить нам, сколько раз клиент покупал у нас. Похоже, что Джошуа Портер покупал у нас дважды, а Эндрю Блюфилд и Гордон Тэтчер покупали у нас 3 раза. Все остальные покупали у нас только один раз.

Так что, если бы мы хотели видеть только клиентов, которые купили у нас более одного раза (то есть постоянных клиентов )?

Мы могли бы настроить его с помощью производной таблицы, например:

Это прекрасно работает, но поймите, что мы могли бы получить тот же набор результатов, используя предложение HAVING. Нельзя отрицать, что следующий запрос короче :

Тот же результат, меньше кода .

Так что реализация производных таблиц может потребовать больше усилий, чем другие решения SQL.

5.

Советы, рекомендации и ссылки

Вот список некоторых советов и рекомендаций, которые следует знать при работе с производными таблицами.

Совет №1. Псевдонимы столбцов могут быть назначены внутри или снаружи

Помните, что во внутреннем операторе SELECT всем столбцам должно быть присвоено уникальное имя столбца. Если у вас есть столбец, основанный на вычислении или агрегации (как в моих примерах выше), вы можете добавить псевдоним к столбцу двумя способами: Внутренне и Внешне .

В моих примерах прежде всего используется внутренний псевдоним , что означает, что псевдоним определяется непосредственно рядом со столбцом во внутреннем списке SELECT.

Вот снова первый простой пример производной таблицы:

Мы создали псевдоним «SalePrice» для результата Qty*Price . Этот псевдоним указан во внутреннем списке SELECT, непосредственно рядом с этим вычислением.

Если бы мы хотели выделить имена столбцов извне , мы бы сделали это так:

, слева направо.

Заметьте, нам нужно выделить все   столбцов, а не только тот, который является результатом вычисления. Это одна из причин, по которой я не поддерживаю внешние псевдонимы. Вы по сути дублируете код . Кроме того, на мой взгляд, он просто не читается так чисто. Но понять можно.

Кстати, если вы поставите псевдонимы как внешние , так и внутренние (потому что вам нравится смотреть, как мир горит ), внешние псевдонимы будут иметь приоритет.

Совет № 2. Вы можете запустить внутренний запрос сам по себе, что может упростить устранение неполадок

Чтобы легко увидеть набор результатов внутреннего запроса, вы можете просто выделить этот внутренний запрос и запустить его отдельно. Мы делали это ранее:

Иногда, когда вы устраняете проблему, полезно иметь возможность выделить внутренний запрос, чтобы точно увидеть, что он возвращает.

Совет № 3. Предложение ORDER BY должно соответствовать

внешнему запросу

Помните, что предложение ORDER BY не может использоваться само по себе в вашем внутреннем запросе . Если вам нужно, чтобы ваши результаты были помещены в определенный порядок презентации , вы должны указать свое предложение ORDER BY в своем внешнем запросе .

Совет № 4. Производные таблицы НЕ создаются как постоянные объекты в базе данных

Напоминаем, что производные таблицы не создаются как объекты в базе данных, поэтому их нельзя найти в обозревателе объектов SQL Server. Студия управления. Помните, что область действия производной таблицы находится только в пределах запроса, в котором она написана.

Ссылки:

Существует отличная книга под названием T-SQL Fundamentals, написанная Ициком Бен-Ганом , в которой рассматриваются несколько основных концепций, которые вам следует знать о SQL Server, включая производные таблицы. На самом деле в книге есть целая глава, посвященная обсуждению табличных выражений. Вы не пожалеете, что приобрели эту книгу, , поверьте мне, . Я постоянно ссылаюсь на него. Получите сегодня!

Следующие шаги:

Оставьте комментарий , если этот урок был вам полезен!

Если вы нашли это руководство полезным, убедитесь, что вы загрузили БЕСПЛАТНОЕ РУКОВОДСТВО :

Загрузите БЕСПЛАТНУЮ простую 1-страничную памятку по SQL по табличным выражениям SQL Server!

Руководство содержит все ключевые моменты, необходимые для понимания всех различных табличных выражений, которые вы можете создать в Microsoft SQL Server, включая производные таблицы, сжатые в простое руководство на 1 странице. Обязательно загрузите его сегодня!

Знаете ли вы, что такое представление SQL Server? Нажмите на ссылку, чтобы узнать!

Большое спасибо за прочтение!

Не забудьте подписаться на мою рассылку, чтобы получать специальные предложения и уведомления каждый раз, когда выходит новый учебник!

Если у вас есть вопросы, оставьте комментарий . Или еще лучше, пришлите мне письмо!

Использование производных таблиц для расчета совокупных значений

Основы производных таблиц

Производная таблица — это таблица, которая создается «на лету» с помощью оператора SELECT, и ссылаются так же, как обычная таблица или представление. Производные таблицы существуют в памяти, и на них может ссылаться только внешний SELECT, в котором они созданы. Здесь показано простое использование производной таблицы.

 ВЫБОР *
ОТ (ВЫБЕРИТЕ *
      FROM Sales) AS a 

Внутренний SELECT создает производную таблицу и заменяет обычную таблицу или представление. Главное, что следует помнить при использовании производных таблиц, это то, что вы всегда должны использовать псевдоним (например, AS a). Ниже показана ошибка, возникающая, когда псевдоним опущено.

 ВЫБЕРИТЕ *
ОТ (ВЫБЕРИТЕ *
      ОТ продаж)

-- Полученные результаты --

Сервер: сообщение 170, уровень 15, состояние 1, строка 3
Строка 3: Неправильный синтаксис рядом с ')'.  
Ссылка на несколько производных таблиц

Вы можете добавить столько производных таблиц, сколько необходимо, к одному внешнему SELECT для получения желаемый набор результатов. Код начинает немного запутываться после добавляется второй внутренний SELECT, но если вы сосредоточитесь на столбцах, возвращаемых каждым ВЫБЕРИТЕ все это имеет смысл.

Следующий сценарий создает информацию о магазинах/продажах и показывает, как рассчитать количество и суммы продаж за текущий месяц и с начала года по магазинам.

 ИСПОЛЬЗОВАТЬ временную базу данных
идти
УСТАНОВИТЬ NOCOUNT ON

СОЗДАТЬ ТАБЛИЦУ Магазины
(
 Sto_ID smallint IDENTITY PRIMARY KEY NOT NULL,
 Sto_Name varchar(20) НЕ NULL
)
идти
ВСТАВИТЬ Магазины VALUES ("Магазин 1")
ВСТАВИТЬ Магазины VALUES ("Магазин 2")
ВСТАВИТЬ Магазины VALUES ("Магазин 3")
идти

СОЗДАТЬ ТАБЛИЦУ
(
 Sal_ID int IDENTITY NOT NULL PRIMARY KEY,
 Sto_ID smallint NOT NULL FOREIGN KEY REFERENCES Stores(Sto_ID),
 Sal_Date smalldatetime НЕ NULL,
 Sal_Amt деньги НЕ NULL
)
идти
ВСТАВЬТЕ ЗНАЧЕНИЯ продаж (1, 15/5/01, 14:00:00, 500)
ВСТАВЬТЕ ЗНАЧЕНИЯ продаж (1, 16. 05.01, 11:00:00, 200)
ВСТАВЬТЕ ЗНАЧЕНИЯ продаж (1, 15.06.01, 14:00:00, 200)
ВСТАВЬТЕ ЗНАЧЕНИЯ по продажам (1, 15.07.01, 08:00:00, 500)
ВСТАВЬТЕ ЗНАЧЕНИЯ продаж (1,'8/16/01 10:00:00',100)
ВСТАВЬТЕ ЗНАЧЕНИЯ о продажах (1, 17.08.01, 10:00:00, 125)

ВСТАВЬТЕ ЗНАЧЕНИЯ о продажах (2, 01.05.01, 08:00:00, 100)
ВСТАВЬТЕ ЗНАЧЕНИЯ продаж (2, 16.06.01, 14:00:00, 200)
ВСТАВЬТЕ ЗНАЧЕНИЯ по продажам (2, 16.07.01 09:00:00',500)
ВСТАВЬТЕ ЗНАЧЕНИЯ о продажах (2, 17.08.01, 10:00:00, 100)

INSERT Sales VALUES (3, '5/25/01 15:00:00', 250)
ВСТАВЬТЕ ЗНАЧЕНИЯ продаж (3, 17.06.01, 14:00:00, 100)
ВСТАВЬТЕ ЗНАЧЕНИЯ о продажах (3, 16.07.01, 09:00:00, 600)
ВСТАВЬТЕ ЗНАЧЕНИЯ о продажах (3, 18.08.01, 16:00:00, 150)
идти

DECLARE @RunDate дата и время
Установите @RunDate = '01.09.01'

ВЫБЕРИТЕ a1.Sto_Name,
       CM_Count,
       CM_Продажи,
       YTD_Count,
       YTD_Продажи
ОТ (ВЫБРАТЬ b.Sto_Name,
             COUNT(*) КАК CM_Count,
             SUM(Sal_Amt) AS CM_Sales
      ОТ продаж
      JOIN сохраняет b ON a. Sto_ID = b.Sto_ID
      ГДЕ DATEPART(yy,Sal_Date) = DATEPART(yy,@RunDate) И
            DATEPART(мм,Sal_Date) = (DATEPART(мм,@RunDate)-1)
      СГРУППИРОВАТЬ ПО b.Sto_Name) AS a1
ПРИСОЕДИНЯЙТЕСЬ (ВЫБЕРИТЕ Sto_Name,
             COUNT(*) КАК YTD_Count,
             SUM(Sal_Amt) AS YTD_Sales
      ОТ продаж
      JOIN сохраняет b ON a.Sto_ID = b.Sto_ID
      WHERE DATEPART(yy,Sal_Date) = DATEPART(yy,@RunDate)
      ГРУППИРОВАТЬ ПО b.Sto_Name) AS b1 ON a1.Sto_Name = b1.Sto_Name
ИДТИ

-- Полученные результаты --

Sto_Name CM_Count CM_Sales YTD_Count YTD_Sales
-------------------- ------------------------------ -- ----------- -------------
Магазин 1 2 225.0000 6 1625.0000
Магазин 2 1 100.0000 4 900.0000
Store 3 1 150.0000 4 1100.0000 

Первый внутренний SELECT вычисляет продажи за август, сравнивая месяц и год @RunDate на месяц и год Sal_Date. Заметьте, что я вычитается один месяц из @RunDate, потому что предполагается, что код выполняется после закрытия предыдущего месяца.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *