国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

變量、流程控制、游標(biāo)-練習(xí)題

這篇具有很好參考價(jià)值的文章主要介紹了變量、流程控制、游標(biāo)-練習(xí)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

變量

0.準(zhǔn)備工作
CREATE DATABASE test16_var_cur;
use test16_var_cur;
CREATE TABLE employees
AS
SELECT * FROM atguigudb.`employees`;
CREATE TABLE departments
AS
SELECT * FROM atguigudb.`departments`;

無參有返回
1. 創(chuàng)建函數(shù)get_count(),返回公司的員工個(gè)數(shù)
DELIMITER //
CREATE FUNCTION get_count() RETURNS INT
BEGIN
DECLARE c INT DEFAULT 0;#定義局部變量
SELECT COUNT(*) INTO c#賦值
FROM employees;
RETURN c;
END //
DELIMITER ;
#調(diào)用
SELECT get_count();

有參有返回
2. 創(chuàng)建函數(shù)ename_salary(),根據(jù)員工姓名,返回它的工資
DELIMITER //
CREATE FUNCTION ename_salary(emp_name VARCHAR(15))
RETURNS DOUBLE
BEGIN
SET @sal=0;#定義用戶變量
SELECT salary INTO @sal #賦值
FROM employees
WHERE last_name = emp_name;
RETURN @sal;
END //
DELIMITER ;
#調(diào)用
SELECT ename_salary('Abel');

#3. 創(chuàng)建函數(shù)dept_sal() ,根據(jù)部門名,返回該部門的平均工資
DELIMITER //
CREATE FUNCTION dept_sal(dept_name VARCHAR(15))
RETURNS DOUBLE
BEGIN
DECLARE avg_sal DOUBLE ;
SELECT AVG(salary) INTO avg_sal
FROM employees e
JOIN departments d ON e.department_id = d.department_id
WHERE d.department_name=dept_name;
RETURN avg_sal;
END //
DELIMITER ;
#調(diào)用
SELECT dept_sal('Marketing');

4. 創(chuàng)建函數(shù)add_float(),實(shí)現(xiàn)傳入兩個(gè)float,返回二者之和
DELIMITER //
CREATE FUNCTION add_float(value1 FLOAT,value2 FLOAT)
RETURNS FLOAT
BEGIN
DECLARE SUM FLOAT;
SET SUM=value1+value2;
RETURN SUM;
END //
DELIMITER ;
#調(diào)用
SET @v1 := 12.2;
SET @v2 = 2.3;
SELECT add_float(@v1,@v2);

流程控制

題目

  1. 創(chuàng)建函數(shù)test_if_case(),實(shí)現(xiàn)傳入成績,如果成績>90,返回A,如果成績>80,返回B,如果成績>60,返回
    C,否則返回D
    #要求:分別使用if結(jié)構(gòu)和case結(jié)構(gòu)實(shí)現(xiàn)
  2. 創(chuàng)建存儲(chǔ)過程test_if_pro(),傳入工資值,如果工資值<3000,則刪除工資為此值的員工,如果3000 <= 工
    資值 <= 5000,則修改此工資值的員工薪資漲1000,否則漲工資500
  3. 創(chuàng)建存儲(chǔ)過程insert_data(),傳入?yún)?shù)為 IN 的 INT 類型變量 insert_count,實(shí)現(xiàn)向admin表中批量插
    入insert_count條記錄
準(zhǔn)備工作
CREATE TABLE admin(
id INT PRIMARY KEY AUTO_INCREMENT,
user_name VARCHAR(25) NOT NULL,
user_pwd VARCHAR(35) NOT NULL
);
SELECT * FROM admin;

1. 創(chuàng)建函數(shù)test_if_case(),實(shí)現(xiàn)傳入成績,如果成績>90,返回A,如果成績>80,返回B,如果成績>60,返回
C,否則返回D
要求:分別使用if結(jié)構(gòu)和case結(jié)構(gòu)實(shí)現(xiàn)
#方式1:
DELIMITER //
CREATE FUNCTION test_if_case1(score DOUBLE)
RETURNS CHAR
BEGIN
DECLARE ch CHAR;
IF score>90
THEN SET ch='A';
ELSEIF score>80
THEN SET ch='B';
ELSEIF score>60
THEN SET ch='C';
ELSE SET ch='D';
END IF;
RETURN ch;
END //
DELIMITER ;
#調(diào)用
SELECT test_if_case1(87);
#方式2:
DELIMITER //
CREATE FUNCTION test_if_case2(score DOUBLE)
RETURNS CHAR
BEGIN
DECLARE ch CHAR;
CASE
WHEN score>90 THEN SET ch='A';
WHEN score>80 THEN SET ch='B';
WHEN score>60 THEN SET ch='C';
ELSE SET ch='D';
END CASE;
RETURN ch;
END //
DELIMITER ;
#調(diào)用
SELECT test_if_case2(67);

2. 創(chuàng)建存儲(chǔ)過程test_if_pro(),傳入工資值,如果工資值<3000,則刪除工資為此值的員工,如果3000 <= 工
資值 <= 5000,則修改此工資值的員工薪資漲1000,否則漲工資500
DELIMITER //
CREATE PROCEDURE test_if_pro(IN sal DOUBLE)
BEGIN
IF sal<3000
THEN DELETE FROM employees WHERE salary = sal;
ELSEIF sal <= 5000
THEN UPDATE employees SET salary = salary+1000 WHERE salary = sal;
ELSE
UPDATE employees SET salary = salary+500 WHERE salary = sal;
END IF;
END //
DELIMITER ;
SELECT * FROM employees;
#調(diào)用
CALL test_if_pro(3100);

3. 創(chuàng)建存儲(chǔ)過程insert_data(),傳入?yún)?shù)為 ININT 類型變量 insert_count,實(shí)現(xiàn)向admin表中批量插
入insert_count條記錄
DELIMITER //
CREATE PROCEDURE insert_data(IN insert_count INT)
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= insert_count DO
INSERT INTO admin(user_name,user_pwd) VALUES(CONCAT('Rose-',i),ROUND(RAND() *
100000));
SET i=i+1;
END WHILE;
END //
DELIMITER ;
#調(diào)用
CALL insert_data(100);

游標(biāo)的使用

創(chuàng)建存儲(chǔ)過程update_salary(),參數(shù)1為 IN 的INT型變量dept_id,表示部門id;參數(shù)2為 IN的INT型變量
change_sal_count,表示要調(diào)整薪資的員工個(gè)數(shù)。查詢指定id部門的員工信息,按照salary升序排列,根
據(jù)hire_date的情況,調(diào)整前change_sal_count個(gè)員工的薪資,詳情如下。文章來源地址http://www.zghlxwxcb.cn/news/detail-803034.html

hire_date salary
hire_date < 1995 salary = salary*1.2
hire_date >=1995 and hire_date <= 1998 salary =salary*1.15
hire_date > 1998 and hire_date <= 2001 salary = salary *1.10
hire_date > 2001 salary = salary * 1.05
DELIMITER //
CREATE PROCEDURE update_salary(IN dept_id INT,IN change_sal_count INT)
BEGIN
#聲明變量
DECLARE int_count INT DEFAULT 0;
DECLARE salary_rate DOUBLE DEFAULT 0.0;
DECLARE emp_id INT;
DECLARE emp_hire_date DATE;
#聲明游標(biāo)
DECLARE emp_cursor CURSOR FOR SELECT employee_id,hire_date FROM employees
WHERE department_id = dept_id ORDER BY salary ;
#打開游標(biāo)
OPEN emp_cursor;
WHILE int_count < change_sal_count DO
#使用游標(biāo)
FETCH emp_cursor INTO emp_id,emp_hire_date;
IF(YEAR(emp_hire_date) < 1995)
THEN SET salary_rate = 1.2;
ELSEIF(YEAR(emp_hire_date) <= 1998)
THEN SET salary_rate = 1.15;
ELSEIF(YEAR(emp_hire_date) <= 2001)
THEN SET salary_rate = 1.10;
ELSE SET salary_rate = 1.05;
END IF;
#更新工資
UPDATE employees SET salary = salary * salary_rate
WHERE employee_id = emp_id;
#迭代條件
SET int_count = int_count + 1;
END WHILE;
#關(guān)閉游標(biāo)
CLOSE emp_cursor;
END //
DELIMITER ;
# 調(diào)用
CALL update_salary(50,2);

