SQL Flashcards

1
Q

SQL

A

язык запросов для работы с базами данных, структурированных особым образом.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

SELECT

A

SELECT название столбцов, FROM название таблицы;
Оператор запроса, возвращающий набор данных (выборку).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

общая структура запроса

A

SELECT - столбцы или * для выбора всех столбцов; обязательно
FROM - таблица; обязательно
WHERE - условие, например, city = ‘Moscow’; необязательно ( AND,OR, IN)
GROUP BY - столбец, по которому хотим сгруппировать данные; необязательно
HAVING - условие/фильтрация на уровне сгруппированных данных; необязательно
ORDER BY - столбец, по которому хотим отсортировать вывод; необязательно

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

WHERE

A

Необязательный опреатор запроса, для фильтрации данных по нужному условию. Внутри WHERE используются IN / NOT IN для фильтрации столбца по нескольким значениям, AND / OR для фильтрации таблицы по нескольким столбцам.
WHERE Country = ‘Germany’ AND City NOT IN (‘Berlin’, ‘Aachen’) AND CustomerID > 15

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

GROUP BY

A

Необязательный элемент запроса, задает агрегацию по нужному столбцу (например, если нужно узнать какое количество клиентов живет в каждом из городов).
1. перечень столбцов, по которым делается разрез, был одинаковым внутри SELECT и внутри GROUP BY,
2. агрегатные функции (SUM, AVG, COUNT, MAX, MIN) должны быть также указаны внутри SELECT с указанием столбца, к которому такая функция применяется.
SELECT City, COUNT(CustomerID) FROM Customers
GROUP BY City

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

AS

A

дает таблице или колонке в таблице временное имя. Часто используется чтобы сделать имя колонке более читабельным. Алиас существует только на время запроса. Если Алиас содержит пробелы то его заключают в “” или [].
Может помочь если:
- Более чем одна таблица присутствует в запросе;
- Функции используются в запросе
- Имена колонок большие и не читаемые
- Две или более колонки нужно объединить в одну.
SELECT_column_name_AS_alias_name_
FROM_table_name;_
или SELECT_column_name(s)_
FROM_table_name_AS_alias_name;_

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

HAVING

A

Необязательный элемент запроса, который отвечает за фильтрацию на уровне сгруппированных данных (по сути, WHERE, но только на уровень выше).
Фильтрация агрегированной таблицы с количеством клиентов по городам, в данном случае оставляем в выгрузке только те города, в которых не менее 5 клиентов.
select City, count(CustomerID) from Customers
group by City
HAVING count(CustomerID) >= 5

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

ORDER BY

A

Необязательный элемент запроса, который отвечает за сортировку таблицы. Осуществлять сортировку можно и по нескольким столбцам, в этом случае сортировка происходит по порядку указанных столбцов.
SELECT * FROM Customers
ORDER BY Country, City

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

DESC

A

По умолчанию сортировка происходит по возрастанию для чисел и в алфавитном порядке для текстовых значений. Если нужна обратная сортировка, то в конструкции ORDER BY после названия столбца надо добавить DESC.
SELECT * FROM Customers
ORDER BY Country DESC, City

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

JOIN

A

Необязательный элемент, используется для объединения таблиц по ключу, который присутствует в обеих таблицах. Перед ключом ставится оператор ON. Запрос, в котором соединяем таблицы Order и Customer по ключу CustomerID, при этом перед названиям столбца ключа добавляется название таблицы через точку: select * from Orders
JOIN Customers ON Orders.CustomerID = Customers.CustomerID

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

SELECT DISTINCT

A

возвращает данные с отличным значением.(не повторяющиеся)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

NOT

A

используется в комбинации с другими операторами для противоположного результата.
NOT …. =(<,>) …, NOT LIKE, NOT BETWEEN, NOT IN

SELECT_column1,column2, …
FROM_table_name

WHERENOTcondition;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

INSERT INTO

A

вставить строку с данными в таблицу.
INSERTINTO_table_name (column1,column2,column3, …)

VALUES(value1,value2,value3, …);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

UPDATE

A

используется для модификации существующей записи.
UPDATE_table_name_
SET_column1=value1,column2=value2, …
WHERE_condition
;
Если не использовать условие то изменятся все данные в таблице!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

NULL

A

это поле, оставленное пустым при создании записи.
проверка не него осуществляется с помощью IS NULL или IS NOT NULL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

DELETE

A

удаляет записи в таблице.
DELETEFROM_table_name_WHERE_condition_;
без условия удаляются все записи без удаления самой таблицы.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

SELECT TOP
LIMIT

A

выводит указанное количество записей.
SELECT TOP SQL Server
LIMIT MySQL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

