一个小面试题sql
一、 问答题
1简要说明分页是如何实现的.
A:sqlserver:
Select top(pagesize) * from student where id not in(select top(pagesize*pageCode-1) id from student);
B:mysql:
Select * from student limit(pagesize*(pageCode-1),pagesize*pageCode);
C:oracle:
Select * from student where rownum>pagesize*(pageCode-1) and rownum<pagesize*pageCode;
2 sql语句的分组用什么来实现? group by
3 sql语句如何去连接数据库? DriverManager.connect(url,name,password);
4 写一段Jdbc连Oracle的程序.
Class.forName(“Oracle.jdbc.driver.OracleDriver”);
DriverManagger.getConnection(“jdbc:oracle:thin:@localhost:1521:Yule”,”scott”,”tiger”);
5 什么是事务? 数据库同时成功或同时失败的操作集合。
事务仅与数据库有关,服从ACID原则。A:原子性:事务执行过程中的任何失败都会导致事务所做的任何修改失效。C:一致性:事务执行失败,所有被事务影响的数据回到事务执行前的状态。I:隔离性:事务完成前的修改在提交之前对其他事务都不可见。D:持久性:已经提交成功的数据就回不去之前的状态了。
6 ORM的全称是什么?对象关系映射。 类-->表 对象-->记录 属性--->字段
7关系型数据操作对象是什么 :sql,操作类型主要有哪些?各是什么意思?
Ddl :数据定义语言.create xxxx
Dml:upad.drop ,truncate.
Dcl:grant revoke deny
8 取出数据库中不重复记录的方法,不用distinct用什么方法?多级分组
select id,name1,name2 from test3 group by id,name1,name2;
9建了数据库表,你用什么措施去优化:索引,存储过程,缓存,视图,多用关联代替子查询。。。。
10你们用PowerDesigner主要用来做什么: e-r图-->导出sql语句。
步骤:概念模型-->物理模型(e-r图)-->导出数据库。
11 关系型数据模式采用什么来描述实体•实体间的关系:E-R图。
12 关系型数据操作对象是什么,操作类型主要有哪些?Ddl,dml,dcl。
13 请描述第一范式(原子性)•第二范式(唯一性)•第三范式(非主键无依赖)的含义
14 sqlserver中取得当前时间的SQL语句?及将取得的当前时间转化为YYYYMMDD格式的字符串的SQL语句。 Selecct conver(110,now());
15 SQL SERVER中count(1)和count(*)的区别? Count(1) 取表的第一个字段的不重复个数,对于第1个字段为主键的表,count(1)=count(*),速度更快。
Count(*)所有记录数,包含重复。
16 说说Truncate、Delete、Drop他们之间的区别?
Truncate:清空(截断)表,会删除日志,对于sql server 和mysql,自增回到起点。不删除约束。
Delete:删除记录,不删除其他。
Drop:删除表及日志及约束。
17 用列子实现一下左外、右和内连接的结果集?
Student :
1 吕斌 1
2 玉露 2
3 徐林 3
Sex:
1 男
2 女
4 变态
左外:
1 吕斌 男
2 玉露 女
3 徐林 null
右外
1 吕斌 男
2 玉露 女
Null null 变态
全外
1 吕斌 男
2 玉露 女
3 徐林 null
Null null 变态
内联
1 吕斌 男
2 玉露 女
二、 设计题
1 有三表。人员表(id,name,部门id,入职日期,等级)
部门表(id,公司id,名称)
公司表(id,名称)
(1)联合查询,得到“部门是财务部 公司是XX 的用户名”
Select emp.name from emp inner join dept on emp.部门id=dept.id inner join company on dept.comid=company.id
Where dept.name=’财务部’ and company.name=’XX’
(2) 对表进行更新,将部门是IT部的所有员工等级普升一级.
Update emp set level=level+1 where deptid in (select id from dept where name=’it’);
2 有表A,结构如下:
YHID YHXM YHNN GZDW
001 张三 22 01
002 李四 23 02
003 王五 24 03
表B,结构如下:
YHID GL JTCY ZZMM
001 2年 3人 党员
002 3年 3人 团员
003 4年 3人 团员
表C,结构如下:
DWID DWMC
01 人事局
02 工商局
03 教育局
其中A`B表以YHID关联;A`C表以GZDW和DWID关联。现需要建立视图如下:
YHID YHXM YHNN ZZMM JTCY GZDW GL
001 张三 22 党员 3人 人事局 2年
002 李四 23 团员 3人 工商局 3年
003 王五 24 团员 3人 教育局 4年
请写出建立视图V1的SQL语句。
Create view V1 as
Select a.yhid,a.yhxm,a.yhnn,b.zzmm,b.jtcy,c.dwmc,b.gl from a inner join b on a.yhid=b.yhid inner join c on a.yhid=c.dwid
3 .有表A,结构如下:
学生编号 选修课程编号
3 001
3 002
2 003
1 001
2 003
1 001
3 001
1 001
2 003
请以ID为查询条件,写出查询语句,得到选修2门以上(含2门)课程的学生编号。
Select distinct stuid from student where stuid in(select stuid from student having count(1)>=2)
4有表A,结构如下:
YHID YHZID YHMC
001 1 张三
002 1 李四
003 2 王五
004 2 陆六
表B,结构如下:
YHID YHQX FA
001 22222 ABC
002 22223 AB
003 22224 ABD
004 22222 ABC
现在想得到YHMC为张三的YHID` YHQX` FA 写出查询语句。
Select b.yhid,b.yhqx,b.fa from b inner join a on b.yhid=a.yhid where a.yhmc=’张三’
5请写出下表的建表SQL语句:
编号 字段名称 类型 长度 约束
1 IDCODE 整数 5 主键
2 NAME 变长字符 8 非空
3 AGE 整数 2 不能小于1,大于120
4 SEX 定长字符 1 学生编号
Create table test
(
Idcode int(5) primary key,
Name varchar(8) not null,
Age int(2) check(age>=1 and age<=120),
Sex char(1)
)
6有一张表TABLE,结构如下:
USERID CXFA
001 人口查询 1 sum
002 车辆查询
001 人口查询
002 车辆查询
001 物品查询
002 道路查询
001 人口查询
要查出结果如下:
USERID 人口查询个数 车辆查询个数
001 3 0
002 0 2
请问该SQL查询语句如何编写
Select userid,sum(case cxfa=’人口查询’ then 1 else 0 end)as 人口查询个数,sum(case cxfa=’车辆查询’ then 1 else 0 end) as 车辆查询个数from table group by userid;
Select userid,sum(decode(cxfa,’人口查询’ ,1 0) ) as 人口查询个数,sum(decode(cxfa,’车辆查询’ ,1 0)) as 车辆查询个数from table group by userid;
Mysql中
select userid,sum(case when cxfa='人口查询' then '1' else '0' end)
as 人口查询个数,sum(case when cxfa='车辆查询' then '1' else '0' end) as 车辆查询个数
from test4 group by userid;
7用一个语句,查找出表中第21-29的记录,表中的ID在SQL SERVER中自动生成,但是不连续。
Select top(10) * from student where id not in(select top(20) id from student);
8有三张表
S代表学生表,字段学生编号sno 、学生姓名sname ...
C代表课程表,字段课程编号cno、课程名称cname,
SC代表成绩表,字段学生编号sno、课程编号cno、成绩score
写出有两门课程以上(含有两门课程)学生的姓名、平均成绩
Select s.name,avg(sc.score) from s inner join sc on s.sno=sc.sno having count(sno)>=2
9 表名:考勤。列名:姓名,请假开始时间,请假结束时间。请查询8月份请假的人,起始时间。
Select name,begintime from 考勤 where begintime to_char(‘mm’,begintime)=’08’
一个小面试题sql的更多相关文章
- 从一个小例子认识SQL游标
1 什么是游标: 关系数据库中的操作会对整个行集起作用. 例如,由 SELECT 语句返回的行集包括满足该语句的 WHERE 子句中条件的所有行. 这种由语句返回的完整行集称为结果集. 应用程序 ...
- 通过一个小问题来学习SQL关联查询
原话题: 是关于一个left join的,没有技术难度,但不想清楚不一定能回答出正确答案来: TabA表有三个字段Id,Col1,Col2 且里面有一条数据1,1,2 TabB表有两个字段Id,Col ...
- 关于SQL Server镜像的一个小误区
昨天晚上突然接到客户的电话, 说在配置了镜像的生产环境数据库下修改 “已提交读快照” 选项的时候报错, 需要先取消镜像然后再重新搭建.悲催的是这是个近TB的数据库,问我有没有什么快速的方法.于是我就问 ...
- java连接mysql的一个小例子
想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一 ...
- 前端程序员经常忽视的一个 JavaScript 面试题
题目 function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function () { ...
- oracle 解锁表的一个小问题
最近开发的时候遇到一个小问题,执行一段sql之后发现 表被锁了 显示错误为:ora-00054:resource busy and acquire with nowait specified 百度之后 ...
- 前端同学经常忽视的一个 JavaScript 面试题
题目 function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = funct ...
- Spring框架——事务管理方式搭建一个小的项目
学习Spring框架,通过事务管理的方式搭建一个小的项目,该项目可以查询对数据库中的图书库存数量进行修改. 首先,使用MVC分层的设计模式思想搭建项目目录结构. 此部分代码源码之中都有相关注释,所以尽 ...
- 正则表达式小技巧,sql中in的字符串处理
工作中我经常写sql,当写带in的语句时,需要敲好多单引号,逗号,敲写起来容易易出错.因此,我写了一个小工具,处理这种繁琐工作.原理简单,利用正则表达式匹配.替换. 先看界面,一个html页面,包含三 ...
随机推荐
- 解决Myeclipse 编辑jsp页面卡
解决Myeclipse 编辑jsp页面卡 编辑一个jsp页面时,如果每输入一下,CPU都100%一下,和大家分项一下. 问题: 当你编辑一个jsp页面时,如果每输入一下,CPU都100%一下,3, ...
- iOS模型以及使用
个人习惯,也可以不这样写 创建模型基类: #import <Foundation/Foundation.h> @interface WJBaseModel : NSObject //将字典 ...
- kafka配置
官网:http://kafka.apache.org/ 主要有3种安装方式: 1. 单机单broker 2. 单机多broker 3. 多机多broker 1. wget http://mirror. ...
- Linux多线程之同步2 —— 生产者消费者模型
思路 生产者和消费者(互斥与同步).资源用队列模拟(要上锁,一个时间只能有一个线程操作队列). m个生产者.拿到锁,且产品不满,才能生产.当产品满,则等待,等待消费者唤醒.当产品由空到不空,通知消费者 ...
- linux登陆欢迎提示信息的设置
Linux可以设置登录前后的欢迎信息,虽然没啥技术含量,但却是非常实用的一个小技巧. 实现登录消息的功能,可以修改3个文件. 1./etc/issue 本地登陆显示的信息,本地登录前 2./etc/i ...
- Include Native *.so Library in APK With Android Studio
Originally posted on:http://www.kylethielk.com/blog/include-native-so-library-in-apk-with-android-st ...
- UITableViewCell的重用机制原理
UITableViewCell的重用机制原理 来自http://blog.csdn.net/omegayy/article/details/7356823 ====================== ...
- iOS开发--即时通讯常用第三方库
前言 自毕业到现在,从事iOS即时通讯开发已经1年半之久.主要负责Allure开发,目前已上架,可以在苹果商店搜素Allure.Allure模仿微信的交互和设计效果,已经实现微信的大部分功能. 在这里 ...
- Qt 显示图片 放大 缩小 移动(都是QT直接提供的功能)
本文章原创于www.yafeilinux.com 转载请注明出处. 现在我们来实现在窗口上显示图片,并学习怎样将图片进行平移,缩放,旋转和扭曲.这里我们是利用QPixmap类来实现图片显示的. 一.利 ...
- 【解惑】Java动态绑定机制的内幕
在Java方法调用的过程中,JVM是如何知道调用的是哪个类的方法源代码? 这里面到底有什么内幕呢? 这篇文章我们就将揭露JVM方法调用的静态(static binding) 和动态绑定机制(auto ...