SQL-complete-tutorial
60 строк · 1.1 Кб
1DROP PROCEDURE IF EXISTS get_clients_by_state;
2
3DELIMITER $$
4CREATE PROCEDURE get_clients_by_state
5(
6state CHAR(2)
7)
8BEGIN
9/* IF state IS NULL THEN
10SELECT * FROM clients;
11ELSE
12SELECT * FROM clients c
13WHERE c.state = state;
14-- SET state = 'CA';
15END IF; */
16-- cleaner code:
17SELECT * FROM clients c
18WHERE c.state = IFNULL(state, c.state);
19
20END $$
21DELIMITER ;
22
23-- Write a stored procedure to return invoices
24-- for a given client
25--
26-- get_invoices_by_client
27
28DROP PROCEDURE IF EXISTS get_invoices_by_client;
29
30DELIMITER $$
31CREATE PROCEDURE get_invoices_by_client
32(
33client_id INT
34)
35BEGIN
36SELECT * FROM invoices i
37WHERE i.client_id = client_id;
38END $$
39DELIMITER ;
40
41-- Write a stored procedure called get_payments
42-- with two parameters
43--
44-- client_id => INT
45-- payment_method_id => TINYINT
46
47DROP PROCEDURE IF EXISTS get_payments;
48
49DELIMITER $$
50CREATE PROCEDURE get_payments
51(
52client_id INT,
53payment_method_id TINYINT
54)
55BEGIN
56SELECT * FROM payments p
57WHERE p.client_id = IFNULL(client_id, p.client_id) AND
58p.payment_method = IFNULL(payment_method_id, p.payment_method);
59END $$
60DELIMITER ;
61