MIN MAX

A

агрегатная функция. Возвращает минимальное или максимальное значение в выборке.
SELECTMIN(Price) аналогично MAX
FROMProducts;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

COUNT

A

агрегатная функция. Возвращает количество рядов для указанной колонки. Возможно применение условия.
SELECT SUM(column_name)
FROM table_name
WHERE condition;
COUNT(DISTINCT ) возвращает количество рядов без дубликатов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

SUM

A

агрегатная функция, которая возвращает сумму по столбцу с числами. Возможно применение условия. Сумма может быть от выражения.
SELECTSUM(column_name)
FROM_table_name_
WHERE_condition_;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

AVG

A

агрегатная функция, которая возвращает среднее значение по колонке с числами.
SELECTAVG(column_name)
FROM_table_name_
WHERE_condition_;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

LIKE

A

оператор используется с WHERE для поиска по указанному паттерну в колонке.
Есть два варианта подстановочных карт:
- с % представляет 0, 1 или несколько символов ‘а%’
- знак подчёркивания представляет 1 простой символ ‘jk
эти два варианта можно комбинировать.
Может использоваться с операторами OR и AND.
SELECT_column1, column2, …_
FROM_table_name_
WHERE_columnN_LIKEpattern;

23
Q

IN

A

оператор позволяет указать несколько значений для условия. Можно оформить подзапрос с помощью IN.
SELECT_column_name(s)_
FROM_table_name_
WHERE_column_name_IN(value1,value2, …);

24
Q

BETWEEN

A

оператор выбора значений в заданном диапазоне. Значениями могут быть числа, текст или дата. Включает начало и конец интервала.
SELECT_column_name(s)_
FROM_table_name_
WHERE_column_name_BETWEEN_value1AND_value2;

25
Q

INNER JOIN

A

выбирает записи которые имеют соответствие в обеих таблицах.
SELECT_column_name(s)_
FROM_table1_
INNERJOIN_table2
ON_table1.column_name_=table2.column_name;

26
Q

LEFT JOIN

A

возвращает все записи из левой таблицы(table1), и совпадающие записи из правой таблицы (table2). Если нет совпадений то результатом будет 0 записей с правой стороны.
SELECT_column_name(s)_
FROM_table1_
LEFTJOIN_table2
ON_table1.column_name=table2.column_name;

27
Q

RIGHT JOIN

A

возвращает все записи из правой таблицы(table2), и совпадающие записи из левой таблицы(table1). Если нет совпадений то результатом будет 0 записей с левой таблицы.
SELECT_column_name(s)_
FROM_table1_
RIGHTJOIN_table2
ON_table1.column_name=table2.column_name;

28
Q

SELF JOIN

A

Самосоединение — это обычное соединение, но таблица соединяется сама с собой.
SELECT_column_name(s)_
FROM_table1 T1, table1 T2_
WHERE_condition_;

28
Q

FULL JOIN

A

возвращает все записи, если есть совпадения в левой (таблица1) или правой (таблица2) таблицах записей.
SELECT_column_name(s)_
FROM_table1_
FULLOUTERJOIN_table2
ON_table1.column_name=table2.column_name_WHERE_condition;
Возвращает все совпадающие записи из обеих таблиц независимо от того, соответствует ли другая таблица.

29
Q

UNION

A

оператор используется для объединения выборок из двух и более SELECT.
- каждый SELECT должен иметь одно и тоже количество колонок.
- колонки также должны иметь похожий типы данных.
- колонки у каждого SELECT должны быть в том же порядке.

30
Q

EXISTS

A

оператор используется для тестов на проверку существования любой записи в подзапросе. Оператор вернет верно, если подзапрос возвращает одну или более записей.
SELECT_column_name(s)_
FROM_table_name_
WHEREEXISTS
(SELECT_column_name_FROM_table_name_WHERE_condition_);

31
Q

ANY

A
  • возвращает значение булеан как результат
  • возвращает верно если любые значения подзапроса выполняют условие
    ANY означает, что условие будет истинным, если операция верна для любого из значений в диапазоне.
    SELECT_column_name(s)_
    FROM_table_name_
    WHERE_column_name operator_ANY
    (SELECT_column_name_FROM_table_name_WHERE_condition_);
    operator должен быть стандартным оператором сравнения(=,<,>,<>,<=,>=,!=)
32
Q

ALL

A

ALL
- возвращает значение булеан как результат
- возвращает верно если все значения подзапроса выполняют условие
- используется с SELECT, WHERE, HAVING
SELECTALL_column_name(s)_
FROM_table_name_
WHERE_condition_;

SELECT_column_name(s)_
FROM_table_name_
WHERE_column_name operator_ALL
(SELECT_column_name_FROM_table_name_WHERE_condition_);

