SQL с нуля
Создаём таблицу
Для того, чтобы создать таблицу в SQL, используется выражение CREATE TABLE. Он принимает в качестве параметров все колонки, которые мы хотим внести, а также их типы данных.
Давайте создадим табличку с названием "Months", в которой будет три колонки:
• id - иными словами, порядковый номер месяца (целочисленный тип или int)
• name - название месяца (строка или varchar(10) (10 символов - максимальная длина строки))
• days - число дней в конкретном месяце (целочисленный тип или int)
Код будет выглядеть вот так:
Создаём таблицу
Для того, чтобы создать таблицу в SQL, используется выражение CREATE TABLE. Он принимает в качестве параметров все колонки, которые мы хотим внести, а также их типы данных.
Давайте создадим табличку с названием "Months", в которой будет три колонки:
• id - иными словами, порядковый номер месяца (целочисленный тип или int)
• name - название месяца (строка или varchar(10) (10 символов - максимальная длина строки))
• days - число дней в конкретном месяце (целочисленный тип или int)
Код будет выглядеть вот так:
👍91❤5😱1🎄1
Ввод данных
Теперь давайте добавим пару месяцев в нашу табличку. Сделать это можно с помощью команды INSERT. Есть два разных способа использовать INSERT:
Первый способ не подразумевает указания названий колонок, а лишь принимает значения в том порядке, в котором они указаны в таблице.
Первый способ короче второго, однако если в будущем мы захотим добавить дополнительные колонки, все предыдущие запросы работать не будут. Для решения данной проблемы следует использовать второй способ. Его суть в том, что перед вводом данных мы указываем названия колонок.
В случае, если мы не укажем одну из колонок, на её место будет записано NULL или заданное значение по умолчанию, но это уже совсем другая история.
Теперь давайте добавим пару месяцев в нашу табличку. Сделать это можно с помощью команды INSERT. Есть два разных способа использовать INSERT:
Первый способ не подразумевает указания названий колонок, а лишь принимает значения в том порядке, в котором они указаны в таблице.
Первый способ короче второго, однако если в будущем мы захотим добавить дополнительные колонки, все предыдущие запросы работать не будут. Для решения данной проблемы следует использовать второй способ. Его суть в том, что перед вводом данных мы указываем названия колонок.
В случае, если мы не укажем одну из колонок, на её место будет записано NULL или заданное значение по умолчанию, но это уже совсем другая история.
👍38❤3
Select
Первый запрос используется в случае, если нам нужно показать данные в таблице.
Результатом данного запроса будет таблица со всеми данными в таблице characters. Знак звёздочки (*) означает то, что мы хотим показать все столбцы из таблицы без исключений.
Так как в базе данных обычно больше одной таблицы, нам необходимо указывать название таблицы, данные из которой мы хотим посмотреть. Сделать это мы можем, используя ключевое слово FROM.
Когда вам нужны лишь некоторые столбцы из таблицы, то вы можете указать их имена через запятую вместо звёздочки(2 запрос)
Также иногда нам нужно отсортировать выводимые данные. Для этого мы используем ORDER BY "название столбца"(3 запрос). ORDER BY имеет два модификатора: ASC (по возрастанию) (по умолчанию) и DESC (по убыванию).
Первый запрос используется в случае, если нам нужно показать данные в таблице.
Результатом данного запроса будет таблица со всеми данными в таблице characters. Знак звёздочки (*) означает то, что мы хотим показать все столбцы из таблицы без исключений.
Так как в базе данных обычно больше одной таблицы, нам необходимо указывать название таблицы, данные из которой мы хотим посмотреть. Сделать это мы можем, используя ключевое слово FROM.
Когда вам нужны лишь некоторые столбцы из таблицы, то вы можете указать их имена через запятую вместо звёздочки(2 запрос)
Также иногда нам нужно отсортировать выводимые данные. Для этого мы используем ORDER BY "название столбца"(3 запрос). ORDER BY имеет два модификатора: ASC (по возрастанию) (по умолчанию) и DESC (по убыванию).
👍31
Where
Теперь мы знаем, как показать только конкретные столбцы, но что если мы хотим включить в вывод лишь некоторые конкретные строки? Для этого мы используем WHERE. Данное ключевое слово позволяет нам фильтровать данные по определённому условию.
В следующем запросе мы выведем только тех персонажей, которые в качестве оружия используют пистолет.
Теперь мы знаем, как показать только конкретные столбцы, но что если мы хотим включить в вывод лишь некоторые конкретные строки? Для этого мы используем WHERE. Данное ключевое слово позволяет нам фильтровать данные по определённому условию.
В следующем запросе мы выведем только тех персонажей, которые в качестве оружия используют пистолет.
👍24😁1
И/или
Условия в WHERE могут быть написаны с использованием логических операторов (AND/OR) и математические операторы сравнения (=, <, >, <=, >=, <>).
К примеру, у нас есть табличка, в которой записаны данные о 4 самых продаваемых музыкальных альбомах всех времён. Давайте выведем только те, жанром которых является рок, а продажи были меньше, чем 50 миллионов копий.
Условия в WHERE могут быть написаны с использованием логических операторов (AND/OR) и математические операторы сравнения (=, <, >, <=, >=, <>).
К примеру, у нас есть табличка, в которой записаны данные о 4 самых продаваемых музыкальных альбомах всех времён. Давайте выведем только те, жанром которых является рок, а продажи были меньше, чем 50 миллионов копий.
👍23
Присоединение таблиц
В сложных базах данных чаще всего у нас есть несколько связанных таблиц. К примеру, у нас есть две таблицы: про видеоигры и про разработчиков.
В таблице video_games есть столбец developer_id, в данном случае он является так называемым foreign_key. Чтобы было проще понять, developer_id - это связывающее звено между двумя таблицами.
Если мы хотим вывести всю информацию об игре, включая информацию о её разработчике, нам необходимо подключить вторую таблицу. Чтобы это сделать, можно использовать INNER JOIN.
В сложных базах данных чаще всего у нас есть несколько связанных таблиц. К примеру, у нас есть две таблицы: про видеоигры и про разработчиков.
В таблице video_games есть столбец developer_id, в данном случае он является так называемым foreign_key. Чтобы было проще понять, developer_id - это связывающее звено между двумя таблицами.
Если мы хотим вывести всю информацию об игре, включая информацию о её разработчике, нам необходимо подключить вторую таблицу. Чтобы это сделать, можно использовать INNER JOIN.
👍32
Update
Зачастую нам нужно изменить данные в таблице. В SQL это делается с помощью UPDATE.
Использование UPDATE включает в себя:
• выбор таблицы, в которой находится поле, которое мы хотим изменить
• запись нового значения
• использование WHERE, чтобы обозначить конкретное место в таблице
Предположим, у нас есть таблица с самыми высокооценёнными сериалами всех времён. Однако у нас есть проблема: «Игра Престолов» обозначена как комедия и нам определённо нужно это изменить.
Зачастую нам нужно изменить данные в таблице. В SQL это делается с помощью UPDATE.
Использование UPDATE включает в себя:
• выбор таблицы, в которой находится поле, которое мы хотим изменить
• запись нового значения
• использование WHERE, чтобы обозначить конкретное место в таблице
Предположим, у нас есть таблица с самыми высокооценёнными сериалами всех времён. Однако у нас есть проблема: «Игра Престолов» обозначена как комедия и нам определённо нужно это изменить.
👍23
Псевдонимы
Если вы взгляните на предыдущий пример, то вы заметите, что есть два столбца, названных одинаково: "name". Часто это может запутать. Решением данной проблемы являются псевдонимы. Они, к слову, помогают сделать название столбца красивее или понятнее в случае необходимости.
Чтобы присвоить столбцу псевдоним, можно использовать ключевое слово AS.
Если вы взгляните на предыдущий пример, то вы заметите, что есть два столбца, названных одинаково: "name". Часто это может запутать. Решением данной проблемы являются псевдонимы. Они, к слову, помогают сделать название столбца красивее или понятнее в случае необходимости.
Чтобы присвоить столбцу псевдоним, можно использовать ключевое слово AS.
🔥14👍6😱3
In/Between/Like
Условия в WHERE могут быть записаны с использованием ещё нескольких команд, которыми являются:
• IN - сравнивает значение в столбце с несколькими возможными значениями и возвращает true, если значение совпадает хотя бы с одним значением
• BETWEEN - проверяет, находится ли значение в каком-то промежутке
• LIKE - ищет по шаблону
К примеру, мы можем сделать запрос для вывода данных об альбомах в жанре pop или soul(1 строчка на картинке)
Если мы хотим вывести все альбомы, которые были выпущены в промежутке между 1975 и 1985 годом, мы можем использовать следующую запись(2 строчка на картинке)
Также, если мы хотим вывести все альбомы, в названии которых есть буква 'R', мы можем использовать следующую запись(3 строчка на картинке)
Знак % означает любую последовательность символов (0 символов тоже считается за последовательность).
Если мы хотим вывести все альбомы, первая буква в названии которых - 'R', то запись слегка изменится(4 строчка на картинке)
Условия в WHERE могут быть записаны с использованием ещё нескольких команд, которыми являются:
• IN - сравнивает значение в столбце с несколькими возможными значениями и возвращает true, если значение совпадает хотя бы с одним значением
• BETWEEN - проверяет, находится ли значение в каком-то промежутке
• LIKE - ищет по шаблону
К примеру, мы можем сделать запрос для вывода данных об альбомах в жанре pop или soul(1 строчка на картинке)
Если мы хотим вывести все альбомы, которые были выпущены в промежутке между 1975 и 1985 годом, мы можем использовать следующую запись(2 строчка на картинке)
Также, если мы хотим вывести все альбомы, в названии которых есть буква 'R', мы можем использовать следующую запись(3 строчка на картинке)
Знак % означает любую последовательность символов (0 символов тоже считается за последовательность).
Если мы хотим вывести все альбомы, первая буква в названии которых - 'R', то запись слегка изменится(4 строчка на картинке)
👍27
#Вопросы_с_собеседования
Предположим, есть две таблицы Emp (ID, name, DeptId), Dept(ID, name).
В таблице Emp 10 записей, а в Dept – 5.
Сколько строк будет отображаться в результате следующего SQL-запроса(см картинку)?
Ответ: Запрос выведет 50 строк, т. к. тут перекрестное объединение, являющееся значением по умолчанию, когда условие WHERE, отсутствует.
Предположим, есть две таблицы Emp (ID, name, DeptId), Dept(ID, name).
В таблице Emp 10 записей, а в Dept – 5.
Сколько строк будет отображаться в результате следующего SQL-запроса(см картинку)?
Ответ: Запрос выведет 50 строк, т. к. тут перекрестное объединение, являющееся значением по умолчанию, когда условие WHERE, отсутствует.
👍25🤯21🔥1
Агрегатные функции
Это не совсем основные команды SQL, однако знать их тоже желательно. Агрегатные функции используются для получения совокупного результата, относящегося к рассматриваемым данным:
• COUNT(col_name) — возвращает количество строк;
• SUM(col_name) — возвращает сумму значений в данном столбце;
• AVG(col_name) — возвращает среднее значение данного столбца;
• MIN(col_name) — возвращает наименьшее значение данного столбца;
• MAX(col_name) — возвращает наибольшее значение данного столбца.
Это не совсем основные команды SQL, однако знать их тоже желательно. Агрегатные функции используются для получения совокупного результата, относящегося к рассматриваемым данным:
• COUNT(col_name) — возвращает количество строк;
• SUM(col_name) — возвращает сумму значений в данном столбце;
• AVG(col_name) — возвращает среднее значение данного столбца;
• MIN(col_name) — возвращает наименьшее значение данного столбца;
• MAX(col_name) — возвращает наибольшее значение данного столбца.
👍20🤔2
SUBSTRING
Функция SUBSTRING вырезает и возвращает заданное количество символов из строки.
Первым параметром функция принимает поле или строку, вторым параметром - с какой позиции начинать вырезания (нумерация символов начинается с 1), третьем параметром - сколько символов брать.
Третий параметр не является обязательным. Если он не указан, текст будет вырезан с указанной позиции и до конца строки.
Функция SUBSTRING вырезает и возвращает заданное количество символов из строки.
Первым параметром функция принимает поле или строку, вторым параметром - с какой позиции начинать вырезания (нумерация символов начинается с 1), третьем параметром - сколько символов брать.
Третий параметр не является обязательным. Если он не указан, текст будет вырезан с указанной позиции и до конца строки.
👍18
LIKE
Оператор LIKE используется в WHERE, чтобы задать шаблон поиска похожего значения.
Есть два свободных оператора, которые используются в LIKE:
• % (ни одного, один или несколько символов);
• _ (один символ).
Рассмотрим пример
Выведем список курсов, в имени которых содержится «to», и список курсов, название которых начинается с «CS-».
Оператор LIKE используется в WHERE, чтобы задать шаблон поиска похожего значения.
Есть два свободных оператора, которые используются в LIKE:
• % (ни одного, один или несколько символов);
• _ (один символ).
Рассмотрим пример
Выведем список курсов, в имени которых содержится «to», и список курсов, название которых начинается с «CS-».
👍14