目录

Group 1: 用命令“Select”查询相关数据:

Group 2:请使用你的账户创建两个表,包括属性、数据类型、主键和外键。

Group 3: 完成以下操作:


Group 1: 用命令“Select”查询相关数据:


  • 检索名字没有字母’R’的员工姓名;

select ename from emp where ename not like '%R%';

  • 检索在任何位置有字母“A”的员工姓名;

select ename from emp where ename  like '%A%';

  • 检索所有员工姓名的前三个字母;

select left(ename,3) from emp ;

或者是select substring(ename,1,3) from emp;

  • 检索工作是salesman的员工姓名;

select ename from emp where job=’salesman’ ;

  • 检索最低工资在1500元的工作岗位;

select job from emp group by job having min(sal)=1500;

  • 查询部门2所有的经理、部门3所有clerks以及所有其他工资超过2000元的员工姓名;

select ename from emp where (deptno=2 and job='manager') or (deptno=3 and job='CLERK') or (sal>2000 and deptno=3);

  • 检索员工津贴comm为null或comm小于300的员工姓名和津贴值;

select ename,comm from emp where comm<300 or comm is null;

  • 检索所有员工的姓名、职位和工资,按职位降序排列;

select ename,job,sal from emp order by job desc;

  • 检索所有员工的年收入,按升序显示;

select ename,sal*12 as income_year from emp order by sal;

  • 检索与SCOTT的工作岗位相同的所有员工的姓名;

select ename from emp where job=(select job from emp where ename='scott');

  • 检索所有职员的姓名和所在部门的名称;

select ename,dname from dept,emp where dept.deptno=emp.deptno;

  • 检索部门是“Research”或工作是“Manager”的所有员工姓名;

select ename from emp,dept where dept.deptno=emp.deptno and (job='Manager' or dname='Research');

或者是SELECT ename FROM emp left outer join dept on emp.deptno=dept.deptno where job='Manager' OR dname='Research'

  • 通过子查询检索与Smith所在部门相同的所有员工的姓名;

select ename from emp where deptno=(select deptno from emp where ename='Smith');

  • 检索所有工资高于Smith工资的员工姓名和所在部门;

mysql> select ename,deptno from emp where sal>(select sal from emp where ename='Smith');

  • 检索所有工资高于整个公司平均工资的员工的姓名和工资;

select ename,sal from emp where sal>(select avg(sal) from emp);

  • 检索所有员工加入公司的天数;

select ename,timestampdiff(day,hiredate,now()) worked_days from emp;

  • 检索所有员工的姓名、所在部门名称和年薪;

select ename,dname,sal*12 as income_year from emp,dept where dept.deptno=emp.deptno;

  • 查询与3号部门某个员工工资相同的员工姓名和工资;

select ename,sal from emp where deptno=3 and sal=(select sal from emp where ename='Wang');

  • 检索每个部门的名称和人数。

select dname,count(ename) from emp,dept where dept.deptno=emp.deptno group by dname;

  • 检索每一种工作的最低工资和工作。

select min(sal) as '最低工资',job from emp group by job;

  • 查询各个部门经理职位的员工最低工资。

select min(sal),dname from emp,dept where dept.deptno=emp.deptno and job='manager' group by emp.deptno;

  • 检索那些员工的姓名和工资,他们的工资高于3号部门员工的最高工资。(>any或max)

select ename,sal from emp where sal>(select max(sal) from emp where deptno=3);

  • 查询各部门员工人数、平均工资、平均参加工作的天数;

select dname,count(ename) humanNum,avg(sal),avg(timestampdiff(day,hiredate,now())) as avgdays from emp,dept where emp.deptno=dept.deptno group by emp.deptno;

  • 检索所有被雇佣日期是某个月的倒数第三天的员工名字;

select ename from emp WHERE day(last_day(hiredate))-2=day(hiredate) ;

注:last_day(hiredate)返回的是一个年月日,用day提取它的日数再减去2(倒数第3天),再和hiredate的日数比较即可

  • 检索至少有两个人的部门名称和人数;

select dname, count(emp.deptno)from emp,dept where dept.deptno=emp.deptno group by emp.deptno having count(*) >=2;

  • 检索所有部门名称和所有员工,包括那些没有任何员工的部门。

select dname,ename from dept left outer join emp on dept.deptno=emp.deptno;

  • 检索所有员工及其相关领导的姓名。

select e.ename employeeName,m.ename managerName from emp e,emp m where e.Mgr=m.empno;

  • 查询聘用日期早于他们的领导的雇员姓名。

select e.ename from emp e,emp m where e.Mgr=m.empno and ( timestampdiff(day,e.hiredate,now()) > timestampdiff(day,m.hiredate,now()) );


Group 2:请使用你的账户创建两个表,包括属性、数据类型、主键和外键。


ddept (deptno, dname, loc)

deptno:integer;dname: varchar (20); loc: varchar (30);

primary key:deptno;

输入的代码如下:

create table ddept(deptno integer,dname varchar(20),loc varchar(30),primary key(deptno));

eemp (empno, ename,job,hiredate,salary,comm,deptno)

empno: integer;ename: varchar(20);job:varchar(20),hiredate:datetime, salary:double; comm:double;deptno: integer;

Primary key:empno;forign keys:deptno reference ddept(deptno),mgr reference EEmp(empno)。

输入的代码如下:

create table eemp(empno integer,ename varchar(20),mgr int,job varchar(20),
hiredate datetime,salary double,comm double,deptno integer,primary key(empno),
foreign key(deptno) references ddept(deptno),foreign key(mgr) references eemp(empno));

Group 3: 完成以下操作:


  • 通过alter table添加一个check约束(comm在1和3000之间);
alter table eemp add constraint constraint001 check(comm between 1 and 3000 );

