Please enable JavaScript.
Coggle requires JavaScript to display documents.
SQL - структурированный язык запросов, для работы с реляционными БД,…
SQL - структурированный язык запросов, для работы с реляционными БД
DDL
CREATE
CREATE OBJECT objectname
CREATE TABLE TableName (Column1 datatype optional_constraints, Column2 datatype optional_constraints, Column3 datatype optional_constraints,...);
-
CONSTRAINTS
:green_cross: NOT NULL – ограничение, которое говорит, что эта колонка не может быть пустой (NULL), обязательно должна иметь значение
:green_cross: DEFAULT – можно задать значение колонки по умолчанию,
когда другое значение не было указано
:green_cross: IDENTITY – ограничение, которое автоматически увеличивает на 1 и вставляет новое значение когда добавляется новая строка в таблицу
:green_cross: PRIMARY KEY добавляет primary key constraint к колонке, это хорошая практика таким образом указывать в каждой таблице ту колонку, которая содержит первичный ключ.
FOREIGN KEY: CREATE TABLE tab1 (... ,[AlbumId] INT REFERENCES Album(AlbumId)
ALTER
-
-
-
-- добавить ограничения в
колонке в таблице
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
constraint (column_name);
DROP
-
-
:warning:DROP TABLE не сработает, если вы пытаетесь удалить им таблицу, в которой есть хотя бы одно поле на которое ссылается другая таблица с помощью FOREIGN KEY constraint. Сначала нужно будет удалить все referencing FOREIGN KEY constraint в других таблицах, и только потом вы сможете удалить таблицу.
-
TRUNCATE
TRUNCATE TABLE
:!: удаляет все строки из таблицы, а
также место, занимаемое этими
строками
:!:делает то же самое, что и DELETE без
WHERE, но не логирует каждую
удаленную строку, потому быстрее,
чем DELETE
:!: не сработает, если на таблицу
ссылаются другие через foreign key
constraint
DML
SELECT
-
WHERE используется не только в SELECT, но и в
UPDATE, DELETE и др.
INSERT
INSERT INTO
TableName (Column1, Column2, Column3, ...)
VALUES
(Value1, Value2, Value3, ...);
UPDATE
• UPDATE table_name
• SET column1 = value1, column2 = value2, ...
• WHERE condition;
-
-
TCL
BEGIN TRAN
BEGIN TRANSACTION tran_name
BEGIN TRAN tran_name
ROLLBACK
ROLLBACK TRANSACTION tran_name
ROLLBACK TRAN tran_name
COMMIT TRAN
COMMIT
- завершение транзакции, после которого данные уже не
восстановить
DCL
GRANT (TO)
GRANT SELECT, INSERT ON [Customer] TO bob;
-
-
FOREIGN KEY
Может быть НЕ УНИКАЛЬНЫМ,
повторяться в табл
-
-
Синтаксис языка
WHERE vs HAVING
-
WHERE используется вместе
с Select, Insert, Update
Функции агрегации НЕ
могут быть использованы в
WHERE clause, за
исключением случая, когда
используется subquery
(подзапрос)
-
-
-
-
NULL - это пустышка, поле БЕЗ
значения
•NULL – это НЕ ноль, это НЕ пробел(ы)
Операторы сравнения =, <, <> не работают с NULL
IS NULL и IS NOT NULL используются для проверки не пустых
значений, вместо операторов сравнения
Колонка может содержать пустые записи, если отсутствует
ограничение NOT NULL constraint
-
LIKE
LIKE и специальные символы
%: соответствует любой подстроке, которая может
иметь любое количество символов, при этом
подстрока может и не содержать ни одного символа
_: соответствует любому одиночному символу
[ ]: соответствует одному символу, который указан в
квадратных скобках
[ - ]: соответствует одному символу из определенного
диапазона
[ ^ ]: соответствует одному символу,
который не указан после символа ^
ALIASES (псевдонимы)
• присваивают таблице или столбцу в таблице временное имя
• используют для облегчения чтения названий колонок или таблиц
GROUP BY
• Используется для группировки нескольких строк по одной или
нескольким колонкам
• Всегда используется вместе с функциями агрегации
-
TOP N
Верхние N строк
-
В MySQL используется оператор limit N, который
ставится в конце запроса
JOINS
OUTER
RIGHT OUTER JOIN
Возвращает все строки из
правой таблицы И
совпадения из левой
таблицы
• RIGHT JOIN и RIGHT OUTER
JOIN это одно и то же
• Можно поменять местами
таблицы и сделать LEFT JOIN
чтобы получить тот же
результат
-
LEFT OUTER JOIN
Возвращает все строки из
левой таблицы И
совпадения из правой
таблицы.
LEFT JOIN и LEFT OUTER JOIN
это одно и то же
Можно поменять местами
таблицы и сделать LEFT JOIN
чтобы получить тот же
результат
-
INNER
- Возвращает только
совпадения из 2 таблиц
- Используется чаще других
видов JOINS
- JOIN это то же самое, что и
INNER JOIN
CROSS
CROSS JOIN - прямое, или декартово произведение
двух множеств (CARTESIAN PRODUCT)
-
-
LEFT (RIGHT) JOIN - исключения: ...WHERE b.key (a.key) IS NULL
FULL JOIN: ... WHERE a.key IS NULL OR b.key IS NULL
DB
RELATIONAL
-
-
-
-
-
DATA MODEL
ВИДЫ ТАБЛИЦ
Таблица фактов
сведения о событиях (БИЗНЕС)
ПРОЦЕССА, в которые
вовлечены те или иные
объекты
Таблица измерений
Справочники: характеристики, которые
описывают объект
-
HIERARHCIAL
“Tree” structure, each “parent” table can have multiple “children”, but each child only one parent
NON-RELATIONAL
non-tabular data storage, extremely large amounts of data
-
Нормализация
Целостные данных и отсутствие «лишних» данных
(improved data integrity, no redundant data)
-
-
Меньше индексов, меньше менеджмента (fewer
indexes, less management)
-
-