书签 分享 收藏 举报 版权申诉 / 204
上传文档赚钱

类型数据SQL基础培训课件.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:4832456
  • 上传时间:2023-01-16
  • 格式:PPTX
  • 页数:204
  • 大小:7.52MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《数据SQL基础培训课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据 SQL 基础 培训 课件
    资源描述:

    1、SQL 语言(yyn)基础第一页,共二百零四页。主要(zhyo)内容基本的SELECT语句约束和排序数据单行函数多表显示数据、组函数合计数据创建和管理表子查询&操纵数据内置约束创建视图其他(qt)数据库对象第二页,共二百零四页。基本(jbn)的select语句 第三页,共二百零四页。目标(mbio)完成本课后,您应当能够:列出SQL SELECT语句的功能执行(zhxng)基本的SELECT语句第四页,共二百零四页。SQL SELECT语句(yj)的功能列选择:你能够使用SELECT语句的列选择功能选择表中的列,这些列是你想要用查询返回的。当你查询时,你能够选择你查询的表中指定的列。行选择:你

    2、能够使用SELECT语句的行选择功能选择表中的行,这些行是你想要用查询返回的。你能够使用不同的标准限制你看见的行。连接:你能够使用SELECT语句的连接功能来集合数据,这些数据被存储在不同的表中,在它们之间可以创建连接。在后面(hu mian)的课程中你将学到更多关于连接的内容。第五页,共二百零四页。基本(jbn)SELECT语句 SELECT*|DISTINCT column|expressionalias,.FROM table;SELECT 确定(qudng)哪些列FROM 确定哪张表 第六页,共二百零四页。选择所有(suyu)列与指定列 SELECT*FROM departments;

    3、用跟在SELECT关键字后面的星号(*),你能够(nnggu)显示表中数据的所有列。SELECT department_id,location_id FROM departments;你能够用SELECT语句来显示表的指定列,指定列名之间用逗号分隔。第七页,共二百零四页。写SQL 语句(yj)SQL 语句(yj)对大小写不敏感SQL 语句可以写成一行或多行关键字不能简写或分开折行子句通常放在不同的行缩进用于增强可读性 第八页,共二百零四页。算术(sunsh)表达式用算术运算符创建(chungjin)数字和日期数据的表达式 操作 说明 +加 -减 *乘 /除 第九页,共二百零四页。使用(shyn

    4、g)算术运算符 SELECT last_name,salary,salary+300 FROM employees;优先级优先级:乘法和除法比加法和减法的优先级高 相同优先级的运算符从左到右计算 圆括号用于强制优先计算,并且使语句(yj)更 清晰 SELECT last_name,salary,12*salary+100 FROM employees;第十页,共二百零四页。空值 null 是一个未分配的、未知的,或不适用的值 null不是(b shi)0,也不是空格 包含空值的算术表达式计算结果为空 SELECT last_name,job_id,salary,commission_pct F

    5、ROM employees;第十一页,共二百零四页。定义(dngy)列别名列别名:改变(gibin)列标题的名字 可用于计算结果 紧跟在列名后面在列名和别名之间可以有选项AS 关键字 如果别名中包含有空格、或者特殊字符、或者大小写敏感,要求用双引号 SELECT last_name AS name,commission_pct comm FROM employees;第十二页,共二百零四页。连字运算符连字运算符:连接列或者字符串到其它的列 用两个竖线表示(|)构造一个(y)字符表达式的合成列 SELECT first_name|last_name AS Employees FROM emplo

    6、yees;第十三页,共二百零四页。文字(wnz)字符串 文字字符串是包含在SELECT列表中的一个字符串,一个数字或者(huzh)一个日期 日期和字符的文字字符串值必须用单引号括起来 每个文字字符串在每行输出一次 SELECT last_name|is a|job_id AS Employee Details”FROM employees;第十四页,共二百零四页。约束(yush)和排序数据 第十五页,共二百零四页。目标(mbio)完成本课后,您应当能够执行下列操作:用一个查询(chxn)限制返回的行用一个查询分类返回的行 第十六页,共二百零四页。限制(xinzh)选择的行 用WHERE子句限制

    7、(xinzh)返回的行 SELECT*|DISTINCT column|expressionalias,.FROM table WHERE condition(s);WHERE子句跟着子句跟着FROM子句子句 WHERE 限制查询满足条件的行 condition 由列名、表达式、常数和比较操作组成 WHERE子句能够比较列值、文字值、算术表达式或者函 数,WHERE子句由三个元素组成:列名,比较条件,列名、常量或值列表。第十七页,共二百零四页。使用(shyng)WHERE子句 SELECT employee_id,last_name,job_id,department_id FROM empl

    8、oyees WHERE department_id=90;第十八页,共二百零四页。字符串和日期(rq)字符串和日期的值放在单引号中字符值区分大小写,日期值是格式敏感(mngn)的日期的默认格式是DD-MON-RR.SELECT last_name,job_id,department_id FROM employees WHERE last_name=Whalen;第十九页,共二百零四页。比较(bjio)条件 运算 含义 =等于 大于 =大于等于 小于 =小于等于 不等于比较条件比较条件(tiojin)被用于一个表达式与一个值或与另一个表达式的比被用于一个表达式与一个值或与另一个表达式的比较。较

    9、。.WHERE hire_date=01-JAN-95.WHERE salary=6000.WHERE last_name=Smith 第二十页,共二百零四页。其它比较(bjio)条件操作操作 含义含义(hny)BETWEEN.AND.在两个值之间(包含)IN(set)匹配一个任意值列表 LIKE 匹配一个字符模板 IS NULL 是一个空值 使用使用BETWEEN条件条件:SELECT last_name,salary FROM employees WHERE salary BETWEEN 2500 AND 3500;使用使用IN条件条件 SELECT employee_id,last_na

    10、me,salary,manager_id FROM employees WHERE manager_id IN(100,101,201);第二十一页,共二百零四页。其它(qt)比较条件使用使用LIKE条件条件使用LIKE条件执行有效搜索串值的通配符搜索搜索条件既可以包含文字也可以包含数字:%表示任意顺序的零个或多个字符 _表示一个(y)字符 SELECT first_name FROM employees WHERE first_name LIKE S%;使用使用NULL条件条件用IS NULL操作来测试空值 SELECT last_name,manager_id FROM employees

    11、 WHERE manager_id IS NULL;NULL条件,包括IS NULL条件和IS NOT NULL条件。第二十二页,共二百零四页。逻辑(lu j)条件 运算 含义 AND 如果两个组成部分的条件都为真,返回TRUE OR 如果两个组成部分中的任一个条件为真,返回TRUE NOT 如果跟随的条件为假,返回TRUE 可以在WHERE子句中用AND和OR运算符使用多个(du)条件。使用使用AND操作操作:AND要求两个条件同时为真 SELECT employee_id,last_name,job_id,salary FROM employees WHERE salary=10000 A

    12、ND job_id LIKE%MAN%;第二十三页,共二百零四页。逻辑(lu j)条件使用OR操作(cozu):OR操作要求两者之一为真即可 SELECT employee_id,last_name,job_id,salary FROM employees WHERE salary=10000 OR job_id LIKE%MAN%;使用NOT操作 SELECT last_name,job_id FROM employees WHERE job_id NOT IN(IT_PROG,ST_CLERK,SA_REP);注:NOT运算符也可以用于另一个SQL运算符,例如,BETWEEN、LIKE、和

    13、NULL。第二十四页,共二百零四页。优先(yuxin)规则 求值顺序 1 算术运算 2 连字操作 3 比较(bjio)操作 4 ISNOTNULL,LIKE,NOTIN 5 NOT BETWEEN 6 NOT逻辑条件 7 AND逻辑条件 8 OR逻辑条件 使用圆括号改变优先规则 第二十五页,共二百零四页。ORDER BY子句(z j)用ORDER BY子句排序(pi x)行 ASC:升序排序,默认 DESC:降序排序ORDER BY子句在SELECT语句的最后 SELECT last_name,job_date FROM employees ORDER BY hire_date;语法:SELE

    14、CT expr FROM table WHERE condition(s)ORDER BY column,expr ASC|DESC;第二十六页,共二百零四页。单行(dn xn)函数 第二十七页,共二百零四页。目标(mbio)完成本课后,您应当(yngdng)能够执行下列操作:描述在SQL 中可用的函数的变量类型在SELECT语句中使用字符,数字和日期函数描述转换函数的使用 第二十八页,共二百零四页。SQL 函数(hnsh)函数是SQL的一个非常强有力的特性,函数能够(nnggu)用于下面的目的:执行数据计算 修改单个数据项 操纵输出进行行分组 格式化显示的日期和数字 转换列数据类型 SQL函

    15、数有输入参数,并且总有一个返回值。注:在本课中讲述的大多数函数是针对SQL的Oracle版的。第二十九页,共二百零四页。SQL 函数(hnsh)(续)有两种截然不同的函数:单行函数 多行函数 单行函数 这些函数仅对单个行进行运算,并且每行返回一个结果。有不同类型的单行函数,本课下面的函数类型:字符 数字 日期(rq)转换 多行函数 这些函数能够操纵成组的行,每个行组给出一个结果,这些函数也被称为组函数。多行函数在后面的课程中介绍。第三十页,共二百零四页。单行(dn xn)函数单行(dn xn)函数:操纵数据项接受多个参数并返回一个值作用于每一个返回行每行返回一个结果可以修改数据类型可以嵌套接受

    16、多个参数,参数可以是一个列或者一个表达式第三十一页,共二百零四页。单行(dn xn)函数(续)单行函数的特性包括:作用于查询中返回的每一行 每行返回一个结果 可能返回一个与参数不同类型的数据值 可能需要一个或多个(du)参数 能够用在SELECT、WHERE和ORDER BY子句中,可以嵌套。function_name(arg1,arg2,.)function_name 是函数的名字。arg1,arg2 是由函数使用的任意参数,可以由一个列名或者一个表达式提供。第三十二页,共二百零四页。单行(dn xn)函数(续)本课包括下面的单行函数(hnsh):字符函数:接受字符输入,可以返回字符或者数字

    17、值 数字函数:接受数字输入,返回数字值 日期函数:对DATE数据类型的值进行运算(除了MONTHS_BETWEEN函数返回一个数字,所有日期函数都返回一个DATE数据类型的值。)转换函数:从一个数据类型到另一个数据类型转换一个值 通用函数:NVL、NVL2、NULLIF、COALSECE、CASE、DECODE第三十三页,共二百零四页。字符(z f)函数 单行字符函数接受字符数据单行字符函数接受字符数据(shj)作为输入,既可以返回字符值也作为输入,既可以返回字符值也可以返回数字值。字符函数可以被分为下面两种:可以返回数字值。字符函数可以被分为下面两种:大小写处理函数 字符处理函数大小写处理函

    18、数如下:大小写处理函数如下:LOWER(column|expression)转换字符值为小写 UPPER(column|expression)转换字符值为大写 INITCAP(column|expression)转换每个单词的首字母值为大写,所有 其它值为小写 字符处理函数如下:字符处理函数如下:CONCAT(column1|expression1,column2|expression2)连接第一个字符值到第二个字符值;等价于连接运算符(|)SUBSTR(column|expression,m,n)从字符值中返回指定的字符,开始位置在 m,n字符长度(如果 m 是负数,计数从字符值末尾开始;如

    19、果 n 被忽略,返回到串结束的所有字符)。第三十四页,共二百零四页。LENGTH(column|expression)返回表达式中的字符数INSTR(column|expression,string,m,n)返回一个命名串的数字位置。随意地,你可以提供一个位置m作为查找的开始,在字符串中第n次发现的位置。m和n的默认值是1,意味着在起始开始查找,并且报告第一个发现的位置。LPAD(column|expression,n,string)RPAD(column|expression,n,string)填充字符值左、右调节到n字符位置的总宽度 TRIM(leading|trailing|both,t

    20、rim_character FROM trim_source)使你能够从一个字符串修整(xizhng)头或尾字符(或两者)。如果trim_character或trim_source是字符文字,你必须放在单引号中。REPLACE(text,search_string,replacement_string)从字符串查找一个文本表达式,如果找到,用指定的值串代替它 字符(z f)函数(续)第三十五页,共二百零四页。大小写处理函数这些函数转换字符串的大小写这些函数转换字符串的大小写 函 数 结 果LOWER(SQL Course)sql courseUPPER(SQL Course)SQL COURS

    21、EINITCAP(SQL Course)Sql CourseLOWER:转换大小写混合的字符串为小写字符串 UPPER:转换大小写混合的字符串为大写字符串 INITCAP:将每个单词的首字母转换为大写,其他(qt)字母为小写 SELECT The job id for|UPPER(last_name)|is|LOWER(job_id)AS EMPLOYEE DETAILS FROM employees;第三十六页,共二百零四页。字符(z f)处理函数 函 数 结 果CONCAT(Hello,World)HelloWorldSUBSTR(HelloWorld,1,5)HelloLENGTH(He

    22、lloWorld)10INSTR(HelloWorld,W)6LPAD(salary,10,*)*24000RPAD(salary,10,*)24000*TRIM(H FROM HelloWorld)elloWorld第三十七页,共二百零四页。数字(shz)函数ROUND:四舍五入指定小数的值ROUND(45.926,2)45.93TRUNC(45.926,2)45.92MOD(1600,300)100 ROUND(column|expression,n)四舍五入列、表达式或值为n位小数位,或者,如果n被忽略,无小数位。(如果n是负值,小数点左边的数被四舍五入)TRUNC(column|exp

    23、ression,n)截断列、表达式或值到n位小数,或者,如果n被忽略,那么n默认(mrn)为0 MOD(m,n)返回m除以n的余数 第三十八页,共二百零四页。使用(shyng)ROUND函数 SELECT ROUND(45.923,2),ROUND(45.923,0),ROUND(45.923,-1)FROM DUAL;使用TRUNC函数 SELECT TRUNC(45.923,2),TRUNC(45.923),TRUNC(45.923,-2)FROM DUAL;使用MOD函数 SELECT last_name,salary,MOD(salary,5000)FROM employees WHE

    24、RE job_id=SA_REP;注:MOD函数经常用于确定一个值是奇数还是偶数 第三十九页,共二百零四页。日期(rq)的使用 Oracle 数据库用内部数字格式存储日期(rq):世纪,年,月,日,小时,分钟和秒 默认日期显示格式是DD-MON-RR.SELECT last_name,hire_date FROM employees WHERE last_name like G%;SYSDATE函数返回:Date Time SYSDATE是一个日期函数,它返回当前数据库服务器的日期和时间。SELECT SYSDATE FROM DUAL;第四十页,共二百零四页。用日期(rq)计算从日期加或者减

    25、一个数,结果是一个日期值两个日期相减,得到两个日期之间的天数用小时数除以24,可以加小时到日期上 既然数据库以数字方式存储日期,你就可以用算术运算符进行计算,例如,加或减。你可以加或减数字常数以及日期。你可以进行下面的运算(yn sun):运算 结果 说明 date+number 日期 加一个天数到一个日期上date-number 日期 从一个日期上减一个天数date-date 天数 用一个日期减另一个日期 date+number/24 日期 加一个小时数到一个日期上 第四十一页,共二百零四页。日期(rq)函数 函 数 说 明 MONTHS_BETWEEN 两个日期之间的月数ADD_MONTH

    26、S 加日历月到日期NEXT_DAY 下个星期几是几号LAST_DAY 指定月的最后一天(y tin)ROUND 四舍五入日期TRUNC 截断日期第四十二页,共二百零四页。日期(rq)函数(续)MONTHS_BETWEEN(date1,date2):计算date1和date2之间的月数,其结果可以是正的也可以是负的。如果date1大于date2,结果是正的,反之,结果是负的。结果的小数部分表示月的一部分。ADD_MONTHS(date,n):添加n个日历月到date。n的值必须是整数,但可以是负的。NEXT_DAY(date,char):计算在date之后的下一个周(char)指定天的日期。ch

    27、ar的值可能是一个表示一天的数或者是一个字符串。LAST_DAY(date):计算包含date的月的最后一天的日期ROUND(date,fmt):返回用格式化模式fmt四舍五入到指定单位的 date,如果格式(g shi)模式 fmt 被忽略,date被四舍五入到最近的天。TRUNC(date,fmt):返回用格式化模式fmt截断到指定单位的带天的时间部分的date,如果格式模式fmt被忽略,date被截断到最近的天。第四十三页,共二百零四页。使用日期(rq)函数MONTHS_BETWEEN(01-SEP-95,11-JAN-94)19.6774194ADD_MONTHS(11-JAN-94,

    28、6)11-JUL-94NEXT_DAY(01-SEP-95,2)下个星期五是几号 08-SEP-95LAST_DAY(01-FEB-95)28-FEB-95第四十四页,共二百零四页。使用(shyng)日期函数(续)假定假定(jidng)SYSDATE=25-JUL-95:ROUND(SYSDATE,MONTH)01-AUG-95ROUND(SYSDATE,YEAR)01-JAN-96TRUNC(SYSDATE,MONTH)01-JUL-95 TRUNC(SYSDATE,YEAR)01-JAN-95TRUNC(TO_DATE(25-JUL-95),YEAR)01-JAN-95 第四十五页,共二百

    29、零四页。转换(zhunhun)函数数据数据(shj)类型转换类型转换隐式数据类型转换显式数据类型转换对于直接赋值,Oracle 服务器能够自动地进行下面的转换:从 到VARCHAR2 or CHAR NUMBERVARCHAR2 or CHAR DATENUMBER VARCHAR2 DATE VARCHAR2对于表达式赋值,Oracle 服务器能自动地进行下面的转换:从从 VARCHAR2 or CHAR 到 DATE从从 VARCHAR2 or CHAR 到 NUMBER第四十六页,共二百零四页。转换(zhunhun)函数(续)显式数据类型转换SQL 提供三种函数来从一种数据类型转换值到另

    30、一种:TO_CHAR(number|date,fmt,nlsparams)转换一个数字或日期值为一个VARCHAR2字符串,带格式化样式fmt。数字转换:nlsparams 参数指定下面的字符,它由数字格式化元素返回:小数字符 99999.99前导0 09999 本地货币符号 L9999国际货币符号$9999如果(rgu)忽略nlsparams或其它参数,该函数在会话中使用默认参数值。第四十七页,共二百零四页。TO_CHAR(number|date,fmt,nlsparams)指定返回的月和日名字及其缩写的语言。如果忽略该参数,该函数在会话中使用默认日期语言。TO_NUMBER(char,fm

    31、t,nlsparams)用由可选格式化样式fmt指定的格式转换包含数字(shz)的字符串为一个数字。Nlsparams参数在该函数中的目的与TO_CHAR函数用于数字转换的目的相同。TO_DATE(char,fmt,nlsparams)按照fmt指定的格式转换表示日期的字符串为日期值。如果忽略fmt,格式是 DD-MON-YY。Nlsparams参数的目的与TO_CHAR函数用于日期转换时的目的相同。第四十八页,共二百零四页。对日期使用(shyng)TO_CHAR函数TO_CHAR(date,format_model)格式模板必须加单引号,并且区分大小写能够包含任一有效的日期(rq)格式元素有

    32、一个fm元素用来删除填补的空,或者前导零用一个逗号与日期值分开 SELECT employee_id,TO_CHAR(hire_date,MM/YY)Month_Hired FROM employees WHERE last_name=Higgins;第四十九页,共二百零四页。日期(rq)格式模板的元素YYYY 数字全写年YEAR 年的拼写MM 月的两数字值MONTH 月的全名DY 周中天的三字母缩写DAY 周中天的全名MON 月的三字母缩写DD 月的数字天 第五十页,共二百零四页。使用(shyng)TO_NUMBER和TO_DATE函数转换字符串到数字,用TO_NUMBER函数(hnsh)格

    33、式化:TO_NUMBER(char,format_model)转换字符串到日期,用TO_DATE函数格式化:TO_DATE(char,format_model)Select to_number(12345)from dual;Select to_date(20000810,yyyy-mm-dd fromdual;第五十一页,共二百零四页。通用(tngyng)函数这些函数可用于任意数据类型,并且适用于空值NVL(expr1,expr2)NVL2(expr1,expr2,expr3)NULLIF(expr1,expr2)COALESCE(expr1,expr2,.,exprn)NVL 转换空值为一

    34、个(y)实际值 NVL2 如果expr1非空,NVL2返回expr2;如果expr1为空 ,NVL2返回expr3。参数expr1可以是任意数据类型NULLIF 比较两个表达式,如果相等返回空;如果不相等 ,返回第一个表达式 COALESCE 返回表达式列表中的第一个非空表达式 第五十二页,共二百零四页。NVL函数(hnsh)转换一个空值到一个实际的值可用的数据类型可以是日期、字符和数字数据类型必须匹配:NVL(commission_pct,0)NVL(hire_date,01-JAN-97)NVL(job_id,No Job Yet)语法(yf):NVL(expr1,expr2)在语法中:e

    35、xpr1 是包含空值的源值或者表达式 expr2 是用于转换空值的目的值Select nvl(1,not null from dual;注:如果expr1为空则返回expr2r的值第五十三页,共二百零四页。使用(shyng)NVL2函数NVL2 函数检查第一个表达式,如果第一个表达式不为空,那么 NVL2 函数返回(fnhu)第二个表达式;如果第一个表达式为空,那么第三个表达式被返回。expr2 expr1 非空时的返回值 语法 NVL2(expr1,expr2,expr3)在语法中:expr1 是可能包含空的源值或表达式 expr3 expr1 为空时的返回值 Select NVL2(1,n

    36、ot null,null)from dual;Select NVL2(1,not null,null)from dual;第五十四页,共二百零四页。使用(shyng)NULLIF函数NULLIF 函数比较两个表达式,如果(rgu)相等,函数返回空,如果(rgu)不相等,函数返回第一个表达式。第一个表达式不能为 NULL。语法 NULLIF(expr1,expr2)在语法中:expr1 是对于 expr2 的被比较原值 expr2 是对于 expr1 的被比较原值。(如果它不等于 expr1,expr1 被返回)。Select nullif(abc,abcd)from dual;第五十五页,共二

    37、百零四页。使用(shyng)COALESCE函数 COALESCE函数超过NVL函数的优点是COALESCE函数 能够接受多个交替的值。如果第一个表达式非空,它返回该表达式;否则,它做一个 保留表达式的结合。COALESCE 函数返回列表函数返回列表(li bio)中的第一个非空表达式。中的第一个非空表达式。语法 COALESCE(expr1,expr2,.exprn)在语法中:expr1 如果它非空,返回该表达式 expr2 如果第一个表达式为空并且该表达式非空,返回该表达式 exprn 如果前面的表达式都为空,返回该表达式 Select coalesce(,bca)from dual;第五

    38、十六页,共二百零四页。条件(tiojin)表达式在在SQL 语句中提供语句中提供IF-THEN-ELSE 逻辑逻辑(lu j)的使用。的使用。两种用法:CASE表达式 DECODE函数 CASE表达式 CASE expr WHEN comparison_expr1 THEN return_expr1 WHEN comparison_expr2 THEN return_expr2 WHEN comparison_exprn THEN return_exprn ELSE else_expr END第五十七页,共二百零四页。DECODE函数(hnsh)DECODE(col|expression,se

    39、arch1,result1 ,search2,result2,.,default)DECODE 函数在比较表达式(expression)和每个查找(ch zho)(search)值后解码表达式,如果表达式与查找相同,返回结果。如果省略默认值,当没有查找值与表达式相匹配时返回一个空值。第五十八页,共二百零四页。多表显示数据&组函数(hnsh)合计数据 第五十九页,共二百零四页。目标(mbio)完成本课后,您应当能够执行下列(xili)操作:写SELECT 语句使用等值和非等值连接 从多个表中访问数据使用外连接查看不满足连接条件的数据识别可用的组函数描述组函数的使用用GROUP BY 子句分组数据

    40、用HAVING 子句包含或排除分组的行 第六十页,共二百零四页。笛卡尔乘积(chngj)笛卡尔乘积的形成,当:一个连接条件被遗漏时 一个连接条件不正确时 在第一个表中的所有行被连接到第二个表的所有行时为了避免笛卡尔乘积的形成,在WHERE 子句(z j)中应当总是包 含正确的连接条件。第六十一页,共二百零四页。用Oracle 语法(yf)连接表使用一个连接(linji)从多个表中查询数据 SELECT table1.column,table2.column FROM table1,table2 WHERE table1.column1=table2.column2;在WHERE 子句中写连接条

    41、件当多个表中有相同的列名时,将表名作为列名的前缀定义连接 当数据从多表中查询时,要使用连接(join)条件。一个表中 的行按照存在于相应列中的公值被连接到另一个表中的行,即,通常所说的主键和外键列。第六十二页,共二百零四页。什么(shn me)是等值连接?EMPLOYEES DEPARTMENTS 第六十三页,共二百零四页。用等值连接(linji)返回记录SELECT employees.employee_id,employees.last_name,employees.department_id,departments.department_id,departments.location_i

    42、d FROM employees,departments WHERE employees.department_id=departments.department_id;第六十四页,共二百零四页。使用(shyng)表别名使用表别名简化查询使用表别名改善性能 SELECT e.employee_id,e.last_name,e.department_id,d.department_id,d.location_id FROM employees e,departments d WHERE e.department_id=d.department_id;原则 表别名最多可以有 30 个字符,但短一些

    43、(yxi)更好。如果在 FROM 子句中表别名被用于指定的表,那么在整个 SELECT 语句中都要使用表别名。表别名应该是有意义的。表别名只对当前的 SELECT 语句有效。第六十五页,共二百零四页。多于(du y)两个表的连接 EMPLOYEES DEPARTMENTS LOCATIONS第六十六页,共二百零四页。非等值连接(linji)EMPLOYEES JOB_GRADES第六十七页,共二百零四页。用非等值连接返回(fnhu)记录 SELECT e.last_name,e.salary,j.grade_level FROM employees e,job_grades j WHERE e

    44、.salary BETWEEN j.lowest_sal AND j.highest_sal;第六十八页,共二百零四页。外连接(linji)DEPARTMENTS EMPLOYEES第六十九页,共二百零四页。外连接(linji)语法你可以用一个外连接(linji)查看那些不满足连接(linji)条件的行外连接运算符是加号(+)SELECT table1.column,table2.column FROM table1,table2 WHERE table1.column(+)=table2.column;SELECT table1.column,table2.column FROM table

    45、1,table2 WHERE table1.column=table2.column(+);用外连接返回不直接匹配的记录 如果在连接条件中使用外连接操作,缺少的行就可以被返 回。操作符是一个在圆括号中的加号(+),它被放置在连接 的缺少信息的一侧。为了使来自不完善表的一行或多行能够 被连接,该操作符有产生一个或多个空行的作用。第七十页,共二百零四页。使用(shyng)外连接SELECT e.last_name,e.department_id,d.department_nameFROM employees e,departments dWHERE e.department_id(+)=d.dep

    46、artment_id;第七十一页,共二百零四页。什么(shn me)是组函数?组函数(hnsh)操作行集,给出每组的结果 EMPLOYEES在EMPLOYEES表中的最高薪水(xn shui)第七十二页,共二百零四页。组函数(hnsh)的类型AVG 平均值COUNT 计数MAX 最大值MIN 最小值STDDEV 标准差SUM 合计(hj)VARIANCE 方差 第七十三页,共二百零四页。组函数(hnsh)(续)每个函数(hnsh)接收一个参数,下面的表确定你可以在语法中使用的选项:函 数 说 明 AVG(DISTINCT|ALLn)n 的平均值,忽略空值 COUNT(*|DISTINCT|AL

    47、Lexpr)用*计数所有行,包括重复和带空值 的行。expr 求除了空计算 MAX(DISTINCT|ALLexpr)expr的最大值,忽略空值 MIN(DISTINCT|ALLexpr)expr的最小值,忽略空值 STDDEV(DISTINCT|ALLx)n 的标准差,忽略空值 SUM(DISTINCT|ALLn)合计 n 的值,忽略空值 VARIANCE(DISTINCT|ALLx)n 的方差,忽略空值 第七十四页,共二百零四页。组函数(hnsh)的语法 SELECTcolumn,group_function(column),.FROM tableWHERE conditionGROUP

    48、BYcolumnORDER BYcolumn;使用组函数的原则 DISTINCT 使得函数只考虑不重复的值;ALL 使得函数考虑每个值,包括重复值。默认值是 ALL,因此不需要指定。用于函数的参数的数据类型可以是 CHAR、VARCHAR2、NUMBER 或 DATE。所有组函数忽略空值。为了用一个值代替空值,用 NVL、NVL2 或 COALESCE 函数。当使用 GROUP BY 子句时,Oracle 服务器隐式以升序排序结果集。为了覆盖该默认(mrn)顺序,DESC 可以被用于 ORDER BY 子句。第七十五页,共二百零四页。使用(shyng)AVG、SUM、MIN、MAX 函数你可以

    49、使用AVG 和SUM 用于数字(shz)数据 SELECT AVG(salary),MAX(salary),MIN(salary),SUM(salary)FROM employeesWHERE job_id LIKE%REP%;第七十六页,共二百零四页。使用(shyng)COUNT 函数COUNT(*)返回(fnhu)一个表中的行数 COUNT 函数有三中格式:COUNT(*)COUNT(expr)COUNT(DISTINCT expr)COUNT(*)返回表中满足 SELECT 语句标准的行数,包括重复行,包括有空值列的行。如果 WHERE 子句包括在 SELECT 语句中,COUNT(*)

    50、返回满足 WHERE 子句条件的行数。COUNT(expr)返回在列中的由 expr 指定的非空值的数。COUNT(DISTINCT expr)返回在列中的由 expr 指定的唯一的非空值的数。注:expr为列名第七十七页,共二百零四页。组函数(hnsh)和Null 值所有组函数忽略列中的空值。在幻灯片的例子中,平均值只基于表中的那些 COMMISSION_PCT 列的值有效的行的计算(j sun)。平均值计算(j sun)是用付给所有雇员的总佣金除以接受佣金的雇员数(4)。SELECT AVG(commission_pct)FROM employees;第七十八页,共二百零四页。在组函数(h

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据SQL基础培训课件.pptx
    链接地址:https://www.163wenku.com/p-4832456.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库