当前位置:网站首页>数据库一些基本操作(提供了原数据库信息)
数据库一些基本操作(提供了原数据库信息)
2022-06-24 13:02:00 【下坠丷】
用到的数据库创建文件
创建方法:cmd窗口打开mysql之后source:sql文件路径创建数据库
create database if not exists db1 default charset utf8;
USE db1;
-- 部门表
CREATE TABLE DEPT(
DEPTNO INT PRIMARY KEY,
DNAME VARCHAR(14), -- 部门名称
LOC VARCHAR(13)-- 部门地址
)CHARSET=UTF8,ENGINE=INNODB;
INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');
-- 员工表
CREATE TABLE EMP(
EMPNO INT PRIMARY KEY, -- 员工编号
ENAME VARCHAR(10), -- 员工姓名
JOB VARCHAR(9), -- 员工工作
MGR INT, -- 员工直属领导编号
HIREDATE DATE, -- 入职时间
SAL DOUBLE, -- 工资
COMM DOUBLE, -- 奖金
DEPTNO INT -- 所在部门
); -- 关联dept表
INSERT INTO EMP VALUES(7369,'SMITH','CLERK',7566,"1980-12-17",800,NULL,20);
INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30);
INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30);
INSERT INTO EMP VALUES(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20);
INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30);
INSERT INTO EMP VALUES(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30);
INSERT INTO EMP VALUES(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10);
INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566,'1987-07-03',3000,2000,20);
INSERT INTO EMP VALUES(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);
INSERT INTO EMP VALUES(7844,'TURNERS','SALESMAN',7698,'1981-09-08',1500,50,30);
INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7566,'1987-07-13',1100,NULL,20);
INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698,'1981-12-03',1250,NULL,30);
INSERT INTO EMP VALUES(7902,'FORD','CLERK',7566,'1981-12-03',3000,NULL,20);
INSERT INTO EMP VALUES(7934,'MILLER','CLERK',7782,'1981-01-23',1300,NULL,10);
-- 工资等级表
CREATE TABLE SALGRADE(
GRADE INT,-- 等级
LOSAL DOUBLE, -- 最低工资
HISAL DOUBLE
); -- 最高工资
INSERT INTO SALGRADE VALUES (1,500,1000);
INSERT INTO SALGRADE VALUES (2,1001,1500);
INSERT INTO SALGRADE VALUES (3,1501,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
所练习的全部查询语句
-- 查找部门中30员工的详细信息
SELECT*
FROM emp
WHERE DEPTNO=30
-- 找出从事职员工作的员工的编号,姓名,部门号
SELECT EMPNO 编号,ENAME 姓名,DEPTNO 部门号
FROM emp
WHERE JOB='CLERK'
-- 检索出奖金多于基本工资的员工信息
SELECT*
FROM emp
WHERE COMM>SAL
-- 检索奖金多于基本工资百分之60的员工信息
SELECT *
FROM emp
WHERE COMM>SAL*0.6;
-- 找出姓名中包含A的员工信息
-- %通配符,表示0~n个任意字符
SELECT *
FROM emp
WHERE ENAME like '%A%';
-- 找出姓名以a,b,s开头的员工信息
-- 通配符^表示从开头计算
-- []通配符表示取[]内任意字符
SELECT*
FROM emp
WHERE ENAME REGEXP '^[abs]';
-- 找出名字长度为7个字符的员工信息
-- LENGTH(str)函数获取字符串长度
SELECT *
FROM emp
WHERE LENGTH(ENAME)=7;
-- 名字中不包含R字符的员工信息
SELECT*
FROM emp
WHERE ENAME NOT LIKE '%R%';
-- 返回员工的详细信息并按姓名升序排序
-- 关键字ORDER BY,其中ASC升序,DESC降序
SELECT *
FROM emp
ORDER BY ENAME ASC;
-- 返回员工的信息并按姓名降序,工资升序排列
-- 先使用的排序约束条件放在前面
SELECT *
FROM emp
ORDER BY ENAME DESC,SAL+COMM ASC;
-- 计算员工的日薪(按30天)
SELECT SAL/30 日薪
FROM emp;
-- 找出获得奖金的员工的工作
SELECT JOB
FROM emp
WHERE COMM IS NOT NULL
GROUP BY JOB;
-- 找出奖金少于100或者没有获得奖金的员工的信息。
-- NULL不可用<判断,应用IS NULL
SELECT *
FROM emp
WHERE COMM<100 or COMM is NULL;
-- 找出10部门的经理、20部门的职员 的员工信息。
SELECT*
FROM emp
WHERE DEPTNO=10 AND JOB='MANAGER' OR DEPTNO=20 AND JOB='CLERK';
-- 找出10部门的经理、20部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息。
SELECT*
FROM emp
WHERE DEPTNO=10 AND JOB='MANAGER' OR DEPTNO=20 AND JOB='CLERK' OR SAL>2000;
-- 返回部门号及其本部门的最低工资。
SELECT DEPTNO as 部门,MIN(SAL) as 最低工资
FROM emp
GROUP BY DEPTNO;
-- 查询员工姓名和年薪,并且按年薪降序排序
SELECT ENAME 员工姓名,MGR 年薪
FROM emp
ORDER BY MGR DESC
-- 返回员工工作及其从事此工作的最低工资。
SELECT MIN(SAL) 最低工资,JOB
FROM emp
GROUP BY JOB;
-- 查找和SCOTT从事相同工作的员工信息
SELECT*
FROM emp
WHERE JOB=(
SELECT JOB
FROM emp
WHERE ENAME='SCOTT'
);
-- 工资水平多于JAMES的员工信息
SELECT *
FROM emp
WHERE SAL>(
SELECT SAL
FROM emp
WHERE ENAME='JAMES'
);
-- 返回工资大于平均工资的员工信息
SELECT*
FROM emp
WHERE SAL>(
SELECT AVG(SAL)
FROM emp
);
-- 返回销售部所有员工的姓名
SELECT ENAME
FROM emp
WHERE DEPTNO=(
SELECT DEPTNO
FROM dept
WHERE DNAME='SALES'
);
-- 返回工资高于30部门所有员工工资水平的员工信息。
SELECT*
FROM emp
WHERE SAL>(
SELECT AVG(SAL)
FROM emp
WHERE DEPTNO=30
);
-- 返回拥有员工的部门名、部门号。
-- 显示内连接
SELECT dept.DNAME 部门名,emp.DEPTNO
FROM emp
INNER JOIN dept on emp.DEPTNO=dept.DEPTNO;
-- 隐式内连接
SELECT dept.DNAME,emp.DEPTNO
FROM emp,dept
WHERE emp.DEPTNO=dept.DEPTNO;
-- 返回员工的姓名,所在部门和所在部门名称
SELECT emp.ENAME,dept.DEPTNO,dept.DNAME
FROM emp,dept
WHERE emp.DEPTNO=dept.DEPTNO;
-- 返回从事职员工作的姓名和所在的部门名称
SELECT ENAME,dept.DNAME
FROM emp,dept
WHERE emp.DEPTNO=dept.DEPTNO and emp.JOB='CLERK'
-- 返回部门号,部门名,部门所在位置及其每个部门的员工总数
SELECT d1.DEPTNO,d1.DNAME,d1.LOC,e.部门员工总数
FROM dept d1,(
SELECT DEPTNO,count(*) 部门员工总数
FROM emp
GROUP BY DEPTNO
)e
WHERE d1.DEPTNO=e.DEPTNO;
-- 返回员工职员或者销售员和所属经理的姓名
SELECT e1.ENAME 员工,e2.`经理` 所属经理
FROM emp e1,(
SELECT DEPTNO,ENAME 经理
FROM emp
WHERE JOB='MANAGER'
)e2
WHERE e1.DEPTNO=e2.DEPTNO AND e1.JOB!='MANAGER';
-- 返回员工的入职日期早于其经理入职日期的员工及经理姓名
SELECT e1.ENAME 员工,e2.ENAME 经理
FROM emp e1,emp e2
WHERE e1.DEPTNO=e2.DEPTNO AND e2.JOB='MANAGER' and e1.HIREDATE<e2.HIREDATE;
-- 返回最高工资和最低工资的职员信息
SELECT e1.EMPNO,e1.ENAME,e1.JOB,e1.MGR,e1.HIREDATE,e1.SAL,e1.COMM,e1.DEPTNO
FROM emp e1,(
SELECT MAX(SAL) 最高工资,MIN(SAL) 最低工资
FROM emp
)e2
WHERE e1.SAL=e2.`最低工资` OR e1.SAL=e2.`最高工资`;
-- 返回工资处于第四级别的员工的姓名和工资
SELECT ENAME,SAL
FROM salgrade s1,emp e1
WHERE e1.SAL>s1.LOSAL and e1.SAL<s1.HISAL and s1.GRADE=4;
-- 场景:查询平均工资高于2000置为名称和平均工资
SELECT JOB 职位名称,AVG(SAL) 平均工资
FROM emp
GROUP BY 职位名称
HAVING 平均工资>2000
/** from之后的子查询通常是一张多行多列的为表 多行多列的子查询通常放在from之后where之前 伪表必须定义别名,否则无法执行查询 工作中通常不需要写having,因为它内存消耗很大,而是使用子查询, 将having后面的条件放在夫查询的from后面 父查询SELECT后面的列查询实际式查询了子查询的列别名 即通过FRom后面的语句生成一张临时表,然后在这个临时的表中查数据 **/
SELECT 职位名称,平均工资
FROM(
SELECT JOB 职位名称,AVG(SAL) 平均工资
FROM emp
GROUP BY 职位名称
)e
WHERE 平均工资>2000;
-- 查找部门编号,部门名字,部门地址,部门人数,部门平均工资
SELECT d.DEPTNO 部门编号,d.DNAME 部门名字,d.LOC 部门地址,e.部门人数,e.`平均工资`
FROM dept d,(
SELECT DEPTNO,count(*) 部门人数,AVG(SAL) 平均工资
FROM emp
GROUP BY DEPTNO
)e
WHERE d.DEPTNO=e.DEPTNO;
-- 查询所有在销售部工作的 员工标号,姓名,基本工资,奖金,职位,入职日期 部门最高和最低工资
SELECT e1.empno,e1.ename,e1.sal,e1.comm,e1.job,e1.HIREDATE,e2.`部门最低工资`,e2.`部门最高工资`
FROM emp e1,(
SELECT DEPTNO,max(SAL) 部门最高工资,min(SAL) 部门最低工资
FROM emp
GROUP BY DEPTNO
)e2
WHERE e1.DEPTNO=e2.DEPTNO and e1.DEPTNO=(
SELECT DEPTNO
FROM dept
WHERE dname='SALES'
)
边栏推荐
- 2022煤矿瓦斯抽采操作证考试题及模拟考试
- PM也要学会每天反省
- Halcon 绘制区域 到图片中
- Jerry added an input capture channel [chapter]
- Jerry's infrared filtering [chapter]
- 一键生成大学、专业甚至录取概率,AI填报志愿卡这么神奇?
- 根据前序&中序遍历生成二叉树[左子树|根|右子树的划分/生成/拼接问题]
- MySQL复合索引探究
- 2022年质量员-设备方向-岗位技能(质量员)复训题库及在线模拟考试
- Rasa 3. X learning series - it is a great honor to be a source code contributor of Rasa contributors, and to build and share the rasa community with rasa source code contributors all over the world!
猜你喜欢

SAP Marketing Cloud 功能概述(三)

**Puzzling little problem in unity - light and sky box

快手实时数仓保障体系研发实践

从谭浩强《C程序设计》上摘录的ASCII码表(常用字符与ASCII代码对照表)

Development of B2B transaction collaborative management platform for kitchen and bathroom electrical appliance industry and optimization of enterprise inventory structure

npm包【详解】(内含npm包的开发、发布、安装、更新、搜索、卸载、查看、版本号更新规则、package.json详解等)

卷积核、特征图可视化

谷歌WayMo提出R4D: 采用参考目标做远程距离估计

21set classic case

MySQL日志管理、备份与恢复
随机推荐
取消冒泡
Operation of simulated test question bank and simulated test platform for safety production management personnel of fireworks and firecrackers production units in 2022
2022 coal mine gas drainage operation certificate examination questions and simulation examination
如何在物联网低代码平台中进行任务管理?
Jericho may have some chips with fast music playing speed [chapter]
Antd checkbox, limit the selected quantity
P2pdb white paper
Kunpeng arm server compilation and installation paddlepaddle
kotlin 共享可变状态和并发性
Home office should be more efficient - automated office perfectly improves fishing time | community essay solicitation
智慧园区SaaS管理系统解决方案:赋能园区实现信息化、数字化管理
The real project managers are all closed-loop masters!
Rasa 3.x 学习系列-非常荣幸成为 Rasa contributors 源码贡献者,和全世界的Rasa源码贡献者共建共享Rasa社区!
Jerry added an input capture channel [chapter]
Halcon 绘制区域 到图片中
Research on MySQL composite index
conda和pip命令
从谭浩强《C程序设计》上摘录的ASCII码表(常用字符与ASCII代码对照表)
Dragon lizard developer said: first time you got an electric shock, so you are such a dragon lizard community| Issue 8
详解kubernetes备份恢复利器 Velero | 深入了解Carina系列第三期