Този SQL Cheat Sheet събира командите, към които работещият разработчик посяга ежедневно, подредени по задачи. Всеки раздел съчетава точния синтаксис с просто описание, обхващащо създаването на база данни, типовете данни, заявките, филтрирането, обединяването и индексирането.
🗄️ Структурни команди: СЪЗДАВАНЕ НА БАЗА ДАННИ, СЪЗДАВАНЕ НА ТАБЛИЦА, ПРОМЯНА, ПРЕИМЕНУВАНЕ и ОТКАЗ дефинират и преоформят схемата.
🔢 Типове данни: Числовите, текстовите, датните и двоичните типове задават размера на паметта и валидния диапазон на всяка колона.
???? Команди за извличане: SELECT с WHERE, IN, LIKE и REGEXP стеснява резултатния набор до важните редове.
✍️ Команди за модификация: INSERT, UPDATE и DELETE променят съхранените редове и всяка от тях приема незадължително условие.
📊 Команди за агрегиране: ГРУПИРАНЕ ПО с COUNT, MIN, MAX, SUM и AVG обобщава данните, а HAVING филтрира групите.
🔗 Комбинирани команди: JOIN обединява таблици една до друга, докато UNION натрупва резултатите от две заявки.
Типът данни на колоната определя какво може да се съхранява в нея и колко място заема всеки ред.
Числови типове данни
Команда
Descriptйон
TINYINT( )
-128 до 127 нормално, 0 до 255 БЕЗЗНАК.
SMALLINT( )
-32768 до 32767 нормално
0 до 65535 НЕПОДПИСАН.
MEDIUMINT( )
-8388608 до 8388607 нормално
0 до 16777215 НЕПОДПИСАН.
INT( )
-2147483648 до 2147483647 нормално
0 до 4294967295 НЕПОДПИСАН.
BIGINT( )
-9223372036854775808 до 9223372036854775807 нормално
0 до 18446744073709551615 НЕПОДПИСАН.
FLOAT
Малко приблизително число с плаваща десетична запетая.
DOUBLE( , )
Голямо приблизително число с плаваща десетична запетая.
DECIMAL( , )
Точно число с фиксирана запетая. Предпочитаният избор за съхраняване на валутни стойности.
Текстови типове данни
Команда
Descriptйон
CHAR( )
Секция с фиксирана дължина от 0 до 255 символа.
VARCHAR( )
Секция с променлива дължина от 0 до 65535 символа.
TINYTEXT
Низ с максимална дължина от 255 знака.
TEXT
Низ с максимална дължина от 65535 знака.
BLOB
Двоични данни с максимална дължина от 65535 байта.
MEDIUMTEXT
Низ с максимална дължина от 16777215 знака.
MEDIUMBLOB
Двоични данни с максимална дължина от 16777215 байта.
LONGTEXT
Низ с максимална дължина от 4294967295 знака.
LONGBLOB
Двоични данни с максимална дължина от 4294967295 байта.
Типове данни за дата/час
Команда
Descriptйон
DATE
ГГГГ-ММ-ДД
DATETIME
ГГГГ-ММ-ДД ЧЧ: ММ: СС
TIMESTAMP
ГГГГ-ММ-ДД ЧЧ:ММ:СС, съхранено в UTC и конвертирано към часовата зона на сесията.
TIME
HH: MM: SS
Други типове данни
Команда
Descriptйон
ENUM
За съхраняване на една текстова стойност, избрана от списък с предварително дефинирани текстови стойности.
SET
Това се използва и за съхраняване на текстови стойности, избрани от списък с предварително дефинирани текстови стойности. Може да съдържа множество стойности.
BOOL
Синоним на TINYINT(1), използван за съхраняване на булеви стойности.
BINARY
Подобно на CHAR; разликата е, че текстът се съхранява в двоичен формат.
VARBINARY
Подобно на VARCHAR; разликата е, че текстът се съхранява в двоичен формат.
UPDATE table_name SET column_name = new_value [WHERE condition];
Актуализиране на синтаксиса на командата
ORDER BY в SQL: команда DESC & ASC
Команда
Descriptйон
SELECT statement... [WHERE condition | GROUP BY field_name(s) HAVING condition] ORDER BY field_name(s) [ASC | DESC];
Основен синтаксис на клаузата ORDER BY
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC | DESC [LIMIT N];
DESC и ASC синтаксис
Команда SQL GROUP BY и HAVING Clause
ГРУПИРАЙ ПО свива редовете в групи, а HAVING филтрира тези групи, след като са формирани.
Групирай по
Команда
Descriptйон
SELECT statements... GROUP BY column_name1[, column_name2, ...] [HAVING condition];
Синтаксис на GROUP BY
Grouping и агрегатни функции
Команда
Descriptйон
SELECT t2, COUNT(t1) FROM table1 GROUP BY t2;
Да предположим, че искаме общия брой стойности на колона t2 в нашата база данни.
клауза HAVING
Команда
Descriptйон
SELECT * FROM table2 GROUP BY t1_id, t4 HAVING t1_id = x1;
Връща всички t4 стойности за редовете на table2, чийто t1_id е x1.
Команди за заместващи символи в SQL за Like, NOT Like, Escape, ( % ), ( _ )
Заместващите символи позволяват на LIKE да съвпада с частични низове.
% командата за заместващ символ за процент в MySQL
Команда
Descriptйон
SELECT statements... WHERE fieldname LIKE 'xxx%';
Основен синтаксис за заместващия символ %, който съответства на произволен брой знаци
_ команда за заместващ знак за подчертаване
Команда
Descriptйон
SELECT * FROM table1 WHERE t3 LIKE 'x2_';
Подчертаването съвпада точно с един символ.
НЕ Като команда със заместващи символи
Команда
Descriptйон
SELECT * FROM table1 WHERE t3 NOT LIKE 'x2_';
Да предположим, че искаме редовете от table1, чиято стойност t3 не съответства на шаблона.
Изход от командата със заместващ знак за ключова дума
Команда
Descriptйон
LIKE '67#%' ESCAPE '#';
Проверява за литералния низ „67%“, защото # екранира заместващия символ.
SQL регулярни изрази (REGEXP)
Команда
Descriptйон
SELECT statements... WHERE fieldname REGEXP 'pattern';
Основен синтаксис на съвпадение на регулярен израз
Метазнаци на регулярен израз
Команда
Descriptйон
*
Метасимволът звездичка (*) съответства на нула или повече екземпляри на низа, предхождащ го.
+
Метасимволът плюс (+) съвпада с един или повече екземпляри на низа, предхождащ го.
?
Метасимволът въпросителен знак (?) съвпада с нула или един екземпляр на низа, който го предхожда.
.
Метасимволът точка (.) съвпада с всеки единичен символ, с изключение на символа за нов ред.
[abc]
Списъкът със символи [abc] съвпада с който и да е от затворените символи.
[^abc]
Списъкът с символи [^abc] съвпада с всеки символ, с изключение на затворените в него.
[A-Z]
Диапазонът [AZ] съответства на всяка главна буква.
[a-z]
Диапазонът [az] съответства на всяка малка буква.
[0-9]
Диапазонът [0-9] съответства на всяка цифра от 0 до 9.
^
Каретката (^) закотвя съвпадението в началото.
|
Вертикалната черта (|) изолира алтернативите.
[[:<:]]
Маркерът [[:<:]] съвпада с началото на думите.
[[:>:]]
Маркерът [[:>:]] съвпада с края на думите.
[:class:]
Маркерът [:class:] съответства на клас символи, например [:alpha:] за букви, [:space:] за интервали, [:punct:] за пунктуация и [:upper:] за главни букви.
Команди за SQL функции
Стрингови функции
Команда
Descriptйон
SELECT t1_id, t2, UCASE(t2) FROM table1;
Функцията UCASE приема низ като параметър и преобразува всички букви в главни букви.
Числови функции
Команда
Descriptйон
Пример
DIV
Целочислено разделение
SELECT 23 DIV 6;
/
делене
SELECT 23 / 6;
-
ПодtracАЦИ
SELECT 23 - 6;
+
Допълнение
SELECT 23 + 6;
*
Умножение
SELECT 23 * 6 AS multiplication_result;
% or MOD
Модул
SELECT 23 % 6; or SELECT 23 MOD 6;
FLOOR
Премахва десетичните знаци от число и го закръглява надолу до най-близкото цяло число.
SELECT FLOOR(23 / 6) AS floor_result;
ROUND
Закръглява число с десетични знаци до най-близкото цяло число.
SELECT ROUND(23 / 6) AS round_result;
Съхранени функции
Команда
Descriptйон
CREATE FUNCTION sf_name ([parameter(s)])
Задължително. Разказва MySQL сървърът да създаде функция с име sf_name с опционалните параметри, дефинирани в скобите.
RETURNS data type
Задължително. Указва типа данни, които функцията връща.
DETERMINISTIC
Функцията връща една и съща стойност винаги, когато ѝ бъдат предоставени едни и същи аргументи.
STATEMENTS
Процедурният код, който функцията изпълнява.
Команди на SQL Aggregate функция
Команда
Descriptйон
SELECT COUNT(t1_id) FROM table1 WHERE t1_id = 2;
COUNT функция
SELECT MIN(t3) FROM table2;
MIN функция
SELECT MAX(t3) FROM table2;
Функция MAX
SELECT SUM(t4) FROM table3;
Функция SUM
SELECT AVG(t4) FROM table3;
AVG функция
SQL IS NULL & IS NOT NULL команди
A NULL е липсваща стойност, така че трябва да се тества с IS NULL, а не с оператора за равно.
Команда
Descriptйон
SELECT COUNT(t3) FROM table1;
COUNT игнорира NULL стойностите в колоната.
CREATE TABLE table2(
t1_number int NOT NULL,
t2_names varchar(255),
t3 varchar(6)
);
Тези команди променят таблица, която вече съдържа данни.
Команда
Descriptйон
ALTER TABLE table_name ADD COLUMN column_name data_type;
Синтаксис на ALTER
DROP TABLE sample_table;
Синтаксис DROP TABLE
RENAME TABLE current_table_name TO new_table_name;
Синтаксис на командата RENAME
ALTER TABLE table1 CHANGE COLUMN t1_names t1name char(250) NOT NULL;
ПРОМЯНА на ключова дума
ALTER TABLE table1 MODIFY t1name char(50) NOT NULL;
ПРОМЕНИ ключова дума
ALTER TABLE table1 ADD t4 date NULL AFTER t3;
СЛЕД ключова дума
SQL LIMIT & OFFSET
Команда
Descriptйон
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
Синтаксис на ключова дума LIMIT
SELECT * FROM table1 LIMIT 1, 2;
Отместване в заявката LIMIT: пропускане на 1 ред, след което връщане на 2.
SQL команди за подзаявки
Команда
Descriptйон
SELECT t1_name FROM table1 WHERE category_id = (SELECT MIN(t1_id) FROM table2);
Подзапитвания
SQL JOINS команди
пРИСЪЕДИНЯВА КЪМ комбиниране на колони от две таблици в един набор от резултати.
Команда
Descriptйон
SELECT * FROM table1 CROSS JOIN table2;
Cross JOIN
SELECT table1.t1, table1.t2, table2.t1
FROM table1, table2
WHERE table2.id = table1.table2_id;
ВЪВЕЖДАНЕ
SELECT A.t1, B.t2, B.t3
FROM table2 AS A
LEFT JOIN table1 AS B
ON B.table2_id = A.id;
LEFT JOIN
SELECT A.t1, A.t2, B.t3
FROM table1 AS A
RIGHT JOIN table2 AS B
ON B.id = A.table2_id;
ПРАВИЛНО ПРИСЪЕДИНЕНЕ
SELECT A.t1, B.t2, B.t3
FROM table2 AS A
LEFT JOIN table1 AS B
USING (table2_id);
Клаузи „ON“ и „USING“.
SQL UNION команди
UNION наслагва редовете на две заявки, докато JOIN ги разширява в повече колони.
Команда
Descriptйон
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
Синтаксис на UNION. Дублиращите се редове се премахват.
SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2;
UNION ALL запазва дублиращи се редове.
SQL в командите на Views
Прегледи съхранявайте заявка под име, така че да може да се използва повторно като таблица.
Команда
Descriptйон
CREATE VIEW view_name AS SELECT statement;
Изгледи синтаксис
DROP VIEW general_v_movie_rentals;
Спадping гледания
SQL индексни команди
Индексът е структура за търсене, която прави търсенето в колона много по-бързо.
Команда
Descriptйон
CREATE INDEX id_index ON table_name(column_name);
Добавете основен синтаксис на индекса
DROP INDEX index_id ON table_name;
Базов синтаксис на пуснете индекс
Въпроси и Отговори
Не. Ключови думи като SELECT и WHERE работят с главни и малки букви. Главните букви са конвенция, разделяща командите от идентификаторите. Имената на таблиците обаче могат да бъдат чувствителни към малки и големи букви в Linux.
DELETE премахва избраните редове и може да бъде отменено. TRUNCATE изпразва бързо цялата таблица и нулира AUTO_INCREMENT. DROP премахва самото определение на таблицата.
Първо се изпълняват FROM и JOIN, след това WHERE, GROUP BY, HAVING, SELECT, ORDER BY и накрая LIMIT. Ето защо псевдоним на колона, дефиниран в SELECT, не може да се използва вътре в WHERE.
Да. Асистентите за текст-към-SQL преобразуват въпрос в заявка, използвайки схемата на таблицата. Винаги четете генерираните условия WHERE и JOIN, защото една правдоподобна заявка може да върне грешни редове.
Да. RevПрегледът на изхода на изкуствения интелект, настройването на бавни заявки и четенето на план за изпълнение изискват плавно владеене на командите. Справочният лист ускорява припомнянето; той не замества разбирането.
Обобщете тази публикация с:
Бъдете в течение с AIОбратна Седмичен изкуствен интелект Умения, тенденции, практически съвети.
Регистрирайте се за бюлетина
Успешно се абонирахте. Моля, проверете входящата си поща.