mysql课后作业

这篇博客涵盖了SQL语言的基础操作,包括创建表格、插入数据、查询分析等。内容涉及查询不及格学生、平均分计算、数据排序以及特定条件筛选等实际应用场景。同时,还展示了对用户信息表的增删改查操作,以及对员工信息表的复杂查询,如奖金与工资比较、部门职位筛选等。
摘要由CSDN通过智能技术生成

在这里插入图片描述
在这里插入图片描述

#第一题
#编号(id)	姓名(name)  科目(subject)	分数(score)
CREATE TABLE score(
	id INT PRIMARY KEY AUTO_INCREMENT,
	`name` VARCHAR(20),
	`subject` VARCHAR(30),
	score INT 
);
#添加数据
INSERT INTO score(`name`,`subject`,`score`) 
VALUES
('张三','数学',90),
('张三','语文',50),
('张三','地理',40),
('李四','语文',55),
('李四','政治',45),
('王五','政治',30),
('李四','数学',80),
('王五','语文',70)
  
  
  # 1.查询两门及两门以上不及格的学生姓名 
  SELECT COUNT(NAME), NAME FROM score WHERE score<60 GROUP BY NAME HAVING COUNT(NAME)>=2;
  # 2 查询学生平均分
  SELECT AVG(score) FROM score;
  # 3查询姓名是张三的学生 成绩和
  SELECT SUM(score) FROM score WHERE NAME='张三';
  # 4将学生信息按照 分数倒序
  SELECT * FROM score ORDER BY score DESC;
  # 5.获取学生信息中 分数最低的学生姓名和分数最高的学生姓名
  SELECT * FROM score ORDER BY score DESC LIMIT 0,1;
  SELECT * FROM score ORDER BY score ASC LIMIT 0,1;
  # 6.查询两门及两门以上不及格同学的平均分。
  SELECT COUNT(NAME), NAME FROM score WHERE score<60 GROUP BY NAME HAVING COUNT(NAME)>=2;
  SELECT COUNT(NAME) ,AVG(score), NAME FROM score WHERE NAME IN('张三','李四') GROUP BY NAME;
  
  
  # 第二题
  
  CREATE TABLE USER(
	`name` VARCHAR(20) NOT NULL,
	`tel` VARCHAR(11),
	`content` VARCHAR(50),
	`date` DATETIME
  )
  
  INSERT INTO USER VALUES('张三','13333663366','大专毕业','2006-10-11');
  UPDATE USER SET `date`=NOW() WHERE NAME='张三';
  # 当前日期 curdate();
  # 当前时间 curTime();
  # 当前日期和时间 NOW();
  SELECT * FROM USER;
  
  # 第三题
  
  # 3.1.找出奖金高于工资的雇员 
  
  SELECT * FROM emp WHERE comm>sal;
  # 3.2 找出奖金高于工资60%的雇员
  SELECT * FROM emp WHERE comm>(sal*0.6);
  
  # 3.3 找出部门10中所有经理和部门20中所有店员的信息
  SELECT * FROM emp WHERE (deptno=10 AND job='MANAGER') OR (deptno=20 AND job='CLERK');
  
  # 3.4 薪资大于或等于2000的所有员工的信息。
  SELECT * FROM emp WHERE sal>=2000;
  # 3.5 查询没有奖金或者奖金低于100的员工信息
  
  SELECT * FROM emp WHERE comm IS NULL OR comm<100;
  
  # 3.6 查询姓名不带”R”的员工姓名
  SELECT * FROM emp WHERE ename NOT LIKE '%R%';
  
  # 3.7显示员工的姓名和入职时间,根据入职时间,将最老的员工排放在最前面。
  SELECT ename ,hiredate FROM emp ORDER BY hiredate ASC;
  
  # 3.8显示所有员工的姓名、工作和工资,按照工作的降序排序,若工作相同则按工资升序排序。
  
  SELECT ename,job,sal FROM emp ORDER BY job DESC, sal ASC;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值