一、技术相关
公司中比较流行的框架:
应用:
互联网应用:京东,阿里巴巴,字节跳动 拼多多-->阿里
软件类的应用:中软,中兴软创,东软,神码,中电金信【银行系统,公安系统,国防系统】
公司中:
Java web --- 一整套的解决方案
可以根据你当前的用户量设计相应的架构:
JSP/Servlet --> SSH --> SSM --> SSM(Plus) -->SpringBoot
分布式架构:
Dubbo(DubboX)
SpringCloud(很多技术都停更了) --> 重启Dubbo --> SpringCloud Alibaba
大数据技术:
其实就是java web的延伸而已。售楼部-->访客--> 推荐房子
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”的表,结构和数据如下:
请你按照下面要求写出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操作系统
一路确定,直到黑窗口,鼠标点进去,敲回车开始安装。
鼠标要想出来 ctrl + alt 鼠标从虚拟机中出来。
密码设置为root,密码太短,可以点击两次完成才能保存。
4、配置远程连接
ip addr 这个命令可以查看当前的IP地址 192.168.1.100
查看本地能够连接你的虚拟机:
如果通了,就可以使用远程连接工具了。
linux远程连接工具太多了,xshell、MobaXterm 、Shell SSH、等等
推荐同学们使用FinalShell
安装下载地址: http://www.hostbuf.com/
使用finalShell 远程连接我的虚拟机:
双击我们创建的连接,打开就可以了。
修改字体颜色及其他设置:
5、使用NotdPad++远程连接linux
6、修改IP地址为静态IP
为什么要修改?我的远程连接工具已经写死了IP,每次重启IP如果变化,我需要重新连接,不方便。修改:/etc/sysconfig/network-scripts/ifcfg-ens33 这个文件
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呢?
如果你的电脑,发现没有虚拟网卡,或者老连不上网?可以尝试重新安装虚拟网卡。
1、关闭虚拟机
2、点击还原默认设置
7、设置hostname (主机名)
1)查看主机名 hostname
2) 修改主机名
临时修改: hostname laoyan 重启后,名字又变回原来的老的了。
永久修改主机名: /etc/hostname 这个文件即可
8、关闭防火墙
查看防火墙状态:systemctl status firewalld
关闭防火墙: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 这个网站一样。