Главная » Просмотр файлов » alan_beaulieu-learning_sql-ru

alan_beaulieu-learning_sql-ru (865932), страница 25

Файл №865932 alan_beaulieu-learning_sql-ru (Учебник по SQL) 25 страницаalan_beaulieu-learning_sql-ru (865932) страница 252022-01-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 25)

Создание, преобразование и работа с даннымиmysql> SELECT ROUND(72.49999), ROUND(72.5), ROUND(72.50001);++++| ROUND(72.49999) | ROUND(72.5) | ROUND(72.50001) |++++|72 |72 |73 |++++1 row in set (0.00 sec)При использовании функции round() любое число, десятичная частькоторого относится к верхней половине диапазона между двумя целыми, округляется с увеличением, а если его десятичная часть относитсяк нижней половине диапазона, то выполняется округление с уменьшением.Чаще всего требуется не округлять число до ближайшего целого, а сохранить, по крайней мере, несколько разрядов его десятичной части.Функция round() допускает необязательный второй аргумент, задающий число разрядов справа от десятичной точки, до которого проводится округление.

Следующий пример показывает, как можно использовать второй аргумент для округления числа 72,0909 до первого,второго и третьего десятичного знака:mysql> SELECT ROUND(72.0909, 1), ROUND(72.0909, 2), ROUND(72.0909, 3);++++| ROUND(72.0909, 1) | ROUND(72.0909, 2) | ROUND(72.0909, 3) |++++|72.1 |72.09 |72.091 |++++1 row in set (0.00 sec)Как и функция round(), функция truncate() допускает необязательныйвторой аргумент, задающий число разрядов справа от десятичной точки, при этом truncate() просто отбрасывает лишние разряды без округления. Пример показывает, как было бы усечено число 72,0909 до одного, двух и трех десятичных знаков:mysql> SELECT TRUNCATE(72.0909, 1), TRUNCATE(72.0909, 2),> TRUNCATE(72.0909, 3);++++| TRUNCATE(72.0909, 1) | TRUNCATE(72.0909, 2) | TRUNCATE(72.0909, 3) |++++|72.0 |72.09 |72.090 |++++1 row in set (0.00 sec)В SQL Server нет функции truncate().

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

Например, есть продукт, закупка которого возможна только в количестве,пропорциональном десяти. Если покупатель закажет 17 единиц, то изменить заказанное количество можно одним из следующих способов:mysql> SELECT ROUND(17, 1), TRUNCATE(17, 1);+++| ROUND(17, 1) | TRUNCATE(17, 1) |+++|20 |10 |+++1 row in set (0.00 sec)Если рассматриваемый продукт – канцелярские кнопки, то, скореевсего, итоговая сумма не сильно зависит от того, продано 10 или 20штук при запрошенных 17; однако если речь идет о часах Rolex, дляпроцветания бизнеса лучше будет округлять.Обработка данных со знакомПри работе с числовыми столбцами, допускающими отрицательныезначения (в главе 2 было показано, как сделать столбец беззнаковым,т. е.

допускающим только положительные числа), могут быть полезными несколько числовых функций. Скажем, требуется составить отчет о текущем состоянии всех банковских счетов. Следующий запросвозвращает три столбца, помогающих сформировать отчет:mysql> SELECT account_id, SIGN(avail_balance), ABS(avail_balance)> FROM account;++++| account_id | SIGN(avail_balance) | ABS(avail_balance) |++++|1 |1 |1057.75 ||2 |1 |500.00 ||3 |1 |3000.00 ||4 |1 |2258.02 ||5 |1 |200.00 || ...||19 |1 |1500.00 ||20 |1 |23575.12 ||21 |0 |0.00 ||22 |1 |9345.55 ||23 |1 |38552.05 ||24 |1 |50000.00 |++++24 rows in set (0.00 sec)Второй столбец использует функцию sign() (знак), возвращающую:1, если баланс счета отрицателен, 0, если баланс нулевой, и 1, если баланс положительный. С помощью функции abs() в третьем столбцевозвращается абсолютное значение баланса.140Глава 7.

Создание, преобразование и работа с даннымиВременные данныеИз трех типов данных, обсуждаемых в этой главе (символьные, числовые и временные), временные данные – наиболее сложные с точки зрения создания и обработки. Сложность временных данных отчасти обусловлена бесконечным множеством способов описания дат и времени.Например, дату написания этого абзаца можно записать любым из следующих способов:• суббота, 19 марта 2005• 3/19/2005 2:14:56 P.M.

EST• 3/19/2005 19:14:56 GMT• 0782005 (Юлианский формат)• Звездная дата [4] 82213.47 14:14:56 (формат фильма «Звездныйпуть»)Хотя некоторые записи отличаются только форматированием, основная сложность заключается в избранной системе отсчета, что рассматривается в следующем разделе.Часовые поясаПоскольку всюду на планете люди считают полднем наивысшую точкуподъема солнца над горизонтом, никто и не пытался ввести одни универсальные часы на всех.

