0
点赞
收藏
分享

微信扫一扫

数据库模拟测试

不会弹吉他的二郎腿 2022-04-17 阅读 42
数据库
1.

【MySQL】SQL存储过程:查询订单

#创建存储过程:total_order(IN orderid INT , OUT totals NUMERIC(9,2), OUT cid INT)

要求:根据输入的订单编号(order_id),返回订单总金额(total_money),顾客编号(customer_id)。

订单表:orders如下:

 

2.

【MySQL】创建成绩表插入触发器

#创建触发器,插入学生成绩时,如果成绩不在0-100之间,设置成绩为0。

1、student(学生表):

SNO学号CHAR(7)

SNAME姓名CHAR(10)

SSEX性别CHAR(2)

SAGE年龄SMALLINT

SDEPT所在系 VARCHAR(20)

2、course(课程表)

CNO课程号CHAR(10)  

CNAME课程名VARCHAR(20)

CCREDIT学分SMALLINT

SEMSTER学期SMALLINT

PERIOD学时SMALLINT

3、sc(选课表)

SNO 学号CHAR(7)

CNO  课程号CHAR(10)

GRADE  成绩 SMALLINT

[注意:SQL表名请用小写]

3.

【MySQL】查找描述信息中包括robot的电影对应的分类名称以及电影数目

film表

字段 说明 
film_id 电影id 
title 电影名称 
description 电影描述信息

CREATE TABLE IF NOT EXISTS film ( 

film_id smallint(5)  NOT NULL DEFAULT '0', 

title varchar(255) NOT NULL, 

description text, 

PRIMARY KEY (film_id));

category表

字段 说明 
category_id 电影分类id 
name 电影分类名称 
last_update 电影分类最后更新时间

CREATE TABLE category  ( 

category_id  tinyint(3)  NOT NULL , 

name  varchar(25) NOT NULL, `last_update` timestamp, 

PRIMARY KEY ( category_id ));

film_category表

字段 说明 
film_id 电影id 
category_id 电影分类id 
last_update 电影id和分类id对应关系的最后更新时间

CREATE TABLE film_category  ( 

film_id  smallint(5)  NOT NULL, 

category_id  tinyint(3)  NOT NULL, `last_update` timestamp);

查找描述信息中包括robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部

4.

【MySQL】统计各个部门对应员工涨幅的次数总和

统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no、部门名称dept_name以及次数sum
CREATE TABLE `departments` (
`dept_no` char(4) NOT NULL,
`dept_name` varchar(40) NOT NULL,
PRIMARY KEY (`dept_no`));
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,

PRIMARY KEY (`emp_no`,`from_date`));

输入描述:

输出描述:

dept_nodept_namesum
d001Marketing24
d002Finance14
d003Human Resources13
d004Production24
d005Development25
d006Quality Management25

5.

【MySQL】查找各个部门当前领导当前薪水详情以及其对应部门编号dept_no

题目描述:

查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
CREATE TABLE `dept_manager` (
`dept_no` char(4) NOT NULL,
`emp_no` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

输入描述:

输出描述:

emp_nosalaryfrom_dateto_datedept_no
10002725272001-08-029999-01-01d001
10004740572001-11-279999-01-01d004
10005946922001-09-099999-01-01d003
10006433112001-08-029999-01-01d002
10010944092001-11-239999-01-01d006

6.

【MYSQL】2. 查找员工信息 II

题目描述:

查找入职员工时间排名倒数第三的员工编码

CREATE TABLE employees (
	emp_no int NOT NULL,
	birth_date date NOT NULL,
	first_name varchar(14) NOT NULL,
	last_name varchar(16) NOT NULL,
	gender char(1) NOT NULL,
	hire_date date NOT NULL,
	PRIMARY KEY (emp_no)
)

输入描述:

输出描述:

emp_nobirth_datefirst_namelast_namegenderhire_date

10005

1955-01-21KyoichiMaliniakM1989-09-12
10.00

举报

相关推荐

0 条评论