《数据库中的基本查询语句.pptx》由会员分享,可在线阅读,更多相关《数据库中的基本查询语句.pptx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数数据查询总结据查询总结制作人:王红艳工作任务一:查询基本信息打开数据库语句格式:use数据库名功能:切换“数据库名”为当前数据库说明:SQLServer2005中的TransactSQL语句操作的为当前的数据库例:useDODB-打开数据库go基本查询语句格式:select*From数据库名功能:从指定的数据表中查询出所有的数据其中:(1)“*”表示要查询表中的所有字段(2)“数据表名”指定要查询的数据表例:select*From员工表 -查询员工表的所有信息go3.注释()格式:注释文本说明:可以将注释插入单独行中、嵌套在TransactSQL命令行的结尾或者嵌套在TransactSQL语
2、句中,服务器不对注释进行计算。Go格式:go功能:向TransactSQL实用工具发出一批TransactSQL语句结束的信号。工作任务二:选择查询信息选择查询select语句格式:select查询字段列表From数据表名功能:从“数据表名”所指数据表中查出“查询字段列表”所列的字段值其中:查询字段列表需要查出的字段依次排列在此,字段间用英文半角逗号隔开例:select员工工号,员工姓名,所在部-查询员工部门信息from员工表go修改查询结果中的列标题格式1:select字段1列标题1.字段2列标题2,From数据表名格式2:select字段1as列标题1.字段2as列标题2,From数据表名
3、格式3:select列标题1字段1,列标题2 字段2,From数据表名功能:从“数据表名”所指数据表中查出所列字段的值,并改变列标题为相应的标题说明:(1)上面三种格式中的任何一种都可以(2)上面格式中的列标题字符串可以用单引号引起来,也可以不引以下三种例子的结果是一样的1.Select员工工号 工号,所在部门 部门From员工表go2.Select员工工号 as工号,所在部门 as部门From员工表go3.Select工号=员工工号,部门=所在部门From员工表go查询结果中增加字符串列格式:select字段列表,字符串,字段列表From数据表名功能:在查询结果中增加“字符串”常量列作用:“
4、字符串列”相当于提示符,能准确查询要知道的信息工作任务三:根据条件查询信息1用比较运算符查询格式:select字段列表名From数据表名Where条件表达式功能:从数据表中查出满足“条件表达式”即“条件表达式”的值为true的记录信息(数据)说明:(1)条件表达式最简为字段名 关系运算符 表达式(2)条件表达式可以为:条件表达式1逻辑运算符 条件表达式2(3)算术运算符(+,-,*,/,%)(4)关系运算符(=,=,=)选择查询中的模糊查询使用Like查询格式:select字段名列表From数据表名Where条件表达式功能:从数据表中查出满足“条件表达式”即“条件表达式”的值为true的记录信
5、息说明:(1)条件表达式最简式为:字段名like(notlike)字符串表达式(2)条件表达式可以为:条件表达式1逻辑运算符 条件表达式2(3)一般为模糊查询,在字符串表达式中可以使用通配符(4)通配符如下:l%匹配包括0个或多个字符的字符串l匹配任何一个字符l匹配任何在范围内的单个字符,例如:m-pl匹配任何不在范围的单个字符,例如:m-p、mnopl通配符和字符串要括在单引号中选择查询中的精确查询1.用betweenand组成条件查询信息格式:select字段列表名From数据表名Where字段名notbetween数据1and数据2功能:从数据表中查出字段在或不在数据表1和数据2之间的记
6、录信息(数据)说明:(1)包括两个边界,即数据1=字段=数据2(2)数据的数据表类型可以是数字、文字或是日期(3)此条件与数据1=字段and字段=数据2相同2.用in组成查询条件格式:select字段列表名From数据表名Where字段名notin(表达式1,表达式2,)功能:从数据表中查出字段值在或不在表达式1,表达式2,中的记录(数据)说明:此条件与表达式1 字段or字段 表达式2,或not(表达式1 字段or字段 表达式2,)相同,但用此更简捷查询没有赋值的记录3.查询没有赋值的记录格式:select字段名列表From数据表名Where字段名isnotnull功能:从数据表中查出字段中没
7、有或已赋值的记录信息(数据)说明:null是指未赋值,与0和空字符串不同工作任务四:查询并排序信息排序查询格式:select字段名列表From数据表名Orderby字段1asc|desc,字段2asc|desc功能:从数据表中查出字段1,字段2按递增或递减值排序后的记录信息(数据)说明:(1)asc(默认):递增;desc:递减(2)如果按多个字段排序,则第一个是主字段,当第一个字段的值相同时,按第二个字段进行排序,以此类推。(3)空值被视为最低的可能值查询出N条记录格式:select(n)percentwithties字段名列表From数据表名orderby字段功能:从数据表中分别显示最前N
8、条记录或显示N%条记录信息(数据)说明:(1)N既可以是常数,也可以是变量(2)如果使用orderby子句,可以用withties把最后一条记录值相同的其他记录列出来工作任务五:查询并统计信息查询并统计格式:select字段名列表From数据表名Compute聚合函数(字段)功能:从数据表中查出信息(数据),并给出由聚合函数对字段进行的统计说明:(1)如果出现where子句,则compute子句用在where子句之后(2)compute后聚合函数的值作为附加新行出现在检索结果中(3)聚合函数中的字段必须出瑞在“字段名列表”中(4)compute后可以包括多个聚合函数(5)聚合函数忽略空值(6)
9、聚合函数如:AVG,COUNT,SUM查询并分组统计格式:select字段名列表From数据表名Orderby字段1Compute聚合函数(字段2)by字段1功能:从数据表中查出按computeby后“字段1”进行分组,每组所有信息和每组聚合函数的合计信息。说明(1)必须先由orderby子句对分组字段进行排序(2)查询结果按orderby后字段分成多组工作任务六:分组查询信息分组查询格式:select分组字段名,聚合函数(字段名)as别名From数据表名Groupby分组字段名功能:从数据表中查出根据分组字段分组后,每组由聚合函统计的结果说明:()需要分类或分组查询,必须包括groupby子
10、句()如果出现where子句,groupby子句用在where子句之后()与工作任务五不同之处是只出现一个结果()groupby子句经常用于select子句中包含聚合函数的情况(5)select子句中出现的列,只能是groupby子句中的列或者包含在聚合函数中指定组成聚合的搜索条件格式:select分组字段名,聚合函数(字段名)From数据表名Groupby分组字段名Having条件表达式功能:从数据表中根据分组字段进行分组,每组由聚合函数统计的结果,查出满足条件表达式结果说明:()having通常在groupby子句使用()having子句是对结果进行过滤,where可以用聚合函数;而是对原
11、始记录过滤(3)having子句中的列只能是groupby子句中或者聚合函数中的列。()having子句中可以包括聚合函数工作任务七:.用子查询查询信息子查询包含子查询的语句通常采用以下格式中的一种:Where表达式notin(子查询)WherenotEXISTS(子查询)Where表达式关系运算符ANY|SOMEALLWhere(子查询)功能:从数据表中查出满足根据子查询组合的条件的结果说明:()EXISTS关键字引入一个子查询时,就相当于进行一次存在测试()许多包含子查询的Transact-SQL语句都可以改用多表查询(3)all与比较运算符和子查询一起使用。如果子查询检索的所有值都满足比
12、较运算,则条件返回TRUE;如果并非所有值都满足比较运算或子查询向外部语句返回行,则返回FALSE(4)SOME|ANY与比较运算符和子查询一起使用。如果子查询检索的任何值都满足比较运算,则条件为TRUE;如果子查询内没有值满足比较运算或子查询未向外部语句回行,则返回FALSE(5)子查询可以用在select,update,insert和delee中工作任务八:多表查询信息多表查询格式:select*from数据表,数据表,where表间字段相等条件and表间字段相等条件and其他条件功能:从数据表,数据表多个表中查询各表间相关的信息说明:()表间字段相等条件的形式为:表名.字段名表名.字段名
13、()通常对于N个表格的检索,要有个连接条件()表间字段相等条件一般是两表建立关系的主键和外键在笛卡尔积的结果中,解决问题的方法如下不相关的记录连接成一行解决方法:为了避免笛卡尔积,必须在where子句中给出表格的连接条件(通常对于个表格的检索,要有一个连接条件)出现了相同的列解决方法:不用“*”,而直接写要查找的列名(消除多余字段)基本多表查询格式:select字段列表from数据表别名,数据表别名,where条件功能:从数据表,数据表多个表中查询出信息用join多表查询格式:select字段列表From数据表别名Join数据表别名On表名.字段名表名.字段名where条件功能:从数据表,数据
14、表多个表中查询出各表之间相关的信息说明:(1)表间字段相等条件一般是两表建立关系的键和外键(2)需要其他条件放在where后总结:必需的子句只有selectt和from子句,其他的句子都是可选的。Select子句:指定由查询返回的列。From子句:用于指定引用的列所在的表或视图,如果对象不止一个,那么它们之间必须用逗号分开Where子句:指定用于限制返回的行的搜索条件。如果select语句没有WHERE子句,则DBMS假设目标表中的所有行都满足搜索条件GROUPBY子句:指定用来放置输出行的组,并且如果SELECT子句中包含聚合函数,则计算每组的汇总值HAVING子句:指定组或聚合的搜索条件。
15、HAVING通常与GROUPBY子句一起使用。如果不使用GROUPBY子句,那么HAVING的行为与WHERE子句一样ORDERBY子句:指定结果集的排序,ASC关键字表示升序排列结果,DESC关键字表示降序排列结果,如果没有指定任何一个关键字,那么ASC说是默认的关键字。如果没有ORDERBY子句,则DBMS将根据输入表中的数据的存放位置来显示数据。SELECT查询语句各子句的顺序用作用(1)SELECT(从指定表中取出指定列的数据)(2)FROM(指定要查询操作的表)(3)WHERE(用来规定一种选择查询的标准)(4)GROUPBY(对结果集进行分组,常与聚合函数一起使用)(5)HAVING(返回选取的结果集中行的数目)(6)ORDERBY(指定分组的搜寻条件)3.SELECT语句各子句的执行顺序SELECT语句各子句出现时有一定的执行作顺序,在运行SELECT语句时,系统会严格按照一定的顺序进行执行,执行顺序如下:FROM子句WHERE子句GROUPBY子句HAVING子句SELECT子句ORDERBY子句