JAVA面试SQL习题集

上传人:鲁** 文档编号:455356358 上传时间:2022-08-28 格式:DOCX 页数:35 大小:30.59KB
返回 下载 相关 举报
JAVA面试SQL习题集_第1页
第1页 / 共35页
JAVA面试SQL习题集_第2页
第2页 / 共35页
JAVA面试SQL习题集_第3页
第3页 / 共35页
JAVA面试SQL习题集_第4页
第4页 / 共35页
JAVA面试SQL习题集_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《JAVA面试SQL习题集》由会员分享,可在线阅读,更多相关《JAVA面试SQL习题集(35页珍藏版)》请在金锄头文库上搜索。

1、SQL习题集数据库拆表原则1. 简单字段中的复合字段:解决方法:向上打通,或拆成两表2. 完全依赖:知道a就能知道b,返过来就不一定.实现:将同一个主题的东西放在一起.主题可以是一个实体、名词、概念。3. 无传递依赖。将传递依赖转为直接依赖。原因:减少插入冗余。减少增删异常。4. 当出现一对多时不能横拆,一定拆成两个表,特别的固定范围可以横拆(签到管理)5. 多对多必有中间表6. 代码表,大量重复的或枚举型可以用代码表.7. 能计算的字段不要数据定义语句DDLcreate alter drop数据控制语句DCLgrant deny revoke数据操纵语句DMLselect update in

2、sert delete一.SQL Server 2000Select 变化集锦1 查询所有字段(效率低)查询所有的老师select *from dbo.教师2字段枚举查询教师的ID,及姓名两项select 教师_ID,教师名from dbo.教师3字段取别名方法有二1)as可以省略select 教师名 as teacherfrom dbo.教师2)select teacher = 教师名from dbo.教师4.字段的可计算性1) 简单字段计算教师工资的10%select 工资*0.1from dbo.教师2)把一个检索结果作为查询字段本学校的师生比例select (select count(

3、*)from dbo.教师)/1.0/(select count(*)from dbo.学生) f5取检索结果的前几个select top 3 教师_IDfrom dbo.教师6 取检索结果总数的百分比select top 30 percent 教师_IDfrom dbo.教师7 去掉重复记录select distinct 性别_IDfrom dbo.教师8 在聚合统计函数中统计不重复指定字段select count(distinct 系_ID )from dbo.教师9 case when then else end在seelct中的应用从教师表中查询,将性别_id是1的显示为男,是2的显示

4、为女select (case when 性别_ID=1 then 男when 性别_ID=2 then 女end )from dbo.教师横向查询男女人数select sum(case when 性别_ID=1 then 1else 0end ) as nan, sum(case when 性别_ID=2 then 1else 0end ) as nvfrom dbo.教师 10 可以重复列出表的的字段select *,*,*from 教师11 检索结果放常量select 教师名, 出生于,出生日期from dbo.教师-From变化集锦1从一个表中检索select *from dbo.教师2

5、 从一个检索结果中再检索即从临时表中检索select *from (select 教师_ID, 教师名, 出生日期, 系_ID, 性别_ID, 职称_IDfrom dbo.教师)lin sqlserver2000中临时表通常要起别名where lin.教师_ID 、 =、 、 =、 !=、 、 =select 教师_IDfrom dbo.教师where 教师_ID1只检索表结构不要任何数据Select *From dbo.教师Where 1!=12 常规逻辑运算 not 、and 、orselect 教师_IDfrom dbo.教师where not( 教师_ID=1 and 教师_ID=1

6、并且 教师_ID any(select 教师_IDfrom dbo.教师认课)9. all 全部 相当于 大于最大maxselect *from dbo.教师where 教师_ID all(select 教师_IDfrom dbo.教师认课 )Group by 集锦1.group by 通常与聚合函数(avg ,sum ,count,max,min)配合使用查询出学生表中男女生人数select count(*) as renshufrom dbo.学生group by 性别_ID2针对多字段的分组每个系的男女生人数select count(*) as renshu from dbo.学生gro

7、up by 性别_ID,系_ID3 多表查询中的分组应用select count(*) as rs,系名from dbo.学生 xs inner join dbo.系 xion xs.系_ID = xi.系_IDgroup by 系名4 对于计算字段的分组应用查询出计算机系学生数和其它系的学生数select count(*),(case when 系_ID=1 then jsjxelse qtend)from dbo.学生group by (case when 系_ID=1 then jsjxelse qtend)5 分组条件having的用法系人数在10人以上的系select count(*

8、) as shu ,系_IDfrom dbo.学生group by 系_IDhaving count(*) 10或写成select *from (select count(*) as shu ,系_IDfrom dbo.学生group by 系_ID) linshiwhere linshi.shu 10order by集锦1. 对单个字段的排序(asc升序可省略 desc降序)select 教师_ID, 教师名, 出生日期, 系_ID, 性别_ID, 职称_IDfrom dbo.教师order by 教师名 2.多字段的排序(先按第一个字段排序,如果相同再按第二个字段排序)写法1。select 教师_ID, 教师名, 出生日期, 系_ID, 性别_ID, 职称_IDfrom dbo.教师

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号