根据emp表写下列查询代码

合集下载

04数据库——数据库表单查询(where,分组,聚合函数,筛选,去重,排序)、多表查询、子查询

04数据库——数据库表单查询(where,分组,聚合函数,筛选,去重,排序)、多表查询、子查询

04数据库——数据库表单查询(where ,分组,聚合函数,筛选,去重,排序)、多表查询、⼦查询前期表准备('tank','male',73,'20140701','teacher',3500,401,1),('owen','male',28,'20121101','teacher',2100,401,1),('jerry','female',18,'20110211','teacher',9000,401,1),('nick','male',18,'19000301','teacher',30000,401,1),('sean','male',48,'20101111','teacher',10000,401,1),('歪歪','female',48,'20150311','sale',3000.13,402,2),#以下是销售部门('丫丫','female',38,'20101101','sale',2000.35,402,2),('丁丁','female',18,'20110312','sale',1000.37,402,2),('星星','female',18,'20160513','sale',3000.29,402,2),('格格','female',28,'20170127','sale',4000.33,402,2),('张野','male',28,'20160311','operation',10000.13,403,3), #以下是运营部门('程咬⾦','male',18,'19970312','operation',20000,403,3),('程咬银','female',18,'20130311','operation',19000,403,3),('程咬铜','male',18,'20150411','operation',18000,403,3),('程咬铁','female',18,'20140512','operation',17000,403,3);#ps :如果在windows 系统中,插⼊中⽂字符,select 的结果为空⽩,可以将所有字符编码统⼀设置成gbk 创建表,插⼊数据⼀、语法的执⾏顺序select * from emp\G;当表字段特别多的时候 结果的排版可能会出现混乱的现象 你可以在查询语句加\G 来规范查询结果# 语法顺序select fromwhere group by (having)# 再识执⾏顺序from wheregroup by (having)select#完整版sql 语句的查询select distinct post,avg(salary)from table1 where id > 1group by posthaving avg(salary) > 1000order by avg(salary)limit 5,5⼆、where 约束条件"""模糊匹配 like%:匹配多个任意字符 _:匹配⼀个任意字符三、group by 分组1.分组前戏 ——设置严格模式select * from emp group by post; # 报错select id,name,sex from emp group by post; # 报错select post from emp group by post; # 获取部门信息#查询详细信息报错,只能查询到分组的信息,说明设置成功强调:只要分组了,就不能够再“直接”查找到单个数据信息了,只能获取到组名2.聚合函数 max min avg sum count 以组为单位统计组内数据>>>聚合查询(聚集到⼀起合成为⼀个结果)如果⼀张表没有写group by 默认所有的数据就是⼀组#在分组后,即select 后⾯或者having 后⾯才能使⽤# 每个部门的最⾼⼯资select post,max(salary) from emp group by post;PS:给字段取别名(as 也可以省略,但是⼀般不要这样⼲)select post as 部门,max(salary) as 最⾼⼯资 from emp group by post;# 每个部门的最低⼯资select post,min(salary) from emp group by post;# 每个部门的平均⼯资select post,avg(salary) from emp group by post;# 每个部门的⼯资总和select post,sum(salary) from emp group by post;# 每个部门的⼈数总数select post,count(id) from emp group by post;在统计分组内个数的时候,填写任意⾮空字段都可以完成计数,推荐使⽤能够⾮空且唯⼀标识数据的字段,⽐如id 字段# 聚合函数max min sum count avg 只能在分组之后才能使⽤,也就是紧跟着select ⽤或者紧跟着having (分组后的⼆次where )select id,name,age from emp where max(salary) > 3000; # 报错!select max(salary) from emp;# 正常运⾏,不分组意味着每⼀个⼈都是⼀组,等运⾏到max(salary)的时候已经经过where,group by操作了,只不过我们都没有写这些条件3.group_concat 和 concatgroup_concat(分组之后⽤)不仅可以⽤来显⽰除分组外字段还有拼接字符串的作⽤1.group_concat 显⽰分组外字符 拼接字符串#查询分组之后的部门名称和每个部门下所有⼈的姓名select post,group_concat(name) from emp group by post;#在每个⼈的名字前后拼接字符select post,group_concat('D_',name,"_SB") from emp group by post;#group_concat()能够拿到分组后每⼀个数据指定字段(可以是多个)对应的值select post,group_concat(name,": ",salary) from emp group by post;2.concat拼接 as语法使⽤(不分组时⽤)就是⽤来拼接字符串达到更好的显⽰效果select name as 姓名,salary as 薪资from emp;select concat("NAME: ",name) as 姓名,concat("SAL: ",salary) as 薪资from emp;# 如果拼接的符号是统⼀的可以⽤ concat_wsselect concat_ws(':',name,age,sex) as info from emp;⼩技巧:concat就是⽤来帮你拼接数据,不分组情况下使⽤group_concat 分组之后使⽤,可以拼接数据也可以⽤来显⽰其他字段信息# 补充as语法既可以给字段起别名也可以给表起select emp.id, from emp as t1; # 报错因为表名已经被你改成了t1select t1.id, from emp as t1;3.查询四则运算# 查询每个⼈的年薪select name,salary*12 as annual_salary from emp;select name,salary*12 annual_salary from emp; # as可以省略4.练习题"""View Code8、统计各部门年龄在30岁以上的员⼯平均⼯资四、having 筛选跟where是⼀模⼀样的也是⽤来筛选数据但是having是跟在group by之后的where是对整体数据做⼀个初步的筛选⽽having是对分组之后的数据再进⾏⼀次针对性的筛选1、统计各部门年龄在30岁以上的员⼯平均⼯资,并且保留平均⼯资⼤于10000的部门select post,avg(salary) from emp where age > 30 group by post where avg(salary) > 10000; # 报错select post,avg(salary) from empwhere age >= 30group by posthaving avg(salary) > 10000;强调:having必须在group by后⾯使⽤select * from emp having avg(salary) > 10000; # 报错五、distinct 去重# 对有重复的展⽰数据进⾏去重操作#去重⼀定要满⾜数据是⼀模⼀样的情况下才能达到去重的效果#如果你查询出来的数据中包含主键字段,那么不可能去重成功#只要有⼀个不⼀样都不能算是的重复的数select distinct id,age from emp; #去重失败,id不⼀样,即使age⼀样也没⽑⽤select distinct post from emp; #成功六、limit 限制条数# 限制展⽰条数select * from emp limit 5; # 只展⽰数据的五条# 分页显⽰select * from emp limit 5,5; #第6条开始,往后展⽰5条当limit只有⼀个参数的时候表⽰的是只展⽰⼏条当limit有两个参数的时候第⼀个参数表⽰的起始位置,是索引第⼆个参数表⽰从起始位置开始往后展⽰的条数# 查询⼯资最⾼的⼈的详细信息select * from emp order by salary desc limit 1;七、regexp 正则# 在编程中只要看到reg开头的基本上都是跟正则相关select * from emp where name regexp '^j.*(n|y)$';re模块中findall:分组优先会将括号内正则匹配到的优先返回match:从头开始匹配匹配到⼀个就直接返回res = match('^j.*n$','jason')print(res.group())search:整体匹配匹配到⼀个就直接返回⼋、order by 排序select * from emp order by salary asc; #默认升序排select * from emp order by salary desc; #降序排select * from emp order by age desc; #降序排#先按照age 降序排,在年纪相同的情况下再按照薪资升序排select * from emp order by age desc,salary asc;# 统计各部门年龄在10岁以上的员⼯平均⼯资,并且保留平均⼯资⼤于1000的部门,然后对平均⼯资进⾏排序select post,avg(salary) from empwhere age > 10group by posthaving avg(salary) > 1000order by avg(salary);九、多表查询(203,'运营');insert into emp(name,sex,age,dep_id) values('jason','male',18,200),('egon','female',48,201),('kevin','male',38,201),('nick','female',28,202),('owen','male',18,200),('jerry','female',18,204);# 当初为什么我们要分表,就是为了⽅便管理,在硬盘上确实是多张表,但是到了内存中我们应该把他们再拼成⼀张表进⾏查询才合理创建表当初为什么我们要分表,就是为了⽅便管理,在硬盘上确实是多张表,但是到了内存中我们应该把他们再拼成⼀张表进⾏查询才合理#笛卡尔积select * from emp,dep; # 左表⼀条记录与右表所有记录都对应⼀遍,即10*4=40条 >>>笛卡尔积# 将所有的数据都对应了⼀遍,虽然不合理但是其中有合理的数据,现在我们需要做的就是找出合理的数据# 查询员⼯及所在部门的信息select * from emp,dep where emp.dep_id = dep.id;#查询部门为技术部的员⼯及部门信息select * from emp,dep where emp.dep_id = dep.id and = '技术';其实将两张表关联到⼀起的操作,有专门对应的⽅法:内连接、左连接、右链接、全连接# 1、内连接:只链接两张表有对应关系的记录select * from emp inner join dep on emp.dep_id = dep.id;select * from emp inner join dep on emp.dep_id = dep.idwhere = "技术";# 2、左连接: 在内连接的基础上保留左表没有对应关系的记录,没有部门信息null 补全select * from emp left join dep on emp.dep_id = dep.id;# 3、右连接: 在内连接的基础上保留右表没有对应关系的记录,没有员⼯信息null 补全select * from emp right join dep on emp.dep_id = dep.id;# 4、全连接:在内连接的基础上保留左、右⾯表没有对应关系的的记录,空⽩全⽤null 补全# 只要将左连接和右连接的sql 语句中间加⼀个union 连起来就变成全连接select * from emp left join dep on emp.dep_id = dep.idunionselect * from emp right join dep on emp.dep_id = dep.id;⼗、⼦查询就是将⼀个查询语句的结果⽤括号括起来当作另外⼀个查询语句的条件去⽤,括号⾥⾯语句末尾不能加分号#最新⽇期作为条件select name,hire_date,post from emp where hire_date in (select max(hire_date) from emp group by post) ;# 查询平均年轻在25岁以上的部门名⽅法⼀:⼦查询select name from dep where id in(select dep_id from emp group by dep_id having avg(age)>25);⽅法⼆:连表查询select from emp inner join dep on emp.dep_id = dep.idgroup by having avg(age) > 25;"""记住⼀个规律,表的查询结果可以作为其他表的查询条件,也可以通过其别名的⽅式把它作为⼀张虚拟表去跟其他表做关联查询"""select * from emp inner join dep on emp.dep_id = dep.id;⼗⼀、exist(了解)EXISTS关字键字表⽰存在。

