梦醒三分,执着疯子
没有什么不可以!

一、SQL常用语句
1.select //查询语句;
例1:select *from ProdTB order by ProdName DESC //搜索所有数据,DESC降序/ASC升序
例2:select ProdAlias,ProdName,ProdPrice from ProdTB where ID>6 //有条件地搜索数据
例3:select *from SalesTB where ProdAlias in (select ProdAlias from ProdTB where ID>5) //多表搜索数据
例4:select s.ProdAlias,p.ProdName,s.ProdPrice,s.SaleNum,(s.ProdPrice*s.SaleNum) as Total from SalesTB as s,ProdTB as p where s.ProdAlias=p.ProdAlias and ID>5 //结果与例3基本一样
例5:select ProdAlias,sum((s.ProdPrice*s.SaleNum) as Total from ProdTB group by ProdAlias
相关条件语句:
SaleDate is null/not null
exists/not exists/ProdAlias=any/ProdAlias in
having使用方法:
group by ProdAlias having sum(SaleNum)>300
group by ProdAlias having ProdAlias LIKE '%D%'

2.insert into //插入数据语句;
例:insert into ProdTB values('D001','苹果') //插入一行
例:insert into ProdTB(ProdAlias,ProdName) select Alias,Name from TempTB where ID>12 //有条件地插入一行或多行

3.update set //修改数据语句;
例1:update ProdTB set ProdName='梨子' where ProdAlias='D001'
例2:update SalesTB set ProdPrice=ProdPrice*1.5 where ProdAlias IN (select ProdAlias ProdTB where ProdName='梨子')

4.delete from //删除数据语句;
例:delete from ProdTB where ProdAlias='D001'

5.存储过程
 CREATE PROCEDURE proc_name //创建存储过程
   @param char(10) [input/output]
   [,@param1,...]
 as
   [DECLARE @param int]
   [SET @param = 0]
   SQL相关语句
 go
6.事务处理
 BEGIN TRANSACTION info [WITH MARK]
  [DECLARE @param int]
   [SET @param = 0]
   SQL语句
 COMMIT/ROLLBACK TRANSACTION info //结束或回滚到指定的事务
例(5-6项综合):
CREATE PROCEDURE delProc
(
  @name char(20)
)
as
BEGIN TRAN
 select from ProdTB where p.ProdName=@name
 delete from salesTB as s,ProdTB as p where s.ProdAlias=p.ProdAlias and p.ProdName=@name
if(@@ERROR>0)
 ROLLBACK
else
 COMMIT

二、SQL常用函数
ltrim(字段名) //去掉某字段左空格;
rtrim(字段名) //去掉某字段右空格;
right(字段名,n) //从某字段最右边开始截取n个字符;
left(字段名,n) //从某字段最左边开始截取n个字符;
substring(字段名,startIndex,n) //从某字段值startIndex位截取n个字符;
len(字段名) //获得长度;

count(字段名) //通常用count(*),获得某表或某字段的行数;
sum(数值字段名) //计算某数值字段值总和;
avg(数值字段名) //计算某数值字段值总和的平均值;
round(数值字段名, n) //将数值按指定的n位小数四舍五入;
max(字段名) //获得某字段最大值;
min(字段名) //获得某字段最小值;
DISTINCT(字段名) //查询某表使得某字段值唯一;

DATEDIFF(year, first_date, second_date) //计算first_date和second_date日期之间年差数。
GETDATE() //获得系统当前日期;
DATEADD(day, -5, GETDATE())) //获得当前日期前5天的日期;
year(日期字段) //获取日期的年;
month(日期字段) //获取日期的月;
day(日期字段) //获取日期的日;
 
isnull(字段名,代替值)//判断某字段是否为空,如果为空,则用相应的值代替;
str(数值字段名) //将数值转化为字符串;
convert(char(10),字段名,120) //将某字段用指定格式[如:120]转化为另一种类型[如:char(10)].一般用于日期型字段;
convert(varchar(255),字段名或参数) //将数据转化为某种类型[如:varChar(255)];
cast(字段名或参数 as char(20)) //将数据转化为某种类型[如:char(20)];

posted on 2006-09-20 16:13  Jacker.W  阅读(429)  评论(0编辑  收藏  举报