Advertisement
JmihPodvalbniy

Untitled

May 1st, 2024
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.54 KB | Software | 0 0
  1. CREATE DATABASE PC_Company1;
  2. ------------------------------------------------
  3. USE PC_Company1;
  4.  
  5. CREATE TABLE product (
  6.     code INT PRIMARY KEY,
  7.     maker VARCHAR(10) NOT NULL,
  8.     model VARCHAR(50) NOT NULL,
  9.     TYPE VARCHAR(50) NOT NULL
  10. );
  11.  
  12. CREATE TABLE pc (
  13.     code INT IDENTITY(1,1) PRIMARY KEY REFERENCES product(code),
  14.     model VARCHAR(50) NOT NULL,
  15.     speed SMALLINT NOT NULL,
  16.     ram SMALLINT NOT NULL,
  17.     hd REAL NOT NULL,
  18.     cd VARCHAR(10) NOT NULL,
  19.     price MONEY NOT NULL
  20. );
  21.  
  22. CREATE TABLE laptop (
  23.     code INT IDENTITY(1,1) PRIMARY KEY REFERENCES product(code),
  24.     model VARCHAR(50) NOT NULL,
  25.     speed SMALLINT NOT NULL,
  26.     ram SMALLINT NOT NULL,
  27.     hd REAL NOT NULL,
  28.     screen TINYINT NOT NULL,
  29.     price MONEY NOT NULL
  30. );
  31.  
  32. CREATE TABLE printer (
  33.     code INT IDENTITY(1,1) PRIMARY KEY REFERENCES product(code),
  34.     model VARCHAR(50) NOT NULL,
  35.     color VARCHAR(1) NOT NULL,
  36.     TYPE VARCHAR(10) NOT NULL,
  37.     price MONEY NOT NULL
  38. );
  39. ------------------------------------------------
  40. USE PC_Company1;
  41.  
  42. INSERT INTO product (code, maker, model, TYPE) VALUES
  43. (1, 'A', '1232', 'PC'),
  44. (2, 'A', '1233', 'PC'),
  45. (3, 'B', '1121', 'Laptop'),
  46. (4, 'B', '1750', 'Laptop'),
  47. (5, 'C', '1288', 'Printer'),
  48. (6, 'D', '1433', 'Printer'),
  49. (7, 'A', '1977', 'PC'),
  50. (8, 'B', '2001', 'PC');
  51.  
  52. INSERT INTO pc (model, speed, ram, hd, cd, price) VALUES
  53. ('1232', 2, 128, 20, '12x', 400),
  54. ('1233', 2.5, 256, 20, '24x', 550),
  55. ('1977', 3, 512, 40, '12x', 580),
  56. ('2001', 2, 256, 30, '12x', 450);
  57.  
  58. INSERT INTO laptop (model, speed, ram, hd, screen, price) VALUES
  59. ('1121', 1.8, 128, 15, 14, 1200),
  60. ('1750', 2, 256, 20, 15, 1500);
  61.  
  62. INSERT INTO printer (model, color, TYPE, price) VALUES
  63. ('1288', 'y', 'Laser', 300),
  64. ('1433', 'n', 'Jet', 150);
  65. ------------------------------------------------
  66. USE PC_Company1;
  67.  
  68. --1) Найдите номер модели, скорость и размер жесткого диска для всех ПК стоимостью менее 500 долларов. Вывести: model, speed и hd
  69. SELECT model, speed, hd
  70. FROM pc
  71. WHERE price < 500;
  72.  
  73. --2) Найдите производителей принтеров. Вывести: maker.
  74. SELECT DISTINCT maker
  75. FROM product
  76. WHERE TYPE = 'Printer';
  77.  
  78. --3) Найдите номер модели, объем памяти и размеры экранов ноутбуков, цена которых превышает 1000 долларов.
  79. SELECT model, ram, screen
  80. FROM laptop
  81. WHERE price > 1000;
  82.  
  83. --4) Найдите номер модели, скорость и размер жесткого диска ПК, имеющих 12х или 24х CD и цену менее 600 долларов.
  84. SELECT model, speed, hd
  85. FROM pc
  86. WHERE cd IN ('12x', '24x') AND price < 600;
  87.  
  88. --5) Для каждого производителя, выпускающего ПК-блокноты c объёмом жесткого диска не менее 10 Гбайт, найти скорости таких ПК-блокнотов. Вывод: производитель, скорость.
  89. SELECT DISTINCT product.maker, laptop.speed
  90. FROM product
  91. INNER JOIN laptop ON product.code = laptop.code
  92. WHERE laptop.hd >= 10;
  93.  
  94. --6) Найдите номера моделей и цены всех имеющихся в продаже продуктов (любого типа) производителя B (латинская буква).
  95. SELECT product.model,
  96.        CASE product.TYPE
  97.            WHEN 'PC' THEN pc.price
  98.            WHEN 'Laptop' THEN laptop.price
  99.            WHEN 'Printer' THEN printer.price
  100.        END AS price
  101. FROM product
  102. LEFT JOIN pc ON product.code = pc.code
  103. LEFT JOIN laptop ON product.code = laptop.code
  104. LEFT JOIN printer ON product.code = printer.code
  105. WHERE product.maker = 'B';
  106.  
  107. --7) Найдите производителя, продающего ПК, но не ноутбуки.
  108. SELECT DISTINCT maker
  109. FROM product
  110. WHERE TYPE = 'PC'
  111. EXCEPT
  112. SELECT DISTINCT maker
  113. FROM product
  114. WHERE TYPE = 'Laptop';
  115.  
  116. --8) Найдите модели принтеров, имеющих самую высокую цену. Вывести: model, price
  117. SELECT model, price
  118. FROM printer
  119. WHERE price = (SELECT MAX(price) FROM printer);
  120.  
  121. --9) Найдите среднюю скорость ПК, выпущенных производителем A
  122. SELECT AVG(speed) AS AVG_speed
  123. FROM pc
  124. JOIN product ON pc.code = product.code
  125. WHERE maker = 'A';
  126.  
  127. --10) Найти тех производителей ПК, все модели ПК которых имеются в таблице PC
  128.  
  129.  
  130.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement