Извлекаем имя из адреса электронной почты
Где "YourTable" - это название вашей таблицы, содержащей столбец с адресами электронной почты.
Этот запрос использует функцию "LEFT", чтобы извлечь часть строки до символа "@", а функция "CHARINDEX" используется для нахождения позиции символа "@". Результат запроса будет содержать столбец с именами, извлеченными из адресов электронной почты.
Где "YourTable" - это название вашей таблицы, содержащей столбец с адресами электронной почты.
Этот запрос использует функцию "LEFT", чтобы извлечь часть строки до символа "@", а функция "CHARINDEX" используется для нахождения позиции символа "@". Результат запроса будет содержать столбец с именами, извлеченными из адресов электронной почты.
👍9
Как полностью очистить таблицу sql
Полностью очистить таблицу, не удаляя её можно с помощью запроса DELETE. Мы указываем имя таблицы, но опускаем блок WHERE. Тогда удаляются абсолютно все записи, вне зависимости от условий.
Кроме DELETE без условий можно использовать TRUNCATE. У неё есть свои особенности. Самая главная, она быстрее DELETE, так как не сканирует таблицы перед очисткой и наиболее полезна для очистки больших таблиц.
Полностью очистить таблицу, не удаляя её можно с помощью запроса DELETE. Мы указываем имя таблицы, но опускаем блок WHERE. Тогда удаляются абсолютно все записи, вне зависимости от условий.
DELETE FROM wiped_table_name;
-- Мы очистили таблицу wiped_table_nameКроме DELETE без условий можно использовать TRUNCATE. У неё есть свои особенности. Самая главная, она быстрее DELETE, так как не сканирует таблицы перед очисткой и наиболее полезна для очистки больших таблиц.
TRUNCATE cars, cups, parrots;
-- Тут можно перечислять сколько угодно таблиц🔥4
Организация хранения исторических данных в Oracle
Сегодня поговорим о разных способах организации хранения исторических данных в Oracle.
Смотреть статью
Сегодня поговорим о разных способах организации хранения исторических данных в Oracle.
Смотреть статью
👍4
Что вернет запрос "select 1 from USERS" (если таблица USERS существует)?
Anonymous Quiz
20%
"1"
4%
Количество строк в таблице USERS
21%
Первую строчку таблицы USERS
30%
"1" столько раз, сколько строк в таблице USERS
17%
Ошибку выполнения запроса
8%
Посмотреть ответы
👍20
#Вопросы_с_собеседования
Удержание пользователей в месяц
Контекст: допустим, у нас есть статистика по авторизации пользователей на сайте в таблице logins:
Задача: написать запрос, который получает количество удержанных пользователей в месяц. В нашем случае данный параметр определяется как количество пользователей, которые авторизовались в системе и в этом, и в предыдущем месяце.
Решение:
Удержание пользователей в месяц
Контекст: допустим, у нас есть статистика по авторизации пользователей на сайте в таблице logins:
| user_id | date |
|---------|------------|
| 1 | 2018-07-01 |
| 234 | 2018-07-02 |
| 3 | 2018-07-02 |
| 1 | 2018-07-02 |
| ... | ... |
| 234 | 2018-10-04 |
Задача: написать запрос, который получает количество удержанных пользователей в месяц. В нашем случае данный параметр определяется как количество пользователей, которые авторизовались в системе и в этом, и в предыдущем месяце.
Решение:
SELECT
DATE_TRUNC('month', a.date) month_timestamp,
COUNT(DISTINCT a.user_id) retained_users
FROM
logins a
JOIN
logins b ON a.user_id = b.user_id
AND DATE_TRUNC('month', a.date) = DATE_TRUNC('month', b.date) +
interval '1 month'
GROUP BY
date_trunc('month', a.date)👍19
#Вопросы_с_собеседования
❓Выберите из таблицы workers все записи так, чтобы вместо id было userId, вместо login – userLogin, вместо salary - userSalary
Ответ на картинке.
❓Выберите из таблицы workers все записи так, чтобы вместо id было userId, вместо login – userLogin, вместо salary - userSalary
Ответ на картинке.
👍11
Как вернуть количество записей в таблице "Customers"?
Anonymous Quiz
81%
SELECT COUNT(*) FROM Customers
5%
SELECT COLUMNS(*) FROM Customers
10%
SELECT COUNT() FROM Customers
1%
SELECT COLUMNS() FROM Customers
3%
Посмотреть ответы
👍14🔥1
Как откатить часть транзакции внутри функции или процедуры?
BEGIN;
INSERT INTO table1 VALUES (1);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (2);
ROLLBACK TO SAVEPOINT my_savepoint; --rollback previous command
INSERT INTO table1 VALUES (3);
COMMIT;
Внутри функции или процедуры код выше завершится с ошибкой, например в is_sql.sql. Но вы можете откатить часть SQL команд в транзакции через подтранзакции:
DO $TEST$
BEGIN
-- here you can write DDL commands, for example, adding or deleting a table or its section
-- and/or
-- here you can write DML commands that modify data in tables and, thus, check the operation of triggers
-- rollback all test queries
raise exception using errcode = 'query_canceled';
EXCEPTION WHEN query_canceled THEN
--don't do anything
END
$TEST$;👍7🔥3
#Вопросы_с_собеседования
❓Объясните различные типы нормализации
Существует много последовательных уровней нормализации. Это так называемые нормальные формы. Каждая последующая нормальная форма включает предыдущую. Первых трех нормальных форм обычно достаточно.
• Первая нормальная форма (1NF) — нет повторяющихся групп в строках
• Вторая нормальная форма (2NF) — каждое неключевое (поддерживающее) значение столбца зависит от всего первичного ключа
• Третья нормальная форма (3NF) — каждое неключевое значение зависит только от первичного ключа и не имеет зависимости от другого неключевого значения столбца
❓Объясните различные типы нормализации
Существует много последовательных уровней нормализации. Это так называемые нормальные формы. Каждая последующая нормальная форма включает предыдущую. Первых трех нормальных форм обычно достаточно.
• Первая нормальная форма (1NF) — нет повторяющихся групп в строках
• Вторая нормальная форма (2NF) — каждое неключевое (поддерживающее) значение столбца зависит от всего первичного ключа
• Третья нормальная форма (3NF) — каждое неключевое значение зависит только от первичного ключа и не имеет зависимости от другого неключевого значения столбца
👍11
Какое ключевое слово нельзя использовать вместе с оператором ROLLUP?
Anonymous Quiz
23%
LIMIT
16%
GROUP BY
14%
ORDER BY
21%
HAVING
26%
Посмотреть ответы
🔥4👍3
Задача
Каким образом можно сократить количество взятых строк из таблицы Jobs, чтобы при выборе значений брались все значения из первой таблицы и только 10 значений из второй?
Решения
Вариант 1:
Вариант 2:
Каким образом можно сократить количество взятых строк из таблицы Jobs, чтобы при выборе значений брались все значения из первой таблицы и только 10 значений из второй?
Решения
Вариант 1:
select *
from hr.job_history jh
left join (
select *
from hr.jobs jb
order by job_id
fetch first 10 rows only) jb on jb.job_id = jh.job_idВариант 2:
SELECT *
FROM HR.JOB_HISTORY JH
LEFT JOIN ( SELECT *,
ROW_NUMBER() OVER (PARTITION BY JB.job_id
ORDER BY JB.id -- обязательна уникальная сортировка
) rownum
FROM HR.JOBS JB ) JBS
ON JH.job_id = JBS.job_id
WHERE JBS.rownum < 10;👍7🔥1
Создание базы данных для маркетплейса с помощью SQL
В этой статье мы разработаем БД для практики. В этом проекте перед вами стоит задача создать реляционную базу данных для веб-сайта, предлагающего продажу подержанных автомобилей.
Общее описание этого проекта заключается в том, что любой желающий может предлагать свои товары (подержанные автомобили) в виде рекламы, а потенциальные покупатели могут осуществлять поиск по нескольким категориям.
▪ Читать дальше
В этой статье мы разработаем БД для практики. В этом проекте перед вами стоит задача создать реляционную базу данных для веб-сайта, предлагающего продажу подержанных автомобилей.
Общее описание этого проекта заключается в том, что любой желающий может предлагать свои товары (подержанные автомобили) в виде рекламы, а потенциальные покупатели могут осуществлять поиск по нескольким категориям.
▪ Читать дальше
👍7🔥2
Python_plus_MySQL-Database.pdf
123.5 KB
▪Создание БД и таблиц
▪Внесение, чтение, обновление и удаление данных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Можно ли упростить приведенный запрос с UNION? Если да, то как?
SELECT id, prod_id, price FROM goods WHERE price <= 5 UNION SELECT id, prod_id, price FROM goods WHERE id IN (100,104)
SELECT id, prod_id, price FROM goods WHERE price <= 5 UNION SELECT id, prod_id, price FROM goods WHERE id IN (100,104)
Anonymous Quiz
24%
SELECT id, prod_id, price FROM goods WHERE price = 5 AND id IN (100,104)
8%
SELECT id, prod_id, price FROM goods WHERE price = 5 !AND id IN (100,104)
23%
SELECT id, prod_id, price FROM goods WHERE price = 5 OR id IN (100,104)
7%
Упростить нельзя
28%
Нет верного варианта ответа
11%
Посмотреть ответ
😱8👍5🔥1
В реляционных базах данных данные хранятся в таблицах, которые являются
Anonymous Quiz
20%
одномерными
52%
двумерными
2%
трехмерными
26%
любыми из перечисленных выше
👍9