|
|
|
Извращенные запросы MySQL
|
|||
|---|---|---|---|
|
#18+
Добрый день! Начал я некоторое время назад работать с 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); Вот думаю собрать коллекцию и спросить у них на сайте, зачем такое? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 16:20:57 |
|
||
|
Извращенные запросы MySQL
|
|||
|---|---|---|---|
|
#18+
4) Замечательная фича - можно создавать сортированные вьюшки. create view tbl1_view as select * from tbl1 order by col1; Ну это можно и в Oracle, хотя рекомендуется сортировать в SELECT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 16:31:03 |
|
||
|
Извращенные запросы MySQL
|
|||
|---|---|---|---|
|
#18+
tru55 4) Замечательная фича - можно создавать сортированные вьюшки. create view tbl1_view as select * from tbl1 order by col1; Ну это можно и в Oracle, хотя рекомендуется сортировать в SELECT Какая версия? я с 7-8 работал, там вроде бы нельзя.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 16:59:42 |
|
||
|
Извращенные запросы MySQL
|
|||
|---|---|---|---|
|
#18+
C 7 не работал, а в 8.1.7 и дальше - можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 17:06:52 |
|
||
|
Извращенные запросы MySQL
|
|||
|---|---|---|---|
|
#18+
А можно как-нить сформировать имя для View внутри процедуры, используя, скажем, переменную? Например,так: create procedure Test() begin declare _name varchar(255); SELECT user() into _name; CREATE VIEW _name AS select * from test.test; end Или, может, ещё как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2005, 10:45:41 |
|
||
|
Извращенные запросы MySQL
|
|||
|---|---|---|---|
|
#18+
Не, они динамический SQL в процедурах запретили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2005, 15:41:05 |
|
||
|
Извращенные запросы MySQL
|
|||
|---|---|---|---|
|
#18+
Технологии запросов в 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 19:54:25 |
|
||
|
Извращенные запросы MySQL
|
|||
|---|---|---|---|
|
#18+
Валентин КТехнологии запросов в 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) Майскулю эти опции не помогут все-равно, как выполнял он идиотские запросы, так и выполнять будет всегда. Ибо совместимость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2005, 12:07:03 |
|
||
|
Извращенные запросы MySQL
|
|||
|---|---|---|---|
|
#18+
Astron 1) При чем тут это? При том, что ты так хотел, судя из вопроса. Astron 2) Оракл - стандарт? Ну рассмешил, и это после всего что они сделали для его "расширения". Оракл - не стандарт. Astron 3) Майскулю эти опции не помогут все-равно, как выполнял он идиотские запросы, так и выполнять будет всегда. Ибо совместимость. Читай SQL-92 и изменения в стандартах SQL-99 и SQL-2003. Ничего непонятного MySQL не делает, например отсутствие левого объединения в оракле - это отклонение, конечно они решили вопрос с синтаксисом, но по-своему. В MySQL просто увеличена свобода действий программиста, а если непонятно, что нужно получить - так это ваша ошибка, а не сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2005, 16:06:17 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33347947&tid=1853498]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
541ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 813ms |

| 0 / 0 |
