Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2017-07-31 | 256 |
5.00
из
|
Заказать работу |
|
|
Обоснование
В стандартном SQL разрешен единственный формат вывода времени — “гггг-мм-дд чч:мм:сс.ссссс”, основанный на ISO-8601. Согласно Федеральному стандарту обработки информации (Federal Information Processing Standards, FIPS) при отображении секунд требуется точность как минимум до пятого десятичного знака. Другие способы отображения недопустимы, если вы собираетесь работать с ПО, основанным на стандартах ISO.
В стандартном SQL определен минимальный набор операторов для работы с данными во временном формате. Все они доступны в любом SQL-продукте, хотя и с несколько различным синтаксисом. Например, в T-SQL вызов функции DATEADD в виде “DATEADD (DD, 13, birthdate)” приводит к прибавлению к дате birthdate 13 дней. В стандартном SQL для того же действия предусмотрено следующее выражение: “birthdate + INTERVAL'13'DAY”.
Вы можете задать отображение в формате ISO-8601 в любом SQL-продукте и выполнить 99,99% работы с датами и временем без использования специфических функций. Проблемы могут возникнуть при переносе кода, поэтому заведите набор комментариев, касающихся любых различий между вашим диалектом и стандартом.
Исключения
Нет. В многоуровневой архитектуре форматирование отображения данных всегда производится на пользовательском уровне. Это основной принцип программирования, не имеющий отношения собственно к SQL Нарушают этот принцип обычно новички, пришедшие в SQL от традиционного монолитного языка, где существует четкая связь между приложением, отображением данных и файловой системой.
Используйте стандартные и переносимые функции
Обоснование
Стандартный SQL не предназначен для вычислений и потому не располагает библиотекой функций Фортрана или какого-либо пакета для статистических расчетов. SQL — это не язык для работы с текстом, поэтому в нем нет библиотеки функций языков ICON или Snobol. Все, чем вы располагаете в SQL-92, — это четыре действия арифметики и основные операторы для работы со строками. Тем не менее, разработчики всегда включают в свои продукты дополнительные операторы, поэтому вы можете создавать переносимые коды с другими математическими и строковыми функциями. Наиболее распространены такие дополнительные математические функции: взятие модуля, округление (или отбрасывание дробной части), возведение в степень и взятие логарифма. Наиболее распространенные дополнительные строковые функции: замена, обращение порядка символов и копирование.
|
Исключения
Если в вашем SQL-диалекте есть встроенная функция, эмуляция которой потребует большого количества кода или большого объема вычислений, используйте ее, но не забудьте отметить комментарием, что при переносе кода на другую платформу эту функцию нужно заменить.
Используйте максимально компактные конструкции
Entia non sunt multiplicanda praeter necessitatem
(He следует умножать сущности сверх необходимости)
Вильям Оккам (1280-1349)
Все должно быть сделано настолько просто, насколько это возможно, но не проще.
приписывается Альберту Эйнштейну
Написание как можно более короткого, ясного и компактного кода — это лучший подход к разработке ПО на любом языке программирования. Модуль, который выполняет единственную функцию, проще понимать и модифицировать. Системы с небольшим количеством модулей проще поддерживать.
SQL позволяет заменить сотни строк процедурного кода несколькими операторами. Заранее настройтесь на создание коротких и ясных решений. Конечно, искоренять старые привычки трудно. Многие новички продолжают мыслить в терминах логических проверок, основанных на булевой логике или простых выражениях AND-OR-NOT, о которых они узнали из своих первых языков программирования.
Избегайте лишних скобок
Обоснование
Когда новички видят автоматически сгенерированный SQL-код, в котором расставлены многочисленные вложенные скобки, они думают, что именно так код и пишется. Рассмотрим простой пример:
|
SELECT a, b, с
FROM Foobar
WHERE (a = b) AND (с < 42);
Этот пример не так уж плох с точки зрения читабельности, но если у вас более пяти предикатов, код с вложенными скобками становится трудным для чтения, а отыскивание парных скобок — настоящей головной болью. Пусть программисты LISP маются со скобками, вот уж им-то скобки нужны по-настоящему.
Исключения
Скобки в умеренном количестве облегчают чтение большого количества стоящих рядом предикатов. Сравните:
SELECT application_nbr
FROM LoanApplications
WHERE years_employed > 5
OR net_worth > loan_amt
AND monthly__expenses < 0.25 * loan_amt
OR collateral > 2.00 * loan_amt AND age > 25
OR collateral > loan_amt
AND age > 30
OR years_employed > 2
AND net_worth > 2.00 * loan_amt
AND Age > 21
AND monthly_expenses < 0.50 * loan_amt;
и
SELECT application_nbr
FROM LoanApplications
WHERE years_employed > 5
OR (net_worth > loan_amt
AND monthly_expenses < 0.25 * loan_amt)
OR (collateral > 2.00 * loan_amt AND age > 25)
OR (collateral > loan_amt AND age > 30)
OR (years_employed > 2
AND net_worth > 2.00 * loan_amt
AND age > 21
AND monthly_expenses < 0.50 * loan_amt);
В следующем разделе мы разберем, как в подобных ситуациях использовать оператор CASE.
|
|
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!