powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Извращенные запросы MySQL
9 сообщений из 9, страница 1 из 1
Извращенные запросы MySQL
    #32923732
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Начал я некоторое время назад работать с MySQL, и заметил за ним много прикольного. Как ранее работавнему с Ораклом человеку мне было крайне любопытно, какие замечательные запросы может выполнить MySQL.
Предлагаю вашему вниманию некоторые жемчужины моей коллекции, и надеюсь на взаимность - может быть кто пробовал скормить серверу и не такое? :-)

Итак:
1) Команда KILL, как известно убивающая соединение или запрос. Можно написать такое
KILL ((1>'abc')+3)*6;
Убьет процесс N 24. Как интересно представляли себе сисадмина за этим занятием авторы?
2) SELECT это вообще кладезь! Например замечательно работает запрос типа
SELECT 1 union select 2 for update ;
То есть выбрать цифры 1 и 2 и залочить их, не дай бог кто-то поменяет.
3) Залочить оказывается можно и при вставке, или создании VIEW
INSERT INTO TBL1 select 1 for update;
4) Замечательная фича - можно создавать сортированные вьюшки.
create view tbl1_view as select * from tbl1 order by col1;
5) За это надо расстреливать в детстве....
SELECT
ALL DISTINCT DISTINCTROW HIGH_PRIORITY STRAIGHT_JOIN SQL_SMALL_RESULT SQL_BIG_RESULT SQL_BUFFER_RESULT SQL_CACHE
SQL_NO_CACHE SQL_CALC_FOUND_ROWS SQL_CALC_FOUND_ROWS SQL_NO_CACHE SQL_CACHE SQL_BUFFER_RESULT SQL_BIG_RESULT
SQL_SMALL_RESULT STRAIGHT_JOIN HIGH_PRIORITY DISTINCTROW DISTINCT ALL
1
FROM DUAL;
Это замечательно работает
6) Или
CHECK TABLE table1,table2 CHANGED EXTENDED FAST MEDIUM QUICK;
То есть таблицы можно проверять быстро-медленно-средне-расширенно-измененно. Круто.
7) CREATE TABLE Тоже круто
create table t77 (c timestamp on update now() default current_timestamp on update now() default now() binary binary comment 'бред' binary binary);

Вот думаю собрать коллекцию и спросить у них на сайте, зачем такое? ;-)
...
Рейтинг: 0 / 0
Извращенные запросы MySQL
    #32923765
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4) Замечательная фича - можно создавать сортированные вьюшки.
create view tbl1_view as select * from tbl1 order by col1;


Ну это можно и в Oracle, хотя рекомендуется сортировать в SELECT
...
Рейтинг: 0 / 0
Извращенные запросы MySQL
    #32923879
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tru55 4) Замечательная фича - можно создавать сортированные вьюшки.
create view tbl1_view as select * from tbl1 order by col1;


Ну это можно и в Oracle, хотя рекомендуется сортировать в SELECT

Какая версия? я с 7-8 работал, там вроде бы нельзя....
...
Рейтинг: 0 / 0
Извращенные запросы MySQL
    #32923904
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C 7 не работал, а в 8.1.7 и дальше - можно
...
Рейтинг: 0 / 0
Извращенные запросы MySQL
    #33346822
skyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно как-нить сформировать имя для View внутри процедуры, используя, скажем, переменную? Например,так:
create procedure Test()
begin
declare _name varchar(255);
SELECT user() into _name;
CREATE VIEW _name AS select * from test.test;
end
Или, может, ещё как?
...
Рейтинг: 0 / 0
Извращенные запросы MySQL
    #33347947
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не, они динамический SQL в процедурах запретили.
...
Рейтинг: 0 / 0
Извращенные запросы MySQL
    #33350880
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Технологии запросов в select не противоречат SQL 2003, если хочется ближе к стандарту, можно запустить с опцией ANSI или ORACLE

http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html

ORACLE

Equivalent to PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, NO_AUTO_CREATE_USER.
...
Рейтинг: 0 / 0
Извращенные запросы MySQL
    #33352610
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Валентин КТехнологии запросов в select не противоречат SQL 2003, если хочется ближе к стандарту, можно запустить с опцией ANSI или ORACLE

http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html

ORACLE

Equivalent to PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, NO_AUTO_CREATE_USER.

1) При чем тут это?
2) Оракл - стандарт? Ну рассмешил, и это после всего что они сделали для его "расширения".
3) Майскулю эти опции не помогут все-равно, как выполнял он идиотские запросы, так и выполнять будет всегда. Ибо совместимость.
...
Рейтинг: 0 / 0
Извращенные запросы MySQL
    #33353465
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Astron
1) При чем тут это?
При том, что ты так хотел, судя из вопроса.
Astron
2) Оракл - стандарт? Ну рассмешил, и это после всего что они сделали для его "расширения".
Оракл - не стандарт.
Astron
3) Майскулю эти опции не помогут все-равно, как выполнял он идиотские запросы, так и выполнять будет всегда. Ибо совместимость.
Читай SQL-92 и изменения в стандартах SQL-99 и SQL-2003.
Ничего непонятного MySQL не делает, например отсутствие левого объединения в оракле - это отклонение, конечно они решили вопрос с синтаксисом, но по-своему. В MySQL просто увеличена свобода действий программиста, а если непонятно, что нужно получить - так это ваша ошибка, а не сервера.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Извращенные запросы MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]