Skip to content

Возможности SQL*Plus в Oracle Database 23ai

Пересказ статьи Christopher Jones. Powering on with SQL*Plus for Oracle Database 23ai


При фантастических заявлениях относительно возможностей Oracle Database 23ai, которые уже в целом доступны, я захотел поделиться некоторыми улучшениями в SQL*Plus 23ai.

Традиционный инструмент командной строки в Oracle SQL*Plus остается привычным для многих пользователей баз данных Oracle. Он позволяет выполнять ad-hoc операторы SQL к базе данных Oracle или создавать скрипты операторов для выполнения. Инструмент включается во все установки ПО базы данных и легко устанавливается на других машинах с помощью небольших свободно распространяемых пакетов ZIP (или RPM) Oracle Instant Client. Никаких переходов по ссылкам, никакого длительного времени выполнения. Вы просто распаковываете архив, устанавливаете PATH или LD_LIBRARY_PATH и начинаете его использовать. (Инструкции по установке на Linux находятся здесь.)

Continue reading "Возможности SQL*Plus в Oracle Database 23ai"

Преобразование Oracle PL/SQL в PostgreSQL PL/pgSQL

Пересказ статьи Bitnine Global. Converting Oracle PL/SQL to PostgreSQL PL/pgSQL


Добро пожаловать в мир программирования баз данных, в котором языки Oracle PL/SQL и PostgreSQL PL/pgSQL помогают привнести структуру и логику в данные. Эти процедурные языки являются основой внедрения бизнес-правил и манипуляции данными в сами базы данных, играя важную роль в администрировании баз данных.

Оба языка предоставляют возможность использовать переменные, операторы управления типа IF, CASE и LOOP, а также управлять исключениями - инструменты, необходимые для адаптивных и динамичных процедур работы с базами данных. Когда бы вы ни создавали новые функции или выполняли сложные процедуры, синтаксис CREATE PROCEDURE и CREATE FUNCTION станет частью вашего стандартного инструментария.

По мере того, как мы погружаемся в процесс преобразования из Oracle PL/SQL в PostgreSQL PL/pgSQL, мы будем открывать важные детали, необходимые для гладкого перехода.
Continue reading "Преобразование Oracle PL/SQL в PostgreSQL PL/pgSQL"

GROUP BY алиас - особенность Oracle, которая была бы замечательна в SQL Server

Пересказ статьи Aaron Bertrand. SQL GROUP BY Alias - An Oracle feature that would be great in SQL Server


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

Oracle недавно решил эту проблему в выпуске 23c, добавив возможность группировки GROUP BY алиас_столбца. Это такой простой, но мощный синтаксис, и я надеюсь, что SQL Server может последовать за Oracle.
Continue reading "GROUP BY алиас - особенность Oracle, которая была бы замечательна в SQL Server"

Предложение With Function в Oracle SQL

Пересказ статьи Martien van den Akker. Oracle SQL With Function clause


Оно существует уже давно: предложение WITH в Oracle SQL. И, действительно, я использовал его в прошлом. Предложение WITH весьма полезно для модуляризации вашего SQL, особенно в представлениях.

Первое время его использования, у меня был случай, когда я не знал, как решить задачу без предложения WITH. Это было до того времени (в районе 2018), когда я заставил себя познакомиться с ANSI-SQL. Так или иначе, я полюбил предложение WITH, поэтому использовал его также в случаях, когда оно не было необходимо. Но выглядело это изящно. И это модулизировало мои запросы. Continue reading "Предложение With Function в Oracle SQL"

Генерация тестовых данных с помощью встроенных возможностей базы данных

Пересказ статьи Denis Magda. Sample Data Generation With Built-In Database Capabilities


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

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

REGEX в SQL

Пересказ статьи Sai Krishna. REGEX IN SQL


В своих запросах SQL вы, вероятно, использовали предложение WHERE для фильтрации конкретного текста, выполняя поиск на точное совпадение. Например, вы могли бы использовать запрос типа “SELECT * FROM EMP WHERE name = 'Alex'”. Этот подход возвращает записи, которые точно соответствуют имени Alex в том же регистре. Однако имеется более универсальный способ обработки сложных текстовых шаблонов, использующих регулярные выражения (regex).
Continue reading "REGEX в SQL"

Nidhi Gupta. DECODE vs CASE IN ORACLE

Пересказ статьи Nidhi Gupta. DECODE vs CASE IN ORACLE


DECODE: Decode - это функция в SQL. Это способ преобразования написанного кода в понимаемый язык.

CASE: Case - это оператор в SQL. Это способ реагирования на появление значения или на то, какое действие необходимо выполнить при появлении определенного значения.
Continue reading "Nidhi Gupta. DECODE vs CASE IN ORACLE"

Понимание предложения ROWS BETWEEN в SQL

Пересказ статьи Rahma Hassan. Understanding the “ROWS BETWEEN” Clause in SQL


В SQL предложение “ROWS BETWEEN” является мощным средством, которое позволяет вам определить окно строк для анализа или вычислений непосредственно в запросе. Указывая диапазон строк, вы можете выполнять вычисления или применять агрегатные функции к подмножеству данных, а не ко всему результирующему набору. Цель данной статьи - сделать понятным предложение “ROWS BETWEEN” и его использование на примерах.
Continue reading "Понимание предложения ROWS BETWEEN в SQL"

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"