使用SELETE语句进行查询
语法
SELECT<列名> FROM<表名> [ORDER BY <排序的列名>[ASC或DESC]]
1.查询所有的数据和列
SELECT * FROM<表名>
2.查询部分列或行
查询部分的列需要添加WHERE语句来进行条件限制
SELECT<列名> FROM<表名> WHERE [条件]
3.在查询中使用列的名
可以添加as让人更加容易知道他是什么
SELECT<列名> AS别名 FROM<表名> WHERE [条件]
4.查询空值
在sql语句中可以采用"IS MULL"或者"IS NOT MULL"来判断是否有空值
SELECT<列名> AS别名 FROM<表名> WHERE [条件 IS NULL]
5.在查询中使用常量列
有时候,需要将一些常量的默认信息添加到查询输出中,以方便统计和计算.
6.查询返回限制的行数
top 限制前几个 top 5 percent 百分比限制前五个
SELECT TOP 5<列名> FROM<表名> WHERE [条件]
7.查询排序
如果要给他们进行排序需要一个语句他叫 ORDER BY 排序有两种一个是升序(ASC)或者降序(DESC) 一般默认升序排序
语法:
SELECT TOP 5<列名> FROM<表名> WHERE [条件] [ORDER BY <排序的列名>[ASC或DESC]]
二.模糊查询
1.通配符
通配符 | 解释 | 语法 | 实例 |
_ | 一个字符 | A LILE 'C_' |
cs cd cf |
% | 任意长度的字符串 | B LIKE 'C%' | csd cca cwww |
[] | 括号中所指范围内的一个字符 | C CLKE '9[1-2]' | 91 92 |
[^] | 不在括号中所指定范围内的任意一个字符 | D CLKE '9[^1-2 ]' | 93 95 966 |
2使用LIKE进行模糊搜索查询
SELECT * FROM Students WHERE SNane LIKE '齐[通配符]'
3使用BETWEEN在范围内进行查询
SELECT * FROM Students WHERE SNane BETWEEN 60 and 80
初始值小于等于终止 要不然虽然不会报错 可不会显示 --'NOt'取反
3.使用in在列举值内进行查询
查询的值是制定的某些值之一,可以使用代列举值的in关键字进行查询
SELECT * FROM Students WHERE SNane IN(''1','2')
T-SQL聚合函数
sum(总和【列】)函数
avg(平均【列】)函数
max(最大【列】)函数
min(最小【列】)函数
时间单位
day:天
yy:取年
mm:取月
dd:取月中的天
dy:取年中的天
wk:取年中的周
dw:取周中的天
qq:取年中的季度
hh:取小时
mi:取分钟
ss:取秒
日期格式
date yyyy-MM-dd
datetime yy-MM-dd hh:mm:ss
time hh:mm:ss
timestamp 11111到现在 yyyyMMddhhmmss
year yyyy 1901
字符串函数
(用于控制返回给用户的字符串)
char index (需查找,原字符串,起始位置)寻找字符串位置
len()长度
upper()转换大写
lower()转换小写
lirim()清除左空格
rtrim()清除右空格
right(值,指定数)从右查找字符串
left(值,指定数)从左查找字符串
replace(原,需替,替为)替换字符
stuff(原,起始,个数,替)指定长度长度替换
日期函数
(用于操作日期)
datdate()当前日期(今天)
dateadd(类型,值,日期)值的类型的值+日期
datediff(类型,起始日期1,终止日期2)1-2的间隔时间
datename(类型,日期)指定日期返回字符串形式
datepart(类型,日期)指定日期返回整数形式
数学函数
(用于对数值进行代数运算)
rand() 0-1随机数
rand()*(最大-最小+1)+最小 可运算
abs ()绝对值
ceiling ()就近整数(大于或等于)
floor ()小或等于
power (数,平方)幂
round (数,规定精度)精度
sign ()正反1,负反-1
sqrt ()平方根
系统函数
(获取有关SQL Server中对象和设置的系统信息)
convert (类型,值)转变数据类型
cast(值 as 类型)
current_user 返回当前用户名
datalenght ()返回字节数
host_name() 返回登录的计算机名
system_user 返回登录的用户名
user_name ()指定用户id返回用户名