CH2-数据查询-简单查询_第1页
CH2-数据查询-简单查询_第2页
CH2-数据查询-简单查询_第3页
CH2-数据查询-简单查询_第4页
CH2-数据查询-简单查询_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据查询

刘国柱联系方式Liu_guozhu@1 目录

1.T-SQL语言简介与分类

2.T-SQL语法要素

3.简单查询

4.查询统计与创建查询结果集

5.连接查询

6.子查询2NO:1T-SQL语言简介

与分类3T-SQL语言简介与分类

SQL(StructuredQueryLanguage)由Boyce和chamberlin在1974年提出

1986年9月ANSI公布了SQL-861989年公布了SQL-89,92年公布了SQL-924T-SQL语言简介与分类

-SQL语言分类数据定义语句(DDL)数据控制语句(DCL)数据操作语句(DML)5NO:2T-SQL语法要素6T-SQL语法要素

-标识符标识符是指用户在SQLServer中标识服务器、数据库、数据库对象、变量、列等对象的名称7T-SQL语法要素

-常规标识符

1~128个字符以字母、_、@、#开头

@为局部变量或参数,@@为全局变量,#为临时表或存储过程,##为全局临时对象,临时对象的名字不能超过116个字符第一个字符后可以是字母、数字、#,$,@,_

不能是保留字符8T-SQL语法要素

-识别数据类型数据类型是列、存储过程、表达式和局部变量的数据特征,它决定数据的存储格式,代表不同的信息类型。分为两类:系统数据类型用户自定义数据类型9数据类型名定义标识日期时间型Datatime,smalldatetime整数型Int,smallint,tinyint,bigint精确数值型Decimal,numeric浮点数值型Float,real货币型Money,smallmoney位型Bit字符型Char,varchar,textUnicode型Nchar,nvarchar,ntext二进制数据型Binary,varbinary,image特殊数据类型Cursor,uniqueidentifier,timestamp,xml10T-SQL语法要素

数据类型-日期时间型Datetimesmalldatetime长度8字节4字节范围1753/1/1~9999/12/311900/1/1~2079/6/6精度1/300秒分钟11T-SQL语法要素

数据类型-整数型IntSmallinttinyint长度4字节2字节1字节范围-2147483648~2147483647-32768~327670~25512T-SQL语法要素

数据类型-精确数据型

Decimal和numeric完全一样,范围:-1038~1038-1

定义:decimal(p,[s])P为精度,包括小数和整数部分,s为小数位数13T-SQL语法要素

数据类型-货币型

Moneysmallmoney长度8字节4字节范围-922,337,203,685,477.5808~922,337,203,685,477.5807-214,784.3648~214,784.3647精度1/10000单位14T-SQL语法要素

数据类型-位型取值为1,00以外的被认为1

15T-SQL语法要素

数据类型-字符型CharVarchartext范围1~80001~8000231-1个以内长度定长不定长不定长16T-SQL语法要素

数据类型-Unicode型新增类型,用于支持非英语语种与char,varchar,text对应,有nchar,nvarchar,ntext,每个字符为2字节17T-SQL语法要素

SQLServer常用的数据类型

intfloat

char

varchar18T-SQL语法要素

-运算符算术运算符+,-,*,/,%

位运算符&,|,^,~

比较运算符>,<,=,>=,<=,!=,<>,!>,!<

逻辑运算符and,or,not,[not]between,[not]like,[not]in19T-SQL语法要素

-注释语句行注释:--

块注释:/*…….*/20NO:3简单查询21简单查询

-查询的语法结构SELECT[ALL|DISTINCT]select_column_list

[INTO[new_table_name]]FROM{table_name|view_name}[WHEREsearch_condition][GROUPBYgroup_by_expression][HAVINGsearch_condition][ORDERBYorder_expression[ASC|DESC]][COMPUTE{{AVG|COUNT|MAX|MIN|SUM}(expression)}[,...n][BYexpression[,...n]]22简单查询-语法说明

select_column_list:选择列表,指出查询结果集合中的列数和属性

into:说明用查询结果集合构造一个新表

From:指出查询的表和各表的关系

Where:指出查询条件

Orderby:说明查询结果集合的排序顺序

Groupby,having,compute:说明查询结果集合的统计方法23简单查询

简单查询只包括选择列、from子句和where子句,分别说明所查询的列、查询的表或视图,及搜索的条件24简单查询-查询所有列语法:

select*from表名示例:

将HumanResources.Employee表的所有记录显示出来25简单查询-选择部分列,并指定显示次序语法:selectcolumn_listfrom表名示例:

将HumanResources.Employee表中的

EmployeeID,LoginID两个字段的值列出26简单查询-可以更改列标题的名称两种方式:列标题(结果集中显示的列名)=列名列名列标题(结果集中显示的列名)示例:显示HumanResources.Department表的DepartmentID,Name字段,需要显示中文含义作为输出列名.27简单查询-可对数值列进行算术运算

selectEmployeeID,Rate,'日薪'=Rate*8fromHumanResources.EmployeePayHistory

注:空值的算术运算仍为空28简单查询-删除重复行使用distinct删除重复行,空值也互相看作重复行,多个空值只返回一行语法:Selectdistinct列名from表名例:

selectdistinct

Titlefrom

HumanResources.Employee

29简单查询-限制返回的行数语法:

Select[topn[percent]]column_name[,coulumn_name…]fromtable_name30简单查询-限制返回的行数(续)讲解返回前2个结果Selecttop2*fromHumanResources.Employee

返回前20%个结果Selecttop20percent*fromHumanResources.Employee31简单查询-使用where子句使用where子句设置查询条件,过滤掉不需要检索的数据行语法:Selectcolumn_listfromtable_namewhereexpressionlist_perator(‘value_list’)说明:expressionlist_perator(‘value_list’):条件表达式32简单查询-使用where子句示例显示HumanResources.Department表中GroupName字段的值为”ResearchandDevelopment”的记录.33

运算符分类运算符意义比较运算符=,>,<,>=,<=,<>,!=,!<,!>大小比较范围运算符Between…and判断表达式的值是否在指定范围内Notbetween…and列表运算符In判断表达式值是否为列表中的指定值)Notin模式匹配符Like判断列值是否与指定的字符通配格式相符Notlike空值判断符isnull判断表达式是否为空isNotnull逻辑运算符Not用于多条件的逻辑连接Andor操作符34简单查询-使用where子句比较运算符:=,>,<,>=,<=,<>,!=,!<,!>

使用HumanResources.Employee表,查询出休假时间超出20小时的记录.

35简单查询-使用where子句范围运算符:

(Not)between…and

使用HumanResources.Employee表,查询出休假时间大于20且小于80的记录.

使用HumanResources.Employee表,查询出休假时间小于20或大于80的记录.36简单查询-使用where子句列表运算符In(Notin)

使用HumanResources.Employee表,查询出title包含”MarketingAssistant”与”ToolDesigner”内容的记录.37简单查询-使用where子句模式匹配符

Like(notlike) %可匹配任意类型和长度的字符

_可匹配单个任意字符

[]指定一个字符、字符串或范围

[^]与[]相反38简单查询-使用where子句使用HumanResources.Employee表,查询出Title字段中头两个字母为”Pr”的所有记录集合.

使用HumanResources.Employee表,查询出Title字段中头两个字母不是”Pr”的所有记录集合.39简单查询-使用where子句使用HumanResources.Employee表,查询出ManagerID字段中头1个字母为”1”的所有记录集合.

使用HumanResources.Employee表,查询出所有男雇员.

40简单查询-使用where子句空值判断符Is(not)null

空值与任何数据运算或比较时,其结果仍为空,空值之间也不能匹配。所以where子句不能使用比较运算符对空值进行比较判断示例:使用EmployeeDepartmentHistory表查找出”EndDate”字段不为空的记录.41简单查询-使用where子句逻辑运算符要特别注意括号的使用

notandor

多数情况为配合其他操作符同时使用.42简单查询-查询结果排序

Orderby子句对查询结果按一列或多列进行排序格式:selectcolumn_listfromtable_name[where…..]orde

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论