现在的位置: 首页 > 综合 > 正文

sqlsever 函数

2013年08月30日 ⁄ 综合 ⁄ 共 7502字 ⁄ 字号 评论关闭

 《sqlserver应用开发》
1。返回限制行
select top 5 name...
2.列名 is null
使用表达式,函数,
3.在查询中使用函数;
  1。字符串函数
部分常用的字符串函数

函数名           描述
charindex       用来寻找一个指定的字符串在另一个字符串中的起始位置
                select charindex('ACCP','My   Accp course',1);   返回4
len              长度  Lower 小写  upper 大写
ltrim 清除字符左边空格
Rtrim 清除字符右边空格
right 从字符串左边返回指定数目的字符 
       select right('买卖顺要和',3);   返回:顺要和
replace 替换一个字符串的字符  select replace('莫乐可切.杨可','可','兰'); 返回:莫乐兰切.杨兰

  2.日期函数
 getdate 取今天的日期  select getdate();
 dateadd    select dateadd(mm,4,'01/01/99')
  datename 日期中指定日期部分的字符串形式  selectdatename(dw,'01/01/2000');返回:Saturday
  datepart 日期中指定日期部分的整数形式  select datepart(day,'01/15/2000');返回: 15

3。数学函数
ABC绝对值
ceiling >=最小整数
floor   <=最大整数
power 幂
  power(5,2)  返回:25
Round 四舍五入为指定精度 Round(43.5645,1);  返回:43.5
sign  正数返回+1,负数返回-1,0返回0;  sign(-43)返回:-1

sort(9)  平方根
返回:3

 4。系统函数
convert(varchar(5),12345)转变数据类型 返回:字符串12345

current_user 返回当前用户的名字
datalength 返回指定表达式的字节数
host_name  返回当前用户登录的计算机名字
system_user 返回当前用户登录的用户名称
user_name 从给定用户ID返回用户名

 

4练习
  1。把密码中的o变0,i变成1(好区别,使用函数replace)
   2.编号为B01计算机坏了,请通过查询得到这台机器最近一次上机的卡号:?
   3。查询24小时之内上机的人员姓名
    4。查卡号第三位和第七位是‘AB’的人员(like '00[0-9][0-9]AB%')
 check约束(属性中设置)
5.如何得到上一次插入的identity值(即ID自增长,不知道插入的是什么值)
查sqlserver联机从书(标识值:上一次插入的)
6.分析一个BBS系统(重要。书,117~131)
 1。本月灌水的人
  注册时间少于一个月,发贴量大于1500的用户
  select id,count(*) from topic where DataAdd(Month,1,TTime)>GetDate() Group
by id having count(*)>1500
 2.本日,本周用户发贴数排名;本日,本周版块发贴榜
本日 getDate() between(ttime+'0:0:0') and (ttime+'23:59:59')
本周  datepart(week,getDate())=datepart(week,ttime)
       当天在本年第几周           日期在本年第几周  P128待续。。。。。。

 

 

《sqlserver应用开发》
1.sqlserver配置属性(对某一数据库右击)
处理器选项卡  来配置sqlserver的优先级,  ^ 在windows上提升sqlserver的优先级
连接 选项卡, 来配置连接特性。             * 允许其它sqlserver...连接。。
2BBs四个表(在csdn空间3/bbs表/BBS表1,表2,表3)
   建表要注意:除了字段名称,类型,主键,默认值,非空约束,还要有检查约束(设计视图中右击,check约束/新建)eg.UEMail like '%@%'  len(UPassword)>=6
 和字段的描述信息。
 ?数据类型为'Bit'的Usex,1 ,性别,如何添加数据。。。
 ?数据类型 nText  16 位;varchar 255 是长度,和位数不一样。

3.建立表之间的关联关系。 谁指向谁的哪一个字段。  这个建立后,使用hibernate可直接生成1对1,1对多,多对多等关联关系。

4。发贴排名(本日,本周,各版块本日,各版块本周)
   本日的日期比较使用:
  GetDate() Between (TTime+'0:0:0') and (TTime='23:59:59')
  判断日期是否在本周,需要使用datepart 函数返回当天是“本年的第几周”,然后再看看数据库中的
   日期是“本年的第几周”。如果这两个周次相等,表明数据库中的日期在本周。
  DatePart(week,GetDate())=DatePart(week,TTime);

BBS用户发帖日排名
select top 10 TUID as 用户ID,count(*) as 发帖数
from BBSTopic
where Getdate() Between (TTime+'0:0:0') and (TTime='23:59:59')
group by tuid
order by count(*) desc
BBS用户发帖周排名
select top 10 TUID as 用户ID,count(*) as 发帖数
from BBSTopic
where DatePart(week,GetDate())=DatePart(week,TTime)
group by TUid
order by Count(*) desc

各版块用户发帖日排名
select top 10 TUID as 用户ID,TSID as 版块,count(*) as 发帖数
from BBSTopic
where GetDate() Between (TTime+'0:0:0') and (TTime='23:59:59')
group by TUid,TSID
order by  TSID,count(*) desc
各版块用户发帖周排名
select top 10 TUID as 用户ID,TSID as 版块,count(*) as 发帖数
from BBSTopic
where DatePart(week,GetDate())=DatePart(week,TTime)
group by TUid,TSID
order by TSID,count(*) desc

 

 

 

 

附:
bbs.sql
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_BBSpely_BBSSection]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[BBSReply] DROP CONSTRAINT FK_BBSpely_BBSSection
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_BBSTopic_BBSSection]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[BBSTopic] DROP CONSTRAINT FK_BBSTopic_BBSSection
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_BBSpely_BBSTopic]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[BBSReply] DROP CONSTRAINT FK_BBSpely_BBSTopic
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_BBSpely_BBSUsers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[BBSReply] DROP CONSTRAINT FK_BBSpely_BBSUsers
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_BBSSection_BBSUsers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[BBSSection] DROP CONSTRAINT FK_BBSSection_BBSUsers
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_BBSTopic_BBSUsers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[BBSTopic] DROP CONSTRAINT FK_BBSTopic_BBSUsers
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[BBSReply]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[BBSReply]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[BBSSection]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[BBSSection]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[BBSTopic]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[BBSTopic]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[BBSUsers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[BBSUsers]
GO

CREATE TABLE [dbo].[BBSReply] (
 [RID] [int] NOT NULL ,
 [RNumber] [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [RTID] [int] NOT NULL ,
 [RSID] [int] NOT NULL ,
 [RUID] [int] NOT NULL ,
 [REmotion] [int] NULL ,
 [RTopic] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [RContents] [ntext] COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [RTime] [datetime] NULL ,
 [RClickCount] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[BBSSection] (
 [SID] [int] NOT NULL ,
 [SName] [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [SMasterID] [int] NOT NULL ,
 [SStatement] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
 [SClickCount] [int] NULL ,
 [STopicCount] [int] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[BBSTopic] (
 [TID] [int] NOT NULL ,
 [TNumber] [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [TSID] [int] NOT NULL ,
 [TUID] [int] NOT NULL ,
 [TReplyCount] [int] NULL ,
 [TEmotion] [int] NULL ,
 [TTopic] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [TContents] [ntext] COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [TTime] [datetime] NULL ,
 [TClickCount] [int] NULL ,
 [TFlag] [int] NOT NULL ,
 [TLastClickT] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[BBSUsers] (
 [UID] [int] NOT NULL ,
 [UName] [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [UPassword] [varchar] (16) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [UEmail] [varchar] (32) COLLATE Chinese_PRC_CI_AS NULL ,
 [UBirthday] [datetime] NULL ,
 [USex] [bit] NOT NULL ,
 [UClass] [int] NULL ,
 [UStatement] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
 [URegDate] [datetime] NOT NULL ,
 [UState] [int] NULL ,
 [UPoint] [int] NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[BBSReply] ADD
 CONSTRAINT [PK_BBSpely] PRIMARY KEY  CLUSTERED
 (
  [RID]
 )  ON [PRIMARY]
GO

ALTER TABLE [dbo].[BBSSection] ADD
 CONSTRAINT [PK_BBSSection] PRIMARY KEY  CLUSTERED
 (
  [SID]
 )  ON [PRIMARY]
GO

ALTER TABLE [dbo].[BBSTopic] ADD
 CONSTRAINT [DF_BBSTopic_TFlag] DEFAULT (1) FOR [TFlag],
 CONSTRAINT [PK_BBSTopic] PRIMARY KEY  CLUSTERED
 (
  [TID]
 )  ON [PRIMARY] ,
 CONSTRAINT [CK_BBSTopic] CHECK ([TLastClickT] > [TTime] and [TLastClickT] < getdate())
GO

ALTER TABLE [dbo].[BBSUsers] ADD
 CONSTRAINT [DF_BBSUsers_YPassword] DEFAULT (8888) FOR [UPassword],
 CONSTRAINT [DF_BBSUsers_UEmail] DEFAULT ('P@P.COM') FOR [UEmail],
 CONSTRAINT [DF_BBSUsers_USex] DEFAULT (1) FOR [USex],
 CONSTRAINT [DF_BBSUsers_UClass] DEFAULT (1) FOR [UClass],
 CONSTRAINT [DF_BBSUsers_UState] DEFAULT (1) FOR [UState],
 CONSTRAINT [DF_BBSUsers_UPoint] DEFAULT (20) FOR [UPoint],
 CONSTRAINT [PK_BBSUsers] PRIMARY KEY  CLUSTERED
 (
  [UID]
 )  ON [PRIMARY] ,
 CONSTRAINT [CK_BBSUsers] CHECK ([UEMail] like '%@%'),
 CONSTRAINT [CK_BBSUsers_1] CHECK (len([UPassword]) >= 6)
GO

ALTER TABLE [dbo].[BBSReply] ADD
 CONSTRAINT [FK_BBSpely_BBSSection] FOREIGN KEY
 (
  [RSID]
 ) REFERENCES [dbo].[BBSSection] (
  [SID]
 ) ON DELETE CASCADE  ON UPDATE CASCADE ,
 CONSTRAINT [FK_BBSpely_BBSTopic] FOREIGN KEY
 (
  [RTID]
 ) REFERENCES [dbo].[BBSTopic] (
  [TID]
 ) ON DELETE CASCADE  ON UPDATE CASCADE ,
 CONSTRAINT [FK_BBSpely_BBSUsers] FOREIGN KEY
 (
  [RUID]
 ) REFERENCES [dbo].[BBSUsers] (
  [UID]
 )
GO

ALTER TABLE [dbo].[BBSSection] ADD
 CONSTRAINT [FK_BBSSection_BBSUsers] FOREIGN KEY
 (
  [SMasterID]
 ) REFERENCES [dbo].[BBSUsers] (
  [UID]
 )
GO

ALTER TABLE [dbo].[BBSTopic] ADD
 CONSTRAINT [FK_BBSTopic_BBSSection] FOREIGN KEY
 (
  [TSID]
 ) REFERENCES [dbo].[BBSSection] (
  [SID]
 ),
 CONSTRAINT [FK_BBSTopic_BBSUsers] FOREIGN KEY
 (
  [TUID]
 ) REFERENCES [dbo].[BBSUsers] (
  [UID]
 )
GO

抱歉!评论已关闭.