import java.sql.*;
public class JdbcUtil
{
public static void close(Statement st, Connection con)
{
try
{
st.close();
}catch(Exception e)
{
}
try
{
con.close();
}catch(Exception e)
{
}
}
public static void close(ResultSet rs, Statement st, Connection con)
......
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:删除新表drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键: Alter table tabname add pr ......
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:删除新表drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键: Alter table tabname add pr ......
今天遇到一个客户,把自己之前搁置的问题摆到了面前,措手不及下处理起来走了不少弯路,最终也没有完全解决,主要还是技术储备不够。其中有关EXCLE数据导入SQL2000时遇到两个问题,在网上搜索了解决办法,收藏一下:
1、将Excel导入到SQL sever数据库,提示说“外部表不是预期的格式”
可能的原因:有表头、或者是格式上有合并单元格之类的
解决办法:把表中的数据复制一下,使用只粘贴数据到一个新表中,导入新表
(摘自http://zhidao.baidu.com/question/86652526.html?fr=ala1)
2、Excel数据导入Sql Server出现Null
引起的原因:导入为Null的数据列属于混合数据类型列
解决办法:强制解析——IMEX=1(使用 IMEX=1 选参之后,只要取样数据里是混合数据类型的列,一律强制解析为 nvarchar/ntext 文本)
SELECT * INTO Tab ......
GROUP BY 实例
表 "Sales":
Company Amount
W3Course 6500
IBM 5500
W3Course 7300
SQL:
SELECT Company, SUM(Amount) from Sales
结果:
Company SUM(Amount)
W3Course 19300
IBM 19300
W3Course 19300
上面的代码是无效的,这是由于被返回的列没有进行部分合计。GROUP BY 子句能解决这个问题:
SELECT Company,SUM(Amount) from Sales
GROUP BY Company
结果:
Company SUM(Amount)
W3Course 13800
IBM 5500
HAVING...
把 HAVING 加入 SQL 的原因是,WHERE 无法应用于合计函数,而如果没有 HAVING,就无法测试结果条件。
HAVING 的语法:
SELECT column,SUM(column) from table
GROUP BY column
HAVING SUM(column) condition value
表 "Sales":
Company Amount
W3Course 6500
IBM 5500
W3Course 7300
SQL:
SELECT Company,SUM(Amount) from Sales
GROUP BY Company
HAVING SUM(Amount)>10000
结果:
Company SUM(Amount)
W3Course 13800
......
很多人特别喜欢用视图,但有的人从来不用视图.这都是两种不良的习惯. 要明确视图可以完成的工作以及使用场合.
1.阻止选择保密列
2.降低用户读取数据库内数据的复杂性
3.在数据库中添加索引以加速查询性能
视图的核心在于它仅是一个被存储的查询. 其最大特点是是你可以混合机匹配基表(或其他视图)中的数据,从多方面考虑,其功能就像另外一张基表.你既可以创建一个只从表中选择一些列的简单查询,也可以创建一个连接多张表并让这些表显示为一张表的复杂查询.
视图是一个虚拟表,其内容有查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.视图在数据库中并不是以数据值存储集形式存在,除非是索引视图.行和列数据来自于自定义视图的查询所引用的表,并且在引用视图时动态生成.
对其中所引用的基础表来说视图的作用类似于筛选。定义视图的筛选可以来自当前或其他数据库一个或多个表,或者其他视图.分布式查询页可用于定义使用多个异类源数据的视图.例如,如果有多台不同的服务器分别储存在你的单位在不用地区的数据 ......