Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Извращенные запросы MySQL / 9 сообщений из 9, страница 1 из 1
18.02.2005, 16:20:57
    #32923732
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращенные запросы MySQL
Добрый день!
Начал я некоторое время назад работать с 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
18.02.2005, 16:31:03
    #32923765
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращенные запросы MySQL
4) Замечательная фича - можно создавать сортированные вьюшки.
create view tbl1_view as select * from tbl1 order by col1;


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


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

Какая версия? я с 7-8 работал, там вроде бы нельзя....
...
Рейтинг: 0 / 0
18.02.2005, 17:06:52
    #32923904
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращенные запросы MySQL
C 7 не работал, а в 8.1.7 и дальше - можно
...
Рейтинг: 0 / 0
27.10.2005, 10:45:41
    #33346822
skyboy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращенные запросы MySQL
А можно как-нить сформировать имя для View внутри процедуры, используя, скажем, переменную? Например,так:
create procedure Test()
begin
declare _name varchar(255);
SELECT user() into _name;
CREATE VIEW _name AS select * from test.test;
end
Или, может, ещё как?
...
Рейтинг: 0 / 0
27.10.2005, 15:41:05
    #33347947
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращенные запросы MySQL
Не, они динамический SQL в процедурах запретили.
...
Рейтинг: 0 / 0
28.10.2005, 19:54:25
    #33350880
Валентин К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращенные запросы MySQL
Технологии запросов в 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
31.10.2005, 12:07:03
    #33352610
Astron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращенные запросы MySQL
Валентин КТехнологии запросов в 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
31.10.2005, 16:06:17
    #33353465
Валентин К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извращенные запросы MySQL
Astron
1) При чем тут это?
При том, что ты так хотел, судя из вопроса.
Astron
2) Оракл - стандарт? Ну рассмешил, и это после всего что они сделали для его "расширения".
Оракл - не стандарт.
Astron
3) Майскулю эти опции не помогут все-равно, как выполнял он идиотские запросы, так и выполнять будет всегда. Ибо совместимость.
Читай SQL-92 и изменения в стандартах SQL-99 и SQL-2003.
Ничего непонятного MySQL не делает, например отсутствие левого объединения в оракле - это отклонение, конечно они решили вопрос с синтаксисом, но по-своему. В MySQL просто увеличена свобода действий программиста, а если непонятно, что нужно получить - так это ваша ошибка, а не сервера.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Извращенные запросы MySQL / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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