数据库复习题及答案

数据库复习题及答案

1.保证数据库逻辑数据独立性的是()。

A.模式B.模式与内模式的映射 C.模式与外模式的映射D.内模式 2.设关系R和S各有100个元组,那么这两个关系的笛卡尔积运算结果的元组个数为()A.100B.200C.10000D.不确定(与计算结果有关)3.一般不适合创建索引的属性有()。

A.主键码和外键码。

B.可以从索引直接得到查询结果的属性。

C.对于范围查询中使用的属性。

D.经常更新的属性。

4.为保护数据库中的信息,防止未经授权或非法的使用所造成的数据泄漏,更改或破坏,称为数据库的()。

A.安全性B.完整性C.恢复D.并发控制5.有如下关系:教师(编号,姓名,性别,职称),将属性“性别”的取值范围定义为(男,女)符合()定义。

A.实体完整性B.参照完整性C.用户定义的完整性D.逻辑完整性6.如何构造出一个合适的数据逻辑结构是()主要解决的问题。

A.关系数据库优化B.数据字典 C.关系数据库规范化理论D.关系数据库查询7.设计数据流程图(DFD)属于数据库设计的()阶段任务。

A.逻辑设计B.概念设计C.物理设计D.需求分析8.SQL和宿主语言的接口是()。

