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;