到了這里,關(guān)于變量、流程控制、游標(biāo)-練習(xí)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第十六章:變量、流程控制與游標(biāo)

    ? 在 MySQL 數(shù)據(jù)庫的存儲(chǔ)過程和函數(shù)中,可以使用變量來存儲(chǔ)查詢或計(jì)算的中間結(jié)果數(shù)據(jù),或輸出最終的結(jié)果數(shù)據(jù)。變量分為 系統(tǒng)變量 和 用戶自定義變量 。 系統(tǒng)變量 ? 變量由系統(tǒng)定義,不是用戶定義,輸入服務(wù)器層面。啟動(dòng) MySQL 服務(wù),生成 MySQL 服務(wù)實(shí)例期間, MySQL 將為

    2024年02月08日
    瀏覽(39)
  • 數(shù)據(jù)庫多表查詢練習(xí)題

    數(shù)據(jù)庫多表查詢練習(xí)題

    二、多表查詢 1. 創(chuàng)建 student 和 score 表 CREATE TABLE student ( id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR ( 20 ) NOT NULL , sex VARCHAR ( 4 ) , birth YEAR , department VARCHAR ( 20 ) , address VARCHAR ( 50 ) ); 創(chuàng)建 score 表。 SQL 代碼如下: CREATE TABLE score ( id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT , stu_

    2024年01月17日
    瀏覽(36)
  • 第16章_變量、流程控制與游標(biāo)

    第16章_變量、流程控制與游標(biāo)

    講師:尚硅谷-宋紅康(江湖人稱:康師傅) 官網(wǎng):http://www.atguigu.com 在MySQL數(shù)據(jù)庫的存儲(chǔ)過程和函數(shù)中,可以使用變量來存儲(chǔ)查詢或計(jì)算的中間結(jié)果數(shù)據(jù),或者輸出最終的結(jié)果數(shù)據(jù)。 在 MySQL 數(shù)據(jù)庫中,變量分為 系統(tǒng)變量 以及 用戶自定義變量 。 1.1 系統(tǒng)變量 1.1.1 系統(tǒng)變量分

    2024年02月06日
    瀏覽(15)
  • Python基礎(chǔ)練習(xí)題--第三章 控制結(jié)構(gòu)

    Python基礎(chǔ)練習(xí)題--第三章 控制結(jié)構(gòu)

    目錄 1025:【例3.1】購買筆記本 1026:【例3.2】判斷奇偶 1027:【例3.3】區(qū)間測(cè)速 1028:【例3.4】飛船速度 1029:練3.1最大優(yōu)惠價(jià) 1030:練3.2判斷閏年 1031:練3.3最適宜運(yùn)動(dòng)心率2 1032:【例3.5】計(jì)程票 1033:【例3.6】BMI健康信息 1034:練3.4 ?區(qū)間測(cè)速2 1035:練3.5 ?購買筆記本2 【題

    2024年02月07日
    瀏覽(41)
  • Java入門篇 之 邏輯控制(練習(xí)題篇)

    Java入門篇 之 邏輯控制(練習(xí)題篇)

    博主碎碎念: 練習(xí)題是需要大家自己打的請(qǐng)?jiān)谧约簢L試后再看答案哦; 個(gè)人認(rèn)為,只要自己努力在將來的某一天一定會(huì)看到回報(bào),在看這篇博客的你,不就是在努力嗎,所以啊,不要放棄,路上必定坎坷,但是成功后放眼望去,這將是青春很濃重的一筆 今日份勵(lì)志文案 :若結(jié)

    2024年02月06日
    瀏覽(28)
  • MySQL綜合練習(xí)題

    MySQL綜合練習(xí)題

    CREATE TABLE dept ( ?? ?deptno INT(2) NOT NULL COMMENT \\\'部門編號(hào)\\\', ?? ?dname VARCHAR (15) COMMENT \\\'部門名稱\\\', ?? ?loc VARCHAR (20) COMMENT \\\'地理位置\\\'? ); -- 添加主鍵 ALTER TABLE dept ADD PRIMARY KEY (deptno); -- 添加數(shù)據(jù) INSERT INTO dept (deptno,dname,loc)VALUES (10,\\\'財(cái)務(wù)部\\\',\\\'高新四路\\\'); INSERT INTO dept (deptno,dname,loc

    2024年01月22日
    瀏覽(30)
  • MySQL練習(xí)題(6)

    MySQL練習(xí)題(6)

    1、使用mysqldump命令備份數(shù)據(jù)庫中的所有表 ? 2、備份booksDB數(shù)據(jù)庫中的books表 3、使用mysqldump備份booksDB和test數(shù)據(jù)庫 4、使用mysqldump備份服務(wù)器中的所有數(shù)據(jù)庫 5、使用mysql命令還原第二題導(dǎo)出的book表 6、進(jìn)入數(shù)據(jù)庫使用source命令還原第二題導(dǎo)出的book表 1、建立一個(gè)utf8編碼的數(shù)據(jù)

    2024年02月16日
    瀏覽(22)
  • MySQL45道練習(xí)題

    MySQL45道練習(xí)題

    作業(yè)需要數(shù)據(jù)表SQL語句已給 ?1. 查詢\\\" 01 \\\"課程比\\\" 02 \\\"課程成績高的學(xué)生的信息及課程分?jǐn)?shù) ?1.1 查詢同時(shí)存在\\\" 01 \\\"課程和\\\" 02 \\\"課程的情況 1.2 查詢存在\\\" 01 \\\"課程但可能不存在\\\" 02 \\\"課程的情況(不存在時(shí)顯示為 null ) 1.3 查詢不存在\\\" 01 \\\"課程但存在\\\" 02 \\\"課程的情況 2.查詢平均成績大于

    2024年01月25日
    瀏覽(27)
  • 數(shù)據(jù)庫系統(tǒng)概述——第一章 緒論(知識(shí)點(diǎn)復(fù)習(xí)+練習(xí)題)

    數(shù)據(jù)庫系統(tǒng)概述——第一章 緒論(知識(shí)點(diǎn)復(fù)習(xí)+練習(xí)題)

    ? 博主: 命運(yùn)之光 ?? 專欄: 離散數(shù)學(xué)考前復(fù)習(xí)(知識(shí)點(diǎn)+題) ?? 專欄: 概率論期末速成(一套卷) ?? 專欄: 數(shù)字電路考前復(fù)習(xí) ?? 專欄: 數(shù)據(jù)庫系統(tǒng)概述 ? 博主的其他文章: 點(diǎn)擊進(jìn)入博主的主頁????? 前言: 身為大學(xué)生考前復(fù)習(xí)一定十分痛苦,你有沒有過以

    2024年02月09日
    瀏覽(25)
  • 數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程(014)—— 關(guān)系數(shù)據(jù)庫練習(xí)題(一)

    數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程(014)—— 關(guān)系數(shù)據(jù)庫練習(xí)題(一)

    1、試述關(guān)系模型的三要素和關(guān)系操作語言的特點(diǎn)。 答案: 關(guān)系模型的三要素為數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和完整性約束。在關(guān)系模型中,無論是實(shí)體集還是實(shí)體集之間的聯(lián)系都是由關(guān)系表示的。 關(guān)系操作語言的特點(diǎn):(1)關(guān)系操作的方式是一次一集合方式。(2)關(guān)系操作語言是

    2024年02月02日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包