A.DBMS B.OS C.DML D.主变量9.关系代数表达式的优化策略中,首先要做的是()A.对文件进行预处理B.尽早执行选择运算C.执行笛卡儿积运算D.投影运算10.DBMS的并发控制子系统,保证了事务()的实现A.原子性B.一致性C.隔离性D.持久性11.对数据库并发操作有可能带来的问题包括()A.读出“脏数据”B.带来数据的冗余C.未被授权的用户非法存取数据D.破坏数据独立性12.关系数据模型的三个组成部分中,不包括()A.完整性规则B.数据结构C.数据操作D.并发控制13.当关系R和S自然联接时,能够把R和S原来该舍弃的元组放到结果关系中的操作是()A.左外联接B.右外联接C.外部并D.外联接14.设有关系R(A,B,C)的值如下:AB C2 2 32 3 43 3 5下列叙述正确的是()A.函数依赖A→B在上述关系中成立B.函数依赖BC→A在上述关系中成立C.函数依赖B→A在上述关系中成立D.函数依赖A→BC在上述关系中成立15.在视图上不能完成的操作是()。

oracle 有关emp表的简单查询练习题

oracle 有关emp表的简单查询练习题

SQL练习训练一1、查询dept表的结构在命令窗口输入:desc dept;2、检索dept表中的所有列信息select * from dept3、检索emp表中的员工姓名、月收入及部门编号select ename "员工姓名",sal "月收入",empno "部门编号" from emp注意查询字段用分号隔开。

4、检索emp表中员工姓名、及雇佣时间日期数据的默认显示格式为“DD-MM-YY",如果希望使用其他显示格式(YYYY-MM-DD),那么必须使用TO_CHAR函数进行转换。

select ename "员工姓名", hiredate "雇用时间1",to_char(hiredate,'YYYY-MM-DD') "雇用时间2" from emp注意:第一个时间是日期类型的,在Oracle的查询界面它的旁边带有一个日历。

第二个时间是字符型的。

易错点:不要将YYYY-MM-DD使用双引号5、使用distinct去掉重复行。

检索emp表中的部门编号及工种,并去掉重复行。

select distinct deptno "部门编号",job "工种" from emp order by deptno注意distinct放的位置为什么不放在from的前面?翻译成汉语就明白了应该是:选择不重复的部门编号和工种从emp表。

而不是:选择部门编号和工种不重复地从emp表。

这还是人话么O(∩_∩)O哈哈~6、使用表达式来显示列检索emp表中的员工姓名及全年的月收入select ename "员工姓名", (sal+nvl(comm,0))*12 "全年收入" from emp 注意:防止提成comm为空的操作,使用nvl函数7、使用列别名用姓名显示员工姓名,用年收入显示全年月收入。

Mysql查询语句大全

Mysql查询语句大全

Mysql 查询语句大全\1.两表之间的查询,例如:查询员工表中部门号与部门表中部门号相等select * from tb_emp ,tb_dept where tb_emp.deptno=tb_dept.deptno;(这是同时显示两张表中相等的depton 所有字段)(tb_emp ,tb_dept这都是表名)2.select tb_e.deptno from tb_e, tb_d where tb_e.deptno=tb_d.deptno;(这是只显示员工表中的tb_e.deptno,并且条件是员工表中部门号与部门表中部门号相等)3.给字段取别名select product_price*12 totsl_product_price from productinfo;等价select product_price*12 from productinfo;也可以这样写select product_price*12 " totsl product_price" from productinfo;有特殊的字符时用双引号的方法,(特殊字符是:中文,日文,分号等)(totsl product_price 是product_price*12)****** 0 和空还有空格不是一个概念例如:select * from emp where description is null;select * from emp where description =0;select * from emp where description ='空格';查询的结果都市不一样的。

distinct 关键字可以查询结果中清除重复的行,他的作用范围是后面的所有字段的组合;例如:select distinct deptno ,deptname from emp where deptno=23;totsl_product_price是product_price的别名;select ename, sal*12 as '年薪'from emp; 别名的作用是让查询出来的结果可以让别人(外行)看了一目了然的作用上面是针对产品价格计算出总金额,价格*12,也就是对字段值进行加减乘除,*****任何含有空值的表达式计算后的值都是空值。

select查询命令可以包含的子句

select查询命令可以包含的子句

一、SELECT查询命令概述SELECT查询命令是SQL语言中最常用的命令之一,用于从数据库中检索数据。

SELECT命令不仅可以简单地检索表中的所有数据,还可以具体筛选所需的数据,使得查询结果更加精确。

二、SELECT查询命令的语法结构SELECT查询命令通常包含以下子句:1. SELECT子句:用于指定需要检索的列。

可以是单个列名,也可以是多个列名,并用逗号隔开。

也可以使用“*”通配符表示检索所有列。

2. FROM子句:用于指定数据来源的表名。

在SELECT命令中,FROM子句是必须的,用于指明要从哪张表中检索数据。

3. WHERE子句:用于指定筛选条件,根据条件来筛选出符合要求的数据行。

可以使用比较运算符、逻辑运算符以及LIKE等关键词进行条件筛选。

4. ORDER BY子句:用于指定查询结果的排序方式,可以按照指定的列进行升序(ASC)或降序(DESC)排序。

5. GROUP BY子句:用于将查询结果按照指定的列进行分组,通常与聚合函数一起使用,如COUNT、SUM等。

三、其他常用的SELECT查询命令子句除了上述常见的SELECT查询命令子句外,还有一些辅助性的子句用于增强SELECT命令的功能。

1. DISTINCT关键词:用于返回唯一不同的值,去除重复的行。

2. HAVING子句:用于筛选由GROUP BY子句分组得到的数据,类似于WHERE子句,但是在分组数据上进行筛选。

3. LIMIT子句:用于限制查询结果的返回数量,通常与ORDER BY子句一起使用。

四、使用示例以下是一个简单的SELECT查询命令的使用示例:```SELECT column1, column2FROM table1WHERE conditionORDER BY column1 ASC```其中,column1和column2为需要检索的列名,table1为数据来源的表名,condition为筛选条件。

五、总结SELECT查询命令是SQL语言中非常重要的一个命令,通过灵活使用SELECT查询命令的各种子句,可以实现从数据库中精确地检索所需的数据,并对查询结果进行排序、筛选、分组等操作。

sql联系

sql联系

1.设某工厂数据库中有两个基本表:车间基本表:DEPT(DNO,DNAME,MGR__ENO),其属性分别表示车间编号、车间名和车间主任的职工号。

职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY,DNO),其属性分别表示职工号、姓名、年龄、性别、工资和所在车间的编号。

试用关系代数表达式写出下列查询:检索“金工车间”的男职工的职工号和姓名。

2.在第1题两个基本表的基础上,建立一个有关女车间主任的职工号和姓名的视图,其结构如下:VIEW6(ENO,ENAME)。

试写出创建视图VIEW6的SQL语句。

3.设教学数据库中有三个基本表:S(SNO,SNAME,AGE,SEX),其属性分别表示学号、学生姓名、年龄、性别。

C(CNO,CNAME,TEACHER),其属性分别表示课程号、课程名、上课教师名。

SC(SNO,CNO,GRADE),其属性分别表示学号、课程号、成绩。

有如下SQL查询语句:SELECT CNOFROM CWHERE CNO NOT IN(SELECT CNOFROM S,SCWHERE S.SNO=SC.SNOAND SNAME= `GU')请完成下列问题:(1)用汉语句子阐述上述SQL语句的查询结果。

(2)用等价的关系代数表达式表示上述SQL查询语句。

4..设有职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY),其属性分别表示职工号、姓名、年龄、性别、工资。

为每个工资低于1000元的女职工加薪200元,试写出这个操作的SQL语句。

5.设有职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY,DNO),其属性分别表示职工号、姓名、年龄、性别、工资、所在车间的编号。

试写一个断言(断言名为ASSE4),要求每个车间女职工人数不大于20人。

6.设有三个关系A(Anum,Aname, city),它们的属性分别是:商场号,商场名称,商场所在城市;B(Bnum, Bname, price),它们的属性分别是:商品号,商品名称,价格;AB(Anum, Bnum, qty),它们的属性分别是商场号,商品号,商品销售数量。

数据库24个查询代码

数据库24个查询代码

数据库24个查询代码--1.查询学生的基本信息;select*fromstudentgo--2. 查询“CS”系学生基本信息;选择*fromstudentwheresdept='cs'go--3.查询“cs”系学生年龄不在19到21之间的学生的学号、姓名;selectsno,snamefromstudent在19和21之间,pt='cs'和sage不在哪里--4.找出最大年龄;selectmax(sage)fromstudentgo--5. 找出“CS”系中年龄最大的学生,并显示他们的学号和姓名;选择sno,snamefromstudentwheresdept='cs'andsage=(selectmax(sage)fromstudentwheresdept='cs')go--6.找出各系年龄最大的学生,显示其学号、姓名;从学生1中选择sno、sname、sdeptwheresage=(selectmax(sage)fromstudent其中sdept=s1。

去吧--7.统计“cs”系学生的人数;selectcount(*)fromstudentwheresdept='cs'go--8. 统计每个系的学生人数,结果按升序排列;从StudentGroupByDeptor DerbyCount(sno)go中选择Dept、count(sno)--9.按系统计各系学生的平均年龄,结果按降序排列;按DeptorDerderBysMDescGo选择学生分组的平均值(sage)--10.查询每门课程的课程名;selectcno,cnamefromcoursego--11. 查询无必修课的课程名称和学分;从课程中选择CNAME、ccreditfromcoursewherecpnoisnullgo--12. 计算无先修课程的总学分;从课程中选择*selectsum(ccredit)fromcourse你要去哪里--13.统计每位学生选修课程的门数、学分及其平均成绩;从sc、course中选择SNO、count(o)、sum(ccredit)、avg(grade)o=ogroupbysnogo--14. 计算每门课程的学生人数和平均分数;selectcno,count(sno),avg(grade)cfmscfro平均成绩超过85分的学生按系分组,并按平均成绩的升序排列;selectsdept,sc.sno,avg(scores)fromsc,studentwheresc.sno=s.snogroupbysc.sno,sde pthavingavg(scores)>85go--16.查询选修了“1”或“2”号课程的学生学号和姓名;selectsc.sno,snamefromsc,studentwheresc.sno=student.snoand(o='1'o='2')go--17.查询选修了“1”和“2”号课程的学生选择SC。

查询emp表的所有记录

查询emp表的所有记录

查询emp表的所有记录。

Select * from emp查询emp表,显示员工姓名和工资。

Select ename,sal from emp;查找员工的姓名和薪水和奖金。

Select ename,sal,comm from emp查询每个部门的平均工资,显示部门名称和平均工资。

删除emp表中员工编号为7782 的员工信息。

修改编号是7784的员工的工资和奖金,与员工编号是7600的工资和奖金一样。

查询每位员工的姓名和部门名称。

删除emp表中员工编号为7007 的员工信息。

修改编号是7784的员工的工资为5000。

查询员工表中的最高工资。

查询每个部门最低工资的员工信息。

写PL/SQL代码,接收一个雇员的编号,如果其工资>= 3000,则显示高工资,工资>= 2000,则显示中等工资,否则认为是低等工资。

编写一个存储过程,带有两个参数,要求,可以传入部门的编号,传出部门的平均工资操作。

1、关闭oracle数据库命令有:shutdown abort、shutdown transcational、()、()2、想要使INSERT,DELETE和UPDATE语句导致的数据库变化,执行事务取消()命令。

3、使用游标和 loop 循环来显示所有部门的的地理位置(用%notfound 属性)。

PL SQL语句为:(完成以下代码)Declarealoc dept.loc%rowtype;cursor cur_dept is select loc from dept;BeginOpen cur_dept;LoopFetch cur_dept into aloc;If ( ) then exit;else dbms_output.put_line(aloc);end if;End loop;Close cur_dept;End;4、游标的操作包括声明游标、打开游标、取得游标值、(关闭游标)。

5、oracle数据库启动步骤为nomount、( mount )、open。

oracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDERBY

oracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDERBY

oracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDERBYoracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDER BY,一些练习题关键字:oracle查询结果排序asc desc升序降序多列order by一些练习题查询结果的排序显示EMP表中不同的部门编号。

如果要在查询的同时排序显示结果,可以使用如下的语句:Sql代码SELECT字段列表FROM表名WHERE条件ORDER BY字段名1[ASC|DESC][,字段名2[ASC|DESC]...];SELECT字段列表FROM表名WHERE条件ORDER BY字段名1[ASC|DESC][,字段名2[ASC|DESC]...];ORDER BY从句后跟要排序的列。

ORDER BY从句出现在SELECT语句的最后。

排序有升序和降序之分,ASC表示升序排序,DESC表示降序排序。

如果不指明排序顺序,默认的排序顺序为升序ASC。

如果要降序,必须书写DESC关键字1.升序排序【训练1】查询雇员姓名和工资,并按工资从小到大排序。

输入并执行查询:Sql代码SELECT ename,sal FROM emp ORDER BY sal;SELECT ename,sal FROM emp ORDER BY sal;执行结果为:Sql代码ENAME SAL---------------------------------SMITH800JAMES950ENAME SAL---------------------------------SMITH800JAMES950注意:若省略ASC和DESC,则默认为ASC,即升序排序。

2.降序排序【训练2】查询雇员姓名和雇佣日期,并按雇佣日期排序,后雇佣的先显示。

输入并执行查询:Sql代码SELECT ename,hiredate FROM emp ORDER BY hiredate DESC;SELECT ename,hiredate FROM emp ORDER BY hiredate DESC;结果如下:Sql代码ENAME HIREDATE------------------------------------ADAMS23-5月-87SCOTT19-4月-87MILLER23-1月-82JAMES03-12月-81FORD03-12月-81ENAME HIREDATE------------------------------------ADAMS23-5月-87SCOTT19-4月-87MILLER23-1月-82JAMES03-12月-81FORD03-12月-81注意:DESC表示降序排序,不能省略。

多表查询sql语句

多表查询sql语句

多表查询sql语句多表查询sql语句--解锁SCOTT⽤户2 alter user scott account unlock3 --检索指定的列4 select job,ename,empno from emp;5 --带有表达是的select⼦句6 select sal*(1+0.2),sal from emp;7 --显⽰不重复的记录8 select distinct job from emp;9 --⽐较筛选 <> =10 select empno,ename,sal from emp where sal>1000;11 select empno,ename,JOB from emp;12 select empno,ename,sal from emp where sal <>all(3000,950,800);13 --特殊关键字筛选14 --like 模糊查询15 select empno,ename,job from emp where JOB like '%S';16 --IN --varchar17 select empno,ename,job from emp where job in('PRESIDENT','MANAGER','ANALYST');18 --NOT IN19 select empno,ename,job from emp where job not in('PRESIDENT','MANAGER','ANALYST') ;20 --BETWEEN -numer ,inter21 select empno,ename,sal from emp where sal between 2000 and 3000;22 --NOT BETWEEN23 select empno,ename,sal from emp where sal NOT between 2000 and 3000;24 --IS NULL/ is not null25 select * from emp where comm is NOT null;26 --逻辑筛选27 --and ,or,not 关系于 -或 --⾮28 select empno,ename,sal from emp where (sal>=2000 and sal<=3000 ;29 select empno,ename,sal from emp where sal<2000 or sal>3000 ;30 --分组查询31 select deptno,job from emp group by deptno,job order by deptno ;32 select deptno as 部门编号,avg(sal) as 平均⼯资 from emp group by deptno;33 select deptno as 部门编号,avg(sal) as 平均⼯资 from emp group by deptno having avg(sal)>2000; --group by ⼦条件 having34 --排序查询Order by; desc:逆序 asc默认35 select deptno,empno,ename from emp order by deptno,EMPNO;多表查询sql语句七种⽰例图在创建关系型数据表时,根据数据库范式的要求,为了降低数据的冗余,提供数据维护的灵活性将数据分成多个表进⾏存储,实际⼯作当中,需要多个表的信息,需要将多个表合并显⽰多表查询sql语句代码1 --内连接2 select e.empno as 员⼯编号, e.ename as 员⼯名称, d.dname as 部门3 from emp e inner join dept d on e.deptno=d.deptno;45 --左外连接6 insert into emp(empno,ename,job) values(9527,'EAST','SALESMAN');78 select e.empno,e.ename,e.job,d.deptno,d.dname from emp e left join dept d9 on e.deptno=d.deptno;10 --右外连接11 select e.empno,e.ename,e.job,d.deptno,d.dname from emp e right join dept d12 on e.deptno=d.deptno;1314 --完全连接15 select e.empno,e.ename,e.job,d.deptno,d.dname from emp e full join dept d16 on e.deptno=d.deptno;1718 --⾃然连接(共有的属性,会去除重复列)19 select empno,ename,job,dname from emp natural join dept where sal>2000;2021 事务如果不提交,会⼀直写⼊以下表空间;22 redo(记录⽇志表空间) undo(记录⽇志备份表空间)23 提交: commit 回滚: rollback2425 --右外连接过滤26 select * from emp e right join dept d on e.deptno=d.deptno27 where e.deptno is null;28 --左外连接过滤29 select * from emp e left join dept d on e.deptno=d.deptno30 where d.deptno is null;31 --全外连接过滤32 select * from emp e full join dept d on e.deptno=d.deptno33 where d.deptno is null or e.deptno is null;343536 /*⾃连接(self join)是SQL语句中经常要⽤的连接⽅式,使⽤⾃连接可以将⾃⾝表的⼀个镜像当作另⼀个表来对待,从⽽能够得到⼀些特殊的数据。

数据库期中考试试题_1017_xx_x

数据库期中考试试题_1017_xx_x

/最后三题每题12分,其他每题4分。

答案执行成功后,拷贝至对应题目之后,各题目只要求写出所需SQL命令,不需写出执行结果。

1.查询emp表中,ename列第三个字母为A、第五个字母为R的员工的姓名。

SQL> select ename from emp2 where ename like '__A_R%';未选定行2.使用to_char函数查询emp表中1981年及1982年入职的人数,相关列为hiredate。

1 select count(ename) from emp2* where to_char(hiredate,'yyyy') in('1981' ,'1982')SQL> /COUNT(ENAME)------------103.查询每个员工与emp表的最高工资之间的差距。

select ename,(select max(sal) from emp)-sal 差距 from emp4.查询emp表中,哪些员工的补贴(comm列)比工资还高,若补贴为null,则视其值为0。

select ename,sal,nvl(comm,0) from empwhere comm>sal5.查询emp表中分别是哪些员工的工资高于其所在部门的平均工资。

select ename from empwhere sal>all(select avg(sal) from emp group by deptno)/6.查询emp表中,哪个部门的最高工资与最低工资的差距最大,要求列出满足条件的部门名称(而不是列出部门编号)。

1 select max(a.max_sal-b.min_sal) from2 (3 select max(sal) max_sal,deptno from emp group by deptno4 )a5 ,(6 select min(sal) min_sal,deptno from emp group by deptno7 )b8* where a.deptno=b.deptnoSQL> /MAX(A.MAX_SAL-B.MIN_SAL)------------------------37007.查询10号部门与30号部门平均工资的差距。

MySQL数据库考试试题及答案

MySQL数据库考试试题及答案

MySQL数据库考试试题及答案试题一一、单项选择题(本大题共20小题,每小题2分,共40分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1. 数据库系统的核心是( B )A.数据库B.数据库管理系统C.数据模型D.软件工具2.下列四项中,不属于数据库系统的特点的是(C )A.数据结构化B.数据由DBMS统一管理和控制C.数据冗余度大D.数据独立性高3.概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是( D )A.层次模型B.关系模型C.网状模型D.实体-联系模型4.数据的物理独立性是指( C )A.数据库与数据库管理系统相互独立B.用户程序与数据库管理系统相互独立C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的D.应用程序与数据库中数据的逻辑结构是相互独立的5.要保证数据库的逻辑数据独立性,需要修改的是( A )A.模式与外模式之间的映象B.模式与内模式之间的映象C.模式D.三级模式6.关系数据模型的基本数据结构是(D )A.树B.图C.索引D.关系7.有一名为“列车运营”实体,含有:车次、日期、实际发车时间、实际抵达时间、情况摘要等属性,该实体主码是( C )A.车次B.日期C.车次+日期 D.车次+情况摘要8.己知关系R和S,R∩S等价于( B )A. (R-S)-SB. S-(S-R)C.(S-R)-RD. S-(R-S)9.学校数据库中有学生和宿舍两个关系:学生(学号,姓名)和宿舍(楼名,房间号,床位号,学号)假设有的学生不住宿,床位也可能空闲。

如果要列出所有学生住宿和宿舍分配的情况,包括没有住宿的学生和空闲的床位,则应执行( A )A. 全外联接B. 左外联接C. 右外联接D. 自然联接10.用下面的T-SQL语句建立一个基本表:CREATE TABLE Student(Sno CHAR(4) PRIMARY KEY,Sname CHAR(8) NOT NULL,Sex CHAR(2),Age INT)可以插入到表中的元组是( D )A. '5021','刘祥',男,21B. NULL,'刘祥',NULL,21C. '5021',NULL,男,21D. '5021','刘祥',NULL,NULL11. 把对关系SPJ的属性QTY的修改权授予用户李勇的T-SQL语句是( C )A. GRANT QTY ON SPJ TO '李勇'B. GRANT UPDATE(QTY) ON SPJ TO '李勇'C. GRANT UPDATE (QTY) ON SPJ TO 李勇D. GRANT UPDATE ON SPJ (QTY) TO 李勇12.图1中( B )是最小关系系统A B C D图113.关系规范化中的插入操作异常是指 ( D )A.不该删除的数据被删除B.不该插入的数据被插入C.应该删除的数据未被删除D.应该插入的数据未被插入14.在关系数据库设计中,设计关系模式是数据库设计中( A )阶段的任务A.逻辑设计B.物理设计C.需求分析D.概念设计15.在E-R模型中,如果有3个不同的实体型,3个m:n联系,根据E-R模型转换为关系模型的规则,转换后关系的数目为( C )。

史上最全Oracle数据库基本操作练习试题[含答案解析]

史上最全Oracle数据库基本操作练习试题[含答案解析]

史上最全Oracle数据库基本操作练习试题[含答案解析] Oracle基本操作练习题使⽤表:员⼯表(emp):(empno NUMBER(4)notnull,--员⼯编号,表⽰唯⼀ename VARCHAR2(10),--员⼯姓名job VARCHAR2(9),--员⼯⼯作职位mgr NUMBER(4),--员⼯上级领导编号hiredate DATE,--员⼯⼊职⽇期sal NUMBER(7,2),--员⼯薪⽔comm NUMBER(7,2),--员⼯奖⾦deptno NUMBER(2)—员⼯部门编号)部门表(dept):(deptno NUMBER(2)notnull,--部门编号dname VARCHAR2(14),--部门名称loc VARCHAR2(13)—部门地址)说明:增删改较简单,这些练习都是针对数据查询,查询主要⽤到函数、运算符、模糊查询、排序、分组、多变关联、⼦查询、分页查询等。

建表脚本.txt建表脚本(根据需要使⽤):练习题:1.找出奖⾦⾼于薪⽔60%的员⼯信息。

SELECT * FROM emp WHERE comm>sal*0.6;2.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。

SELECT * FROM emp WHERE (JOB='MANAGER' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20);3.统计各部门的薪⽔总和。

SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;4.找出部门10中所有理(MANAGER),部门20中所有办事员(CLERK)以及既不是经理⼜不是办事员但其薪⽔⼤于或等2000的所有员⼯的详细资料。

SELECT * FROM emp WHERE (JOB='MANAGER' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20) OR (JOB NOT IN('MANAGER','CLERK') AND SAL>2000);5.列出各种⼯作的最低⼯资。

查询emp表的所有记录

查询emp表的所有记录

查询emp表的所有记录。

Select * from emp查询emp表,显示员工姓名和工资。

Select ename,sal from emp;查找员工的姓名和薪水和奖金。

Select ename,sal,comm from emp查询每个部门的平均工资,显示部门名称和平均工资。

删除emp表中员工编号为7782 的员工信息。

修改编号是7784的员工的工资和奖金,与员工编号是7600的工资和奖金一样。

查询每位员工的姓名和部门名称。

删除emp表中员工编号为7007 的员工信息。

修改编号是7784的员工的工资为5000。

查询员工表中的最高工资。

查询每个部门最低工资的员工信息。

写PL/SQL代码,接收一个雇员的编号,如果其工资>= 3000,则显示高工资,工资>= 2000,则显示中等工资,否则认为是低等工资。

编写一个存储过程,带有两个参数,要求,可以传入部门的编号,传出部门的平均工资操作。

1、关闭oracle数据库命令有:shutdown abort、shutdown transcational、()、()2、想要使INSERT,DELETE和UPDATE语句导致的数据库变化,执行事务取消()命令。

3、使用游标和 loop 循环来显示所有部门的的地理位置(用%notfound 属性)。

PL SQL语句为:(完成以下代码)Declarealoc dept.loc%rowtype;cursor cur_dept is select loc from dept;BeginOpen cur_dept;LoopFetch cur_dept into aloc;If ( ) then exit;else dbms_output.put_line(aloc);end if;End loop;Close cur_dept;End;4、游标的操作包括声明游标、打开游标、取得游标值、(关闭游标)。

5、oracle数据库启动步骤为nomount、( mount )、open。

emp、dept表查询综合

emp、dept表查询综合

(1)查询佣金为为null的员工的信息(2)显示姓名没有'L'字的员工的详细信息或含有'SM'字的员工信息(3)查询出有3个以上下属的员工信息(4)查询各个部门的人数及平均工资(5)查询没有员工的部门信息(6)统计各个工种的人数与平均工资、最低工资。

(7)查询部门人数大于5的部门的员工的信息。

(8)查询emp表内工资高于30部门平均工资的员工信息(9)查询emp表中职位为clerk的员工信息,并按工资降序排列。

(10)查询emp表中工资位于前3名的员工信息。

(11)查询所有员工的姓名及其直接上级的姓名。

(12)查询各个部门各工种的最高工资。

(13)查询各部门平均工资和最大工资,要求显示部门编号。

(14)查询名字里第二个字母为a并且部门编号为30的工资总和。

(15)查询工资相同的员工的工资和姓名(16)查询工资最高的第6-10名员工(17)显示销售部(‘SALES’)员工的姓名(18)查询每个员工的领导所在部门的信息。

(19)显示与30号门’MARTIN’员工工资相同的员工的姓名和工资(20)查询所有工资高于平均工资(包括所有员工)的销售人员(21)查询SOCTT员工及其直接上级的名字。

(22)查询在研发部(RESEARCH)工作人员的编号,姓名,工作部门,工作所在地(23)查询各个部门的名称和员工人数(24)查询各个部门员工工资大于平均工资(平均工资包括所有员工)的人数(25)查询各个部门工资最高的员工姓名(26)查询每个员工的姓名及其所在的工作地点(包括没有部门的员工)。

(27)查询至少有一个员工的部门名称。

(28)显示员工‘clark’的所在部门名称。

(29)显示部门为‘sales’的所有员工信息及部门名称。

(30)统计各部门的平均薪资、员工人数;注:工资=薪水+佣金(31)给薪水低于2500的员工在原基础上涨30%。

(32)列出工资高于公司平均工资的所有员工;注:工资=薪水+佣金(33)列出所有员工的姓名,部门名称和工资。

关于Oracle中查询结果为未选定行

关于Oracle中查询结果为未选定行

关于Oracle中查询结果为未选定⾏今天在做关于Oracle查询语句的练习时,碰到这么⼀个题⽬:找出EMP表中姓名(ENAME)第三个字母是A的员⼯姓名。

我的Scott.emp表的现有数据如下:SQL> select * from emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- -------------- ---------- ---------- ----------7369 SMITH CLERK 7902 17-12⽉-80 800 207499 ALLEN SALESMAN 7698 20-2⽉ -81 1600 300 307521 WARD SALESMAN 7698 22-2⽉ -81 1250 500 307566 JONES MANAGER 7839 02-4⽉ -81 2975 207654 MARTIN SALESMAN 7698 28-9⽉ -81 1250 1400 307698 BLAKE MANAGER 7839 01-5⽉ -81 2850 307782 CLARK MANAGER 7839 09-6⽉ -81 2450 107788 SCOTT ANALYST 7566 19-4⽉ -87 3000 207839 KING PRESIDENT 17-11⽉-81 5000 107844 TURNER SALESMAN 7698 08-9⽉ -81 1500 0 307876 ADAMS CLERK 7788 23-5⽉ -87 1100 207900 JAMES CLERK 7698 03-12⽉-81 950 307902 FORD ANALYST 7566 03-12⽉-81 3000 207934 MILLER CLERK 7782 23-1⽉ -82 1300 107399 JACK CLERK 7698 3300 20我的Select查询语句是这样写的 select enamel from emp where ename like '__A';查询结果为SQL> select ename from emp where ename like '__A';未选定⾏开始以为是查询语句写错了,左改右改结果还是这样。

Oracle表的基本查询

Oracle表的基本查询

表旳基本查询1、查看表构造Desc dept;2、查看所有列Select * from dept;3、查看指定列Select ename,sal,job,deptno from emp;4、如何取消反复Select distinct deptno,job from emp;5、set timing on;显示查询时间6、使用算数体现式显示每个雇员旳年工资Select (sal+nvl(comm,0))*12 as 年工资,ename as 姓名from emp;使用列旳别名Select eanme “姓名”,sal*12 as “年收入”from emp;如何使用null值使用nvl函数来解决如何连接字符串(||)Select ename || ‘is a ’ || job from emp;7、使用where子句如何显示工资高于3000旳员工select * from emp where sal>3000;如何查找1982.1.1后入职旳员工select * from emp where hiredate>'1-1月-1982';如何显示工资在到2500旳员工状况select * from emp where sal> and sal<2500;8、如何使用like操作符%:表达任意0到多种字符_:表达任意单个字符如何显示首字符为S旳员工姓名和工资Select ename,sal from emp where ename like ‘S%’如何显示第三个字符为大写O旳所有员工旳姓名和工资Select ename,sal from emp where ename like ‘__o%’;9、在where条件中使用in如何显示empno为123,345,80…旳雇员状况Select * from emp where empno in (123,345,);10、使用in null 旳操作符如何显示没有上级旳雇员旳状况Select * from emp where mgr is null;11、使用逻辑操作符号查询工资高于500或是岗位为MANAGER旳员工,同步还要满足他们旳姓名首写字母为大写旳J?select * from emp where (sal>500 or job='MANAGER') andename like 'J%';12、使用order by 子句如何按照工资旳从低到高旳顺序显示雇员旳信息?select * from emp order by sal;按照部门号升序而雇员旳工资降序排列?select * from emp order by deptno asc,sal desc;13、使用列旳别名排序Select ename, sal*12 “年薪” from emp order by “年薪” asc;表复杂查询14、数据分组-max,min avg,sum,count如何显示所有员工中最高工资和最低工资?Select max(sal),min(sal) from emp;显示所有员工旳平均工资和工资总和?select avg(sal+nvl(comm,0)),sum(sal+nvl(comm,0)) from emp;计算共有多少员工?Select count(*) from emp;扩展规定:请显示工资最高旳员工旳名字,工作岗位?select ename,job from emp where sal=(select max(sal+nvl(comm,0)) from emp);请显示工资高于平均工资旳员工信息?select * from emp where sal>(select avg(sal) from emp);15、group by 和having子句group by 用于对查询旳成果分组记录,having 子句用于限制分组显示成果。

根据Oracle数据库scott模式下的emp表和dept表

根据Oracle数据库scott模式下的emp表和dept表

题目要求:根据Oracle 数据库scott 模式下的emp 表和dept 表,完成下列操作。

(1)查询20 号部门的所有员工信息。

select * from emp where deptno = 20;(2)查询所有工种为CLERK 的员工的工号、员工名和部门名。

select empno,ename,deptno from emp where job like 'CLERK';(3)查询奖金(COMM )高于工资(SAL )的员工信息。

select * from emp where comm > sal;(4)查询奖金高于工资的20%的员工信息。

select * from emp where comm > (sal*0.2);(5)查询10 号部门中工种为MANAGER 和20 号部门中工种为CLERK 的员工的信息。

select * from empwhere (deptno = 10 and job like 'MANAGER') or (deptno = 20 and job like 'CLERK');(6)查询所有工种不是MANAGER 和CLERK ,且工资大于或等于2000 的员工的详细信息。

select * from empwhere job not in ('MANAGER','CLERK') and sal >= 2000 ;(7)查询有奖金的员工的不同工种。

select distinct job from emp where comm is not null;(8)查询所有员工工资和奖金的和。

select ename,(sal+nvl(comm,0)) salcomm from emp;(9)查询没有奖金或奖金低于100 的员工信息。

select * from emp where (comm is null or comm < 100) ;(10)查询各月倒数第 2 天入职的员工信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

练习4.根据emp表写下列查询代码
1.选择部门30中的所有员工.
2.列出所有办事员(CLERK)的姓名,编号和部门编号.
3.找出奖金高于基本工资的员工.
4.找出奖金高于基本工资的60%的员工.
5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料.
6.找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其基本工资大于或等于2000的所有员工的详细资料.
创建student表,插入数据,写出后面的查询代码
create table student(
sno char(5),
sname varchar(20),
sage number(3),
ssex char(2),
sdept char(2)
);
insert into student values('98001','钱横',18,'男','cs');
insert into student values('98002','王林',19,'女','cs');
insert into student values('98003','李明',20,'男','is');
insert into student values('98004','赵三',16,'女','ma');
1.查询性别为“男”的“cs”学院的学生的姓名、性别、院系
2.查询年龄大于18岁,并且不是“cs”学院与“ma”学院的学生的姓名和性别
3.查询姓“王”的学生的信息
排序练习
练习2.根据scott用户下的员工表和部门表完成下列题目
1.查询员工表显示员工名字、编号、工资,查询结果以名字为序升序排列
2.查询员工表显示员工名字、编号、工资,查询结果以工资升序排列,工资相同以名字升
序排列
3.查询员工表显示员工名字、编号、工资、部门编号,查询结果以部门编号排序,部门编
号相同的以员工名排序
4.根据员工表查询有几个部门编号,并以部门编号升序排列
练习3. 创建学生表STU2(sno,sname, final,usual),各字段分别是学号、姓名、期末成绩、平时
1.查询显示学生的学号、姓名、总成绩,总成绩=final*80%+usual*20%
2.查询显示学生的姓名、学号、平时成绩和期末成绩,并以期末成绩降序排列,如果期末
成绩相同的以平时成绩降序排列
3.查询显示学生的学号、姓名、总成绩,总成绩=final*80%+usual*20%,并以总成绩降序
排列,总成绩相同的以学号升序排列,显示时标题分别是学号、姓名、总成绩
select * from emp where deptno=30;
select ename,empno,deptno from emp where job='CLERK';
SELECT * from emp where comm>sal;
select * from emp where comm>sal*0.6;
select * from emp where deptno=10 and job='MANAGER' or DEPTNO=20 and job='CLERK';
/*select * from emp where deptno in(10,20) and job in('CLERK','MANAGER'); */
select * from emp where deptno=10 and job='MANAGER' or DEPTNO=20 and job='CLERK' or job not in('CLERK','MANAGER') and sal>=2000;
create table student(
sno char(5),
sname varchar(20),
sage number(3),
ssex char(2),
sdept char(2)
);
insert into student values('98001','钱横',18,'男','cs');
insert into student values('98002','王林',19,'女','cs');
insert into student values('98003','李明',20,'男','is');
insert into student values('98004','赵三',16,'女','ma');
select sname,ssex,sdept from student where ssex='男' and sdept='cs';
select sname,ssex from student where sage>18 and sdept not in('cs','ma');
select * from student where sname like '王%';
select ename,empno,sal from emp order by ename;
select ename,empno,sal from emp order by sal,ename;
select ename,empno,sal,deptno from emp order by deptno,ename;
select distinct deptno from emp order by deptno;
create table STU2(
Sno number,
Sname varchar(7),
final number,
ususal number);
insert into STU2 values (2010001,'王刚',89,75);
insert into STU2 values (2010002,'李强',75,75);
insert into STU2 values (2010003,'赵磊',95,85);
insert into STU2 values (2010004,'张明',75,65);
select Sno,Sname,final*0.8+ususal*0.2 from STU2;
select Sname,Sno,final,ususal from STU2 order by final desc,ususal desc;
select Sno 学号,Sname 姓名,final*0.8+ususal*0.2 总成绩from STU2 order by final*0.8+ususal*0.2 desc,Sno;。

相关文档
最新文档