一、技术相关

  1. 公司中比较流行的框架:
  2. 应用:
  3. 互联网应用:京东,阿里巴巴,字节跳动 拼多多-->阿里
  4. 软件类的应用:中软,中兴软创,东软,神码,中电金信【银行系统,公安系统,国防系统】
  5. 公司中:
  6. Java web --- 一整套的解决方案
  7. 可以根据你当前的用户量设计相应的架构:
  8. JSP/Servlet --> SSH --> SSM --> SSM(Plus) -->SpringBoot
  9. 分布式架构:
  10. Dubbo(DubboX)
  11. SpringCloud(很多技术都停更了) --> 重启Dubbo --> SpringCloud Alibaba
  12. 大数据技术:
  13. 其实就是java web的延伸而已。售楼部-->访客--> 推荐房子
  14. Hadoop --> Spark --> Flink

二、作业

作业1:

1、 查询Student表中的所有记录的Sname、Ssex和Class列。
// sql语句不区分大小写,软件建议我们使用大写,但是我们喜欢小写。
select Sname,Ssex,Class from Student;
2、 查询教师所有的单位即不重复的Depart列。
   select distinct DEPART from teacher;
3、 查询Student表的所有记录。
   select * from student;
4、 查询Score表中成绩在60到80之间的所有记录。
   select * from score where DEGREE between 60 and 80;
   select * from score where degree >= 60 and degree <=80;
5、 查询Score表中成绩为85,86或88的记录。
   select * from score where degree in(85,86,88);
6、 查询Student表中“95031”班或性别为“女”的同学记录。
    select * from student where Class='95031' or Ssex='女';
7、 以Class降序查询Student表的所有记录。
    select * from student order by class desc;
8、 以Cno升序、Degree降序查询Score表的所有记录。
     select * from score order by cno asc,degree desc;
9、 查询“95031”班的学生人数。
     select count(1) from student where class='95031';
10、查询Score表中的最高分的学生学号和课程号。
     select sno,cno from score where degree =(select max(degree) from Score);
11、查询‘3-105’号课程的平均分。
     select avg(degree) from score where cno='3-105';
12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
     select cno,avg(degree) from score group by cno having count(1) >= 5 and cno like '3%';
13、查询最低分大于70,最高分小于90的Sno列。
     // 查询学生的学号,这个学生所有成绩,最低分大于70分,最高分大于90分
     select sno,max(degree),min(degree) from score 
       group by sno having max(degree) < 90 and min(degree) > 70;
14、查询所有学生的Sname、Cno和Degree列。
     select s1.sname,s2.cno,s2.degree from student s1 
        left join score s2 on s1.sno = s2.sno;
15、查询所有学生的Sno、Cname和Degree列。
     select s1.sno,c.cname,s2.degree from student s1 
        left join score s2 on s1.sno = s2.sno
        left join course c on c.cno = s2.cno;
16、查询所有学生的Sname、Cname和Degree列。
select s1.Sname,c.cname,s2.degree from student s1 
        left join score s2 on s1.sno = s2.sno
        left join course c on c.cno = s2.cno;
17、查询“95033”班所选课程的平均分。
   select cno,avg(degree) from score where sno 
   in(select sno from student where class = '95033')  
   group by cno;
18、假设使用如下命令建立了一个grade表:
create table grade(low number(3,0),upp number(3),rank char(1));
insert into grade values(90,100,’A’);
insert into grade values(80,89,’B’);
insert into grade values(70,79,’C’);
insert into grade values(60,69,’D’);
insert into grade values(0,59,’E’);
commit;
现查询所有同学的Sno、Cno和rank列。
 select s1.sno,s2.cno,s2.degree,g.rank from student s1 
        left join score s2 on s1.sno = s2.sno
        left join grade g on s2.degree>= g.low and s2.degree <= g.upp;
19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
      select * from score where degree >
      (select degree from score where cno='3-105' and sno='109')
      and cno = '3-105';
20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。
     select * from score where 
        sno in 
        (select sno from score group by sno having count(1) >= 1) 
        and sno not in 
        (select sno from score group by cno having max(degree));

21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
     select * from score where degree > 
     (select degree from score where sno='109' and cno = '3-105');
22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
    select Sno,Sname,Sbirthday from student 
      where year(Sbirthday) = 
      (select year(Sbirthday) from student where sno = '108'  );
23、查询“张旭“教师任课的学生成绩。
    // 张旭老师的学生的编号
    select c.cno,s.degree from 
      course c , teacher t , score s 
      where c.tno = t.tno and s.cno = c.cno and t.tname='张旭';
24、查询选修某课程的同学人数多于5人的教师姓名。
     select t.tname from 
      course c , teacher t , score s 
      where c.tno = t.tno and s.cno = c.cno
      group by s.cno having count(1) > 5;
25、查询95033班和95031班全体学生的记录。
    select * from student where class in ('95033','95031');
26、查询存在有85分以上成绩的课程Cno.
    select distinct cno from score where degree > 85;
27、查询出“计算机系“教师所教课程的成绩表。
     select s.* from 
      course c , teacher t , score s 
      where c.tno = t.tno and s.cno = c.cno and t.depart='计算机系';
28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。
     select tname,Prof from teacher where depart='计算机系'
       and prof not in (select Prof from teacher where depart='电子工程系')
      union
     select tname,Prof from teacher where depart='电子工程系'
       and prof not in (select Prof from teacher where depart='计算机系');
       // 还可以这么写,但是如果有其他系的老师,这个SQL就不适用了
     select tname,prof from teacher a where prof not 
        in(select prof from teacher b where a.depart != b.depart); 
29、查询选修编号为“3-105“课程且成绩至少
    高于选修编号为“3-245”的同学的Cno、Sno和Degree,
    并按Degree从高到低次序排序。
    select * from score where cno = '3-105' and degree>=
    (select min(degree) from score where cno ='3-245')
    order by degree desc;
30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.
   select * from score where cno = '3-105' and degree>=
    (select max(degree) from score where cno ='3-245');
31、查询所有教师和同学的name、sex和birthday.
    select sname,ssex,sbirthday from student 
    union
    select tname,tsex,tbirthday from teacher;
32、查询所有“女”教师和“女”同学的name、sex和birthday.
   select sname,ssex,sbirthday from student  where ssex='女'
    union
    select tname,tsex,tbirthday from teacher where tsex='女';
33、查询成绩比该课程平均成绩低的同学的成绩表。
  select * from score s1 where degree > (
    select avg(degree) from score s2 group by s2.cno having  s1.cno=s2.cno
  );
34、查询所有任课教师的Tname和Depart.
   select tname,depart from teacher t where 
   exists (select 1 from course c where c.tno=t.tno );
35 查询所有未讲课的教师的Tname和Depart. 
select tname,depart from teacher t where 
   not exists (select 1 from course c where c.tno=t.tno );
36、查询至少有2名男生的班号。
   select class from student where ssex='男' group by class having count(1) >=2;
37、查询Student表中不姓“王”的同学记录。
   select * from student where sname not like '王%';
38、查询Student表中每个学生的姓名和年龄。
   select sname 名字,(YEAR(NOW()) - YEAR(sbirthday)) 年龄 from student;
39、查询Student表中最大和最小的Sbirthday日期值。
   select max(sbirthday),min(sbirthday) from student;
40、以班号和年龄从大到小的顺序查询Student表中的全部记录。
  select * from student order by class desc,format(sbirthday,'yyyy') desc;
41、查询“男”教师及其所上的课程。
  select c.* from teacher t ,course c where t.tno=c.tno and tsex ='男';
42、查询最高分同学的Sno、Cno和Degree列。
   select sno,cno,degree from score where degree = (select max(degree) from score);
43、查询和“李军”同性别的所有同学的Sname.
  select sname from student where ssex = (select ssex from student where sname='李军') and sname != '李军';
44、查询和“李军”同性别并同班的同学Sname.
select sname from student where 
  ssex = (select ssex from student where sname='李军')
  and class = (select class from student where sname='李军');
或者
 select sname from student s1 ,(select ssex,class from student where sname='李军') s2
  where s1.ssex=s2.ssex and s1.class = s2.class;
45、查询所有选修“计算机导论”课程的“男”同学的成绩表
  select s1.* from score s1,student s2,course c where
     s1.cno = c.cno and s2.sno=s1.sno and s2.ssex='男'
     and c.cname = '计算机导论';

第二个作业:


1、查询员工属于哪个部门,并且把部门信息展示一下
select * from emp,dept where emp.deptno=dept.deptno;
2、查询员工姓名和所属部门名称
select ename,dname from emp,dept where emp.deptno=dept.deptno;
备注:如果两个表中没有相同字段,不用在字段前面加表名,否则必须加
 select e.ename '员工姓名',d.dname '部门名称' from emp  e,dept d where e.deptno=d.deptno;
5、工资高于JONES的员工
 1)查询Jones的工资
      select sal from emp where ename='JONES';
   2)查询高于这个数字的员工
      select * from emp where sal > 2975;
   结果是:
   select * from emp where sal > (select sal from emp where ename='JONES');
6、查询与SCOTT同一个部门的员工
 select * from emp where deptno = (select deptno from emp where ename='SCOTT');
7、工资高于30号部门所有人的员工信息
    select * from emp where sal > (select max(sal) from emp where deptno = 30);
8、查询所有员工信息以及工资总和
    select *,(select sum(sal) from emp) as '工资总和' from emp;
9、查询工资最高TOP 5
    select * from emp order by sal desc limit 5;
10、查询员工表中第6到第12条数据
    select * from emp limit 5,7
11、查询所有不是部门经理的员工
   select * from emp where job != 'MANAGER';
   或者
   select * from emp where empno not in (select distinct mgr from emp where mgr is not null ); 
12、查询所有员工人数不少于3人的部门信息
    select deptno from emp group by deptno having count(*) >= 3;
    select * from dept where deptno = 上面值;

   汇总:select * from dept where deptno in (select deptno from emp group by deptno having count(*) >= 3);

13、查询员工编号,姓名,部门编号,工资,本部门工资总和
    select empno,ename,deptno,sal,(select sum(sal) from emp e1 group by deptno having e1.deptno = e2.deptno ) from emp e2;

14、查询每个员工的姓名和上级领导的姓名
   select ename,(select ename from emp e2  where e1.mgr = e2.empno) as '领导姓名' from emp e1;

第三个作业:
数据库中有一个表名为“Order”的表,结构和数据如下:image.png

请你按照下面要求写出sql语句
1.统计出每个地区的合同金额合计并按此倒序排列显示。
select region,sum(total) from Orders group by region order by sum(total) desc;
2.统计出每个地区销售人员数量
Select count(1),region from orders group by region;
3.统计出每个地区合同金额最少的销售人员
Select sales from orders o1,
(Select min(total) t,region from orders group by region) o2
Where o1.total = o2.t and o1.region=o2.region;
4.统计出所有超过本地区合同金额平均值得合同及金额
select sales from orders o1,
(Select  avg(total) t,region from orders group by region) o2
Where o1.region=o2.region and o1.total>o2.t;

三、Linux

Linux是一个操作系统,市场上比较有名的操作系统:windows、mac os, Unix,Linux。
Linus 是Linux 之父,也是git之父。
Linux --> 企业服务器。为什么windows系统不能大面积的应用于服务器。
          Linux比较安全,不容易中毒。Linux服务器不容易宕机。
          --> Mac OS  , Android 
诺基亚手机 --> 塞班 --> 微软 --> (windows Phone) 
市场上就是使用人越多,越容易做大做强。(电动汽车市场) 氢能汽车

阵营:
   CentOS : 商用的
   Red Hat: 商用的
   Ubuntu : 商用的
   麒麟操作系统

四、安装虚拟机

1、先确保电脑上的虚拟化是开启的,直接进入电脑中的BIOS系统查看。

在bios里面设置虚拟化 将 inter technology vatuializtion设置成 enable
虚拟机软件:VMWare(收费的) ,virtualbox、Parallels Desktop。

2、安装VMWare 软件

3、安装Linux操作系统

image.png
image.png
image.png
image.png
image.png
image.png
一路确定,直到黑窗口,鼠标点进去,敲回车开始安装。
鼠标要想出来 ctrl + alt 鼠标从虚拟机中出来。
image.png
image.png
image.png
image.png
image.png
密码设置为root,密码太短,可以点击两次完成才能保存。

4、配置远程连接

ip addr 这个命令可以查看当前的IP地址 192.168.1.100
image.png
查看本地能够连接你的虚拟机:
image.png
如果通了,就可以使用远程连接工具了。
linux远程连接工具太多了,xshell、MobaXterm 、Shell SSH、等等
推荐同学们使用FinalShell
安装下载地址: http://www.hostbuf.com/
image.png
使用finalShell 远程连接我的虚拟机:
image.png
双击我们创建的连接,打开就可以了。
image.png
修改字体颜色及其他设置:
image.png

5、使用NotdPad++远程连接linux

image.png
image.png
必须确保有nppftp这个图标。
image.png
image.png
image.png

6、修改IP地址为静态IP

为什么要修改?我的远程连接工具已经写死了IP,每次重启IP如果变化,我需要重新连接,不方便。修改:/etc/sysconfig/network-scripts/ifcfg-ens33 这个文件
image.png

IPADDR="192.168.1.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.2"
DNS1="114.114.114.114"
DNS2="8.8.8.8"

修改完成后,重启网络服务:systemctl restart network
为什么网关是192.168.1.2呢?
image.png
image.png
如果你的电脑,发现没有虚拟网卡,或者老连不上网?可以尝试重新安装虚拟网卡。
1、关闭虚拟机
2、点击还原默认设置

image.png

7、设置hostname (主机名)

1)查看主机名 hostname
2) 修改主机名
临时修改: hostname laoyan 重启后,名字又变回原来的老的了。
永久修改主机名: /etc/hostname 这个文件即可
image.png

8、关闭防火墙

查看防火墙状态:systemctl status firewalld
image.png
关闭防火墙:systemctl stop firewalld
启动防火墙:systemctl start firewalld
重启防火墙: systemctl restart firewalld
当你下一次重新启动linux的时候,防火墙会再次开启,如何设置开机不启动。
systemctl disable firewalld

9、设置linux的时间

1)查看当前时间 date
2) 同步互联网时间
yum install -y ntpdate // 安装一个ntpdate 这个软件
ntpdate -u ntp.api.bz // 通过ntpdate 命令同步时间跟ntp.api.bz 这个网站一样。