-----------------3.3-----------------
2 在3.2章节“上机练习”中,为表s的sno,表c的cno添加主键约束; 为表sc中的sno和cno添加外键约束,scgrade列添加非空约束; 为表s中新添加的的stel列添加唯一约束。 alter table s add constranit sno primary key alter table c add constranit cno primary key alter table sc add constranit sno cno foreign key alter table sc modify (scgrade varchar2(20) not null) alter table s add constranit stel unique
3、 新创建一张带有约束的雇员表emptest,表结构如下:
属性 数据类型 相应约束
员工编号 number(3) 主键
姓名 varchar2(20) 非空
性别 varchar2(2) 默认为“男”,且性别只能为“男”或“女”
生日 date
请问该如何创建这张表?
create table emptest
(
eno number(3) primary key,
ename varchar2(20) not null,
esex varchar2(2) default’男’ check(esex in(‘男’,‘女’)),
ebirth date
);
--------------3.4-------------------------
上机练习
1、 在3.2章节的“上机练习”中,向s表中插入数据。插入内容如下:
学号 姓名 电话
10001 王晓明 13112341118
10002 王涵 13212341118
10003 李有才 13312341118
10004 张小小 13412341118
10005 董强 13512341118
insert into s values(10001,‘王晓明’,13112341118)
insert into s values(10002,‘王涵’,13212341118)
insert into s values(10003,‘李有才’,13312341118)
insert into s values(10004,‘张小小’,13412341118)
2、 生成一个新的表s1,表结构与s表基本一致,有“学号”和“姓名”两列,表中内容如下:
学号 姓名
10001 王晓明
10002 王涵
要求用旧表s生成新表s1去实现。
create table s1 as select * from s;
3、 修改s表中的数据,将董强的电话改为13612341118。
update s set stel=13612341118 where sno=10004;
4、 查询修改后的s表中的全部信息。
select * from s;
5、 删除s1表中的学号列。
alter table s1 drop column sno;
--------------3.5----------------
1、 假设用户student2创建了表s,表s的表结构和数据参见3.3、3.5章节。
现要求把查询、修改表s的权限赋予普通用户student1,该如何操作?
grant select on s to student1;
grant update on s to student1;
2、 收回student1对表s进行修改的权限,该如何操作?
revoke update on s from student1;
--------------3.6-----------------
1、 向3.2章节“上机练习”中的s表添加两行数据,添加后设置保存点p1,应该如何操作?添加的数据内容如下
学号 姓名 电话
10010 孙燕姿 18600001111
10020 周杰伦 18900002222
insert into s values(10010,‘孙燕姿’,18600001111);
insert into s values(10020,‘周杰伦’,18600002222);
savepoint p1;
2、 更新学号为10020的电话为18000000000,更新后设置保存点p2,应该如何操作?
update s set stel=180000000000 where sno=10020;
savepoint p2;
3、 删除学号为10010的学生记录,删除后设置保存点p3,应该如何操作?
delete from s where sno=10010;
savepoint p3;
4、 分别回滚到p1,p2,p3的状态,查看表s中数据的变化;
rollback to p1;
rollback to p2;
rollback to p3;
5、 最后提交操作,查看表s中数据的变化。
select * from s;
--------------4.1-----------------------
1、 下面的语句是否可以执行成功?
select ename , job , sal as salary from emp;
2、 下面的语句是否可以执行成功?
select * from emp;
不可以,应该是select * from scott.emp
3、 找出下面语句中的错误:
select empno , ename sal * 12 ANNUAL SALARY from emp
4、 显示表dept的结构,并查询其中的全部数据。
desc dept;
select * from dept;
5、 显示出表emp中的不重复的岗位job。
select distinct jobno from emp;
select jobno from emp group by jobno;
6、 选择员工姓名的第三个字母是A的员工姓名。
select ename from emp where ename like ‘__A%’
7、 选择姓名中有字母A和E的员工姓名。
select ename from emp where ename like ‘%A%E%’;
----------------4.2-------------------------
1、 对scott用户下的表进行多表链接查询:
①在一张表中,显示所有员工的姓名ename,部门号deptno和部门名称dname。
select ename,d.deptno,dname from emp e join dept d on e.deptno=d.deptno;
②查询20号部门员工的job和20号部门的loc。
select distinct e.job,d.loc from emp e,dept d where d.deptno =d.deptno and e.deptno=20;
③选择所有有奖金comm的员工的ename , dname , loc。
select ename,dname,loc from join dept using(deptno) where comm is not null;
④选择在DALLAS工作的员工的ename , job , deptno, dname。
select ename ,dname ,loc from emp join dept using(deptno) where loc=‘DALLAS’;
--------------4.3------------------------------
1、 基于scott.emp表进行一下查询:
① 查询公司员工工资的最大值,最小值,平均值,总和
select max(salary),min(salary),avg(salary),sum(salary) from employees;
② 查询各种job的员工工资的最大值,最小值,平均值,总和
select job_id max(salary),min(salary),avg(salary),sum(salary) from employees
group by job_id;
③ 查询各种job的员工人数(提示:对job进行分组)
select job_id ,count(employees_id)
from employees
group by job_id;
④ 查询员工最高工资和最低工资的差距(DIFFERENCE)
select max(salary)-min(salary) difference from employees;
⑤ 查询各个管理者手下员工的最低工资,其中最低工资不能低于800,没有管理者的员工不计算在内
select manager_id ,min(salary) from employees
where manager_id is not null
group by manager_id
having min(salary) >=800;
⑥ 查询所有部门的名字dname,所在位置loc,员工数量和工资平均值
select dname,loc,count(employees_id),avg(salary)
from employees e join departments d
on e.department_id =d.department_id
gruop by dname ,loc;
JavaScript 和 ES6
在这个过程你会发现,有很多 JS 知识点你并不能更好的理解为什么这么设计,以及这样设计的好处是什么,这就逼着让你去学习这单个知识点的来龙去脉,去哪学?第一,书籍,我知道你不喜欢看,我最近通过刷大厂面试题整理了一份前端核心知识笔记,比较书籍更精简,一句废话都没有,这份笔记也让我通过跳槽从8k涨成20k。