33
Q

SELECT INTO

A

копирует данные из одной таблицы в новую таблицу.
SELECT*
INTO_newtable_[IN_externaldb_]
FROM_oldtable
WHERE_condition;
если вместо * указать колонки, скопирует их. Можно создать новую колонку используя Алиас. Если использовать IN ‘ ‘ это создаст копию таблицы в другой базе.
Можно использовать для создании схемы таблицы без данных. Для этого нужно указать WHERE 1 = 0.

34
Q

INSERT INTO SELECT

A

копирует данные из одной таблицы и вставляет их в другую таблицу. Требует чтобы типы данных в источнике и целевой таблице совпадали.
INSERTINTO_table2_
SELECT*FROM_table1
WHERE_condition;
Если указываются колонки.
INSERTINTO_table2(column1,column2,column3, …)
SELECT_column1
,column2,column3, …
FROM_table1_
WHERE_condition_;

35
Q

CASE

A

Выражение CASE проходит через условия и возвращает значение при выполнении первого условия (например, оператор if-then-else). Итак, как только условие станет истинным, оно прекратит чтение и вернет результат. Если ни одно из условий не является истинным, возвращается значение в предложении ELSE.
CASE
WHEN_condition1THEN_result1
WHEN_condition2THEN_result2
WHEN_conditionN_THEN_resultN_
ELSE_result_
END;

36
Q

NULL Functions

A

Для баз данных разная. Пример.IFNULL() проверяет на NULL.
SELECTProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder,0))
FROMProducts;

37
Q

CREATE PROCEDURE

A

Создание процедуры.
CREATE PROCEDURE имя @имяпараметра
AS

GO;
вызов
EXEC имя @имяатрибута;
процедура в SQL.

38
Q

CREATE DATABASE

A

создание новой SQL базы данных
CREATEDATABASE_databasename_;

39
Q

DROP DATABASE

A

удаление существующей SQL базы данных
DROPDATABASE_databasename_;

40
Q

CREATE TABLE

A

создание таблицы.CREATETABLE_table_name_(
column1 datatype,
column2 datatype,
column3 datatype,
….
);
Создание таблицы из существующей таблицы.
CREATETABLE_new_table_name_AS
SELECT_column1, column2,…_
FROM_existing_table_name_
WHERE….;

41
Q

DROP TABLE

A

удаление таблицы.
TRUNCATE TABLE удаляет данные из таблицы но ее структура остается.

42
Q

ALTER TABLE

A

используется для добавления, удаления или изменения колонок в существующей таблице. Так же используется для добавления и удаления различных ограничений в существующей таблице.
ALTERTABLE_table_name_
ADD_column_name datatype_;

ALTERTABLE_table_name_
DROPCOLUMN_column_name_;

43
Q

SQL Constrains

A

Ограничения. Используются для указания правил для данных в таблице. Синтаксис зависит от БД. В MySQL отлично от других при созданиий таблиц и удалении ограничений. Ограничения могут быть добавлены и удалены с помощью ALTER TABLE

44
Q

NOT NULL

A

Ограничение. Гарантирует, что столбец не может иметь значение NULL.

45
Q

UNIQUE

A

Ограничение. Гарантирует что все значения в столбце различны.

46
Q

PRIMARY KEY

A

Ограничения. Комбинация NOT NULL и UNIQUE. Уникально идентифицирует каждую строку таблицы. Может быть одной колонкой, либо состоять из нескольких колонок.

47
Q

FOREIGN KEY

A

Ограничения. Предотвращает действия, которые могут разрушить связи между таблицами. Это поле или несколько полей в одной таблице, и ссылается на PK в другой таблицы. FOREIGN KEY(PersonID) REFERENCES Persons(PersonID).

48
Q

CHECK

A

Ограничение. Обеспечивает то что значение в колонке удовлетворяет конкретному условию.

49
Q

DEFAULT

A

Ограничение. Устанавливается по умолчанию значение для колонки если нет значения в указанном.

50
Q

CREATE INDEX

A

Создается индекс, используется для очень быстрого создания и забора данных из БД. Пользователь не видит индексы, они используются только для поиска и запросов.
CREATEINDEX_index_name_
ON_table_name_(column1,column2, …);
создание уникального индекса
CREATEUNIQUEINDEX_index_name_
ON_table_name_(column1,column2, …);

51
Q

AUTO INCREMENT

A

позволяет уникальному числу быть сгенерированным автоматически, когда новая запись добавляется в таблицу. Часто это PK. по умолчанию начинается с 1, но значение можно и присвоить. Синтаксис зависит от БД.

52
Q
A