CS157a
Chris Pollett
Nov 27, 2023
CREATE TABLE DEMO_TABLE (a INTEGER); INSERT INTO DEMO_TABLE VALUES (1), (2), (3), (4); DELIMITER // CREATE PROCEDURE getAllDemos() BEGIN SELECT * FROM demo_table; END // DELIMITER ; CALL getAllDemos();
DROP PROCEDURE getAllDemos;
CREATE TABLE DEMO_TABLE (a INTEGER); INSERT INTO DEMO_TABLE VALUES (1), (2), (3), (4); DELIMITER // CREATE PROCEDURE sumGreater(IN min_value INT, OUT sum_values INT) BEGIN SELECT SUM(a) INTO sum_values FROM DEMO_TABLE WHERE a >= min_value; END // DELIMITER ; CALL sumGreater(2, @output); SELECT @output;
Which of the following is true?
CREATE TABLE DEMO_TABLE (a INTEGER); INSERT INTO DEMO_TABLE VALUES (1), (2), (3), (4); DELIMITER // CREATE PROCEDURE deleteButThree(IN start INT, IN end INT) BEGIN DECLARE i INT; SET i = start; label1: LOOP IF i <> 3 THEN DELETE FROM DEMO_TABLE WHERE a = i; END IF; SET i = i + 1; IF i < end THEN ITERATE label1; END IF; LEAVE label1; END LOOP label1; END // DELIMITER ; CALL deleteButThree(2, 5);
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE
REPEAT some_statements UNTIL condition END REPEAT; WHILE condition DO ... END WHILE;
CREATE TABLE DEMO_TABLE (a INTEGER); INSERT INTO DEMO_TABLE VALUES (1), (2), (3), (4); DELIMITER // CREATE PROCEDURE sumSquares(OUT sum_squares INT) BEGIN DECLARE done INT DEFAULT FALSE; DECLARE term INT DEFAULT 0; DECLARE demo_cursor CURSOR FOR SELECT a FROM DEMO_TABLE; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; SET sum_squares = 0; OPEN demo_cursor; label1: LOOP FETCH demo_cursor INTO term; IF done THEN LEAVE label1; END IF; SET sum_squares = sum_squares + term * term; END LOOP label1; END // DELIMITER ; CALL sumSquares(@out); SELECT @out;
import java.sql.CallableStatement; ... CallableStatement stmt = conn.prepareCall("{call deleteButThree(?, ?)}"); stmt.setInt(1, 2); stmt.setInt(2, 5); stmt.execute();
CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50) DETERMINISTIC RETURN CONCAT('Hello, ',s,'!'); SELECT hello('world');