Skip to content

NULL в Oracle

Пересказ статьи Andrei Rogalenko. NULL in Oracle


Ключевые моменты


Специальное значение NULL означает отсутствие данных, утверждение того факта, что значение неизвестно. По умолчанию столбцы и переменные любого типа могут принимать это значение, если они не имеют ограничения NOT NULL. Помимо этого, СУБД автоматически добавляет ограничение NOT NULL для столбцов, входящих в первичный ключ таблицы.

Главная особенность NULL состоит в том, что оно ничему не равно, даже другому NULL. Вы не можете сравнивать с ним любое значение с помощью операторов: =, <, >, like ... Даже выражение NULL != NULL не будет истинным, поскольку нельзя однозначно сравнивать одно неизвестное значение с другим. К слову, это выражение не будет и ложным (false), т.к. при вычислении условий Oracle не ограничивается состояниями TRUE и FALSE. Благодаря наличию элемента неопределенности в виде NULL, имеется еще одно состояние - UNKNOWN.
Continue reading "NULL в Oracle"

Давайте поговорим о схеме базы данных

Пересказ статьи Adron. Let’s Talk About Database Schema


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

Что такое схема?


В целом, в стороне от специфических реализаций в реляционных базах данных, "схема" - это концептуальная основа или проект, который определяет структуру, связи и ограничения данных или информации. Она предоставляет способ описания и организации данных в структурированном виде. Такое понятие схемы не уникально для баз данных; например, в GraphQL схема определяет типы, запросы, мутации и связи между ними, ограничивая набор возможных операций, которые могут выполняться с использованием API, и форму возвращаемых данных. Continue reading "Давайте поговорим о схеме базы данных"

Освоение Oracle PL/SQL: продвинутые концепции и методы

Пересказ статьи Lakshitha Perera. Mastering Oracle PLSQL Advanced Concepts and Techniques


Oracle PL/SQL, универсальный инструмент для управления базами данных, который совершенно сливается с SQL. В нашей предыдущей статье мы рассматривали его основы и промежуточные аспекты, закладывающие прочную основу для понимания этого сложного языка.

Теперь мы готовы погрузиться в продвинутый Oracle PL/SQL. В этой статье рассматривается развитое использование курсоров, сложная обработка исключений, естественная компиляция, динамический SQL и поставляемые Oracle пакеты. Мы также исследуем методы настройки производительности, взаимодействие с SQL*PLUS и триггеры уровня базы данных.
Continue reading "Освоение Oracle PL/SQL: продвинутые концепции и методы"

Статистика для улучшения производительности: сравнение SQL Server и Oracle

Пересказ статьи Pablo Echeverria. SQL Server vs Oracle Query Statistics to Improve Performance


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

В этой статье мы увидим, как определить, какие планы выполнения находятся в кэше и их накопленную статистику, сколько раз они были выполнены, и какое число различных планов выполнения имеется.
Continue reading "Статистика для улучшения производительности: сравнение SQL Server и Oracle"

Руководство по операторам INSERT, UPDATE и DELETE в Oracle

Пересказ статьи Chandra Rawat. A Guide to INSERT, UPDATE, and DELETE Statements in Oracle


Эта статья посвящена трем наиболее часто используемым командам SQL в Oracle: INSERT, UPDATE и DELETE. Эти команды используются для вставки новых данных в таблицы, обновления существующих данных и удаления данных из таблиц, соответственно.

Здесь я подробно рассмотрю каждый из этих операторов, и как они используются в Oracle. Замечу, что операторы INSERT, UPDATE и DELETE могут использоваться только на тех таблицах, на которые у вас имеются привилегии для выполнения этих команд.

Continue reading "Руководство по операторам INSERT, UPDATE и DELETE в Oracle"

Роли, схемы, привилегии и владельцы в SQL Server, Oracle и PostgreSQL. Часть II

Пересказ статьи Andrea Gnemmi. SQL Server, Oracle and PostgreSQL Database Security Roles, Schemas, Grants, Privileges and Owners - Part II


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

Continue reading "Роли, схемы, привилегии и владельцы в SQL Server, Oracle и PostgreSQL. Часть II"

Настройка производительности SQL

Пересказ статьи Gaurav Rajapurkar. SQL Performance Tuning


Настройка производительности SQL - это процесс оптимизации запросов SQL, гарантирующий их быстрое выполнение, насколько это возможно. Имеется множество факторов, которые влияют на производительность SQL-запросов, таких как число участвующих в запросе таблиц, размер и число столбцов в таблицах, индексы на таблицах.
Настройка производительности SQL является важным элементом, который сказывается на масштабируемости и скорости запросов. Здесь обсуждаются некоторые способы настройки SQL. Continue reading "Настройка производительности SQL"

Триггеры: от любви до ненависти

Пересказ статьи Ryan. Triggers: A LoveHate Relationship


Чтобы понять, почему триггеры могут вызывать такие различные реакции, я хочу привести краткую историю триггеров (с моей точки зрения) и то, как она повлияла на мой опыт работы с ними на раннем этапе.

Действие...реакция


