(1)char 、varchar、nchar的区别
固定长度 (char) 或可变长度 (varchar) 字符数据类型。
nchar 根据 unicode 标准所进行的定义,用给定整数代码返回 unicode 字符。
char是固定长度的字节,varchar是可变长度的字节,nchar是unicode编码的固定字符长度。
如:12345 在char(6)存储为123456加一个空格,共6个字节。
中国 在char(6)存储为中国加两个空格,共6个字节。
12345 在varchar(6)存储为123456,共5个字节。
中国 在varchar(6)存储为中国,共4个字节。
nchar(6)对汉字和半角字符处理时一样的,即可以存储6个汉字,也可以存储6个字母
(2)Truncate是一个能够快速清空资料表内所有资料的SQL语法。并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用。
delete XiTong_RenShuXuQiu
truncate table XiTong_RenShuXuQiu
(3)Isnull 函数主要作用是将为空的值替换为指定值,如果不为空返回检查类型的返回值,isnull的语法:
Isnull (check_expression , replacement_value)
参数check_expression ,是待检查是否为空的表达式,参数replacement_value是带替换的指定值,如果参数check_expression为空则参数replacement_value进行填充,如果check_expression不为空,则返回表达式相应的返回值类型,需要注意到是参数check_expression和参数replacement_value的类型需要保持一致,否则要进行相应的转换,下面通过实例说话,
例一:
select isnull(studentid,100) from student_info
解释:查出student_info表中字段为studentid的值,如果字段studentid值为空就在字段studentid中添加100,或者你可以动态的向这个空字段添加值。
(4)存储过程中 Case When then else end 联合用法
SELECT XiTong_YuanGongXinXi.XingMing AS YuanGongName, (case ISNULL(XiTong_PaiBan.ZhouYi,0) WHEN 0 THEN '休班' ELSE '夜班' end) as ZhouYi FROM XiTong_YuanGongXinXi RIGHT OUTER JOIN XiTong_PaiBan ON XiTong_YuanGongXinXi.YuanGongID = XiTong_PaiBan.YuanGongID
insert into student(stuNum ,stuSex,stuClassNum) values(@stuNum
case @stuSex
when '男' then 'true'
when '女' then 'false'
end
,@stuClassNum)
(5)STR函数的应用
STR 函数功能是返回一个数字的等效字符串。
语法
STR ( numeric_expression , length , decimal )
其中,numeric-expression 取任何位于 -1E126 和 1E127 之间的近似数字(浮点、实数或双精度)表达式。
length 是要返回的字符数(包括小数点、小数点右侧和左侧的所有位以及空白),缺省值为 10。
decimal 要返回的小数位数,缺省值为 0。
(5)统计表中相同字段的数量
SELECT XiTong_YuanGongXinXi_JiNeng_1.JiNengID, XiTong_JiNeng.JiNengMingCheng, COUNT(*) AS Number FROM XiTong_YuanGongXinXi_JiNeng AS XiTong_YuanGongXinXi_JiNeng_1 INNER JOIN XiTong_JiNeng ON XiTong_YuanGongXinXi_JiNeng_1.JiNengID = XiTong_JiNeng.JiNengID GROUP BY XiTong_YuanGongXinXi_JiNeng_1.JiNengID, XiTong_JiNeng.JiNengMingCheng HAVING COUNT(*) >1 ORDER BY Number
(6)统计一张表中,字段的值的个数,比如:张三,周一 早、中、晚、休的在某段事件内的次数
select XiTong_PaiBanTongJi.YuanGongID, XiTong_YuanGongXinXi.XingMing as "姓名", XiTong_YuanGongXinXi.HuShiBianHao as "编号", sum(case when ZhouYi='0' then 1 else 0 end ) as "休班次数", sum(case when ZhouYi='1' then 1 else 0 end ) as "早班次数", sum(case when ZhouYi='2' then 1 else 0 end ) as "中班次数", sum(case when ZhouYi='3' then 1 else 0 end ) as "晚班次数" from XiTong_PaiBanTongJi inner join XiTong_YuanGongXinXi on XiTong_PaiBanTongJi.YuanGongID=XiTong_YuanGongXinXi.YuanGongID group by XiTong_PaiBanTongJi.YuanGongID, XiTong_YuanGongXinXi.XingMing, XiTong_YuanGongXinXi.HuShiBianHao
运行结果如下: