Skip to content

Commit 4e0fe88

Browse files
committed
add files
1 parent a4ca567 commit 4e0fe88

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
-- 1. Employees with Salary Above 35000
2+
3+
DELIMITER $$
4+
CREATE PROCEDURE usp_get_employees_salary_above_35000 ()
5+
BEGIN
6+
SELECT e.first_name,e.last_name
7+
FROM employees AS e
8+
WHERE salary > 35000
9+
ORDER BY e.first_name,e.last_name,e.employee_id;
10+
END $$
11+
12+
CALL usp_get_employees_salary_above_35000();
13+
14+
-- 2. Employees with Salary Above Number
15+
16+
DELIMITER $$
17+
CREATE PROCEDURE usp_get_employees_salary_above(min_salary DOUBLE)
18+
BEGIN
19+
SELECT e.first_name,e.last_name
20+
FROM employees AS e
21+
WHERE e.salary >= min_salary
22+
ORDER BY e.first_name,e.last_name,e.employee_id;
23+
END $$
24+
25+
CALL usp_get_employees_salary_above(48100);
26+
27+
-- 3. Town Names Starting With
28+
29+
DELIMITER $$
30+
CREATE PROCEDURE usp_get_towns_starting_with(str_start VARCHAR(10))
31+
BEGIN
32+
SELECT name AS town_name
33+
FROM towns
34+
WHERE name LIKE CONCAT(str_start,'%')
35+
ORDER BY town_name;
36+
END $$
37+
38+
CALL usp_get_towns_starting_with('b');
39+
40+
-- 4. Employees from Town
41+
42+
DELIMITER $$
43+
CREATE PROCEDURE usp_get_employees_from_town (town_names VARCHAR(45))
44+
BEGIN
45+
SELECT e.first_name,e.last_name
46+
FROM employees AS e
47+
JOIN addresses AS a ON a.address_id=e.address_id
48+
JOIN towns AS t ON t.town_id = a.town_id
49+
WHERE t.name = town_names
50+
ORDER BY e.first_name,e.last_name,e.employee_id;
51+
END $$
52+
53+
CALL usp_get_employees_from_town('Sofia');
54+
55+
-- 5. Salary Level Function
56+
57+
DELIMITER $$
58+
CREATE FUNCTION ufn_get_salary_level(input_salary DOUBLE)
59+
RETURNS VARCHAR(10)
60+
DETERMINISTIC
61+
BEGIN
62+
DECLARE result VARCHAR(10);
63+
RETURN CASE
64+
WHEN input_salary < 30000 THEN 'low'
65+
WHEN input_salary >= 30000 AND input_salary <= 50000 THEN 'average'
66+
WHEN input_salary > 50000 THEN 'high'
67+
END;
68+
END$$
69+
70+
SELECT ufn_get_salary_level(13500.00);
71+
72+
-- 6. Employees by Salary Level
73+
DELIMITER $$
74+
CREATE PROCEDURE usp_get_employees_by_salary_level(salary_level VARCHAR(10))
75+
BEGIN
76+
SELECT first_name,last_name FROM employees
77+
WHERE
78+
CASE
79+
WHEN salary < 30000 THEN 'Low'
80+
WHEN salary >= 30000 AND salary <= 50000 THEN 'Average'
81+
WHEN salary > 50000 THEN 'High'
82+
END = salary_level
83+
ORDER BY first_name,last_name DESC;
84+
END$$
85+
86+
CALL usp_get_employees_by_salary_level('high');
87+
88+
-- 7. Define Function
89+
90+
DELIMITER $$
91+
CREATE FUNCTION ufn_is_word_comprised(set_of_letters VARCHAR(50),word varchar(50))
92+
RETURNS BIT
93+
DETERMINISTIC
94+
BEGIN
95+
RETURN IF(LOWER(word) REGEXP CONCAT('^[', LOWER(set_of_letters), ']+$'), TRUE, FALSE);
96+
END $$
97+
98+
SELECT ufn_is_word_comprised('oistmiahf','Sofia');

0 commit comments

Comments
 (0)