注意:constraint001是约束条件的标识名,也可以不写(此时约束名由系统分配)

  • 向表eemp中插入至少5条员工记录;
insert into eemp values(1,'Smith',null,'Manager','2020-05-21 00:00:00',8000.8,1500,1);insert into eemp values(2,'John',null,'Manager','2020-05-22 00:00:00',5236.8,900,1);insert into eemp values(3,'Jane',2,'Salesman','2020-05-23 00:00:00',6666.6,600,2);insert into eemp values(4,'Mary',1,'Coder','2020-05-24 00:00:00',5000,200,2);insert into eemp values(5,'Luke',null,'Manager','2020-05-25 00:00:00',7000.7,500,3);
  • 从eemp中删除名为“SMITH”的记录;
delete from eemp where ename='SMITH';
  • 创建部门研究信息视图,包括empno、ename、salary和comm。
create view emp_info as (select empno,ename,salary,comm from eemp);
  • 将所有员工的工资提高20%。
update eemp set salary=salary*1.2;

基于Mysql 的SQL应用---2021(ZSD版)相关推荐

  1. Mysql的基本操作和用户权限----2021(ZSD版)

    Group 1: 安装Mysql for window or for linux (1)从Mysql网站下载软件; http://downloads.mysql.com/archives/instal ...

  2. 【MySQL】基于MySQL的SQL优化(二)——对count()、max()的优化

    *本文章使用数据均来自MySQL样本数据库Sakila,参考:https://blog.csdn.net/tanglei6636/article/details/93042010 max(): 通过一 ...

  3. 【MySQL】基于MySQL的SQL核心语法实战演练(二)

    文章目录 说明 必知必会 全表查询 全表结构查询 ALTER TABLE 语句 AUTO INCREMENT字段 视图相关 NULL相关 表的NULL预处理 插入NULL数据 使用IS NULL筛选N ...

  4. 【MySQL】基于MySQL的SQL增删改查实战演练

    文章目录 说明 登录 查所有的库 删库 建库 进入test数据库 查库中所有的表 库中建表 全表查询 表中插入一行 更改表中一条记录的信息 查询结果排序 查询结果只返回部分属性 使用where查询符合 ...

  5. 【MySQL】基于MySQL的SQL核心语法实战演练(三)

    文章目录 说明 必知必会 熟悉数据表 EXISTS 运算符 Aggregate Functions AVG() COUNT() FIRST() LAST() MAX() MIN() SUM() 创建新 ...

  6. 【MySQL】基于MySQL的SQL核心语法实战演练(一)

    文章目录 说明 必知必会 建表 多行插入 LIMIT语句 创建新表 LIKE操作符 IN操作符 BETWEEN操作符 AS操作符 INSERT INTO SELECT语句 JOIN语句 INNER J ...

  7. mysql数据生产数据分析_基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程...

    基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程 课程目录 (1)SQL与数Ju分析;目录中文件数:23个 (1) 开课-课时3SQL与数Ju库的价值.flv (2) ...

  8. SQL注入-基于MySQL的注入提权(十七)

    实验目的(我的2003是32位的懒得搞了,大家参照一下吧) 普及结合dll文件对Windows系统进行启动项提权.MOF和UDF提权的基本思路,以及提权的主要方法.PS:面试时不要说打靶场什么东西,就 ...

  9. 常用SQL语句 - 基于MySQL数据库

    常用SQL语句 - 基于MySQL数据库 基础 连接数据库 mysql -h10.20.66.32 -uroot -p123456 -h后面是mysqlServer所在地址,-u后面是用户名,-p后面 ...

最新文章

  1. 设计模式之单例模式(Singleton)摘录
  2. 核磁共振影像数据处理-1(上)-个人简介和系列内容介绍、Li‘s have a solution and plan.
  3. 第二章 在HTML中使用JavaScript
  4. Electron中常用api事件-app常用事件和webContents常用事件
  5. 配置Windows Server2008故障转移集群
  6. 设计模式学习笔记——享元(Flyweight)模式
  7. 安卓手机端口号怎么查看_微信小程序怎么查看手机便签待办事项?
  8. OPNET网络仿真分析-1.1.2、OPNET简介
  9. Android7.0以上增加(/system/lib/libtest.so)系统库文件
  10. Flex 布局学习笔记
  11. [CEOI2008]order
  12. iPhone配置实用工具介绍
  13. slk文件转换器安卓版_【更新】手机QQ、微信语音读取转换工具【sik\amr格式转mp3】...
  14. gpu内存大小 android,Android性能测试(内存、cpu、fps、流量、GPU、电量)——adb篇...
  15. 三星s8文档有html,别找了 你想知道的三星S8一切都在这里
  16. 2022-03-25 redis组建哨兵及主从高可用的failover
  17. MST++: Multi-stage Spectral-wiseTransformer for Efficient Spectral Reconstruction
  18. 魔法(csdn编程挑战)
  19. 在中国,混哪个“圈子”最有“钱”途?
  20. UI设计教程分享:PS故障风海报制作教程

热门文章

  1. 详解B2B、B2C、C2B、C2C、O2O的含义及区别
  2. 黑苹果alc269声卡仿冒id_10.10中我的ALC269VC依旧无声?学习并尝试制作了仿冒声卡,依然无声。...
  3. 卸载自装python
  4. eclipse2022配置JDK17 (Java17)
  5. APFS简要指南(Apple File System Guide)
  6. 怎么把dns服务器改成自动,怎么把dns改成自动获取
  7. 使用DirectPlay进行网络互联(2)
  8. 传奇私服游戏支付接口申请(已解决)
  9. 案例:微信小程序日期不能获取,显示NaN
  10. C语言 数组的指针和指向数组的指针变量-2