• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Пишем запросы в базу данных.
_Chance_
Скаут
На многих серверах администраторы/гмы сталкиваются с разными проблемами из за незнания sql запросов.К примеру - удаление вещи из вендора, смена морфа или смену цены. И люди делают это в ручную, но как мы знаем, после рестарта все слетает. В этой теме я раскрою суть основных команд для работы в базе данных, так же научу синтаксису этих самых команд.

Итак что бы создать запрос вам нужно зайти в вашу базу данных (Navicat, Sqlyog, Quice) и открыть консоль.В появившемся окне мы будем писать наши запросы.Так же можно создать SQL файл локально через Notepad++ и в следствии просто загрузить файл в базу.Но как мы знаем в WoW существует 3 базы.В крации я расскажу о них

AUTH - Отвечает за настройку реалма, так же за доступ игроков.
CHARACTERS - Содержит всю информацию о созданных персонажах.
WORLD - Основная база с которой вам нужно будет поработать - Тут вам и все существа мира, все цены, Гм команды, Лут и т.д.
Основные операторы с которыми вы столкнетесь:
SELECT *FROM - Запрос для получении информации о каком нибудь предмете или NPC.
Пример:
use world - Используем базу данных world (Используется в тех случаях, когда вы либо пишете запрос со сменой базы данных, либо когда вы пишете его локально)
SELECT *FROM `creature_template` WHERE `entry`=1000;
Не забывайте после окончания запроса ставить ; иначе mysql выдаст вам ошибку
INSERT INTO - Запрос для добавления нового Npc или Itema.
Пример:
INSERT INTO `creature_template` (entry, modelid1, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, Health_mod, Mana_mod, Armor_mod, faction_A, faction_H, npcflag, speed_walk, speed_run, scale, rank, dmg_multiplier, unit_class, unit_flags, type, type_flags, InhabitType, RegenHealth, flags_extra, AiName) VALUES
('399997', '21572', "Test", "", 'Directions', '32300', 71, 71, 1.56, 1.56, 1.56, 35, 35, 3, 1, 1.14286, 1.25, 1, 1, 1, 2, 7, 138936390, 3, 1, 2, 'SmartAI');

Как вы видите до слова VALUES у вас идут названия столбцов, а после - их значения и если здесь допустить ошибку mysql так же выдаст ошибку.
Хоть Запрос кажется большим и не красивым он способен на многое =)
UPDATE -
Запрос обновления для чего либо.
Пример: у вашего NPC, ID которого 1000 - размер 1, а вам нужно его увеличить в 2 раза.
UPDATE `creature_template` SET `scale`=2 WHERE `entry`=1000;
Этим запросом вы изменили значение в графе `scale` у нпс с id 1000. (creature_template - Таблица со всеми NPC игрового мира)
DELETE FROM - По названию можно догадаться что это оператор на удаление чего-либо.
Пример: Вы нечаянно добавили в вендора ШМ и хотите убрать его.Условно - ID npc = xxx, ID ШМ = yyy
DELETE FROM `npc_vendor` WHERE `entry`=xxx AND `item`=yyy; (npc_vendor - Таблица содержащая в себе всех продавцов мира - то что они продают, цену и т.д. содержится именно здесь)
REPLACE INTO -
Оператор замены(REPLACE INTO = DELETE FROM+INSERT INTO)
Используется не так часто, но иногда бывает очень полезен.
Пример:

REPLACE INTO `creature_equip_template` (`entry`, `equipentry1`, `equipentry2`, `equipentry3`) VALUES (100001, 30316, 0, 0);
Сообщение # 1 отредактировано _Chance_ - Четверг, 03.04.2014, 07:45
Stuffa
Скаут
новичкам полезно
Сообщение # 2 написано 08.04.2014 в 21:24
EliteWoW
Скаут
Хорошая тема, новичкам поможет.
Сообщение # 3 написано 03.11.2014 в 23:45
aveolona
Капрал
_Chance_, отличная статья, но у меня вопрос почему в одном и том же запросе и одинарные и двойные кавычки? Есть же определенные правила и синтаксис написания запросов, пренебрегать которыми крайне не рекомендуется. Понятно, что консоль или же какой-нибудь GUI обработает запрос и так, но если пользователь додумается заливать скрипты через PhpMyAdmin например?
Сообщение # 4 написано 10.08.2015 в 20:00
  • Страница 1 из 1
  • 1
Поиск: