MySQL聚合函式,多表題庫,帶分析思路

2021-08-27 04:17:53 字數 3735 閱讀 5507

1.列表內容– 部門表

create table dept (

id int primary key primary key, – 部門id

dname varchar(50), – 部門名稱

loc varchar(50) – 部門所在地

);– 新增4個部門

insert into dept(id,dname,loc) values

(10,』教研部』,』北京』),

(20,』學工部』,』上海』),

(30,』銷售部』,』廣州』),

(40,』財務部』,』深圳』);

– 職務表,職務名稱,職務描述

create table job (

id int primary key,

jname varchar(20),

description varchar(50)

);– 新增4個職務

insert into job (id, jname, description) values

(1, 『董事長』, 『管理整個公司,接單』),

(2, 『經理』, 『管理部門員工』),

(3, 『銷售員』, 『向客人推銷產品』),

(4, 『文員』, 『使用辦公軟體』);

– 員工表

create table emp (

id int primary key, – 員工id

ename varchar(50), – 員工姓名

job_id int, – 職務id

mgr int , – 上級領導

joindate date, – 入職日期

salary decimal(7,2), – 工資

bonus decimal(7,2), – 獎金

dept_id int, – 所在部門編號

constraint emp_jobid_ref_job_id_fk foreign key (job_id) references job (id),

constraint emp_deptid_ref_dept_id_fk foreign key (dept_id) references dept (id)

);– 新增員工

insert into emp(id,ename,job_id,mgr,joindate,salary,bonus,dept_id) values

(1001,』孫悟空』,4,1004,』2000-12-17』,』8000.00』,null,20),

(1002,』盧俊義』,3,1006,』2001-02-20』,』16000.00』,』3000.00』,30),

(1003,』林沖』,3,1006,』2001-02-22』,』12500.00』,』5000.00』,30),

(1004,』唐僧』,2,1009,』2001-04-02』,』29750.00』,null,20),

(1005,』李逵』,4,1006,』2001-09-28』,』12500.00』,』14000.00』,30),

(1006,』宋江』,2,1009,』2001-05-01』,』28500.00』,null,30),

(1007,』劉備』,2,1009,』2001-09-01』,』24500.00』,null,10),

(1008,』豬八戒』,4,1004,』2007-04-19』,』30000.00』,null,20),

(1009,』羅貫中』,1,null,』2001-11-17』,』50000.00』,null,10),

(1010,』吳用』,3,1006,』2001-09-08』,』15000.00』,』0.00』,30),

(1011,』沙僧』,4,1004,』2007-05-23』,』11000.00』,null,20),

(1012,』李逵』,4,1006,』2001-12-03』,』9500.00』,null,30),

(1013,』小白龍』,4,1004,』2001-12-03』,』30000.00』,null,20),

(1014,』關羽』,4,1007,』2002-01-23』,』13000.00』,null,10);

– 工資等級表

create table salarygrade (

grade int primary key, – 級別

losalary int, – 最低工資

hisalary int – 最高工資

);– 新增5個工資等級

insert into salarygrade(grade,losalary,hisalary) values

(1,7000,12000),

(2,12010,14000),

(3,14010,20000),

(4,20010,30000),

(5,30010,99990);

– 需求:

– 1.查詢所有員工資訊。查詢員工編號,員工姓名,工資,職務名稱,職務描述

/* 分析:

1.員工編號,員工姓名,工資,需要查詢emp表 職務名稱,職務描述 需要查詢job表

2.查詢條件 emp.job_id = job.id

*/select emp.id,emp.ename,emp.salary,job.jname,job.description

from emp,job

where emp.job_id=job.id

– 2.查詢員工編號,員工姓名,工資,職務名稱,職務描述,部門名稱,部門位置

/* 分析:

1. 員工編號,員工姓名,工資 emp 職務名稱,職務描述 job 部門名稱,部門位置 dept

2. 條件: emp.job_id = job.id and emp.dept_id = dept.id

*/ select emp.ename,emp.salary,job.jname,job.description,dept.dname,dept.loc

from emp,job,dept

where emp.job_id=job.idand emp.dept_id=dept.id;

– 3.查詢員工姓名,工資,工資等級

/* 分析:

1.員工姓名,工資 emp 工資等級 salarygrade

2.條件 emp.salary >= salarygrade.losalary and emp.salary <= salarygrade.hisalary

emp.salary between salarygrade.losalary and salarygrade.hisalary

*/ select emp.ename,emp.salary,t1.grade

from emp,salarygrade t1

where emp.salary>t1.losalary

and emp.salary

MySQL常用聚合函式

官方文件 aggregate group by functions name description g return the erage value of the argument bit and return bitwise and bit or return bitwise or bit xo...

多表關聯以及mysql函式混用

查出平均支付金額大於0.5元的使用者的姓名和使用者id t user info使用者表 字段 id,nickname t pay 支付表,字段 userid,cent amount付款金額 分析思路 1.首先 乙個使用者存在多筆訂單,且需要根據這個使用者id進行分組,並取其平均值 然後做平均支付金額...

Mysql裡不能使用聚合函式

採取的第一種方式 記錄一下關於mysql的乙個報錯問題解決方案 in aggregated query without group by,expression 1 of select list contains nonaggregated column yunva changke.u.user id...