Advertisement
Guest User

sql

a guest
Apr 17th, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.88 KB | None | 0 0
  1. DROP DATABASE IF EXISTS youtube_db;
  2. CREATE DATABASE youtube_db;
  3. USE youtube_db;
  4.  
  5. CREATE TABLE Channel (
  6.     id INTEGER AUTO_INCREMENT NOT NULL,
  7.     username VARCHAR(50) NOT NULL,
  8.     number_of_total_views INTEGER NOT NULL,
  9.  
  10.     PRIMARY KEY(id)
  11. );
  12.  
  13. CREATE TABLE User (
  14.     id INTEGER AUTO_INCREMENT NOT NULL,
  15.     name VARCHAR(100) NOT NULL,
  16.     user_id INTEGER,
  17.        
  18.     PRIMARY KEY(id),
  19.     FOREIGN KEY(user_id) REFERENCES Channel(id)
  20. );
  21.  
  22. CREATE TABLE Video (
  23.     id INTEGER AUTO_INCREMENT NOT NULL,
  24.     name VARCHAR(50) NOT NULL,
  25.     channel_id INTEGER DEFAULT 0,
  26.     views INTEGER DEFAULT 0,
  27.    
  28.     PRIMARY KEY(id)
  29. );
  30.  
  31. CREATE TABLE UserChannel (
  32.     id INTEGER AUTO_INCREMENT NOT NULL,
  33.    
  34.     user_id INTEGER NOT NULL,
  35.     channel_id INTEGER NOT NULL,
  36.    
  37.     PRIMARY KEY(id),
  38.     FOREIGN KEY(user_id) REFERENCES User(id),
  39.     FOREIGN KEY(channel_id) REFERENCES Channel(id)
  40. );
  41.  
  42. ///////////////////////////////////////////////////////
  43.  
  44. DROP DATABASE IF EXISTS stock_taking_db;
  45. CREATE DATABASE stock_taking_db;
  46. USE stock_taking_db;
  47.  
  48. CREATE TABLE People (
  49.     id INTEGER AUTO_INCREMENT NOT NULL,
  50.     name VARCHAR(50) NOT NULL,
  51.     worker_id INTEGER NOT NULL,
  52.  
  53.     PRIMARY KEY(id)
  54. );
  55.  
  56. CREATE TABLE Techs (
  57.     id INTEGER AUTO_INCREMENT NOT NULL,
  58.     brand VARCHAR(100) NOT NULL,
  59.     description VARCHAR(500),
  60.     p_id INTEGER,
  61.     date_taken DATE,
  62.    
  63.     PRIMARY KEY(id),
  64.     FOREIGN KEY(p_id) REFERENCES People(id)
  65. );
  66.  
  67. CREATE TABLE Categories (
  68.     id INTEGER AUTO_INCREMENT NOT NULL,
  69.     name VARCHAR(50) NOT NULL,
  70.     tech_count INTEGER,
  71.    
  72.     PRIMARY KEY(id)
  73. );
  74.  
  75. CREATE TABLE TechCategories (
  76.     id INTEGER AUTO_INCREMENT NOT NULL,
  77.    
  78.     tech_id INTEGER NOT NULL,
  79.     category_id INTEGER NOT NULL,
  80.    
  81.     PRIMARY KEY(id),
  82.     FOREIGN KEY(tech_id) REFERENCES Techs(id),
  83.     FOREIGN KEY(category_id) REFERENCES Categories(id)
  84. );
  85.  
  86. ///////////////////////////////////////////
  87.  
  88. CREATE TRIGGER increaseCountIn
  89. AFTER INSERT ON TechCategories
  90. FOR EACH ROW
  91.     UPDATE Categories SET tech_count = (tech_count + 1)
  92.     WHERE NEW.category_id = Categories.id;
  93.    
  94. CREATE TRIGGER decreaseCountIn
  95. AFTER UPDATE ON TechCategories
  96. FOR EACH ROW
  97.     UPDATE Categories SET tech_count = (tech_count - 1)
  98.     WHERE NEW.category_id = Categories.id;
  99.  
  100.  
  101.    
  102. INSERT INTO People(name, worker_id) VALUES ('Pesho Programista', 'pe60');
  103. INSERT INTO People(name, worker_id) VALUES ('Gosho Ivanov', 'go60');
  104. INSERT INTO People(name, worker_id) VALUES ('Tosho Todorov', 'to60');
  105.  
  106.  
  107. INSERT INTO Techs (brand, description, p_id, date_taken) VALUES ('DELL', 'computer', 1, now());
  108. INSERT INTO Techs (brand, description, p_id, date_taken) VALUES ('Samsung Galaxy', 'smartphone', 2, now());
  109. INSERT INTO Techs (brand, description) VALUES ('Nikon D7000', 'DSLR camera');
  110. INSERT INTO Techs (brand, description) VALUES ('Lenovo 310', 'laptop');
  111.  
  112. INSERT INTO Categories(id,name) VALUES (1,'electronics');
  113. INSERT INTO Categories(id,name) VALUES (2,'computers');
  114. INSERT INTO Categories(id,name) VALUES (3,'cameras');
  115. INSERT INTO Categories(id,name) VALUES (4,'clothes');
  116.  
  117. INSERT INTO TechCategories(tech_id, category_id) VALUES (1, 1);
  118. INSERT INTO TechCategories(tech_id, category_id) VALUES (1, 2);
  119. INSERT INTO TechCategories(tech_id, category_id) VALUES (2, 1);
  120. INSERT INTO TechCategories(tech_id, category_id) VALUES (2, 2);
  121. INSERT INTO TechCategories(tech_id, category_id) VALUES (3, 1);
  122. INSERT INTO TechCategories(tech_id, category_id) VALUES (3, 2);
  123. INSERT INTO TechCategories(tech_id, category_id) VALUES (4, 1);
  124. INSERT INTO TechCategories(tech_id, category_id) VALUES (4, 2);
  125.  
  126. /////////////////////////////////////////
  127.  
  128. SELECT * FROM Techs
  129. WHERE p_id IS NULL OR date_taken IS NULL;
  130.  
  131. SELECT * FROM Techs
  132. WHERE p_id = 1;
  133.  
  134. SELECT p.id, p.name, t.brand, t.description, t.date_taken FROM People as p
  135. INNER JOIN Techs as t ON p_id = p.id
  136. GROUP BY p.id, p.name, t.brand, t.description, t.date_taken;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement