首页 > 数据库 >数据库SQL语言基础编程

数据库SQL语言基础编程

时间:2024-05-24 15:00:05浏览次数:23  
标签:sal 数据库 编程 查询 dept emp SQL deptno nvl

目录

一、简单查询

查询员工表与部门表的笛卡尔积

在上述操作的基础上完成连接的选择操作和投影操作

对查询数据进行排序操作

查询工资超过2500的员工基本信息

查询月总收入超过2500的员工基本信息

查询工资超过2500的员工的姓名及其所在部门名称

查询所有员工的工资、奖金、总收入,并按部门编号排序

查询全公司的平均工资、最高工资、最低工资和总奖金数。

二、分组查询

(1)查询各部门的平均工资和最高月收入和总资金数

(2)查询部门号大于10且平均工资大于1500的部门名称、部门平均工资和部门人数

三、增删改语句

(1)在部门表中添加一个部门,编号为50,名称为 TRAIN  地点在  LOUDI

(2)将刚才添加了部门的编号修改为80

(3)删除刚才添加了部门 


实验目的:

掌握数据库查询语句的编写方法

掌握利用查询语言完成基本查询

掌握利用SQL语句完成数据的添加、删除、修改操作

实验内容:

一、简单查询

编写简单查询语句,理解笛卡尔积、选择、投影的概念及其在SQL中的实现

  • 查询员工表与部门表的笛卡尔积

prompt 查询员工表与部门表的笛卡尔积

SELECT *

FROM emp,dept;

  • 在上述操作的基础上完成连接的选择操作和投影操作

prompt 在上述操作的基础上完成连接的选择操作和投影操作

SELECT empno,ename,job,sal,dname

FROM emp,dept

WHERE emp.deptno=dept.deptno;

  • 对查询数据进行排序操作

prompt 对查询数据进行排序操作

SELECT empno,ename,job,sal,dname

FROM emp,dept

WHERE emp.deptno=dept.deptno

ORDER by sal DESC;

编写查询语句,完成对员工信息、部门情况等的基本查询

  • 查询工资超过2500的员工基本信息

prompt 查询工资超过的员工基本信息

SELECT *

FROM emp

WHERE sal>2500;

  • 查询月总收入超过2500的员工基本信息

prompt 查询月总收入超过2500的员工基本信息

SELECT *

FROM emp

WHERE nvl(sal,0)+nvl(comm,0)>2500;

  • 查询工资超过2500的员工的姓名及其所在部门名称

prompt 查询工资超过的员工的姓名及其所在部门名称

SELECT ename,dname,sal

FROM emp,dept

WHERE emp.deptno=dept.deptno and sal>2500;

  • 查询所有员工的工资、奖金、总收入,并按部门编号排序

prompt 查询所有员工的工资、奖金、总收入,并按部门编号排序

SELECT deptno,ename,sal,comm,nvl(sal,0)+nvl(comm,0) 总收入

FROM emp

ORDER by deptno;

  • 查询全公司的平均工资、最高工资、最低工资和总奖金数。

prompt 查询全公司的平均工资、最高工资、最低工资和总奖金数。

SELECT AVG(nvl(sal,0)) 平均工资,MAX(nvl(sal,0)) 最高工资,MIN(nvl(sal,0)) 最低工资,SUM(nvl(comm,0)) 总奖金数

FROM emp;

二、分组查询

编写分组查询语句,理解分组查询的意义

编写分组查询语句,实现分组查询的应用

(1)查询各部门的平均工资和最高月收入和总资金数

prompt 查询各部门的平均工资和最高月收入和总资金数

SELECT emp.deptno,dname,AVG(nvl(sal,0)) 平均工资, MAX(nvl(sal,0)+nvl(comm,0)) 最高月收入 ,SUM(nvl(sal,0)+nvl(comm,0)) 总资金数

FROM emp,dept

WHERE emp.deptno=dept.deptno

GROUP by emp.deptno,dname;

(2)查询部门号大于10且平均工资大于1500的部门名称、部门平均工资和部门人数

prompt 查询部门号大于且平均工资大于的部门名称、部门平均工资和部门人数

SELECT emp.deptno,dname,AVG(nvl(sal,0)) 部门平均工资,SUM(emp.deptno) 部门人数

FROM emp,dept

WHERE emp.deptno=dept.deptno and emp.deptno>10   

GROUP by dname,emp.deptno

HAVING AVG(nvl(sal,0))>1500;

三、增删改语句

添加数据

(1)在部门表中添加一个部门,编号为50,名称为 TRAIN  地点在  LOUDI

prompt 在部门表中添加一个部门,编号为,名称为 TRAIN ,地点在 LOUDI

INSERT INTO dept 

VALUES(50,'TRAIN','LOUDI');

SELECT *

FROM dept;

修改数据

(2)将刚才添加了部门的编号修改为80

prompt 将刚才添加了部门的编号修改为

UPDATE dept 

SET deptno=80

WHERE deptno=50;

SELECT *

FROM dept;

删除数据

(3)删除刚才添加了部门 

prompt 删除刚才添加了部门

DELETE FROM dept 

WHERE deptno=80;

SELECT *

FROM dept;

总代码:

set linesize 999
set pagesize 999
prompt 查询员工表与部门表的笛卡尔积
SELECT *
FROM emp,dept;
prompt 在上述操作的基础上完成连接的选择操作和投影操作
SELECT empno,ename,job,sal,dname
FROM emp,dept
WHERE emp.deptno=dept.deptno;
prompt 对查询数据进行排序操作
SELECT empno,ename,job,sal,dname
FROM emp,dept
WHERE emp.deptno=dept.deptno
ORDER by sal DESC;
prompt 查询工资超过的员工基本信息
SELECT *
FROM emp
WHERE sal>2500;
prompt 查询月总收入超过2500的员工基本信息
SELECT *
FROM emp
WHERE nvl(sal,0)+nvl(comm,0)>2500;
prompt 查询工资超过2500的员工的姓名及其所在部门名称
SELECT ename,dname,sal
FROM emp,dept
WHERE emp.deptno=dept.deptno and sal>2500;
prompt 查询所有员工的工资、奖金、总收入,并按部门编号排序
SELECT deptno,ename,sal,comm,nvl(sal,0)+nvl(comm,0) 总收入
FROM emp
ORDER by deptno;
prompt 查询全公司的平均工资、最高工资、最低工资和总奖金数。
SELECT AVG(nvl(sal,0)) 平均工资,MAX(nvl(sal,0)) 最高工资,MIN(nvl(sal,0)) 最低工资,SUM(nvl(comm,0)) 总奖金数
FROM emp;
prompt 查询各部门的平均工资和最高月收入和总资金数
SELECT emp.deptno,dname,AVG(nvl(sal,0)) 平均工资, MAX(nvl(sal,0)+nvl(comm,0)) 最高月收入 ,SUM(nvl(sal,0)+nvl(comm,0)) 总资金数
FROM emp,dept
WHERE emp.deptno=dept.deptno
GROUP by emp.deptno,dname;
prompt 查询部门号大于10且平均工资大于1500的部门名称、部门平均工资和部门人数
SELECT emp.deptno,dname,AVG(nvl(sal,0)) 部门平均工资,SUM(emp.deptno) 部门人数
FROM emp,dept
WHERE emp.deptno=dept.deptno and emp.deptno>10   
GROUP by dname,emp.deptno
HAVING AVG(nvl(sal,0))>1500;
prompt 在部门表中添加一个部门,编号为50,名称为 TRAIN ,地点在 LOUDI
INSERT INTO dept 
VALUES(50,'TRAIN','LOUDI');
SELECT *
FROM dept;
prompt 将刚才添加了部门的编号修改为80
UPDATE dept 
SET deptno=80
WHERE deptno=50;
SELECT *
FROM dept;
prompt 删除刚才添加了部门
DELETE FROM dept 
WHERE deptno=80;
SELECT *
FROM dept;

