Sql Server——查询(一)
查询数据就是对数据库中的数据进行筛选显示。显示数据的表格只是一个“虚拟表”。
查询
(1)对列的筛选:
1、查询表中所有数据: select * from 表名 这里的 * 表示所有列的意思
2、查询表中指定列的数据:select 列名1,列名2,列名n from 表名 注意:列名和列名之间用半角逗号隔开,最后一个不用逗号,因为这里只是对指定列的查询,所以就不用 * 号了。
3、在查询数据的时候,我们还可以对列名进行更改(如以中文显示),取别名,但取别名并不影响原表中的内容,因为查询的内容只是在临时生成的虚拟表中显示的。 一共有三种写法,但一般推崇使用第一种。
一:应用as关键字 select 列名1 as 别名1,列名2 as 别名2, 列名n as 别名n from 表名 同样的要注意逗号和 * 号
二:应用空格 就是把上面的as 改为空格 select 列名1 空格 别名1,列名2 空格 别名2, 列名n 空格 别名n from 表名
三:应用 = 号 select 别名1=列名1,别名2=列名2,别名n=列名n 这里要注意列名和别名的位置
(2)对行的筛选:
1、查询固定的行数的数据: select top 行数 * from 表名 * 指所有列,如要只查询其中的几列把 * 改为列名就可以了,这里的行数是从上往下的
2、按百分比查询数据:select top 百分比 percent * from 表名 这里的 * 号和上面一个一样 percent表示 % 如果遇到单行数据,查询时就是四舍五入
(3)排序:
利用关键字 order by
select * from 表名 order by 列名 asc/desc asc(升序,也是默认方式) desc(降序)
(4)条件查询(即where子句):
1、select * from 表名 where 条件
2、between.......and....(范围查询): select * from 表名 where 列名 between 范围一(10) and 范围二(20) (如查询年龄10-20之间的)
3、in(等值查询): select * from 表名 where 列名 in(值一,值二,值n)
4、is(空值查询):select * from 表名 where 列名 is null -->查询空值 select * from 表名 where 列名 is not null -->非空查询
(5)模糊查询:
select * from 表名 where like '格式'
这里需要用到通配符:
%:任意字符匹配 多个
_:单个字符匹配 单个
[]:范围 [^]:范围之外
比如查询姓张的:格式:张% 比如查询电话号码为010-1234567这种格式的: 格式:[0-9] [0-9] [0-9]-[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]
需要注意的是,以上查询都是可以相互配合使用的,具体见下面我做的作业代码:
- create database Student
- go
- use Student
- go
- create table stuInfo
- (
- sno ) not null primary key,
- name ) not null,
- sex ) not null check(sex='男' or sex='女'),
- birthday datetime not null check(birthday<=getdate()),
- phone ) ),
- address ) not null default('沙坪坝'),
- remark text
- )
- go
- insert into stuInfo(sno,name,sex,birthday,phone,address)
- ',default)
- insert into stuInfo(sno,name,sex,birthday,phone,address)
- ','大学城')
- insert into stuInfo(sno,name,sex,birthday,phone,address)
- ','杨家坪')
- create table course
- (
- cno ,),
- cname ) not null
- )
- go
- insert into course values('stb')
- insert into course values('c')
- insert into course values('html')
- insert into course values('sql')
- insert into course values('c#')
- create table score
- (
- no ,),
- sno ) not null references stuInfo(sno),
- cno int not null references course(cno),
- cj )
- )
- go
- ,)
- ,)
- ,)
- ,)
- ,)
- ,)
- ,)
- select * from stuInfo
- select * from course
- select * from score
- --1、查询出所有姓张的学生信息
- select * from stuInfo where name like '张%'
- --2、查询出学号中包含3的,并且性别是男的所有学生信息
- select * from stuInfo where sno like 'T[0-9][0-9]3[0-9][0-9][0-9]'
- --3、查询出联系方式中最后3位号码是567的所有学生信息
- select * from stuInfo where phone like '_______567_' --题目有错
- --4、统计考试及格的数据
- --5、统计成绩在70-100之间的数据
- --6、查询联系电话是44结尾的数据
- select * from stuInfo where phone like '_________44'
- --7、查询姓1号课程的成绩
- --8、查询张三的考试成绩
- select * from score where sno='T123001'
- --9、查询张三考试的最高分
- cj from score order by cj desc
- --10、查询张三的生日
- select birthday from stuInfo where name='张三'
- --11、查询最后一名
- * from score order by cj asc
- --12、查询地址为空的数据
- select * from stuInfo where address is null
- --13、查询电话号码以137开头的
- select * from stuInfo where phone like '137%'
- --14、查询家住沙坪坝的数据
- select * from stuInfo where address='沙坪坝'
- --15、查询性别为男的数据
- select * from stuInfo where sex='男'
- --16、查询成绩在60-80之间的(两种方式)
- --17、查询成绩为60 70 100的数据( 两种方式)
- ,,)
- --18、删除学生姓名为李四的数据(注意主外键)
- delete score where sno='T123002'
- delete stuInfo where sno='T123002'
- --19、清空所有表中的数据(注意主外键)
- delete score
- delete course
- delete stuInfo
- --20、删除所有表(注意主外键)
- drop table score
- drop table course
- drop table stuInfo
- create database MyQQ
- go
- use MyQQ
- go
- create table Star
- (
- Id ,),
- Star ) not null
- )
- go
- insert into Star values('白羊座')
- insert into Star values('金牛座')
- insert into Star values('双子座')
- insert into Star values('巨蟹座')
- insert into Star values('狮子座')
- insert into Star values('处女座')
- insert into Star values('天秤座')
- insert into Star values('天蝎座')
- insert into Star values('射手座')
- insert into Star values('摩羯座')
- insert into Star values('水瓶座')
- insert into Star values('双鱼座')
- create table BloodType
- (
- Id ,),
- BloodType ) not null
- )
- go
- insert into BloodType values('A型')
- insert into BloodType values('B型')
- insert into BloodType values('O型')
- insert into BloodType values('AB型')
- create table Users
- (
- Id ,),
- LoginPwd ) not null,
- NickName ) not null,
- Sex ) not null check(Sex='男' or Sex='女'),
- Age int not null,
- Name ),
- StarId int references Star(Id),
- BloodTypeId int references BloodType(Id)
- )
- go
- select * from Users
- --添加信息
- ,),
- (',null,null,null),
- (,),
- (,),
- (,),
- (',null,null,null),
- (,),
- (',null,null,null),
- (,),
- (',null,null,null),
- (,)
- --查询出性别为“男”的所有用户信息
- select * from Users where Sex='男'
- --查询出年龄在20岁以下的所有用户信息
- --查询出昵称为“benben”的密码
- select LoginPwd from Users where NickName='benben'
- --查询出表star中的所有信息
- select * from Star
- --查询出表BloodType中的所有信息
- select * from BloodType
- --查询出表Users中的所有信息,列名用中文显示
- select ID as 编号, LoginPwd as 密码,NickName as 昵称, Sex as 性别, Age as 年龄, Name as 姓名, StarId as 星座名, BloodTypeId as 血型 from Users
- --查询出年龄在10-50之间的所有用户信息
- --查询出昵称为“豆豆”的血型名称,及星座名称
- select StarId,BloodTypeId from Users where NickName='豆豆'
- --查询出所有用户的昵称、真实姓名、性别、星座编号,血型编号
- select NickName,Sex,Name,StarId,BloodTypeId from Users
- --查询出密码不是0000的用户昵称
- '
- --查询血型编号为1的用户
- --查询用户表中所有数据
- select * from Users
- --查询星座表中的所有数据
- select * from Star
- --查询血型表中的数据
- select * from BloodType
- --查询最大年龄的昵称和真实姓名
- NickName,Name from Users order by Age desc
- --查询最小年龄的昵称和真实姓名
- NickName, Name from Users order by Age asc
- --删除表中所有数据(注意主外键)
- delete Users
- delete BloodType
- delete Star
- --删除所有表(注意主外键)
- drop table Users
- drop table BloodType
- drop table Star
Sql Server——查询(一)的更多相关文章
- [转] 利用SET STATISTICS IO和SET STATISTICS TIME 优化SQL Server查询性能
首先需要说明的是这篇文章的内容并不是如何调节SQL Server查询性能的(有关这方面的内容能写一本书),而是如何在SQL Server查询性能的调节中利用SET STATISTICS IO和SET ...
- SQL SERVER 查询性能优化——分析事务与锁(五)
SQL SERVER 查询性能优化——分析事务与锁(一) SQL SERVER 查询性能优化——分析事务与锁(二) SQL SERVER 查询性能优化——分析事务与锁(三) 上接SQL SERVER ...
- SQL Server 查询性能优化 相关文章
来自: SQL Server 查询性能优化——堆表.碎片与索引(一) SQL Server 查询性能优化——堆表.碎片与索引(二) SQL Server 查询性能优化——覆盖索引(一) SQL Ser ...
- 利用SET STATISTICS IO和SET STATISTICS TIME 优化SQL Server查询性能
首先需要说明的是这篇文章的内容并不是如何调节SQL Server查询性能的(有关这方面的内容能写一本书),而是如何在SQL Server查询性能的调节中利用SET STATISTICS IO和SET ...
- 如何找出你性能最差的SQL Server查询
我经常会被反复问到这样的问题:”我有一个性能很差的SQL Server.我如何找出最差性能的查询?“.因此在今天的文章里会给你一些让你很容易找到问题答案的信息向导. 问SQL Server! SQL ...
- 使用WinDbg调试SQL Server查询
上一篇文章我给你介绍了WinDbg的入门,还有你如何能附加到SQL Server.今天的文章,我们继续往前一步,我会向你展示使用WinDbg调试SQL Server查询需要的步骤.听起来很有意思?我们 ...
- sql server 查询分析器消息栏里去掉“(5 行受影响)”
sql server 查询分析器消息栏里去掉"(5 行受影响)" 在你代码的开始部分加上这个命令: set nocount on 记住在代码结尾的地方再加上: set ...
- Sql Server查询性能优化之走出索引的误区
据了解绝大多数开发人员对于索引的理解都是一知半解,局限于大多数日常工作没有机会.也什么没有必要去关心.了解索引,实在哪天某个查询太慢了找到查询条件建个索引就ok,哪天又有个查询慢了,再建立个索引就是, ...
- SQL Server 查询分析器提供的所有键盘快捷方式(转)
下表列出 SQL Server 查询分析器提供的所有键盘快捷方式. 活动 快捷方式 书签:清除所有书签. CTRL-SHIFT-F2 书签:插入或删除书签(切换). CTRL+F2 书签:移动到下一个 ...
- SQL Server查询性能优化——堆表、碎片与索引(二)
本文是对 SQL Server查询性能优化——堆表.碎片与索引(一)的一些总结. 第一:先对 SQL Server查询性能优化——堆表.碎片与索引(一)中的例一的SET STATISTICS IO之 ...
随机推荐
- 面试 | 商汤科技面试经历之Promise红绿灯的实现
说在前面 说实话,刚开始在听到这个面试题的实话,我是诧异的,红绿灯?这不是单片机.FPGA.F28335.PLC的实验吗?! 而且还要用Promise去写,当时我确实没思路,只好硬着头皮去写,下来再r ...
- 手机自带输入法emoji表情的输入,提交及显示——纯前端解决方案
很早之前就遇到过需要前端支持用户输入并提交emoji表情的问题,一直没有尝试去解决,今天再一次狭路相逢,该来的躲不过,那就着手解决吧. 大多数emoji表情都是4字节的utf-16编码(辅助平面字符, ...
- 简说JS中的循环部分
JS中的循环语句是JS基础的最最重要的部分,没有之一,后面所学的其他的一些重要的知识也是需要在此的基础啥古玩城更高级的设置,先来简单的说一下循环的一些知识点. 一.循环结构的执行步骤 1.声明循环变量 ...
- jQuery遍历-后代
后代是子.孙.曾孙等等. 通过 jQuery,您能够向下遍历 DOM 树,以查找元素的后代. 向下遍历 DOM 树 下面是两个用于向下遍历 DOM 树的 jQuery 方法: children() f ...
- 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据
前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...
- python 二进制转换
#二进制装换msg = "大家好"msg1 = msg.encode(encoding='utf-8')#转换成二进制print(msg1)msg2 = msg1.decode(' ...
- APPIUM 输入中文 之套路
java appium 在Capabilities 中添加 capabilities.setCapabilities("unicodeKeyboard",true);和 capa ...
- beanshell postprocessor解决编码
beanshell postprocessor String s=new String(prev.getResponseData(),"UTF-8"); char ...
- 性能测试系列学习 day1
性能测试的最终目标是为了最大限度的满足用户的需求,我们通常为了达到以下目标而进行性能测试: (1)评估系统的能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策: (2 ...
- 给你的网站免费配置上 HTTPS 证书
现在越来越多的网站或服务增加了 HTTPS 证书,苹果 AppStore.微信小程序等也已强制要求开发者需提供 HTTPS 的后端接口.在阿里云 / 腾讯云上有一年期的免费赛门铁克 SSL 证书可供尝 ...