Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 4.48 KB | None | 0 0
  1. create database school;
  2. use school;
  3. CREATE TABLE students
  4. (
  5. ID serial,
  6. Name varchar(20),
  7. Lastname varchar(20),
  8. score tinyint unsigned
  9. );
  10.  
  11. insert into students values
  12. (null,"John", "Cena", 32),
  13. (null,"Obi", "Kenobi", 99),
  14. (null,"Post", "Malone", 61),
  15. (null,"Tupac", "Shakur", 42),
  16. (null,"Vardas", "Pavarde", 25);
  17.  
  18.  
  19.  
  20. DELIMITER //
  21. CREATE PROCEDURE GetTable()
  22. BEGIN
  23. select name, lastname, score from students;
  24. END //
  25. DELIMITER ;
  26.  
  27.  
  28. delimiter //
  29. create procedure CreateTable()
  30. BEGIN
  31. CREATE TABLE IF NOT EXISTS students
  32. (
  33. ID serial,
  34. Name varchar(20),
  35. Lastname varchar(20),
  36. score tinyint unsigned
  37. );
  38. end //
  39. delimiter ;
  40.  
  41. DELIMITER //
  42. CREATE PROCEDURE MoreThan (IN num tinyint unsigned)
  43. BEGIN
  44.   SELECT Name, score FROM students WHERE score > num;
  45. END //
  46. DELIMITER ;
  47. CALL MoreThan(30);
  48.  
  49. DELIMITER //
  50. CREATE PROCEDURE MaxScore(OUT maxsc tinyint unsigned)
  51. BEGIN
  52. SELECT MAX(score) INTO maxsc FROM students;
  53. END //
  54. DELIMITER ;
  55.  
  56. CALL MaxScore(@maxsc);
  57. SELECT @maxsc;
  58.  
  59. SET @kint = 30;
  60. CALL MoreThan(@kint);
  61.  
  62.  
  63.  
  64. CREATE PROCEDURE MaxScore(INOUT nr tinyint unsigned)
  65.  
  66. (select)Isveda vardus kuriu score didesnis uz paduota kintamaji
  67. Priskiria kintamajo reiksme, kuri yra maziausias score lenteleje
  68.  
  69.  
  70. DELIMITER //
  71. CReate PROCEDURE MoreMin(INOUT nr tinyint unsigned)
  72. BEGIN
  73. select Name from students where score > nr;
  74. select MIN(Score) into nr from students;
  75. END //
  76. DELIMITER ;
  77. SET @kint = 30;
  78. CALL MoreMin(@kint);
  79. select @kint;
  80.  
  81.  
  82. DELIMITER //
  83. DROP PROCEDURE IF EXISTS TextWhile//
  84. CREATE PROCEDURE TextWhile()
  85. BEGIN
  86.  
  87. SET @x = 1;
  88. SET @str = '';
  89.  
  90. WHILE @x<=3 DO
  91. SET @str= CONCAT(@str,(SELECT name FROM STUDENTS WHERE ID = @x),',');
  92. SET @x= @x + 1;
  93. END WHILE;
  94.  
  95. SELECT @str;
  96. END//
  97. DELIMITER ;
  98.  
  99.  
  100.  
  101. SELECT IF (1>3,'true','false');
  102.  
  103.  
  104. Parasyti procedura kuri sukuria lentele Results ir i ja
  105. patalpina studentu vardus ir kuriu score yra didesnis uz
  106. paduota skaiciu, stulpelyje passed paraso Yes, jei ne - No
  107.  
  108.  
  109. DELIMITER //
  110. DROP PROCEDURE IF EXISTS PassedProc//
  111. CREATE PROCEDURE PassedProc (IN LimitNr tinyint unsigned)
  112. BEGIN
  113.  
  114. DROP TABLE IF EXISTS Results;
  115. CREATE TABLE RESULTS
  116. (
  117.     Name varchar(20),
  118.     passed varchar(3)
  119. );
  120. SET @x = 1;
  121. WHILE @x <= (select count(name)from students) DO
  122. INSERT INTO Results VALUES(null, (select name from students where id = @x),(select if(((select score from students where id = @x)>LimitNr),'Yes', 'No')));
  123. SET @x = @x + 1;
  124. END WHILE;
  125. END//
  126. DELIMITER ;
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174. CREATE DATABASE priestesta;
  175. USE priestesta;
  176. CREATE TABLE employee
  177. (
  178.     ID serial,
  179.     Name varchar(50) NOT NULL,
  180.     LastName varchar(50) NOT NULL,
  181.     Email varchar(150) UNIQUE NOT NULL,
  182.     Salary float(7,2) unsigned
  183. );
  184. INSERT INTO employee VALUES (null, 'Jonas', 'Kazlauskas','Jonukas@one.lt',4682.2),(null, 'Justas', 'Kaziukas','Justelio@gmail.com',7853.2), (null, 'Aloyzas', 'Kazlekas','Aliux@yahoo.com',3243.23);
  185. UPDATE employee set salary=200 where email='Aliux@yahoo.com';
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194. START TRANSACTION;
  195. insert into employee values(null,'Justas','Jonaitis','lelel@gmail.com', 8888);
  196.  
  197. CREATE USER 'user1'@'localhost' identified by 'user1';
  198.  
  199. GRANT SELECT, INSERT, UPDATE, DELETE ON priestesta.* to 'user1'@'localhost';
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208. create table stats
  209. (
  210.  ID serial,
  211.  action enum('insert','delete','update'),
  212.  curr_user varchar(50),
  213.  curr_id bigint unsigned,
  214.  mod_date timestamp
  215. );
  216.  
  217.  
  218. CREATE TRIGGER <trigger name> <actionas> <query type> on <table> for each row
  219. BEGIN
  220. END
  221.  
  222. <actionas> => before||after
  223. <query type> => insert||delete||update
  224.  
  225.  
  226. DELIMITER //
  227. CREATE TRIGGER InsterTrigger AFTER INSERT ON employee for each row
  228. BEGIN
  229.     INSERT INTO stats VALUES(null,1, user(), new.ID, current_timestamp);
  230. END //
  231. DELIMITER ;
  232.  
  233.  
  234. DELIMITER //
  235. CREATE TRIGGER DeleteTrigger AFTER DELETE ON employee for each row
  236. BEGIN
  237.     INSERT INTO stats VALUES(null,2, user(), old.ID, current_timestamp);
  238. END //
  239. DELIMITER ;
  240.  
  241.  
  242.  
  243. CREATE TABLE stats2
  244. (
  245.     ID SERIAL,
  246.     user_id bigint unsigned,
  247.     oldSalary float(7,2) unsigned,
  248.     newSalary float(7,2) unsigned,
  249.     mod_date timestamp
  250. );
  251.  
  252. DELIMITER $$
  253. CREATE TRIGGER UserSalaryTrigger BEFORE UPDATE ON employee for each row
  254. BEGIN
  255.     INSERT INTO stats2 VALUES(null, old.ID, old.salary, new.salary, current_timestamp);
  256. END$$
  257. DELIMITER ;
  258.  
  259. DELIMITER $$
  260. CREATE TRIGGER UserSalaryTrigger AFTER UPDATE ON employee for each row
  261. BEGIN
  262.     INSERT INTO stats2 VALUES(null, old.ID, old.salary, new.salary, current_timestamp);
  263. END$$
  264. DELIMITER ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement