发表时间:2009-09-20
最后修改:2009-09-21
--------- SQL ----------
T-SQL是SQL的加强版
dml:select, insert, update, delete
dcl:grant, revoke
ddl:create table, drop table
<> : 不等于
=: 等于
_: 代表一个字符
%: 代表任意长度的字符
[]: 指定范围内的字符
[^]: 取反,不是指定的字符
通配符常常与LIKE关键字一起使用
and, or, not逻辑表达式
-----------------------
insert [into] <表名> [列名] values<值列表>
注意:
1,要满足完整性的要求
2,不能为标识列指定值
3,不允许为空必须要插入数据
4,具有缺省值的可以用default来代替
insert into <表名> [列名]
select <列名>
from <源表名>
--先会创建表,再插入数据
select <列名>
into <表名>
from <源表名>
--生成新的标识
select identity (int ,1,1) as userId ...
update 表名 set 列名=更新值
where 更新条件
delete from 表名 where 删除条件
--删除表里所有的数据
truncate table 表名
-- 会将所有相关信息都清除,包括标识外键信息
-- 执行后,不能回滚
事务
conn.setAutoCommit(false);
conn.commit();
conn.rollback();
批处理
stmt.addBatch(sql);
stmt.executeBach();
连接池
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
JNDI(java naming directory interface)
Context ctxt = new initialContext();
DataSource ds = (DataSource)ic.lookup("java:comp/env/jdbc/books");
comp/env : j2ee默认路径名
JNDI 配置
<Context>
<Recource
auth="Container"
type="javax.sql.DataSource"
maxActive=
name="jdbc/books"
username=
password=
driverClassName=
url=
/>
</Context>
在web.xml中配置
<resource-ref>
<res-ref-name/>
<res-type/>
</resource-ref>
----------------
查询
sql server中的函数
字符函数:
charindex,len,lower,upper,ltrim,rtrim,right,replace,stuff
日期函数:
getdate,dateadd,datediff,datename,datepart
系统函数:
convert(用得比较多),current_user,datalength
host_name,system_user,user_name
聚合函数
sum,avg,max,min,count,
-----------
分组查询对比
where, group by, having
多表连接查询
内连接:inner join on 为默认的无先后顺序
左外连接:left join on以左边的表为基准
右外连接:right join on
---------------------------
类与数据库设计---继承
1,如何在关系数据库中实现继承
每个类均映射为数据库表
* 对报表的支持较差,除非定义视图