基于Mysql 的SQL应用---2021(ZSD版)
目录
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版)相关推荐
- Mysql的基本操作和用户权限----2021(ZSD版)
Group 1: 安装Mysql for window or for linux (1)从Mysql网站下载软件; http://downloads.mysql.com/archives/instal ...
- 【MySQL】基于MySQL的SQL优化(二)——对count()、max()的优化
*本文章使用数据均来自MySQL样本数据库Sakila,参考:https://blog.csdn.net/tanglei6636/article/details/93042010 max(): 通过一 ...
- 【MySQL】基于MySQL的SQL核心语法实战演练(二)
文章目录 说明 必知必会 全表查询 全表结构查询 ALTER TABLE 语句 AUTO INCREMENT字段 视图相关 NULL相关 表的NULL预处理 插入NULL数据 使用IS NULL筛选N ...
- 【MySQL】基于MySQL的SQL增删改查实战演练
文章目录 说明 登录 查所有的库 删库 建库 进入test数据库 查库中所有的表 库中建表 全表查询 表中插入一行 更改表中一条记录的信息 查询结果排序 查询结果只返回部分属性 使用where查询符合 ...
- 【MySQL】基于MySQL的SQL核心语法实战演练(三)
文章目录 说明 必知必会 熟悉数据表 EXISTS 运算符 Aggregate Functions AVG() COUNT() FIRST() LAST() MAX() MIN() SUM() 创建新 ...
- 【MySQL】基于MySQL的SQL核心语法实战演练(一)
文章目录 说明 必知必会 建表 多行插入 LIMIT语句 创建新表 LIKE操作符 IN操作符 BETWEEN操作符 AS操作符 INSERT INTO SELECT语句 JOIN语句 INNER J ...
- mysql数据生产数据分析_基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程...
基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程 课程目录 (1)SQL与数Ju分析;目录中文件数:23个 (1) 开课-课时3SQL与数Ju库的价值.flv (2) ...
- SQL注入-基于MySQL的注入提权(十七)
实验目的(我的2003是32位的懒得搞了,大家参照一下吧) 普及结合dll文件对Windows系统进行启动项提权.MOF和UDF提权的基本思路,以及提权的主要方法.PS:面试时不要说打靶场什么东西,就 ...
- 常用SQL语句 - 基于MySQL数据库
常用SQL语句 - 基于MySQL数据库 基础 连接数据库 mysql -h10.20.66.32 -uroot -p123456 -h后面是mysqlServer所在地址,-u后面是用户名,-p后面 ...
最新文章
- 设计模式之单例模式(Singleton)摘录
- 核磁共振影像数据处理-1(上)-个人简介和系列内容介绍、Li‘s have a solution and plan.
- 第二章 在HTML中使用JavaScript
- Electron中常用api事件-app常用事件和webContents常用事件
- 配置Windows Server2008故障转移集群
- 设计模式学习笔记——享元(Flyweight)模式
- 安卓手机端口号怎么查看_微信小程序怎么查看手机便签待办事项?
- OPNET网络仿真分析-1.1.2、OPNET简介
- Android7.0以上增加(/system/lib/libtest.so)系统库文件
- Flex 布局学习笔记
- [CEOI2008]order
- iPhone配置实用工具介绍
- slk文件转换器安卓版_【更新】手机QQ、微信语音读取转换工具【sik\amr格式转mp3】...
- gpu内存大小 android,Android性能测试(内存、cpu、fps、流量、GPU、电量)——adb篇...
- 三星s8文档有html,别找了 你想知道的三星S8一切都在这里
- 2022-03-25 redis组建哨兵及主从高可用的failover
- MST++: Multi-stage Spectral-wiseTransformer for Efficient Spectral Reconstruction
- 魔法(csdn编程挑战)
- 在中国,混哪个“圈子”最有“钱”途?
- UI设计教程分享:PS故障风海报制作教程
热门文章
- 详解B2B、B2C、C2B、C2C、O2O的含义及区别
- 黑苹果alc269声卡仿冒id_10.10中我的ALC269VC依旧无声?学习并尝试制作了仿冒声卡,依然无声。...
- 卸载自装python
- eclipse2022配置JDK17 (Java17)
- APFS简要指南(Apple File System Guide)
- 怎么把dns服务器改成自动,怎么把dns改成自动获取
- 使用DirectPlay进行网络互联(2)
- 传奇私服游戏支付接口申请(已解决)
- 案例:微信小程序日期不能获取,显示NaN
- C语言 数组的指针和指向数组的指针变量-2