Мы живем в мире действия/реакции - и не важно, как наши данные обрабатываются. По мере того, как системы реляционных баз данных развивались и совершенствовались на протяжении десятилетий, в декларативную систему добавлялись различные формы программных функций. Continue reading "Триггеры: от любви до ненависти"

Привилегии и роли в SQL Server, Oracle и PostgreSQL. Часть 1

Пересказ статьи Andrea Gnemmi. Privileges and Roles in SQL Server, Oracle and PostgreSQL - Part 1


Предоставление привилегий на объект базы данных является наиболее распространенным видом деятельности, которую выполняют администраторы баз данных, стараясь при этом дать разрешения, достаточные для выполнения работы, но не слишком большой доступ. Помните о принципе наименьших привилегий! Иногда это сложно реализовать, и, как мы видели на многих других примерах, имеются некоторые различия в реализации этой функциональности в трех рассматриваемых РСУБД, плюс появились некоторые новые роли в SQL Server 2022. В настоящей статье мы рассмотрим то, как предоставить разрешения в SQL Server, Oracle и PostgreSQL.

В этом руководстве мы дадим обзор различных способов предоставления привилегий в SQL Server, Oracle и PostgreSQL. Будут также представлены различия в концепциях ролей, схем и владельцев, а также способ предоставления разрешений на всю схему. Работая над этой статьей, я осознал, что она становится все больше и больше, поэтому я разбил ее на 2 части. В этой первой части мы сосредоточим внимание на концепции ролей. Continue reading "Привилегии и роли в SQL Server, Oracle и PostgreSQL. Часть 1"

Сравнение оператора Create Table в SQL Server и Oracle

Пересказ статьи Pablo Echeverria. SQL Server and Oracle Create Table Comparison


Если вы работаете с базами данных, то, вероятно, уже знаете как создать таблицу, определить столбцы, указать типы данных, добавить первичный ключ, внешние ключи и ограничения. Помимо стандартных таблиц и столбцов что другое возможно для таблиц в SQL Server и Oracle? Continue reading "Сравнение оператора Create Table в SQL Server и Oracle"

Типы данных varchar в SQL Server, Oracle и PostgreSQL

Пересказ статьи Andrea Gnemmi. Varchar Data Types in SQL Server, Oracle and PostgreSQL


Здесь мы рассмотрим как сохранить максимальное число символов в столбце переменной длины и различия между тремя системами баз данных. В частности, будут рассмотрены различные процедуры, используемые для хранения больших строк в столбце с целью обработки большого текста или структурированных данных типа JSON (будет отдельная статья). Continue reading "Типы данных varchar в SQL Server, Oracle и PostgreSQL"

Преобразования оптимизатора Oracle

Пересказ статьи Jonathan Lewis. Transformations by the Oracle Optimizer


Общеизвестно, что когда вы пишете оператор SQL, вы сообщаете базе данных что вы хотите, но не как это получить. Тогда неудивительно, что за исключением простейших случаев оператор, который оптимизирует Oracle, не обязательно является тем, который вы писали. Другими словами, Oracle будет, вероятно, преобразовывать ваш оператор в логически эквивалентный оператор, прежде чем применять арифметику, которую он использует для выбора плана выполнения. Continue reading "Преобразования оптимизатора Oracle"

Пропуски в столбце SQL Identity и пересчет в SQL Server, Oracle и PostgreSQL

Пересказ статьи Andrea Gnemmi. SQL Identity Column Gaps and Conversion in SQL Server, Oracle and PostgreSQL


В первой части этой серии статей мы узнали, что представляет собой столбец identity, а также различные способы его установки и модификации в SQL Server, Oracle и PostgreSQL. Теперь мы глубже заглянем в столбцы identity и рассмотрим такие вопросы, как кэширование значений identity и как преобразовать существующий столбец (содержащий данные) в столбец identity. Continue reading "Пропуски в столбце SQL Identity и пересчет в SQL Server, Oracle и PostgreSQL"

Функции работы со строками в SQL Server, Oracle и PostgreSQL

Пересказ статьи Andrea Gnemmi. SQL String functions in SQL Server, Oracle and PostgreSQL


Строковые функции широко используются для манипуляции, извлечения, форматирования и поиска текста для типов данных char, nchar (unicode), varchar, nvarchar (unicode) и т.д. К сожалению, имеются некоторые отличия в строковых функциях SQL Server, Oracle и PostgreSQL, которые обсуждаются в этой статье. Continue reading "Функции работы со строками в SQL Server, Oracle и PostgreSQL"

Функции даты в SQL Server, Oracle и PostgreSQL

Пересказ статьи Andrea Gnemmi. SQL Server, Oracle and PostgreSQL Date Functions


Функции даты весьма полезны для выполнения различных операций с датами, используемых как для фильтрации, так и форматирования дат в запросах. К сожалению, имеются различия в реализации этих функций в SQL Server, Oracle и PostgreSQL, которым и посвящена эта статья.

В этом руководстве мы рассмотрим некоторые основные функции даты, различные возможности их применения, лучшую практику и различие в выполнении операций с датами в SQL Server, Oracle и PostgreSQL, а также различие типов данных Date и Time.
Continue reading "Функции даты в SQL Server, Oracle и PostgreSQL "