sql server必知必会语法速记

以下语法是存储流程。

sp_server_info; //服务器信息
sp_spaceused;   //空间使用情况
sp_helplogins;  //登录用户查询
sp_helpuser;        //用户信息
sp_statistics;  //统计信息
sp_databases;   //数据库
sp_tables;      //表
sp_columns;     //列

以下为一些查询语法

SELECT  列[,列,列]
FROM        表;
限制:
DISTINCT                不显示重复 
TOP(n)                  加PERCENT为百分比
SET ROWCOUNT n;     老版本语句,新版本兼容,意义同上,不建议使用
TABLESAMPLE     (n)     指定检索行数的百分比
完全限定表名要注意 数据库.所有者.表名

ORDER BY                排序,加DESC逆序,多个跟在需逆序列后
                    排序不区分大小写,除非DBMS有相关设置
ORDER BY            只能排在最后

过滤数据
WHERE
=
<>
!=
>
>=
!<
<
<=
!>
BETWEEN    例:WHERE NUM BETWEEN 5 AND 10
IS NULL
范围查找

数据过滤组合WHERE子句
AND OR   操作符,顺序先ANDOR,注意使用括号
IN   指定范围,例 WHERE num IN(1,5)
NOT  否定WHERE后面的条件

使用通配符进行过滤
LIKE 'EXA%' 以EXA开头的数据
     '%AMP%'中间是AMP的数据
     'EX%LE'以EX开头LE结尾的数据
     '%LE'以LE结尾的数据
'%'也不能匹配空值NULL,注意空格。
'_''%'一类似,但'_'只匹配一个字符
[]数据某个位置单个字符若是[]中的任意一个,成功匹配,加^则为非[]中的一个,例:[^a]非a
不要过度使用,比较慢,为了效率要放在搜索最后,一定要注意位置。

计算字段
拼接字段的例子:
SELECT vend_name+'(' + vend_country + ')'
FROM vendors
ORDER BY vend_name;
由于SQL server以定长列存储数据,检索出的列全都补充空格以达到最大长度。可通过RTrim()函数来完成 as可为拼接字段指定别名
SQL server上AS是可选的,但使用时应该加上AS
[]可用来界定列名,比如当列名有空格的时候,但最好是设置别名
SELECT prod_id,
       quantity,
       item_price,
       quantity*item_price AS expanded_price
FROM orderitems
WHERE order_num=20005;
也可以通过计算获得自己想要的数据
+ - * / %多经典的运算符
数据库常用函数
RTrim()     去除右边空格
LTrim()     去除左边空格
Upper()     变大写
Lower()     变小写
CharIndex() 返回字符串中指定字符的位置
Left    ()      返回字符串左边的字符
Right()     右边字符
Len()
Min()
Max()
Replace()   替换
Soundex()   返回字符串的Soundex值(读音类似值)
Str()       数值转换字符串
SubString() 返回字符串中的字符

常用的日期和时间处理函数
DateAdd()   添加日期(天、周)
DateDiff()  计算两个日期的差
DateName()  返回部分日期的字符串表示
DatePart()  返回日期的一部分(星期几、月、年等)
Day()       返回日期中的天
GetDate()   返回当前日期和时间
Month()     返回日期中的月
Year()      返回日期中的年

所支持的日期成分和缩写
天       dd或d
年中的天    dy或y
时       hh
毫秒      ms
分       mi或n
月份      m或mm
季度      q或qq
秒       ss或s
周       wk或ww
周中的天(仅用于DatePart()) dw
年       yy或yyyy

数值处理函数
Abs()       返回绝对值
Cos()       返回一个角度的余弦
Exp()       返回一个数的指数值
Pi()            返回圆周率
Rand()      返回一个随机数
Round()     返回四舍五入为特定长度或精度的数值
Sin()       返回一个角度的正弦
Sqrt()      返回一个数的平方根
Square()        返回一个数的平方
Tan()       返回一个角度的正切


分组数据
数据分组
SELECT Count(*) AS num_prods
FROM products
GROUP BY vend_id; *

SELECT cust_id,Count(*) AS orders
FROM orders
GROUP BY cust_id
HAVING Count(*) >=2;

子查询类似嵌套
EXISTS类似 in

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值