MSSql Server基础学习系列———数据检索
2015-09-07 10:51
393 查看
我们对数据库的操作无外乎就是增删改查,今天就先从数据检索开始学习
1、普通查询(select)
2、条件查询
很多时候我们需要对查询的结果进行筛选,这个时候就需要使用条件查询了
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 '李%' --[]转义符 --当查询的结果中含有数据库关键字的时候就需要使用转义符
相关文章推荐
- ApexSql Log
- SQL Server使用命令修改表名或表的列名
- oracle 登录时提示无监听登陆不进去
- MongoDB学习3_MongoDB 分片的原理、搭建、应用
- MySQL加密和解密
- MSSql Server基础学习系列———基础讲解
- SQL group_concat()函数
- SQL中把查询到值赋值给变量
- oracle静默安装
- Maven 3 + Hibernate 3.6 + Oracle 11g Example (Annotation)
- 基于内存,redis,mysql的高速游戏数据服务器设计架构
- MySQL_忘记Root密码并找回
- mysql 5.6 datetime default now()
- 问题:oracle decode;结果:oracle中的decode的使用
- MySQL cmake安装
- H2内存数据库死锁
- Maven 3 + Hibernate 3.6 + Oracle 11g Example (XML Mapping)
- Oracle Database - ORA-01720 - grant option does not exist for 'AnObject'
- oracle数据库表的解锁问题
- SQL Server中的连接查询详解