数据查询基础
还好吗?几天不见,甚是思念呀!笑对人生,好好生活,快快乐乐的迎接我们的美好未来吧!
好吧!抒情结束,我们一起来学习一下我们今天的主题:数据查询基础,很有意思哟.让我们来感受它的魅力吧!
一.使用select语句进行查询
语法:
select <列名>
from <表名>
[where <查询条件表达式>]
[order by <排序的列名>[asc或desc]]
其中:[]表示可省
01.查询所有的数据行和列(*)
select *from Studendt
02.查询部分行或列
eg:查找留言人是“乐”的部分信息
select ID,Email from Student where name='乐'
03.别名
别名方案一:
select msgAuthor as 留言人,msgContent as 留言内容 from Message
别名方案二:
select msgAuthor 留言人,msgContent 留言内容 from Message
别名方案三:
select 留言人=msgAuthor,留言内容=msgContent from Message
04.查询空值
在SQL Server中null代表不知道,所以如果where后的限定条件不能用=和null做对比,必须使用is null
eg:查询Email为空的
select *from Student where Email is null --不能写为where Email=null
05.常量列
select *,'汉族'as 民族 from Message
06.查询返回限制的行数(top关键字)
eg:限制只检索前3条数据
use MySchool select top 3 * from student where Gender='0'
07.将多列合并成一列显示
select msgAuthor+'____'+msgContent as 留言人 from Message
08.通配符
01. %:任意长度的任意字符,(包含0个)
02. _:任意的单个字符,只能是一个
03. []:括号中所指定范围内的一个字符
04. [^]:不在括号中所指定范围内的任意一个字符
二.查询排序(order by)
asc:升序(不写默认值)
desc:降序
eg1:
select * from student order by Gender --默认按主键升序排序
eg2:按照多列排序
select * from student order by GradeId [asc],Gender [desc]
二.查询中使用函数
01.字符串函数
01.CharIndex('str1','str2',index)
参数含义:
--第一个参数:要查询的字符串
--第二个参数:在哪个字符串中搜索
--第三个参数:从str2的第几个字母开始搜索
--注意点:如果在str2中没有找到str1,那么返回0
select charindex('好好学','S1是S2的基础,所以大家好好学',1) --返回14
02.len():获取小括号中字符串的长度,空格也算一个字符长度
select len('明天咱们还上课,希望大家回去好好休息') --返回18 select len(' 大家都 是好孩子 ') --返回39
注意点:如果内容以多个空格结尾,那么结尾的多个空格,是不计算长度的
--例如:
select len('我们都是好孩子 ') --返回7
03.upper:把传递给它的字符串转换为大写
SELECT upper('SQL Server课程') --SQL SERVER课程
04.LTRIM()清除左侧空格
select ltrim(' 一个人的时候,要好好学习, ') --一个人的时候,要好好学习,
05.rigim()清除右侧空格
select rtrim(' 生活不是敷衍, ') -- 生活不是敷衍,
既想移除左边空格,也想移除右边空格:
select rtrim(ltrim(' 生活不是敷衍, ')) select ltrim(rtrim(' 你知道吗! '))
06.substring('字符串',截取的位置,截取的长度)
select substring('我是中国人,我爱自己伟大的祖国,真的',6,1) --返回,
07.right():从字符串右边返回指定类型的字符
left():从字符串左边返回指定类型的字符
select left('大家今天辛苦了,爱你们',3) --大家今 select right('大家今天辛苦了,爱你们',2) --你们
08.replace('str1','要替换的字符','目标字符'):
select replace('我爱你,天尽头,虽然这很遥远,但是心不变','遥远','现实') --我爱你,天尽头,虽然这很现实,但是心不变
09.stuff('字符串',删除的起始位置,删除的长度,'插入的字符串')
select stuff('我爱你中国,我爱你故乡',4,2,'北京') --我爱你北京,我爱你故乡
02.日期函数
01.getdate():获取当前日期和时间
select getdate() select dateadd(yy,1,getdate())
02.dateadd(按年/月/日添加,增量,时间)
select dateadd(yy,100,'2014-8-6') select dateadd(year,-20,getdate())
03.datediff(按年/月/日求差,小时间,大时间)
select datediff(dd,'1996-12-01',getdate())
04.日期中指定日期部分的字符串形式
select datename(mi,getdate())
05.日期中指定日期部分的整数形式
select datepart(yy,getdate())
06.值 缩 写
Year Yy yyyy
Quarter Qq q
Month Mm m
Day of year Dy y
Day Dd d
Weekday Dw w
Week Wk ww
Hour Hh h
Minute Mi n
Second Ss s
Millisecond Ms -
03.数学函数
01.天花板(ceiling) 向上取整
select ceiling(1.99) --返回2
02.地板(floor) 向下取整
select floor(1.99) --返回1
03.系统函数
convert:用来转变数据类型
select convert(varchar(32),111) --返回的是字符串'111'
拜!回见!dear!!