MySQL《函数》

drop database if exists StudentManage;
create database StudentManage;

use StudentManage;

create table Student
(Sno int primary key,
Sname nchar(10) ,
Ssex nchar(2),
Sage int,
Sdept nvarchar(30)
)charset utf8;

create table Course
(Cno int primary key,
Cname nvarchar(30),
Cpno int,
Ccredit int
)charset utf8;

create table SC
(Sno int,
Cno int,
Grade int,
primary key(Sno,Cno)
)charset utf8;

insert into Student
values(201215121,'李勇','男',20,'CS'),
(201215122,'刘晨','女',19,'CS'),
(201215123,'王敏','女',18,'MA'),
(201215124,'张立','男',19,'IS');


insert into Course
values(1,'数据库',5,4),(2,'数学',NULL,2),
(3,'信息系统',1,4),(4,'操作系统',6,3),
(5,'数据结构',7,4),(6,'数据处理',NULL,2),
(7,'PASCAL',6,4);

insert into SC 
values(201215121,1,92),(201215121,2,85),
(201215121,3,88),(201215122,2,90),(201215122,3,80);

(1)求不大于-1.23的整数。①语句;②结果。

第一空:
SELECT FLOOR(-1.23);

第二空:
-2

(2)求字符‘d’的ascii码值。①语句;②结果。

第一空:
SELECT ASCII(‘d’);

第二空:
100

(3)拼接“My”,“S”,“QL”三个字符串。①语句;②结果。

第一空:
SELECT CONCAT(‘My’,‘S’,‘QL’);

第二空:
MySQL

(4)找出字符串“Text”的长度。①语句;②结果。
第一空:
SELECT CHAR_LENGTH(‘Text’);

第二空:
4

(5)找到字符串’bar’在字符串 'foobarbar’中第一次出现的位置。①语句;②结果。
第一空:
SELECT INSTR(‘foobarbar’,‘bar’); SELECT LOCATE(‘bar’,‘foobarbar’); SELECT POSITION(‘bar’ IN ‘foobarbar’);

第二空:
4

(6)找到字符串’foobarbar’最右边的五个字符。①语句;②结果。
正确答案:

第一空:
SELECT RIGHT(‘foobarbar’,5); SELECT SUBSTR(‘foobarbar’,-5);

第二空:
arbar

(7)用 ‘Ww’替换字符串’www.mysql.com’,中的’w’。①语句;②结果。

第一空:
SELECT REPLACE(‘www.mysql.com’,‘w’,‘Ww’);

第二空:
WwWwWw.mysql.com

(8)获取系统当前日期是今年的第几天。(与NOW()功能相同的函数使用NOW())①语句。
正确答案:

第一空:
SELECT DAYOFYEAR( NOW());

(9)获取100天后的日期。(与NOW()功能相同的函数使用NOW())①语句。

select curdate()+interval 100 day;

(10)获取数据库的版本号。①语句。

select version();

(11)对字符串“abcd”进行md5加密。①语句;②结果。
正确答案:

第一空:
SELECT md5(‘abcd’);

第二空:
e2fc714c4727ee9395f324cd2e7f331f

定义一个函数 myselect,返回一个整数666;并调用该函数。①定义;②调用。

第一空:
create function myselect()
return int
BEGIN
return 666;
end

第二空:
select myselect();

定义一个函数 myselect2,该函数功能是查询到“刘晨”的学号;并调用该函数。①定义;②调用。

第一空:
create function myselect2() returns int
begin
return(select sno from student where sname=‘刘晨’);
end

第二空:
select myselect2();

定义一个函数 myselect3,该函数功能是根据学生的姓名查询到学生的学号(参数名用 name )。

CREATE FUNCTION myselect3 (name VARCHAR(30)) RETURNS INT
BEGIN
RETURN (SELECT sno FROM student WHERE sname = name)
END;

调用函数 myselect3,查询“李勇”的学号。 ①调用命令;②结果。

第一空:
SELECT myselect3(‘李勇’);

第二空:
201215121

定义一个根据学生姓名查询该生选修课程门数的函数 stu_count。(参数名用 name )

CREATE FUNCTION stu_count (name VARCHAR(30) charset utf8) RETURNS INT
BEGIN
RETURN ( SELECT COUNT(*) FROM student s
JOIN SC ON s.sno = sc.sno
WHERE s.sname = name )
END;

调用函数stu_count,分别查询“李勇”选修的课程门数。①调用命令;②结果。
第一空:
SELECT stu_count(‘李勇’);

第二空:
3

定义一个根据系名和课程名,查询该系学生在该门课程上的平均分的函数 sdept_avggrade。

CREATE FUNCTION sdept_avggrade (p_sdept VARCHAR(30) charset utf8,p_cname VARCHAR(30) charset utf8) RETURNS DECIMAL(6,2)
BEGIN
RETURN ( SELECT AVG(SC.grade) FROM student s
JOIN sc ON s.sno = sc.sno
JOIN course c ON sc.cno = c.cno
WHERE s.sdept = p_sdept
AND c.cname = p_cname )
END;

调用函数 sdept_avggrade,查询“CS”系,“数学”课程的平均成绩。①调用命令;②结果。
第一空:
SELECT sdept_avggrade(‘CS’,‘数学’);

第二空:
87.5

使用sql语句来删除 sdept_avggrade 函数。

DROP FUNCTION IF EXISTS sdept_avggrade;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值