Шпаргалка SQL
SELECT колонки - список полів які треба вибрати
DISTINCT колонки - прибирає рядки-дублікати
IF (умова, справжня, хибне)
IFNULL (вираз1, вираз2) - Якщо вираз1 не дорівнює NULL, тоді функція поверне вираз1. Якщо ж вираз1 IS NULL, то функція поверне вираз2
NULLIF (вираз1, вираз2) - якщо вираз1 дорівнює вираз2, то функція повертає NULL; якщо вирази не рівні, то повертає вираз1
CASE колонки WHEN значення1 THEN результат1 [WHEN значення2 THEN результат2] ... [ELSE результатN] END
CASE WHEN умова1 THEN результат1 [WHEN умова2 THEN result2] ... [ELSE результатN] END
FROM таблиця - з якої таблиці робити виборку
WHERE умова - перераховуємо умови по яким робити виборку розділивши їх AND (i) та OR (або)
колонки BETWEEN нижня_межа AND верхня_межа - умова вибору значення в діапазоні
колонки IN (значення1, значення2, … значенняN) - умова, чи міститься змінна у зазначеному списку
колонки IS NULL - колонка дорівнює NULL
колонки IS NOT NULL - колонка не дорівнює NULL
колонки LIKE 'шаблон' - умова, використовується для порівняння рядків ( _ означає будь-який символ, завжди 1 шт) (% будь-який символ та будь-яку кількість разів (включно з 0 разів))
GROUP BY колонки - групоємо результат
HAVING умова - встановити фільтр, який застосовується до записів вже після групування (можна використовувати лише якщо у запиті є GROUP BY)
ORDER BY колонка1 порядок1, колонкаN порядокN - проводимо сортування виборки (ASC(від Ascending)|DESC(від Descending))
LIMIT кількість - обмеження кількість рядків в результаті запиту
OFFSET кількість - пропустити N рядків
Функції з'єднання з сервером MySQL
mysql_connect("localhost","root","") - Відкриває з'єднання із сервером MySQL. Повертає покажчик на з'єднання з MySQL у разі успішного виконання або FALSE при невдачі.
mysql_pconnect("localhost","root","") - Встановлює постійне з'єднання з сервером MySQL. Повертає покажчик на постійне з'єднання з MySQL або FALSE у разі помилки.
mysql_close - Закриває з'єднання із сервером MySQL. Повертає TRUE у разі успішного завершення або FALSE у разі виникнення помилки.
Функція вибору бази даних
mysql_select_db("nak",$db) - Вибирає базу даних MySQL. Повертає TRUE у разі успішного завершення або FALSE у разі виникнення помилки.
Функції обробки помилок
mysql_errno() - Повертає чисельний код помилки виконання останньої операції з MySQL. Повертає код помилки останньої функції роботи з MySQL, або 0 (нуль) якщо операцію виконано успішно.
mysql_error() - Повертає рядок помилки останньої операції з MySQL. Повертає рядок, що містить текст помилки виконання останньої функції MySQL, або "" (порожній рядок), якщо операція виконана успішно.
Приклад
$db = mysql_connect ("localhost","root","")or die( "ERROR ".mysql_errno() . mysql_error());
mysql_select_db("nak",$db);Функції виконання запитів до сервера баз даних
mysql_real_escape_string() - Функція екранує кавички у запиті до БД
mysql_query() -- Надсилає запит MySQL. Тільки для запитів SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() повертає покажчик на результат запиту, або FALSE якщо запит не було виконано. В інших випадках (INSERT, UPDATE, DELETE, DROP і т.п.), mysql_query() повертає TRUE у разі успішного запиту та FALSE у разі помилки.
CREATE - створіть базу або таблицю, виду, поля.
CREATE DATABASE `db_test` - створення бази даних.
ALTER - оновлення таблиці, виду, поля
CREATE TABLE `download_cats` (
`cat_id` bigint(20) NOT NULL auto_increment,
`cat_name` varchar(50) NOT NULL,
PRIMARY KEY (`cat_id`)
) ENGINE=MyISAM
AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;DROP - видалення бази або таблиці
DROP DATABASE `db_test` - видалення бази даних.INSERT - ці запити дозволяють вставити запис у таблицю БД. Тобто створити рядок у таблиці або додати інформацію до таблиці БД.
INSERT INTO name_tad (name_pole) VALUES ("$new_kabinet")DELETE - видаляє значення з таблиці
DELETE FROM table_name WHERE id = "3"UPDATE - спрямовані зміну вже наявних даних у таблиці БД.
UPDATE table_name SET site = "domain.com" WHERE id = "3"; - Змінює значення поля site на domain.com у таблиці table_name, де id дорівнює 3.SELECT – слово SELECT, говорить саме за себе, і стає зрозуміло, що користуючись даними запитами, ми вибиратимемо (читати) інформацію з БД.
SELECT * FROM grups WHERE id="$id";Дополительние команды
count(*) - виведе кількість усіх записів у таблиці
SELECT count(*) FROM table_name;LIMIT - ставить обмеження на кількість записів, що виводяться
SELECT * FROM table_name LIMIT 2,3; - Вибирає 3 записи із таблиці, починаючи з 2 записи. Цей запит корисний під час створення блоку сторінок навігації.ORDER BY - сортує дані по одному полю в порядку зростання ASC або вбивання DESC
SELECT * FROM person ORDER BY number;GROUP BY - групує дані щодо вказаного поля
SELECT * FROM person GROUP BY number;WHERE - встановлює умову
SELECT * FROM person WHERE name="Anna";LIKE - фільтрує вибір даних по масці (% – будь-яка кількість символів)
SELECT * FROM person WHERE name LIKE "An%"; - Вибирає всі записи з таблиці person, де значення поля name починаються з An.DISTINCT - Вибирає унікальні (DISTINCT) значення.
SELECT DISTINCT site FROM table_name;IN() - Виведе всі записи таблиці, які перераховані в дужках
SELECT * FROM person WHERE age IN (12,15,18); - Виведе всі записи таблиці personв яких значення поля age дорівнюватиме 12 або 15 або 18.MAX() - виводить максимальне значення поля.
SELECT MAX(age) FROM person; - Вибере максимальне значення age із таблиці person.MIN() - виводить мінімальне значення поля.
SELECT MIN(age) FROM person;BETWEEN - Визначає діапазон для перевірки. http://msdn.microsoft.com/ru-ru/library/ms187922.aspx
UNION - Об'єднує декілька запитів
LEFT JOIN - Підзапити
LOWER() - перетворює на нижній регістр значення стовпця під час пошуку
SELECT `id` FROM `list_codes` WHERE LOWER(`code`) = "{$paycode}"HAVING - застосовується для фільтрації функцій та стовпців згрупованих за допомогою GROUP BY вказаних у SELECT.
SELECT COUNT(*) AS repetitions, last_name, first_name
FROM cat_mailing
GROUP BY last_name, first_name
HAVING repetitions > 1;SHOW PROCESSLIST - відображає, які запити обробляє сервер MySQL в даний момент.
show processlist;Вимкнення та увімкнення зовнішніх ключів
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
...
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;Замінити частину рядка
UPDATE `promocodes`
SET `promocode` = REPLACE(`promocode`, "PBMOYO00", "MOYO2308")
WHERE
`promo_codes_assignment_id` = 1;Копіювання структури та ключі деякої таблиці, без копіювання даних
CREATE TABLE NEW_TableName
LIKE OLD_TableName;Копируе всю таблицу вместе с данными
CREATE TABLE NEW_TableName
SELECT *
FROM OLD_TableName
або
CREATE TABLE NEW_TableName
LIKE OLD_TableName;
INSERT INTO NEW_TableName
SELECT *
FROM OLD_TableName;Очистити таблицю
TRUNCATE TABLE my_users;Функции обработки результатов запроса
mysql_result() - отримати необхідний елемент із набору записів;
mysql_fetch_array() - внести запис до масиву;
mysql_fetch_row() - внести запис до масиву;;
mysql_fetch_assoc() - внести запис до асоціативного масиву;
mysql_fetch_object() - внести запис до об'єкту.