Вместо этого мир был разделен на 24 воображаемые секции, названные часовыми поясами (time zones). В рамкаходного часового пояса все придерживаются текущего времени, а в другом поясе люди живут по другому времени. Все выглядит достаточнопросто, но одни географические регионы переводят свое время на часдважды в год (реализуя нак называемое декретное время (Daylight Savings Time)), а другие – нет. Таким образом, разница во времени междудвумя точками планеты может первые полгода составлять четыре часа,а вторые – пять часов.

Даже в рамках одного часового пояса одни регионы могут принимать, а другие не принимать декретное время. Поэтому в одном часовом поясе полгода время может совпадать, а полгодаотличаться на час.Компьютерная эра обострила эту проблему, хотя различия часовыхпоясов известны со времен великих географических открытий. Чтобыобеспечить общую точку отсчета для хронометрирования, мореплаватели XV столетия устанавливали свои часы по Гринвичу (Англия).

Этовремя назвали временем по Гринвичу (Greenwich Mean Time), илиGMT. Все остальные часовые пояса можно описать разностью междуGMT и местным временем. Например, часовой пояс восточных штатовАмерики, известный как восточное поясное время (Eastern StandardTime), можно описать как GMT5:00 (на пять часов раньше GMT).Сегодня используется разновидность GMT – универсальное глобальноевремя (coordinated universal time), или UTC, отсчитываемое по атомВременные данные141ным часам (или точнее среднее время 200 атомных часов, размещенных в 50 точках по всему миру, которое называют всемирным временем(universal time)).

И SQL Server, и MySQL предоставляют функции, возвращающие текущее время UTC (getutcdate() для SQL Server и utc_timestamp() для MySQL).Большинство серверов БД по умолчанию используют настройки часового пояса сервера, на котором размещены, и предоставляют инструменты для изменения часового пояса в случае необходимости. Например БД, предназначенная для хранения фондовых операций со всегосвета, обычно конфигурируется на использование времени UTC, тогдакак БД для хранения операций конкретного предприятия розничнойторговли может использовать часовой пояс сервера.MySQL придерживается двух разных настроек часового пояса – глобальный часовой пояс и сеансовый часовой пояс, который может отличаться для каждого зарегистрированного пользователя.

Следующийзапрос позволяет увидеть обе настройки:mysql> SELECT @@global.time_zone, @@session.time_zone;+++| @@global.time_zone | @@session.time_zone |+++| SYSTEM| SYSTEM|+++1 row in set (0.00 sec)Значение system (система) сообщает, что сервер использует настройкучасового пояса сервера, на котором установлена БД.Если пользователь находится в Цюрихе (Швейцария) и по сети открывает сеанс на сервере MySQL, расположенном в НьюЙорке, вероятно,он захочет изменить часовой пояс для своего сеанса и может сделатьэто посредством следующей команды:mysql> SET time_zone = 'Europe/Zurich';Query OK, 0 rows affected (0.18 sec)Если снова проверить настройки часового пояса, увидим следующее:mysql> SELECT @@global.time_zone, @@session.time_zone;+++| @@global.time_zone | @@session.time_zone |+++| SYSTEM| Europe/Zurich|+++1 row in set (0.00 sec)Все даты, отображаемые в сеансе, теперь будут соответствовать Цюрихскому времени.142Глава 7.

Создание, преобразование и работа с даннымиПользователи Oracle Database могут изменить настройку часового пояса для сеанса следующей командой:ALTER SESSION TIMEZONE = 'Europe/Zurich'Создание временных данныхВременные данные могут быть сформированы любым из следующихсредств:• Копирование даты из имеющегося столбца типа date, datetime илиtime• Выполнение встроенной функции, возвращающей значение типаdate, datetime или time• Создание строкового представления временных данных, котороепотом преобразовывается серверомДля применения последнего метода необходимо понимать различныекомпоненты, используемые при форматировании дат.Строковые представления временных данныхНапомним самые популярные компоненты дат:Таблица 7.2.

Компоненты формата датыКомпонентОписаниеДиапазонYYYYГод, включая столетиеот 1000 до 9999MMМесяцот 01 (январь) до 12 (декабрь)DDДеньот 01 до 31HHЧасот 00 до 23HHHЧасы (прошедшие)от –838 до 838MIМинутаот 00 до 59SSСекундаот 00 до 59Чтобы создать строку, которая может быть интерпретирована сервером как тип date, datetime или time, необходимо свести различные компоненты вместе в порядке, показанном в табл. 7.3.Таблица 7.3.

Характеристики

Тип файла
PDF-файл
Размер
1,22 Mb
Материал
Предмет
Высшее учебное заведение

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее