Search the Community
Showing results for tags 'sql'.
-
При разработке столкнулся с неизвестным типом данных, который был встроен в json массив Прошу помощи как отсортировать данные которые лежат здесь в "full_response" https://api.warface.ru/user/stat/?name=_Федоров_
-
Здравствуйте, нужна ваша помощь. При разработке проекта у меня выявилась проблема что при вывода json из sql не выводятся нужны параметры. вывести массив есть возможность, не получается вывести строки на подобии user_id, nickname и прочее. Вот API которое я записываю в базу данных: https://api.warface.ru/user/stat/?name=_Федоров_
-
Для создания таблиц в MySQL используется следующий формат: CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci; При успешном выполнении команды будет выведено сообщение: Чтобы в базе создать таблицу используется команда CREATE TABLE. При этом нужно описать столбцы, которые будут у этой таблицы. Давайте создадим табличку, в которой будут храниться пользователи. У каждого пользователя будет идентификатор, email и имя: CREATE TABLE `users` ( `id` INT NOT NULL AUTO_INCREMENT , `email` VARCHAR(255) NOT NULL , `name` VARCHAR(255) NOT NULL , PRIMARY KEY (`id`), UNIQUE (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; id, name, email - это имена столбцов. INT, VARCHAR(255) - типы данных NOT NULL означает, что поле не может иметь значение NULL (или другими словами, оно всегда должно иметь какое-то значение). PRIMARY KEY (первичный ключ) - это столбец, значения в котором будут всегда уникальными (к примеру - ID записи). AUTO_INCREMENT можно указать для первичного ключа, тогда при добавлении новых записей это поле будет заполняться автоматически. При добавлении первой записи он будет равен 1, потом 2 и т.д. UNIQUE(имя столбца) - создание уникального индекса. Уникальный индекс накладывает ограничения на уникальность значений в рамках столбца email. Это мы делаем для того, чтобы у двух разных пользователей нельзя было задать одинаковый email. Типы данных Обозначение Занимаемый объем (байт) Область применения TINYINT, BOOL 1 При использовании в формате представления без знака позволяет хранить значения от 0 до 255; в противном случае — от -128 до 127. В будущем должен быть предусмотрен новый логический тип, но до сих пор для представления логических значений использовался тип данных TINYINT, т.е. BOOL синоним TINYINT(1) SMALLINT 2 Целое число в диапазоне от -32768 до 32767 MEDIUMINT 3 Целое число в диапазоне от -8388608 до 8388607 INT, INTEGER 4 Целое число в диапазоне от -2e32 до 2e32 - 1 BIGINT 8 Целое число в диапазоне от -2e64 до 2e64 - 1 FLOAT 4 Число с плавающей точкой одинарной точности DOUBLE 8 Число с плавающей точкой двойной точности DECIMAL Произвольное, в зависимости от точности Распакованное число с плавающей точкой, которое хранится в таком же формате, как CHAR. Используется для представления небольших десятичных значений, таких как денежные суммы DATE 3 Отображается в формате YYYY-MM-DD DATETIME, TIMESTAMP 8 Отображается в формате YYYY-MM-DD HH:MM:SS TIME 3 Отображается в формате HHH:MM:SS, где HHH — значение от -838 до 838. Это позволяет применять значения типа time для представления продолжительности времени между двумя событиями YEAR 1 Отображается в формате YYYY, который представляет значения от 1901 до 2155 CHAR N байт Строка постоянной длины. Строка, имеющая длину меньше объявленной, дополняется справа пробелами. Значение N должно быть меньше или равно 255 VARCHAR N байт Строка переменной длины. BINARY N байт Сохраняет байтовые строки TINYBLOB, TINYTEXT до 255 Сохраняет строки, операции сортировки и сравнения данных типа blob выполняются с учетом регистра; операции с данными типа text — без учета регистра BLOB, TEXT до 64 Кбайт Длинные строки MEDIUMBLOB, MEDIUMTEXT до 16 Мбайт Длинные строки LONGBLOB, LONGTEXT до 4 Гбайт Длинные строки ENUM(value1, ..., valueN) 1 или 2 Коллекция значений (65536 возможных значений) SET(value1, ..., valueN) до 8 Коллекция значений (64 возможных значений) Чтобы посмотреть структуру новой таблицы введите: DESCRIBE users; После создания таблиц их можно изменять, вот несколько полезных команд для изменения их структуры: // Переименование таблицы ALTER TABLE имя_таблицы RENAME новое_имя_таблицы // Добавление столбца ALTER TABLE имя_таблицы ADD имя_столбца тип_данных // Переименование столбца ALTER TABLE имя_таблицы RENAME COLUMN старое_имя_столбца TO новое_имя_столбца; // Удаление столбца ALTER TABLE имя_таблицы DROP имя_столбца // Удаление всей таблицы DROP TABLE имя таблицы; Добавление данных в таблицу Для добавления данных используется запрос INSERT. Синтаксис: INSERT INTO имя_таблицы ([столбцы]) VALUES ([значения]); Запрос данных из таблицы Данные из таблиц получают с помощью запроса SELECT. Самый простой запрос, позволяющий просмотреть записи таблицы, выглядит так: SELECT * FROM users; Звездочка означает взять все столбцы таблицы Если нам не нужен в результате id, можно написать так: SELECT name, email FROM users; Для ограничения выдачи используется ключевое слово LIMIT. Выведем только первые 2 записи. SELECT * FROM users LIMIT 2; Для того, чтобы выполнить смещение на 2 записи, нужно использовать ключевое слово OFFSET. SELECT * FROM users LIMIT 2 OFFSET 2; Таким образом мы пропустили 2 первые записи и ограничили выборку двумя следующими записями. Чтобы вывести следующие 2 нужно увеличить смещение еще на 2, изменив значение OFFSET: SELECT * FROM users LIMIT 2 OFFSET 4; С помощью OFFSET и LIMIT реализуется пагинация записей. DISTINCT (переводится с английского как "индивидуальный", "отдельный"). Используется, чтобы оставить не повторяющиеся записи. SELECT DISTINCT name FROM users; Если нужно отфильтровать значения по какому-то условию, используется WHERE. Например: SELECT * FROM users WHERE name = "Иван"; Используя операторы AND и OR можно задать несколько условий. SELECT * FROM users WHERE name = "Иван" OR name = "Ольга"; С помощью ключевого слова NOT можно инвертировать условие: SELECT * FROM users WHERE NOT name = "Ольга"; Сортировка Для сортировки значений используется ключевое слово ORDER BY. По умолчанию ORDER BY делает сортировку в порядке возрастания (ASC). SELECT * FROM users ORDER by name; Если нужно отсортировать в обратном порядке нужно добавить ключевое слово DESC: SELECT * FROM users ORDER by name DESC; Это основные и самые часто используемые команды. Если нужно что-то еще - гуглится без проблем. Автор статьи: Артём Ивашкевич
-
Приветствую, в общем во время этапа разработки взял на этом форуме готовый API 4.0 Переписал под свой игровой движок, и написал 1 метод под users.get и при выводе большого количества пользователей массив не ставить запятую. Буду признателен в вашей помощи и поддержки
-
Всем привет, коротко о моём вопросе я делаю систему дуэлей между игроками и при разработке с толкнулся с такой проблемой что не могу понять как реализовать вероятность победы над соперником. Я пробывал делать на разнице между уровнями например: Игрок 10 lvl против игрока 10 lvl шанс победы 50/50 Игрок 15 lvl против игрока 10 lvl шанс победы 75% Игрок 30 lvl против игрока 15 lvl шанс победы 50% пока я сделал ограничение с 10 уровня можно вызывать на дуэль других игроков, но возможно сделаю с 1 уровня зависит от игроков как захотят посмотрим ещё Как вот мне узнать вероятность победы, вот не знаю как сделать все это, вчера все на if и case делал, но чёт 100 условий не особо будет даже в виде функции. Дайте советы либо какой либо код примером, буду благодарен
-
Здравствуйте, нужна помощь в написании алгоритма игрового инвентаря. Храниться будут предметы игры разные випки, оружия и т.д Мой вариант такой: У пользователя которые имеет несколько предметов будут идти по очереди и планирую выводить через foreach. Каждый пользователь будет иметь сетку инвентаря (table 1) и предмет (table 2). Все предметы которые будут лично игрока будут записываться в table 1 Нужны ваши советы и предложения, если можно примеры если есть
-
Здравствуйте, нужна ваша помощь не могу реализовать 1 функцию. Хочу сделать что бы можно было выводить количество заданий всего, и количество выполненных. Пытался 3 способами, самый последний уже не получается, фото приложены ниже.