SQL-запросы — решение с помощью Azure Datastudio

Опубликовано: 19 Февраля, 2023

SQL Server — это универсальная широко используемая СУБД. Запросы с помощью SQL Server — это весело, проще и позволяет легко справляться с любыми сложными ситуациями. В этом уроке давайте рассмотрим несколько важных сценариев, с которыми мы сталкиваемся в нашей повседневной жизни, и способы их решения путем написания эффективных запросов. Давайте воспользуемся Azure Datastudio для управления запросами.

Azure Datastudio можно легко установить, и это инструмент с открытым исходным кодом, доступный для всех операционных систем.

Шаг 1: Создание базы данных

CREATE DATABASE GeeksforGeeks;
GO

Предположим, у вас есть таблица с ненужными значениями, такими как «#», в данных столбца, и при отображении данных из таблицы вы хотите удалить ненужные значения (#) и отображать только правильные данные. Давайте посмотрим, как справиться с этим сценарием. Выполните приведенный ниже код один за другим, прочитав комментарий.

Шаг 2: Пример создания таблицы:

USE GEEKSFORGEEKS

Шаг 3: Создайте таблицу для хранения образцов данных

CREATE TABLE Extract_data
(
Id INT IDENTITY(1,1),
[Column_data] VARCHAR(100)
)
GO

Шаг 4: Проверьте созданную таблицу, так как данные не вставлены, строки не видны.

select * from
Extract_data

Шаг 5: Вставьте образцы данных во вновь созданную таблицу.

INSERT INTO Extract_data VALUES
("227;#00.050;#150;#00.043"),
("455;#00.099;#432;00.014#"),
("112;00.055#;323#;#00.015")
GO

Шаг 6: Проверьте данные таблицы

select * from Extract_data

Шаг 7: Чтобы удалить ненужные значения (#) и отобразить только правильные данные, вы можете использовать функцию REPLACE(). Функция REPLACE() в приведенном ниже запросе заменяет данные ненужного столбца «#» пробелом.

select REPLACE([Column_data], "#", "")
from Extract_data

ПРИМЕЧАНИЕ. Вы также можете проверить это, проверив количество символов в данных столбца, используя другую функцию DATALENGTH().

Шаг 8: Количество символов в данных столбца с ненужными символами

select Column_data, datalength([Column_data] ) as TotalCharacters from Extract_data

Шаг 9: Количество символов в данных отображаемого столбца после удаления символа JUNK (#)

select REPLACE([Column_data], "#", "") as Column_data,
datalength(REPLACE([Column_data], "#", "") ) as TotalCharacters
from Extract_data

ПРИМЕЧАНИЕ . Приведенный выше запрос удалит символы JUNK только во время отображения, а не навсегда. Если вы снова проверите исходные данные таблицы, символы JUNK все еще там!!

Шаг 10: Если вы хотите навсегда удалить символы JUNK (#) из таблицы, вы можете использовать приведенный ниже запрос.

update Extract_data
set Column_data = REPLACE([Column_data], "#", "")

Шаг 11: Теперь, если вы проверите данные столбца в таблице, они будут без символов JUNK.

select * from Extract_data

Теперь предположим создать таблицы с тем же именем в базе данных. Итак, в организации есть возможности для отделов «Продажи» и «Маркетинг». Оба отдела хотят использовать одно и то же имя таблицы под названием «inventory». Чтобы иметь этот сценарий, нам нужно сделать такие запросы

Если вы создадите таблицу, используя приведенный ниже синтаксис, таблица будет создана в предопределенной схеме «dbo».

CREATE TABLE table1(
ID INT PRIMARY KEY IDENTITY,
Details VARCHAR(100),
Created_date DATETIME NOT NULL
);

Вы можете убедиться, что таблица была создана в соответствии с предопределенной схемой по умолчанию «dbo».

select A.name as Table_Name,B.name as Schema_Name
from sys.tables A
INNER JOIN sys.schemas B
ON A.schema_id = B.schema_id
where A.name = "table1"
GO

Вы можете заметить, что вновь созданная таблица создается в соответствии со схемой по умолчанию «dbo». Схемы могут быть полезны, когда мы создаем в базе данных две таблицы с одинаковыми именами.

Давайте сначала посмотрим, как определить схему. Мы определим 2 схемы (продажи и маркетинг), используя приведенный ниже запрос.

CREATE SCHEMA sales;
GO
CREATE SCHEMA marketing;
GO

Предположим, вам нужно хранить данные об инвентаризации, относящиеся к отделу продаж и отделу маркетинга, в отдельной таблице, вы можете хранить их в двух отдельных таблицах с тем же именем, как показано ниже. Это будет в следующем порядке: [имя_базы_данных].[имя_схемы].[имя_таблицы]

CREATE TABLE [GEEKSFORGEEKS].[sales].[inventory]( 
ID INT PRIMARY KEY IDENTITY,
Inventory_Items VARCHAR(100),
);

CREATE TABLE [GEEKSFORGEEKS].[marketing].[inventory](
ID INT PRIMARY KEY IDENTITY,
Inventory_Items VARCHAR(100),
);

Вы можете заметить, что были созданы 2 таблицы с одинаковым именем, но их можно идентифицировать по их схеме.

select A.name as Table_Name,B.name as Schema_Name
from sys.tables A
INNER JOIN sys.schemas B
ON A.schema_id = B.schema_id
where A.name = "inventory"
GO

ПРИМЕЧАНИЕ. Вы можете видеть, что мы можем создать 2 таблицы с одинаковым именем, используя «Схемы». Но для доступа к 2 таблицам вам нужно вызвать их, используя имя схемы в префиксе

select * from inventory

Это выдаст ошибку недопустимого объекта

Правильный подход, когда мы используем схемы:

Упомяните имя схемы для доступа к этим таблицам

select * from sales.inventory
select * from marketing.inventory

Следуя подходу схемы, мы можем сохранить одно и то же имя таблицы во всех схемах. Итак, в качестве практического примера, отдел продаж, маркетинга или даже предпродажи, складской отдел (в терминах SQL-сервера это схема) и т. д. может иметь одно и то же имя таблицы, например «инвентарь», «запас», «заказ на продажу». ', 'заказ на покупку и т. д.,

SQL