Skip to content

Commit ff80877

Browse files
committed
essential mysql functions
1 parent f045b89 commit ff80877

File tree

1 file changed

+133
-0
lines changed

1 file changed

+133
-0
lines changed
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
/****************************************/
2+
/* Numeric Functions */
3+
/****************************************/
4+
5+
SELECT ROUND(7.58,1);
6+
7+
SELECT TRUNCATE(7.58374,3);
8+
9+
SELECT CEILING (7.58374);
10+
SELECT CEILING (7.1);
11+
12+
SELECT FLOOR(7.6);
13+
14+
SELECT ABS(-5.4);
15+
16+
SELECT RAND();
17+
18+
/****************************************/
19+
/* String Functions */
20+
/****************************************/
21+
22+
SELECT LENGTH('hello');
23+
24+
SELECT UPPER('hello');
25+
26+
SELECT lower('Hello');
27+
28+
SELECT LTRIM(' Hello');
29+
30+
SELECT RTRIM('Hello ');
31+
32+
SELECT TRIM(' I am so AWESOME! ');
33+
34+
SELECT LEFT('Kindergarten',4);
35+
36+
SELECT RIGHT('Kindergarten',6);
37+
38+
SELECT SUBSTRING('Kindergarten', 3, 5);
39+
40+
SELECT LOCATE('n', 'Kindergarten');
41+
42+
SELECT LOCATE('y', 'Kindergarten');
43+
SELECT LOCATE('garten', 'Kindergarten');
44+
45+
SELECT REPLACE('Kindergarten', 'garten', 'garden');
46+
47+
SELECT CONCAT('John', ' ' ,'Snow');
48+
49+
/****************************************/
50+
/* Date Functions */
51+
/****************************************/
52+
SELECT NOW(), CURDATE(), CURTIME(), YEAR(NOW()), MONTH(NOW()), DATE(NOW()),
53+
DAYNAME(NOW()), MONTHNAME(NOW());
54+
55+
SELECT EXTRACT(DAY FROM NOW()), EXTRACT(MONTH FROM NOW()), EXTRACT(YEAR FROM NOW());
56+
57+
USE mosh_sql_store;
58+
59+
SELECT *
60+
FROM orders
61+
WHERE YEAR(order_date) > YEAR(NOW());
62+
63+
/****************************************/
64+
/* Formatting Date Times */
65+
/****************************************/
66+
67+
SELECT DATE_FORMAT(NOW(), '%D %M %Y');
68+
69+
SELECT DATE_FORMAT(NOW(), '%d %m %y');
70+
71+
SELECT TIME_FORMAT(NOW(), '%H %m %p');
72+
73+
/****************************************/
74+
/* Calcualting Date Times */
75+
/****************************************/
76+
77+
-- add 1 day
78+
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
79+
80+
-- subtract 1 year
81+
SELECT DATE_ADD(NOW(), INTERVAL -1 YEAR);
82+
83+
SELECT DATEDIFF('2019-01-01', '2020-01-01');
84+
85+
-- number of seconds since Mid Night
86+
SELECT TIME_TO_SEC('09:00') - TIME_TO_SEC('09:02');
87+
88+
/****************************************/
89+
/* IFNULL AND COALESCE */
90+
/****************************************/
91+
92+
USE mosh_sql_store;
93+
94+
SELECT order_id, customer_id, order_date, status,
95+
IFNULL(shipped_date,'NOT ASSIGNED') AS shipped_date,
96+
COALESCE(shipper_id, comments, 'PENDING') AS shipper
97+
FROM orders;
98+
99+
/* customer name, phone*/
100+
SELECT CONCAT(first_name, ' ', last_name) AS customer_name,
101+
COALESCE(phone,'UNKNOWN') AS phone
102+
FROM customers;
103+
104+
105+
/****************************************/
106+
/* IF function */
107+
/****************************************/
108+
/*
109+
IF (expression, first, second)
110+
*/
111+
112+
SELECT order_id, order_date,
113+
IF(YEAR(order_date) >= YEAR(NOW()), 'Active', 'Archived') AS status
114+
FROM orders;
115+
116+
/* product and its ordered frequncy category */
117+
SELECT p.product_id, p.name, COUNT(p.product_id) AS times_of_orders,
118+
IF(COUNT(p.product_id) > 1, 'Many times', 'Once') AS frequency_category
119+
FROM products p
120+
JOIN order_items oi ON oi.product_id = p.product_id
121+
GROUP BY 1;
122+
123+
/****************************************/
124+
/* CASE function */
125+
/****************************************/
126+
127+
SELECT order_id, order_date,
128+
CASE
129+
WHEN YEAR(order_date) >= YEAR(NOW()) THEN 'Active'
130+
WHEN YEAR(order_date) = YEAR(DATE_ADD(NOW(), INTERVAL -1 YEAR)) THEN 'Last Year'
131+
ELSE 'Archived'
132+
END AS status
133+
FROM orders;

0 commit comments

Comments
 (0)