|
|
Модератор форума: Dimitro |
Форум TrinityCore Установка / Настройка TrinityCore Пишем запросы в базу данных. (Самое основное для администраторов) |
Пишем запросы в базу данных. |
На многих серверах администраторы/гмы сталкиваются с разными проблемами из за незнания 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); |
_Chance_, отличная статья, но у меня вопрос почему в одном и том же запросе и одинарные и двойные кавычки? Есть же определенные правила и синтаксис написания запросов, пренебрегать которыми крайне не рекомендуется. Понятно, что консоль или же какой-нибудь GUI обработает запрос и так, но если пользователь додумается заливать скрипты через PhpMyAdmin например?
Сообщение # 4 написано 10.08.2015 в 20:00
|
| |||
| |||