Которые являются улучшениями SQL, которых Вы ожидаете?

Выполните следующие действия

  1. docker-compose down - дважды
  2. Отредактируйте файл yml и замените все экземпляры db_data на db_datax
  3. Выполните docker-compose up -d [117 ]

Альтернативно,

  1. docker-compose down - дважды {также удаляет сеть}
  2. docker system prune --volumes
  3. docker-compose up -d [1110 ]
16
задан 10 revs, 3 users 74% 26 January 2013 в 09:06
поделиться

46 ответов

1) [ОСТАВЛЕННЫЙ | ПРАВО] ПОЛУ СОЕДИНЕНИЕ и [ОСТАВЛЕННЫЙ | ПРАВО] АНТИ-СОЕДИНЕНИЕ Они позволили бы мне писать что-то как

-- return customers who have placed at least one order
SELECT c.*
  FROM Customers c
  LEFT SEMI JOIN o ON o.CustomerId = c.Id

-- return customers who have NOT placed any order
SELECT c.*
  FROM Customers c
  LEFT ANTI JOIN o ON o.CustomerId = c.Id

, Это будет иметь точно тот же результат как

SELECT c.*
  FROM Customers c
 WHERE c.Id IN(SELECT CustomerId FROM Orders)

и

SELECT c.*
  FROM Customers c
 WHERE c.Id NOT IN(SELECT CustomerId FROM Orders)

, соответственно. Однако В (или в значительной степени эквивалентный СУЩЕСТВУЕТ) синтаксис намного более грязен, чем мой предложенный синтаксис, особенно в более сложных случаях.

, Конечно, на полу/антиприсоединенную таблицу нельзя сослаться так, это было бы НЕДОПУСТИМО:

-- Error, can't reference semi joined table.
SELECT c.*, o.OrderNumber
  FROM Customers c
  LEFT SEMI JOIN o ON o.CustomerId = c.Id

2) Это woud быть хорошим иметь хорошее решение

WHERE Column IN('a', 'b', 'c')

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

WHERE Column IN(ARRAY @array)

, и код вызова свяжет @array с массивом.

Редактирование: Я просто думал о еще одном

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

1
ответ дан 30 November 2019 в 15:01
поделиться

Очевидный способ для осуществления оптимального плана выполнения.

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

0
ответ дан 30 November 2019 в 15:01
поделиться

Эффективное внедрение стандартов SQL, таких как ДОМЕНЫ, для тех платформ, которые не поддерживают их.

0
ответ дан 30 November 2019 в 15:01
поделиться

Ключи Foreing, которые управляют датами интервала на других таблицах

, Например, для таблиц:

TABLE_A(begin DATE, end DATE)
TABLE_B(day DATE)

Некоторый способ определить На TABLE_B:

FOREIGN KEY (day)
  REFERENCES INTERVAL ON TABLE_A (begin, endd)
0
ответ дан 30 November 2019 в 15:01
поделиться

Частичное ключевое ограничение Foreing.

, Если имеют те таблицы:

create table prova_a (a number, b number);
alter table prova_a add primary key (a,b);
create table prova_b (a number, b number);
alter table prova_b add foreign key (a,b) references prova_a(a,b) ;
insert into prova_a  values (1,2);

можно вставить это без ошибки:

insert into prova_b  values (123,null);
insert into prova_b  values (null,null);
insert into prova_b  values (null,123);

я хочу, чтобы что-то избежало этого, не используя проверочные ограничения.

0
ответ дан 30 November 2019 в 15:01
поделиться

выберите на рекурсивных таблицах:

   select * from rdfClass where rdfClass.uri is instance of "foaf:Person";
0
ответ дан 30 November 2019 в 15:01
поделиться

Никакие более рекордные пределы длины размера/команды.

0
ответ дан 30 November 2019 в 15:01
поделиться

Kevin победил меня к нему на несколько секунд..., но в более общем плане,

select @columnName from @tableName
order by @otherColumnName

и т.д.

Это представило бы, обматывает противной конкатенации строк, сопровождаемой

exec (@sql) 

немедленно ненужный.

0
ответ дан 30 November 2019 в 15:01
поделиться

Определенный для SQL Server:

Некоторые достойные функции даты, как TRUNC. Улучшения полнотекстового поиска (лучше управляют по соответствию логике)

я любил бы его, если SQL-сервер мог бы сохранить различные базы данных в той же базе данных и файлах журнала (совместно использованные ГРУППЫ ФАЙЛОВ), таким образом, я могу резервировать ЦЕЛЫЙ сервер сразу.

Полный синтаксис и проверка ошибок хранимой процедуры, когда я компилирую его (не только когда я выполняю его)

Да, это начинает казаться, что "Я хочу все функции Oracle в SQL Server без всей сложности (и стоят!)"

0
ответ дан 30 November 2019 в 15:01
поделиться

Я хотел бы видеть способность поставить оператор Where во время создания индекса:

CREATE INDEX BAR ON FOO (FooName, FooId) WHERE FooEnabled = 1;

Затем оптимизатор мог использовать это при обработке SQL как это:

SELECT FooId, FooName
FROM Foo
WHERE FooEnabled = 1
ORDER BY FooName;

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

было бы хорошо иметь синтаксический сахар выше.

0
ответ дан 30 November 2019 в 15:01
поделиться

Оптимизация QBE (Запрос Примером). Наконец давая нам способ выдать ответственность перед базой данных для всех тех запросов, которые хотят соответствовать на произвольном подмножестве столбцов.

<час>

РЕДАКТИРОВАНИЕ: QBE является методологией не-SQL для запросов реляционных данных. Для добавления это к SQL, возможно, посмотрело бы что-то как

столбцы SELECT
таблица
FROM, ГДЕ ПРИМЕР (firstname, lastname, дата рождения) = ('% Fred', 'Jones', '20090209')

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

0
ответ дан 30 November 2019 в 15:01
поделиться

Вложенные агрегатные функции.

PostgreSQL не позволяет что-то как ВЫБОР МАКС (КОЛИЧЕСТВО (*))...

0
ответ дан 30 November 2019 в 15:01
поделиться

Команда CreateOrAlter.

я устаю изменяться назад и вперед между, "Создают Proc", и "Изменяют Proc". Я не забочусь, ли это, создают или изменяются, я просто хочу конечный результат быть тем, что я вставил тело процедуры.

0
ответ дан 30 November 2019 в 15:01
поделиться

Подобная LINQ интеграция технических возможностей с SQL :-)

0
ответ дан 30 November 2019 в 15:01
поделиться

Вычисляемые столбцы.

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

0
ответ дан 30 November 2019 в 15:01
поделиться

MACRO SQL ВЫРАЖЕНИЯ

Например:

SELECT *
  FROM X
 WHERE MACRO_1(A, B, C)

Где MACRO_1 может иметь вид:

A*2/B+C

или что-то вроде:

A=2 OR B<C

MACRO_1 - это не функция, это просто макрос, который нужно предварительно обработать и заменить перед окончательным синтаксическим анализом.

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

0
ответ дан 30 November 2019 в 15:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: