Data Science. SQL hub
По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo #VRHSZ
Ko'proq ko'rsatish📈 Telegram kanali Data Science. SQL hub analitikasi
Data Science. SQL hub (@sqlhub) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 35 825 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 3 817-o'rinni va Rossiya mintaqasida 18 104-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 35 825 obunachiga ega bo‘ldi.
20 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -37 ga, so‘nggi 24 soatda esa -11 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 7.26% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 3.88% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 2 603 marta ko‘riladi; birinchi sutkada odatda 1 389 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 11 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent sql, индекс, postgres, index, sqlite kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“По всем вопросам- @workakkk
@itchannels_telegram - 🔥лучшие ит-каналы
@ai_machinelearning_big_data - Machine learning
@pythonl - Python
@pythonlbooks- python книги📚
@datascienceiot - ml книги📚
РКН: https://vk.cc/cIi9vo
#VRHSZ”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 21 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
-- Создаем таблицу
CREATE TABLE Colleges (
college_id INT PRIMARY KEY,
college_code VARCHAR(20) NOT NULL,
college_name VARCHAR(50)
);
-- Создаем индекс
CREATE INDEX college_index
ON Colleges(college_code);
Здесь мы создаем индекс с именем college_index в таблице Colleges, используя столбец college_code.
Примечание: Увидеть разницу в скорости при малом количестве данных в таблице проблематично. Однако при большом количестве данных можно легко заметить разницу в скорости между использованием индексов и без них.
CREATE UNIQUE INDEX для уникальных значений
Если нужно создать индексы для уникальных значений в столбце, следует использовать ограничение CREATE UNIQUE INDEX.
Например:
-- Создаем уникальный индекс
CREATE UNIQUE INDEX college_index
ON Colleges(college_code);
Здесь мы создаем уникальный индекс с именем college_index в таблице Colleges, используя столбец college_code.
Удалить индекс из таблиц
Для удаления индекса из таблицы используется оператор DROP INDEX.
Например:
SQL Server
DROP INDEX Colleges.college_index;
PostgreSQL, Oracle
DROP INDEX college_index;
MySQL
ALTER TABLE Colleges
DROP INDEX college_index;
Здесь мы удаляем ограничение college_index из таблицы Colleges.
Примечание: Удаление индекса означает, что удаляется только индекс. Данные в исходной таблице остаются неизменными.
@sqlhubCREATE TABLE Orders (
order_id INT PRIMARY KEY,
amount INT CHECK (amount > 0)
);
Здесь столбец amount принимает значения только больше 0, это является условием для проверки. Теперь давайте попробуем вставить данные в таблицу Orders.
Пример №1
-- Вставляем значение 100.
-- Данные добавлены
INSERT INTO Orders(amount) VALUES(100);
Пример №2
-- Вставляем значение -5.
-- Ошибка при добавлении данных
INSERT INTO Orders(amount) VALUES(-5);
Примечание: Ограничение CHECK используется для проверки данных только при вставке. Чтобы проверить, существует ли строка, следует использовать оператор EXISTS.
❗️Создать именованное ограничение CHECK
Популярной практикой является создание именованных ограничений, чтобы их было легче изменять и удалять.
Например:
-- Создаем именнованое ограничение amountCK для столбца amount.
-- Ограничение проверяет, чтобы значение для вставки было больше 0
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
amount INT,
CONSTRAINT amountCK CHECK (amount > 0)
);
❗️Ограничение CHECK в существующей таблице
Мы можем добавить ограничение CHECK к существующей таблице, используя оператор ALTER TABLE.
Например:
-- Добавляем неименованное ограничение CHECK
ALTER TABLE Orders
ADD CHECK (amount > 0);
Также можно добавить и именованное ограничение CHECK:
-- Добавляем именованное ограничение CHECK - amountCK
ALTER TABLE Orders
ADD CONSTRAINT amountCK CHECK (amount > 0);
Примечание: Если мы попытаемся добавить ограничение amount > 0 к столбцу, значение которого уже меньше 0, мы получим ошибку.
❗️Удалить ограничение CHECK
Мы можем удалить ограничение CHECK, используя оператор DROP.
Например:
SQL Server, PostgreSQL, Oracle
-- Удаляем ограничение CHECK - amountCK
ALTER TABLE Orders
DROP CONSTRAINT amountCK;
MySQL
-- Удаляем ограничение CHECK - amountCK
ALTER TABLE Orders
DROP CHECK amountCK;
@sqlhubBACKUP DATABASE.
Например:
BACKUP DATABASE orders
TO DISK = 'C:\orders_backup.bak';
Здесь мы создаем файл резервной копии базы данных orders на диске C с именем orders_backup.bak.
Примечание: Распространено использование расширения .bak для файлов резервных копий БД, однако это не является обязательным.
Резервное копирование только новых изменений в SQL
В SQL мы также можем сделать резервную копию только новых изменений по сравнению с предыдущей резервной копией, используя команду WITH DIFFERENTIAL. Например:
BACKUP DATABASE orders
TO DISK = 'C:\orders_backup.bak'
WITH DIFFERENTIAL;
Здесь мы добавляем только новые изменения в предыдущий файл резервной копии. Следовательно, эта команда работает быстрее, нежели создание резервной копии БД с нуля.
Восстановление базы данных из резервной копии
Для восстановления файла резервной копии в системе управления базой данных (СУБД) используется оператор RESTORE DATABASE. Например:
RESTORE DATABASE orders
FROM DISK = 'C:\orders_backup.bak';
Здесь мы восстанавливаем файл резервной копии orders_backup.bak в базе данных orders.
@sqlhubSELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer;
На картинке видно как отработает данный код.
Здесь мы выбираем столбцы customer_id и first_name (из таблицы Customers) и столбец amount (из таблицы Orders). В результате получаем те строки, в которых есть совпадение между customer_id (таблицы Customers) и customer (таблицы Orders) вместе со всеми остальными строками из обеих таблиц.
Синтаксис оператора FULL OUTER JOIN
Синтаксис оператора FULL OUTER JOIN следующий:
SELECT столбцы
FROM таблица1
FULL OUTER JOIN таблица2
ON таблица1.имя_столбца = таблица2.имя_столбца;
Оператор FULL OUTER JOIN с оператором WHERE
Вот пример использования оператора FULL OUTER JOIN с оператором WHERE:
SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer
WHERE Orders.amount >= 500;
Здесь мы объединяем две таблицы и выбираем строки, в которых сумма (amount) больше или равна 500.
Оператор FULL OUTER JOIN с псевдонимами AS
Мы можем использовать псевдонимы AS с оператором FULL OUTER JOIN, чтобы сделать наш код короче и чище. Например:
SELECT C.cat_name, P.prod_title
FROM Categories AS C
FULL OUTER JOIN Products AS P
ON C.cat_id = P.cat_id;
Здесь мы выбираем общие строки между таблицами Categories и Products.
@sqlhubSELECT customer_name, COUNT(*) as order_count
FROM orders
GROUP BY customer_name
Этот запрос выберет все уникальные значения из колонки "customer_name" в таблице "orders" и подсчитает количество строк, связанных с каждым уникальным значением. Результатом запроса будет таблица со столбцами "customer_name" и "order_count", в которой каждая строка будет показывать клиента и количество его заказов.
@sqlhubCASE без ELSE:
SELECT column1,
CASE
WHEN column2 = 'value1' THEN 'result1'
WHEN column2 = 'value2' THEN 'result2'
END AS column3
FROM table;
В этой форме оператора CASE используется блок WHEN для проверки значения столбца column2. Если значение равно value1, то будет возвращено значение result1. Если значение равно value2, то будет возвращено значение result2. Если значение не соответствует ни одному из условий, то для столбца column3 будет возвращено значение NULL.
CASE с ELSE:
SELECT column1,
CASE column2
WHEN 'value1' THEN 'result1'
WHEN 'value2' THEN 'result2'
ELSE 'result3'
END AS column3
FROM table;
В этой форме оператора CASE используется значение столбца column2 в блоке CASE. Если значение равно value1, то будет возвращено значение result1. Если значение равно value2, то будет возвращено значение result2. Если значение не соответствует ни одному из условий, то будет возвращено значение result3.
Оба формата оператора CASE могут использоваться в запросах на выборку данных в SQL. Они позволяют создавать условия, когда нужно выполнить различные операции в зависимости от значения столбца или выражения.
@sqlhubTEMPORARY в команде CREATE TABLE:
CREATE TEMPORARY TABLE название_таблицы
Удобно создавать временную таблицу на выборке из другой таблицы:
CREATE TEMPORARY TABLE customer_temp SELECT * FROM customer;
@sqlhubSELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
Пример:
SELECT * FROM customers WHERE last_name LIKE 'Sm%';
Этот запрос вернет все строки из таблицы customers, в которых last_name начинается с букв "Sm".
Оператор LIKE чувствителен к регистру символов, то есть "A" и "a" будут восприниматься как разные символы. Однако, для того чтобы выполнить поиск, игнорируя регистр символов, можно использовать функцию UPPER или LOWER, например:
SELECT * FROM employees WHERE UPPER(first_name) LIKE '%JOHN%';
@sqlhub
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
