Skip to content

Latest commit

 

History

History
57 lines (47 loc) · 1.9 KB

sql_statements.md

File metadata and controls

57 lines (47 loc) · 1.9 KB

Useful MySQL Statements

/* select which DB to use */
USE employees;

SHOW tables;
UPDATE bday_emails 
SET notified=FALSE 
WHERE notified=TRUE;
SELECT first_name, last_name, date_of_birth 
FROM employees 
WHERE (first_name, last_name) 
    NOT IN (SELECT first_name, last_name FROM bday_emails);

SQL stmt to put new active employees into bday_emails table:

INSERT INTO bday_emails (first_name, last_name, date_of_birth) 
SELECT first_name, last_name, date_of_birth 
FROM employees 
WHERE (first_name, last_name) NOT IN (SELECT first_name, last_name FROM bday_emails);

Find which employees to notify about upcoming birthdays:

SELECT first_name, last_name, DATE_FORMAT(date_of_birth, '%m-%d') as DOB_no_year 
FROM bday_emails 
WHERE notified=FALSE 
AND (first_name, last_name) IN (SELECT first_name, last_name FROM employees WHERE DATE_FORMAT(date_of_birth, '%m-%d') >= DATE_FORMAT(NOW(), '%m-%d') 
AND DATE_FORMAT(date_of_birth, '%m-%d') <= DATE_FORMAT((NOW() + INTERVAL +$num_days DAY), '%m-%d') 
AND (start_date <= curdate() - interval (dayofmonth(curdate()) - 1) day - interval 6 month OR start_date IS NULL) 
ORDER BY DATE_FORMAT(date_of_birth, '%m-%d'));
SELECT b.first_name, b.last_name, b.phone_number, b.email, DATE_FORMAT(b.date_of_birth, '%m-%d') AS DOB from bday_emails AS a 
INNER JOIN employees AS b 
ON a.first_name=b.first_name AND a.last_name=b.last_name 
WHERE a.notified=FALSE 
AND DATE_FORMAT(b.date_of_birth, '%m-%d') >= DATE_FORMAT(NOW(), '%m-%d') 
AND DATE_FORMAT(b.date_of_birth, '%m-%d') <= DATE_FORMAT((NOW() + INTERVAL +$num_days DAY), '%m-%d') 
AND (b.start_date <= curdate() - interval (dayofmonth(curdate()) - 1) day - interval 6 month OR b.start_date IS NULL) 
ORDER BY DATE_FORMAT(b.date_of_birth, '%m-%d');
insert into users (userID, password_hash, display_name) VALUES(1, SHA2('THIS IS NOT REAL PASSPHRASE', 256), 'gabe');