Создание подключения.
$mysql = new mysqli("localhost", "ИМЯ ПОЛЬЗОВАТЕЛЯ", "УСТАНОВЛЕННЫЙ ПАРОЛЬ", "ИМЯ БАЗЫ ДАННЫХ");
$mysql->query("SET NAMES 'utf8'");
if($mysql->connect_error) {
echo 'Error Number: ' . $mysql->connect_errno . '<br>';
echo 'Error: ' . $mysql->connect_error;
}
Создание новой таблицы.
$mysql->query("CREATE TABLE `story`
(id INT(18) NOT NULL,
name VARCHAR(100) NOT NULL,
bio TEXT NOT NULL,
PRIMARY KEY(id)
)");
Удаление таблицы.
$mysql->query("DROP TABLE `story`");
Добавление записи в таблицу.
$mysql->query("INSERT INTO `users`(`name`, `surname`) VALUES('Женя', 'Новикова')");
Обновление всех полей age.
$mysql->query("UPDATE `users` SET `age` = '35' ");
Обновление определенного значения или id < 3 и так далее.
$mysql->query("UPDATE `users` SET `age` = '35' WHERE `id` = 3 ");
Обновление по значению.
$mysql->query("UPDATE `users` SET `age` = '12' WHERE `name` = 'Дима' ");
Удаление определенной записи.
$mysql->query("DELETE FROM `users` WHERE `id` = 3 ");
$mysql->query("DELETE FROM `users` WHERE `id` = 3 AND ` name` = 'Миша' ");
Вывести количество записей.
$result = $mysql->query("SELECT * FROM `users`");
print_r($result);
echo $result->num_rows;
Вывод в цикле.
if($result->num_rows > 0){
// print_r($result->fetch_assoc()); // Array ( [id] => 1 [name] => Миша [surname] => Новиков [age] => 44 ) // вывод первой записи
// print_r($result->fetch_all()); // // вывод массива всех записей
while($row = $result->fetch_assoc()){
echo 'ID: ' . $row['id'] . ' Имя: ' . $row['name'] . ' Фам: ' . $row['surname'] . '<br>';
}
}
Выносим вывод в функцию.
function printResults($result){
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
echo 'ID: ' . $row['id'] . ' Имя: ' . $row['name'] . ' Фам: ' . $row['surname'] . '<br>';
}
}
echo '<hr>';
}
Выводим через функцию.
$result = $mysql->query("SELECT * FROM `users`"); // вывод всех полей
printResults($result);
$result = $mysql->query("SELECT `id`, `name` FROM `users`"); // вывод определенных полей
printResults($result);
$result = $mysql->query("SELECT `id`, `name` FROM `users` WHERE `id` = 2"); // вывод с условием WHERE
printResults($result);
$result = $mysql->query("SELECT * FROM `users` WHERE `id` > 1 ORDER BY `id` ASC"); // вывод с сортировкой
printResults($result);
$result = $mysql->query("SELECT * FROM `users` WHERE `id` > 1 ORDER BY `id` DESC"); // вывод с сортировкой в обратном порядке
printResults($result);
$result = $mysql->query("SELECT * FROM `users` LIMIT 2"); // лимитированный вывод, только 2 первые записи
printResults($result);
$result = $mysql->query("SELECT * FROM `users` LIMIT 2, 1"); // лимитированный вывод, пропускаем 2 первые записи и показываем 1 последующую
printResults($result);
Закрываем подключение к базе.
$mysql->close();
SELECT – запрос, который выбирает уже существующие данные из БД. Для выбора можно указывать определённые параметры выбора. Например, суть запроса русским языком звучит так - ВЫБРАТЬ такие-то колонки ИЗ такой-то таблицы ГДЕ параметр такой-то колонки равен значению.
Выбирает ВСЕ данные в таблице tbl_name.
SELECT * FROM tbl_name;
Выведет количество записей в таблице tbl_name.
SELECT count(*) FROM tbl_name;
Выбирает (SELECT) из(FROM) таблицы tbl_name лимит (LIMIT) 3 записи, начиная с 2.
SELECT * FROM tbl_name LIMIT 2,3;
Выбирает (SELECT) ВСЕ (*) записи из (FROM) таблицы tbl_name и сортирует их (ORDER BY) по полю id по порядку.
SELECT * FROM tbl_name ORDER BY id;
Выбирает (SELECT) ВСЕ записи из (FROM) таблицы tbl_name и сортирует их (ORDER BY) по полю id в ОБРАТНОМ порядке.
SELECT * FROM tbl_name ORDER BY id DESC;
Выбирает (SELECT) ВСЕ (*) записи из (FROM) таблицы users и сортирует их (ORDER BY) по полю id в порядке возрастания, лимит (LIMIT) первые 5 записей.
SELECT * FROM users ORDER BY id LIMIT 5;
Выбирает все записи из таблицы users, где поле fname соответствует значению Gena.
SELECT * FROM users WHERE fname='Gena';
Выбирает все записи из таблицы users, где значение поля fname начинается с Ge.
SELECT * FROM users WHERE fname LIKE 'Ge%';
Выбирает все записи из таблицы users, где fname заканчивается на na, и упорядочивает записи в порядке возрастания значения id.
SELECT * FROM users WHERE fname LIKE '%na' ORDER BY id;
Выбирает все данные из колонок fname, lname из таблице users.
SELECT fname, lname FROM users;
Допустим у Вас в таблице пользовательских данных есть страна. Так вот если Вы хотите вывести ТОЛЬКО список встречающихся значений (чтобы, например, Россия не выводилось 20 раз, а только один), то используем DISTINCT. Выведет, из массы повторяющихся значений Россия, Украина, Беларусь. Таким образом, из таблицы users колонки country будут выведены ВСЕ УНИКАЛЬНЫЕ значения
SELECT DISTINCT country FROM users;
Выбирает ВСЕ данные строк из таблицы users где age имеет значения 18, 19 и 21.
SELECT * FROM users WHERE age IN (18,19,21);
Фильтрация по одному условию и нескольким значениям с применением IN (включение) или NOT IN (исключение).
select * from Customers
where City IN ('London', 'Berlin')
select * from Customers
where City NOT IN ('Madrid', 'Berlin','Bern')
Фильтрация по нескольким условиям с применением AND (выполняются все условия) или OR (выполняется хотя бы одно условие) и нескольким значениям.
select * from Customers
where Country = 'Germany' AND City not in ('Berlin', 'Aachen') AND CustomerID > 15
select * from Customers
where City in ('London', 'Berlin') OR CustomerID > 4
Выбирает МАКСИМАЛЬНОЕ значение age в таблице users. То есть если у Вас в таблице самое большее значение age (с англ. возраст) равно 55, то результатом запроса будет 55.
SELECT max(age) FROM users;
Выберет данные из таблицы users по полям name и age ГДЕ age принимает самое маленькое значение.
SELECT name, min(age) FROM users;
Выберет данные из таблицы users по полю name ГДЕ id НЕ РАВЕН 2.
SELECT name FROM users WHERE id!='2';
INSERT – запрос, который позволяет ПЕРВОНАЧАЛЬНО вставить запись в БД. То есть создаёт НОВУЮ запись (строчку) в БД.
Делает новую запись в таблице users, в поле name вставляет Сергей, а в поле age вставляет 25. Таким образом, в таблицу дописывается новая строки с данными значениями. Если колонок больше, то они оставшиеся останутся либо пустыми, либо с установленными по умолчанию значениями.
INSERT INTO users (name, age) VALUES ('Сергей', '25');
UPDATE – запрос, который позволяет ПЕРЕЗАПИСАТЬ значения полей или ДОПИСАТЬ что-то в уже существующей строке в БД. Например, есть готовая строка, но в ней нужно перезаписать параметр возраста, так как он изменился со временем.
В таблице users ГДЕ id равно 3 значение поля age становится 18.
UPDATE users SET age = '18' WHERE id = '3';
Всё то же самое, что и в первом запросе, просто показан синтаксис запроса, где перезаписываются два поля и более. В таблице users ГДЕ id равно 3 значение поля age становится 18, а country Россия.
UPDATE users SET age = '18', country = 'Россия' WHERE id = '3';
DELETE – запрос, который удаляет строку из таблицы.
Удаляет строку из таблицы users ГДЕ id равен 10.
DELETE FROM users WHERE id = '10';
DROP – запрос, который удаляет таблицу.
Удаляет целиком таблицу tbl_name.
DROP TABLE tbl_name;
Любопытные запросы, которые могут пригодиться даже опытным пользователям.
Данный сложный запрос ВЫБИРАЕТ колонки id,name,country В ТАБЛИЦАХ users,admins ГДЕ registration_date (дата) не старше 14 дней И activation НЕ РАВНО 0, СОРТИРОВАТЬ по registration_date в обратном порядке (новое в начале).
SELECT id,name,country FROM users,admins WHERE TO_DAYS(NOW()) - TO_DAYS(registration_date) <= 14 AND activation != '0' ORDER BY registration_date DESC;
Запрос в запросе в SQL. Обновить возраст среди пользователей на 18+, где пол - мужской.
UPDATE users SET age = '18+' WHERE age = ( SELECT age FROM users WHERE male = 'man');
Вывести список всех баз.
SHOW databases;
Выведет список ВСЕХ таблиц в Базе Данных base_name.
SHOW tables in base_name;