标签:sal,数据库,编程,查询,dept,emp,SQL,deptno,nvl
From: https://blog.csdn.net/qq_74218815/article/details/139157155

相关文章

  • SQL数据库必会的9个基础语句
    数据库代码通常指的是用于创建、查询、更新和删除数据库及其数据的SQL(结构化查询语言)语句。但是,由于数据库的复杂性和多样性,下面我将给出一些基本的SQL代码示例,这些示例可以在关系型数据库管理系统(如MySQL,PostgreSQL,SQLite,Oracle,SQLServer等)中使用。创建数据库:CR......
  • 深入《MySQL视图》及《MySQL索引与分区》
    一. MySQL视图#MySQL视图深度指南:从新手到专家欢迎来到这篇全面的MySQL视图教程。在数据库的世界中,视图(View)是一个强大的工具,它允许你以一种安全且用户友好的方式操作数据。本篇博文将带你了解什么是视图、如何创建它们,以及如何有效地使用视图来简化你的数据库操作。##什......
  • SQL语句面试题
    查询指定用户在过去12个月每个月的支付总额:SELECTDATE_FORMAT(payment_date,'%Y-%m')ASmonth,SUM(amount)AStotal_amountFROMpaymentsWHEREuser_id='指定用户ID'ANDpayment_date>=DATE_SUB(CURDATE(),INTERVAL12MONTH)GROUPBYDAT......
  • Java并发编程之newFixedThreadPool线程池
    随着计算机硬件性能的不断提升,多核CPU的普及,现代计算机系统的性能越来越强大。在这样的环境下,如何更好地利用计算机系统的性能优势,提高程序的运行效率,是每一个Java开发者需要思考的问题。Java中提供了多线程编程的支持,但是在多线程编程中,线程的创建、启动、调度等都需要耗费一定的......
  • mysql 中索引类型有哪些,以及对数据库的性能的影响?
    索引类型普通索引:允许被索引的数据列包含重复的值唯一索引:可以保证数据记录的唯一性主键索引:是一种特殊的唯一素引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字primarykey来创建联合索引:索引可以覆盖多个数据列全文索引:通过建立倒排索引,可以极大......
  • 分布式任务调度内的 MySQL 分页查询优化
    作者:vivo互联网数据库团队- QiuXinbo本文主要通过图示介绍了用主键进行分片查询的过程,介绍了主键分页查询存在SQL性能问题,如何去创建高效的索引去优化主键分页查询的SQL性能问题。对于数据分布不均如何发现,提供了一些SQL查询案例来进行参考,对MySQLIndexConditionPushdown......
  • mySql 存储过程与函数
    过程CREATEDEFINER=`root`@`%`PROCEDURE`clearDate_Jk`()LANGUAGESQLNOTDETERMINISTICCONTAINSSQLSQLSECURITYDEFINERCOMMENT''BEGINDELETEFROMsys_deptWHEREcreate_time>'2023-12-31';truncatetablesys_file;ENDCREAT......
  • MySQL大师课:36秘技解锁数据库性能与管理新高度?
     ......
  • Linux安装卸载MySQL
    大家好,我是Java陈序员。今天,给大家分享下在Linux环境中如何安装卸载MySQL.关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。MySQL安装准备一台Linux服务器下载Linux版MySQL安装包下载地址:https://downloads.m......
  • 社区医院|基于SprinBoot+vue的社区医院管理服务系统(源码+数据库+文档)
    社区医院管理服务系统目录基于SprinBoot+vue的社区医院管理服务系统一、前言二、系统设计三、系统功能设计 1系统功能模块2管理员功能模块3用户功能模块4医生功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博......