`
sammyfun
  • 浏览: 1163503 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

关于sql注意的地方

 
阅读更多
1.当分组语句的前边没有查寻项目的时候,group by 后边可以是任意项
select sun(price*num) from books group by pub;
当分组语句的前边有项目的时候,group by 后边必须都写上前边的项,也就是group by 后边的项目只可能等于或者多于前面的项
select pub ,sum(price*num) from books group by pub;        right
select pub ,sum(price*num) from books group by pub,book_name;        right
select pub ,book_name,sum(price*num) from books group by pub,book_name;  right
select pub ,book_name,sum(price*num) from books group by pub;  wrong
2.不能一聚集函数作为分组的条件,这个时候要用having子句,但是having子句要放到最后边;
select pub ,sum(price*num) from books where price>30 group by pub;  right
select pub ,sum(price*num) from books  sum(price)30 group by pub;  wrong

select pub ,sum(price*num) from books group by pub having sum(price)>30;

3.有时候有这么一种需求,可能需要查寻某个字段重复,或者重复的次数
select name,count(name) from user group by name having count(name)>1;
name   count(name)
lisi   2
4.内连接   只显示a表和b表的数据公共匹配的数据
简化写法:select id,name,sex,d.name from e,d where e.di=b,id;
标准写法:select id,name,sex,d.name from e join d on e.di=b,id;
5.外连接,就是不完全比配的情况,匹配上的显示,匹配不上的用空值替代
  左外连接:以左边的为准,它所有的字段都显示,右边的匹配不上用空值替代
  select id,name,sex,d.name from e,d where e.di=b,id(+);
  右外连接:以右边的为准,它所有的字段都显示,左边的匹配不上用空值替代
  select id,name,sex,d.name from e,d where e.di(+)=b,id;
6.子查寻
  1.无关子查寻
  select * from a where id in (select id from b)没有和父查寻关联的条件
  1.相关子查寻
   select * from a where id in (select id from b where id ='03')



列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序
select employee921.id,employee921.name,employee921.salary,employee921.dep
tid tid from  employee921 where salary > (select avg(salary) from employee921 group by deptid having deptid = tid


select count(*) ,tid
from (
select employee921.id,employee921.name,employee921.salary,employee921.deptid tid
from  employee921
where salary >
(select avg(salary) from employee921 where  deptid = tid)
) as t
group by tid ;


关联查询
select a.ename,a.salary,a.deptid
from emp a,
    (select deptd,avg(salary) avgsal from emp group by deptid ) b
where a.deptid=b.deptid and a.salary>b.avgsal;


7.用一条SQL语句 查询出每门课都大于80分的学生姓名 
name   kecheng   fenshu
张三     语文       81
张三     数学       75
李四     语文       76
李四     数学       90
王五     语文       81
王五     数学       100
王五     英语       90

准备数据的sql代码:
create table score(id int primary key auto_increment,name varchar(20),subject varchar(20),score int);
insert into score values
(null,'张三','语文',81),
(null,'张三','数学',75),
(null,'李四','语文',76),
(null,'李四','数学',90),
(null,'王五','语文',81),
(null,'王五','数学',100),
(null,'王五 ','英语',90);

提示:当百思不得其解时,请理想思维,把小变成大做,把大变成小做,

答案:
A: select distinct name from score  where  name not in (select distinct name from score where score<=80)

B:select distince name t1 from score where 80< all (select score from score where name=t1);




8、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
a: 两种形式 dtd  schema,b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的),c:有DOM,SAX,STAX等
   DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问
SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问
   STAX:Streaming API for XML (StAX)

9.xml有哪些解析技术?区别是什么?
答:有DOM,SAX,STAX等
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问
STAX:Streaming API for XML (StAX)
10.你在项目中用到了xml技术的哪些方面?如何实现的?
答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。
11.J2EE是什么?
答:Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。
J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。
   J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。
12.你对Spring的理解。
1.Spring实现了工厂模式的工厂类(在这里有必要解释清楚什么是工厂模式),这个类名为BeanFactory(实际上是一个接口),在程序中通常BeanFactory的子类ApplicationContext。Spring相当于一个大的工厂类,在其配置文件中通过<bean>元素配置用于创建实例对象的类名和实例对象的属性。
2. Spring提供了对IOC良好支持,IOC是一种编程思想,是一种架构艺术,利用这种思想可以很好地实现模块之间的解耦。IOC也称为DI(Depency Injection),什么叫依赖注入呢?
譬如,Class Programmer
{
Computer computer = null;
public void code()
{
//Computer computer = new IBMComputer();
//Computer computer = beanfacotry.getComputer();
computer.write();
}
public void setComputer(Computer computer)
{
this.computer = computer;
}
}
另外两种方式都由依赖,第一个直接依赖于目标类,第二个把依赖转移到工厂上,第三个彻底与目标和工厂解耦了。在spring的配置文件中配置片段如下:
<bean id=”computer” class=”cn.itcast.interview.Computer”>
</bean>

<bean id=”programmer” class=”cn.itcast.interview.Programmer”>
<property name=”computer”  ref=”computer”></property>
</bean>
3. Spring提供了对AOP技术的良好封装, AOP称为面向切面编程,就是系统中有很多各不相干的类的方法,在这些众多方法中要加入某种系统功能的代码,例如,加入日志,加入权限判断,加入异常处理,这种应用称为AOP。实现AOP功能采用的是代理技术,客户端程序不再调用目标,而调用代理类,代理类与目标类对外具有相同的方法声明,有两种方式可以实现相同的方法声明,一是实现相同的接口,二是作为目标的子类在,JDK中采用Proxy类产生动态代理的方式为某个接口生成实现类,如果要为某个类生成子类,则可以用CGLI B。在生成的代理类的方法中加入系统功能和调用目标类的相应方法,系统功能的代理以Advice对象进行提供,显然要创建出代理对象,至少需要目标类和Advice类。spring提供了这种支持,只需要在spring配置文件中配置这两个元素即可实现代理和aop功能,例如,
<bean id=”proxy” type=”org.spring.framework.aop.ProxyBeanFactory”>
<property name=”target” ref=””></property>
<property name=”advisor” ref=””></property>

</bean>



  • demo.rar (3.6 KB)
  • 描述: 4
  • 下载次数: 3
分享到:
评论

相关推荐

    ACCESS中使用SQL语句应注意的地方及几点技巧

    ### ACCESS中使用SQL语句应注意的地方及几点技巧 在ACCESS数据库管理系统中,SQL(Structured Query Language)是非常重要的组成部分,它不仅用于数据查询,还可以用来创建、更新和删除数据。为了更好地利用ACCESS...

    SQL初学者需要注意的要点

    在SQL server的学习过程中,对于初学者来说,入门比较难,需要注意的地方有很多~

    三个SQL视图查出所有SQL Server数据库字典

    - **文档参考**:SQL Server官方文档提供了详尽的系统表和函数说明,遇到不清楚的地方应查阅文档。 通过以上内容,我们可以了解到通过构建合适的SQL查询,可以有效地查询和利用SQL Server数据库字典中的信息。这...

    在ASP.NET中如何正确书写SQL字符串

    ### 在ASP.NET中正确书写SQL字符串的关键知识点 #### 一、引言 ...此外,在实际应用中还应注意SQL注入的风险,确保应用程序的安全性。通过遵循这些指导原则,开发者可以更加自信地处理数据库相关的编程任务。

    SQL全能卸载工具.zip

    这就是"SQL全能卸载工具"发挥作用的地方。这个工具设计用于帮助用户彻底卸载SQL Server,包括其所有依赖项和残留物。它通过扫描系统并识别与SQL Server相关的一切,确保在卸载过程中无遗漏。这样,在重新安装时,...

    SQL_SERVER_2008升级SQL_SERVER_2008_R2两种办法

    大家也注意到有一个“维护”但是这个选项是“从SQL 2008其他例如EXPRESS版本升级” 在此,要区分清楚。 2、安装程序支持规则检查。通过之后就继续下一步。 3、输入产品密钥,这个地方,你的密钥是什么版本的,...

    microsoft sqlserver2005 java驱动包 sqljdbc.jar

    至于“新建文件夹”,这可能是解压后存放sqljdbc.jar和其他可能相关文件的地方。通常,一个驱动包可能包含多个文件,如许可证文件、文档、示例代码等,不过在这个例子中,只提到了一个文件,即sqljdbc.jar。 使用...

    sql server 2005 批量导出照片代码

    注意,`textcopy`命令是用于将文本数据从一个地方复制到另一个地方,这里假设它也被用来处理二进制数据。 7. **游标关闭与资源释放**: ```sql deallocate Cur_test; ``` 游标使用完毕后,需要释放资源。 ####...

    ACCESS中使用SQL语句应注意的地方及几点技巧.pdf

    本文主要探讨了在Access中使用SQL语句时应注意的事项以及一些实用技巧。 首先,创建表是数据库的基础。在Access中,可以使用`CREATE TABLE`语句来定义表结构。例如: ```sql CREATE TABLE Tab1 ( ID Counter, ...

    SQL经典SQL经典

    从标题来看,似乎作者想要强调的是关于SQL的一些核心知识点或者常见案例。但是,在描述部分并未给出具体的内容或案例,因此接下来将基于提供的部分代码片段来分析和总结。 ### ADO.NET与SQL交互 #### ADO.NET简介 ...

    优化SQL内存(设置SQL3G內存)

    Buffer Pool是缓存数据和索引页的地方,而工作集则用于存储执行计划、锁和其他运行时信息。通过增加SQL Server的内存分配,可以显著提高Buffer Pool的大小,从而减少磁盘I/O,提高查询性能。 在Windows 2000 Server...

    SQL2008转2005

    在目标连接中,选择SQL Server 2005的空数据库作为接收数据的地方。 在设置迁移参数时,要特别注意兼容性问题。SQL Server 2005可能不支持2008中的一些新特性,所以你需要确保所有转移的对象都在2005的兼容范围内。...

    mms sql server 客户端动态库

    标题中的“mms sql server 客户端动态库”指的是SQL Server的管理工具之一,...同时,需要注意的是,虽然可以直接使用动态库文件,但必须确保它们与目标SQL Server版本兼容,否则可能会遇到连接问题或功能限制。

    sql子查询总结

    SQL 子查询总结 SQL 子查询是一种在 SQL 语言中嵌套在另一个查询的查询条件中的查询语句。子查询总是写在圆括号中,可以用在使用表达式的任何地方,如 Select、Insert、Update 或 Delete 语句或其他子查询中。 子...

    SQL检测工具,可以检测SQL的漏洞

    1. **静态代码分析**:工具会扫描源代码,寻找可能的SQL注入点,例如没有正确过滤用户输入的地方。它会检查SQL语句是否包含了动态构建的部分,这些部分可能成为攻击的入口。 2. **动态测试**:通过模拟用户输入,...

    SQL SERVER 双引号问题处理

    因此,在不需要使用双引号的地方,最好保持默认的单引号界定符。 - **兼容性**:使用双引号界定字符串的方式并不是所有数据库系统都支持的。因此,在跨平台迁移或与其他数据库系统交互时需要注意这一点。 总之,...

    SQLServer2008设置_开启远程连接

    需要注意的是,在配置过程中需要注意两个地方: 1、2005 的外围应用配置器在 2008 中换了地方 2、有些设置生效需要重启一下 SQL Server 在配置完成后,可以使用 sa 帐户登录,来验证远程连接是否成功。

    关于sql优化及详细步骤

    9. **使用TRUNCATE替代DELETE**:全表删除时,使用TRUNCATE比DELETE快,因为它不涉及回滚段,但注意TRUNCATE是不可逆的操作。 10. **频繁提交COMMIT**:及时提交事务可以释放资源,包括回滚段空间、锁以及重做日志...

Global site tag (gtag.js) - Google Analytics