您的位置:首页 > 数据库

MSSql Server基础学习系列———数据检索

2015-09-07 10:51 393 查看
我们对数据库的操作无外乎就是增删改查,今天就先从数据检索开始学习

1、普通查询(select)

--  一、简单查询
--查询全部
select *
from dbo.[User]
--不推荐使用
如果真的是需要查询所有字段的值,则把所有列都写出来,这样做是为了预防以后数据表结构变化,导致程序的改变。(Student 表新增Ssex一列,则程序中通过* 查询出来的结果可能还需要对这个结果进行处理)

select [user].Uid, [user].Uname, [user].Upassword
from dbo.[user]
--推荐使用
--查询第一条数据(数据库已经进行了排序)
select top 1 *
from dbo.[User]
--查询部分
select uname
from dbo.[user]
--重命名
select uname as '姓名'
from dbo.[user]

select uname '姓名'
from dbo.[user]

select '姓名'=uname
from dbo.[user]

select uname [姓名]
from dbo.[user]

--多列合并
select uname+upassword as '用户名密码'
from dbo.[user]


2、条件查询

很多时候我们需要对查询的结果进行筛选,这个时候就需要使用条件查询了

select * from dbo.[user]
where Uid=3

select * from dbo.NewCourse
where Cid between 1 and 2

--between还可用于日期形式的查询语句
select * from dbo.Teacher
where Tbiethday between '2010-10-10' and '2015-10-10'

select * from dbo.NewCourse
where Cid in(1,2)

--select 还可用来计算表达式、函数
select 1+1 as '结果'

select GETDATE()

--每个select语句的执行结果都是一个结果集
select 'aaa'

select 'bbb'
--上面两个select语句的执行结果就是两个结果集

--添加关键字union
select 'aaa'
union
select 'bbb'
--查询的结果是一个结果集
--两个查询结果集进行union的前提
--(1)数据字段个数相同
--(2)对应字段的数据类型能够相互兼容

--获取前面的数据
select top 10 * from [TestDB].[dbo].[Teacher]
--top一般和排序结合起来使用
select top 0 * into TeacherNew from dbo.Teacher
--创建结构一样但是数据为空的表
--相对于之前的创建表,效率更高(带where的查询语句,
--需要在每次数据筛选前都进行where条件的判断,性能不高)
select * into TeacherNew from dbo.Teacher
where 0>1
--distinct
--去掉结果集中重复的姓名数据
select distinct Tname from dbo.Teacher
--去掉结果集中姓名、年龄重复的数据
select distinct Tname,Tage from dbo.Teacher
--三、模糊查询
--模糊查询
--查询出姓李的人
--第一种使用聚合函数

select * from dbo.Teacher
where LEFT(Tname,1)='李'
--使用like
-- '_'表示单个任意字符
-- '%'表示零个或多个任意字符
select * from dbo.Teacher
where Tname like '李%'
--[]转义符
--当查询的结果中含有数据库关键字的时候就需要使用转义符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: