SQL-запросы — решение с помощью Azure Datastudio
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-сервера это схема) и т. д. может иметь одно и то же имя таблицы, например «инвентарь», «запас», «заказ на продажу». ', 'заказ на покупку и т. д.,