Last active
February 8, 2024 09:32
-
-
Save SlavikArt/1e5794ca45f553579fd81fad4b3f00fb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Task 1 | |
-- Создайте однотабличную базу данных «Овощи и | |
-- фрукты». Нужно хранить такую информацию: | |
-- ■ Название; | |
-- ■ Тип (овощ или фрукт); | |
-- ■ Цвет; | |
-- ■ Калорийность. | |
CREATE DATABASE Grocery | |
USE Grocery | |
CREATE TABLE Products ( | |
id INT PRIMARY KEY IDENTITY, | |
name NVARCHAR(50), | |
type NVARCHAR(50), | |
color NVARCHAR(50), | |
calories INT | |
) | |
-- Овощи | |
INSERT INTO Products (name, type, color, calories) | |
VALUES ('Морковь', 'Овощ', 'Оранжевый', 41), | |
('Брокколи', 'Овощ', 'Зеленый', 55), | |
('Перец', 'Овощ', 'Красный', 40), | |
('Баклажан', 'Овощ', 'Фиолетовый', 25), | |
('Картофель', 'Овощ', 'Коричневый', 130), | |
('Томат', 'Овощ', 'Красный', 22), | |
('Огурец', 'Овощ', 'Зеленый', 15), | |
('Лук', 'Овощ', 'Белый', 40), | |
('Чеснок', 'Овощ', 'Белый', 149), | |
('Шпинат', 'Овощ', 'Зеленый', 23), | |
('Горох', 'Овощ', 'Зеленый', 81), | |
('Капуста', 'Овощ', 'Зеленый', 25), | |
('Сельдерей', 'Овощ', 'Зеленый', 16), | |
('Редис', 'Овощ', 'Красный', 16), | |
('Репа', 'Овощ', 'Фиолетовый', 28) | |
-- Фрукты | |
INSERT INTO Products (name, type, color, calories) | |
VALUES ('Яблоко', 'Фрукт', 'Красный', 52), | |
('Банан', 'Фрукт', 'Желтый', 96), | |
('Апельсин', 'Фрукт', 'Оранжевый', 43), | |
('Груша', 'Фрукт', 'Зеленый', 57), | |
('Виноград', 'Фрукт', 'Фиолетовый', 69), | |
('Ананас', 'Фрукт', 'Желтый', 50), | |
('Манго', 'Фрукт', 'Оранжевый', 60), | |
('Киви', 'Фрукт', 'Зеленый', 41), | |
('Персик', 'Фрукт', 'Оранжевый', 39), | |
('Арбуз', 'Фрукт', 'Зеленый', 30), | |
('Дыня', 'Фрукт', 'Желтый', 34), | |
('Клубника', 'Фрукт', 'Красный', 32), | |
('Малина', 'Фрукт', 'Красный', 52), | |
('Черника', 'Фрукт', 'Синий', 57), | |
('Вишня', 'Фрукт', 'Красный', 50) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Task 2 | |
Создайте приложение, которую позволит пользователю подключиться | |
и отключиться от базы данных «Овощи и фрукты». | |
В случае успешного подключения выводите | |
информационное сообщение. Если подключение было | |
неуспешным, сообщите об ошибке. Приложение может | |
быть консольным или с UI интерфейсом. | |
*/ | |
using System.Data.SqlClient; | |
class Program | |
{ | |
static void Main() | |
{ | |
string connectionString = "Data Source=LAPTOP-MCLUN3BN\\SQLSERVER;Initial Catalog=Grocery;Integrated Security=True"; | |
using (SqlConnection connection = new SqlConnection(connectionString)) | |
{ | |
try | |
{ | |
connection.Open(); | |
Console.WriteLine("Подключение к базе данных «Grocery» успешно открыто."); | |
} | |
catch (SqlException ex) | |
{ | |
Console.WriteLine("Ошибка при подключении к базе данных: " + ex.Message); | |
} | |
finally | |
{ | |
// Пытаемся закрыть подключение | |
try | |
{ | |
connection.Close(); | |
Console.WriteLine("Подключение к базе данных «Grocery» успешно закрыто."); | |
} | |
catch (SqlException ex) | |
{ | |
Console.WriteLine("Ошибка при закрытии подключения к базе данных: " + ex.Message); | |
} | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Task 3 | |
Добавьте к приложению из второго задания следующую функциональность: | |
■ Отображение всей информации из таблицы с овощами и фруктами; | |
■ Отображение всех названий овощей и фруктов; | |
■ Отображение всех цветов; | |
■ Показать максимальную калорийность; | |
■ Показать минимальную калорийность; | |
■ Показать среднюю калорийность. | |
*/ | |
using System.Data.SqlClient; | |
class Program | |
{ | |
static void Main() | |
{ | |
string connectionString = "Data Source=LAPTOP-MCLUN3BN\\SQLSERVER;Initial Catalog=Grocery;Integrated Security=True"; | |
using (SqlConnection connection = new SqlConnection(connectionString)) | |
{ | |
try | |
{ | |
connection.Open(); | |
Console.WriteLine("Подключение к базе данных «Grocery» успешно открыто.\n"); | |
// Отображение всей информации из таблицы с овощами и фруктами | |
SqlCommand command = new SqlCommand("SELECT * FROM Products", connection); | |
SqlDataReader reader = command.ExecuteReader(); | |
while (reader.Read()) | |
Console.WriteLine(string.Format( | |
"Название: {0,-10}\tТип: {1,-10}\tЦвет: {2,-10}\tКалорийность: {3,-10}", | |
reader["name"], reader["type"], reader["color"], reader["calories"]) | |
); | |
reader.Close(); | |
Console.WriteLine(); | |
// Отображение всех названий овощей и фруктов | |
command = new SqlCommand("SELECT Name FROM Products", connection); | |
reader = command.ExecuteReader(); | |
while (reader.Read()) | |
Console.WriteLine($"Название: {reader["name"]}"); | |
reader.Close(); | |
Console.WriteLine(); | |
// Отображение всех цветов | |
command = new SqlCommand("SELECT DISTINCT color FROM Products", connection); | |
reader = command.ExecuteReader(); | |
while (reader.Read()) | |
Console.WriteLine($"Цвет: {reader["color"]}"); | |
reader.Close(); | |
Console.WriteLine(); | |
// Показать максимальную калорийность | |
command = new SqlCommand("SELECT MAX(calories) FROM Products", connection); | |
Console.WriteLine($"Максимальная калорийность: {command.ExecuteScalar()}\n"); | |
// Показать минимальную калорийность | |
command = new SqlCommand("SELECT MIN(calories) FROM Products", connection); | |
Console.WriteLine($"Минимальная калорийность: {command.ExecuteScalar()}\n"); | |
// Показать среднюю калорийность | |
command = new SqlCommand("SELECT AVG(calories) FROM Products", connection); | |
Console.WriteLine($"Средняя калорийность: {command.ExecuteScalar()}\n"); | |
connection.Close(); | |
} | |
catch (SqlException ex) | |
{ | |
Console.WriteLine("Ошибка при подключении к базе данных: " + ex.Message); | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Task 4 | |
Добавьте к приложению из второго задания следующую функциональность: | |
■ Показать количество овощей; | |
■ Показать количество фруктов; | |
■ Показать количество овощей и фруктов заданного | |
цвета; | |
■ Показать количество овощей фруктов каждого цвета; | |
■ Показать овощи и фрукты с калорийностью ниже | |
указанной; | |
■ Показать овощи и фрукты с калорийностью выше | |
указанной; | |
■ Показать овощи и фрукты с калорийностью в указанном диапазоне; | |
■ Показать все овощи и фрукты, у которых цвет желтый | |
или красный | |
*/ | |
using System.Data.SqlClient; | |
class Program | |
{ | |
static void Main() | |
{ | |
string connectionString = "Data Source=LAPTOP-MCLUN3BN\\SQLSERVER;Initial Catalog=Grocery;Integrated Security=True"; | |
using (SqlConnection connection = new SqlConnection(connectionString)) | |
{ | |
try | |
{ | |
connection.Open(); | |
Console.WriteLine("Подключение к базе данных «Grocery» успешно открыто.\n"); | |
// Показать количество овощей | |
SqlCommand command = new SqlCommand("SELECT COUNT(*) FROM Products WHERE type = 'Овощ'", connection); | |
Console.WriteLine($"Количество овощей: {command.ExecuteScalar()} \n"); | |
// Показать количество фруктов | |
command = new SqlCommand("SELECT COUNT(*) FROM Products WHERE type = 'Фрукт'", connection); | |
Console.WriteLine($"Количество фруктов: {command.ExecuteScalar()} \n"); | |
// Показать количество овощей и фруктов заданного цвета | |
string color = "Красный"; | |
command = new SqlCommand($"SELECT COUNT(*) FROM Products WHERE color = '{color}'", connection); | |
Console.WriteLine($"Количество овощей и фруктов цвета {color}: {command.ExecuteScalar()}\n"); | |
// Показать количество овощей и фруктов каждого цвета | |
command = new SqlCommand("SELECT color, COUNT(*) FROM Products GROUP BY color", connection); | |
SqlDataReader reader = command.ExecuteReader(); | |
while (reader.Read()) | |
Console.WriteLine($"Цвет: {reader[0]}, Количество: {reader[1]}"); | |
reader.Close(); | |
Console.WriteLine(); | |
// Показать овощи и фрукты с калорийностью ниже указанной | |
int maxCalories = 50; | |
command = new SqlCommand($"SELECT * FROM Products WHERE calories < {maxCalories}", connection); | |
reader = command.ExecuteReader(); | |
while (reader.Read()) | |
Console.WriteLine(string.Format( | |
"Название: {0,-10}\tТип: {1,-10}\tЦвет: {2,-10}\tКалорийность: {3,-10}", | |
reader["name"], reader["type"], reader["color"], reader["calories"]) | |
); | |
reader.Close(); | |
Console.WriteLine(); | |
// Показать овощи и фрукты с калорийностью выше указанной | |
int minCalories = 100; | |
command = new SqlCommand($"SELECT * FROM Products WHERE calories > {minCalories}", connection); | |
reader = command.ExecuteReader(); | |
while (reader.Read()) | |
Console.WriteLine(string.Format( | |
"Название: {0,-10}\tТип: {1,-10}\tЦвет: {2,-10}\tКалорийность: {3,-10}", | |
reader["name"], reader["type"], reader["color"], reader["calories"]) | |
); | |
reader.Close(); | |
Console.WriteLine(); | |
// Показать овощи и фрукты с калорийностью в указанном диапазоне | |
int mnCalories = 50; | |
int mxCalories = 100; | |
command = new SqlCommand($"SELECT * FROM Products WHERE calories BETWEEN {mnCalories} AND {mxCalories}", connection); | |
reader = command.ExecuteReader(); | |
while (reader.Read()) | |
Console.WriteLine(string.Format( | |
"Название: {0,-10}\tТип: {1,-10}\tЦвет: {2,-10}\tКалорийность: {3,-10}", | |
reader["name"], reader["type"], reader["color"], reader["calories"]) | |
); | |
reader.Close(); | |
Console.WriteLine(); | |
// Показать все овощи и фрукты, у которых цвет желтый или красный | |
command = new SqlCommand("SELECT * FROM Products WHERE color IN ('Желтый', 'Красный')", connection); | |
reader = command.ExecuteReader(); | |
while (reader.Read()) | |
Console.WriteLine(string.Format( | |
"Название: {0,-10}\tТип: {1,-10}\tЦвет: {2,-10}\tКалорийность: {3,-10}", | |
reader["name"], reader["type"], reader["color"], reader["calories"]) | |
); | |
reader.Close(); | |
Console.WriteLine(); | |
} | |
catch (SqlException ex) | |
{ | |
Console.WriteLine("Ошибка при подключении к базе данных: " + ex.Message); | |
} | |
finally | |
{ | |
connection.Close(); | |
Console.WriteLine("Подключение к базе данных «Grocery» успешно закрыто."); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment