77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								drop table if exists t1;
							 | 
						||
| 
								 | 
							
								create table t1  (
							 | 
						||
| 
								 | 
							
								id     INTEGER AUTO_INCREMENT PRIMARY KEY,
							 | 
						||
| 
								 | 
							
								emp    CHAR(10) NOT NULL,
							 | 
						||
| 
								 | 
							
								salary DECIMAL(6,2) NOT NULL,
							 | 
						||
| 
								 | 
							
								l INTEGER NOT NULL,
							 | 
						||
| 
								 | 
							
								r INTEGER NOT NULL);
							 | 
						||
| 
								 | 
							
								prepare st_ins from 'insert into t1 set emp = ?, salary = ?, l = ?, r = ?';
							 | 
						||
| 
								 | 
							
								set @arg_nam= 'Jerry';
							 | 
						||
| 
								 | 
							
								set @arg_sal= 1000;
							 | 
						||
| 
								 | 
							
								set @arg_l= 1;
							 | 
						||
| 
								 | 
							
								set @arg_r= 12;
							 | 
						||
| 
								 | 
							
								execute st_ins using @arg_nam, @arg_sal, @arg_l, @arg_r ;
							 | 
						||
| 
								 | 
							
								set @arg_nam= 'Bert';
							 | 
						||
| 
								 | 
							
								set @arg_sal=  900;
							 | 
						||
| 
								 | 
							
								set @arg_l= 2;
							 | 
						||
| 
								 | 
							
								set @arg_r=  3;
							 | 
						||
| 
								 | 
							
								execute st_ins using @arg_nam, @arg_sal, @arg_l, @arg_r ;
							 | 
						||
| 
								 | 
							
								set @arg_nam= 'Chuck';
							 | 
						||
| 
								 | 
							
								set @arg_sal=  900;
							 | 
						||
| 
								 | 
							
								set @arg_l= 4;
							 | 
						||
| 
								 | 
							
								set @arg_r= 11;
							 | 
						||
| 
								 | 
							
								execute st_ins using @arg_nam, @arg_sal, @arg_l, @arg_r ;
							 | 
						||
| 
								 | 
							
								set @arg_nam= 'Donna';
							 | 
						||
| 
								 | 
							
								set @arg_sal=  800;
							 | 
						||
| 
								 | 
							
								set @arg_l= 5;
							 | 
						||
| 
								 | 
							
								set @arg_r=  6;
							 | 
						||
| 
								 | 
							
								execute st_ins using @arg_nam, @arg_sal, @arg_l, @arg_r ;
							 | 
						||
| 
								 | 
							
								set @arg_nam= 'Eddie';
							 | 
						||
| 
								 | 
							
								set @arg_sal=  700;
							 | 
						||
| 
								 | 
							
								set @arg_l= 7;
							 | 
						||
| 
								 | 
							
								set @arg_r=  8;
							 | 
						||
| 
								 | 
							
								execute st_ins using @arg_nam, @arg_sal, @arg_l, @arg_r ;
							 | 
						||
| 
								 | 
							
								set @arg_nam= 'Fred';
							 | 
						||
| 
								 | 
							
								set @arg_sal=  600;
							 | 
						||
| 
								 | 
							
								set @arg_l= 9;
							 | 
						||
| 
								 | 
							
								set @arg_r= 10;
							 | 
						||
| 
								 | 
							
								execute st_ins using @arg_nam, @arg_sal, @arg_l, @arg_r ;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								id	emp	salary	l	r
							 | 
						||
| 
								 | 
							
								1	Jerry	1000.00	1	12
							 | 
						||
| 
								 | 
							
								2	Bert	900.00	2	3
							 | 
						||
| 
								 | 
							
								3	Chuck	900.00	4	11
							 | 
						||
| 
								 | 
							
								4	Donna	800.00	5	6
							 | 
						||
| 
								 | 
							
								5	Eddie	700.00	7	8
							 | 
						||
| 
								 | 
							
								6	Fred	600.00	9	10
							 | 
						||
| 
								 | 
							
								prepare st_raise_base from 'update t1 set salary = salary * ( 1 + ? ) where r - l = 1';
							 | 
						||
| 
								 | 
							
								prepare st_raise_mgr  from 'update t1 set salary = salary + ? where r - l > 1';
							 | 
						||
| 
								 | 
							
								set @arg_percent= .10;
							 | 
						||
| 
								 | 
							
								set @arg_amount= 100;
							 | 
						||
| 
								 | 
							
								execute st_raise_base using @arg_percent;
							 | 
						||
| 
								 | 
							
								execute st_raise_mgr  using @arg_amount;
							 | 
						||
| 
								 | 
							
								execute st_raise_base using @arg_percent;
							 | 
						||
| 
								 | 
							
								execute st_raise_mgr  using @arg_amount;
							 | 
						||
| 
								 | 
							
								execute st_raise_base using @arg_percent;
							 | 
						||
| 
								 | 
							
								execute st_raise_mgr  using @arg_amount;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								id	emp	salary	l	r
							 | 
						||
| 
								 | 
							
								1	Jerry	1300.00	1	12
							 | 
						||
| 
								 | 
							
								2	Bert	1197.90	2	3
							 | 
						||
| 
								 | 
							
								3	Chuck	1200.00	4	11
							 | 
						||
| 
								 | 
							
								4	Donna	1064.80	5	6
							 | 
						||
| 
								 | 
							
								5	Eddie	931.70	7	8
							 | 
						||
| 
								 | 
							
								6	Fred	798.60	9	10
							 | 
						||
| 
								 | 
							
								prepare st_round from 'update t1 set salary = salary + ? - ( salary MOD ? )';
							 | 
						||
| 
								 | 
							
								set @arg_round= 50;
							 | 
						||
| 
								 | 
							
								execute st_round using @arg_round, @arg_round;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								id	emp	salary	l	r
							 | 
						||
| 
								 | 
							
								1	Jerry	1350.00	1	12
							 | 
						||
| 
								 | 
							
								2	Bert	1200.00	2	3
							 | 
						||
| 
								 | 
							
								3	Chuck	1250.00	4	11
							 | 
						||
| 
								 | 
							
								4	Donna	1100.00	5	6
							 | 
						||
| 
								 | 
							
								5	Eddie	950.00	7	8
							 | 
						||
| 
								 | 
							
								6	Fred	800.00	9	10
							 | 
						||
| 
								 | 
							
								drop table t1;
							 |