ImageVerifierCode 换一换
格式:PPT , 页数:57 ,大小:175.78KB ,
文档编号:3761538      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3761538.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(SQL培训-超实用课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

SQL培训-超实用课件.ppt

1、SQL 培训培训20132013年年3 3月月内容简介内容简介 SQL SQL 指令指令:SQL:SQL 如何被用来储存、读取、以及处理如何被用来储存、读取、以及处理数据库之中的资料。数据库之中的资料。表格处理表格处理:SQL:SQL 如何被用来处理数据库中的表格。如何被用来处理数据库中的表格。进阶进阶 SQL:SQL:介绍介绍 SQL SQL 进阶概念,以及如何用进阶概念,以及如何用 SQL SQL 来执行一些较复杂的运算。来执行一些较复杂的运算。SQL SQL 实例实例:介绍一些典型的实例,以及与大规划相介绍一些典型的实例,以及与大规划相关的语句。关的语句。SELECTSELECTSELE

2、CT SELECT 栏位名栏位名 FROM FROM 表格名表格名;DISTINCTDISTINCT 找出表格内的不同资料值的情况SELECT DISTINCT 栏位名 FROM 表格名;例如:select distinct region_name from GEOGRAPHY t;WHERE WHERE SELECT 栏位名 FROM 表格名 WHERE 条件;SQL 指令指令AND/ORAND/ORSELECT 栏位名 FROM 表格名 WHERE 简单条件 AND|OR 简单条件IN/NOT ININ/NOT INSELECT 栏位名 FROM 表格名 WHERE 栏位名 IN(值一,值

3、二,.)例:SELECT*FROM Store_Information WHERE store_name IN(Los Angeles,San Diego)BETWEEN.AND.BETWEEN.AND.SQL 指令指令SELECT 栏位名 FROM 表格名 WHERE 栏位名 BETWEEN 值一 AND 值二 例:SELECT*FROM Store_Information WHERE Dates BETWEEN Jan-06-1999 AND Jan-10-1999LIKE LIKE 字符筛选字符筛选(注意:区分大小写注意:区分大小写)SELECT 栏位名 FROM 表格名 WHERE 栏

4、位名 LIKE 模式 例:SELECT*FROM Store_Information WHERE store_name LIKE%An%SQL 指令指令ORDER BY ORDER BY 排序排序SELECT 栏位名 FROM 表格名 WHERE 条件 ORDER BY 栏位名 ASC,DESC ASC(默认)代表结果会以由小往大的顺序列出,而 DESC 代表结果会以由大往小的顺序列出例:SELECT store_name,Sales,Dates FROM Store_Information ORDER BY Sales DESCGROUP BY GROUP BY 分组分组SELECT 栏位1

5、,SUM(栏位2)FROM 表格名 GROUP BY 栏位1 SQL 指令指令SELECT store_name,SUM(Sales)FROM Store_Information GROUP BY store_name ALIAS ALIAS 别名别名SELECT 表格别名.栏位1 栏位别名 FROM 表格名 表格别名select t.store_name,sum(sales)合计 from STORE_INFORMATION t group by store_name;函数函数AVG(AVG(平均平均)、COUNT(COUNT(计数计数)、MAX(MAX(最大值最大值)、MIN(MIN(最小

6、值最小值)、SUM(SUM(总合总合)SQL 指令指令SELECT 函数名(栏位名)FROM 表格名 select count(store_name)计数 from STORE_INFORMATION t;HAVING HAVING 对函数产生的值来设定条件 SELECT 栏位1,SUM(栏位2)FROM 表格名 GROUP BY 栏位1 HAVING(函数条件)SELECT store_name,SUM(sales)FROM Store_Information GROUP BY store_name HAVING SUM(sales)1500 表格链接表格链接 左连接(left join),

7、又称内部连接(inner join),在这个情况下,要两个表格内都有同样的值,那一笔资料才会被选出。SQL 指令指令select g.*,s.*from geography g,store_information s where g.store_name=s.store_name笛卡儿连接笛卡儿连接select g.*,s.*from geography g,store_information s 外部连接外部连接(outer jion),列出一个表格中每一笔的资料,无论它的值在另一个表格中有没有出现。在要选出所有资料的那个表格之后加上一个(+)select g.store_name,sum(

8、s.sales)sales from geography g,store_information s where g.store_name=s.store_name(+)group by g.store_name;请注意:当第二个表格没有相对的资料时,SQL 会传回 NULL 值。SQL 指令指令CONCATENATE CONCATENATE 连接字符串连接字符串有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种数据库都有提供方法来达到这个目的MySQL:CONCAT()Oracle:CONCAT(),|SQL Server:+CONCAT()的语法如下:CONCAT(字符串1,字符

9、串2,字符串3,.)注意:Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字符串串连起来。不过,在Oracle中,我们可以用|来一次串连多个字符串。例:select g.region_name|g.store_name from geography g;SQL 指令指令SUBSTRING 抓出一个栏位资料中的其中一部分抓出一个栏位资料中的其中一部分MySQL:SUBSTR(),SUBSTRING()Oracle:SUBSTR()SQL Server:SUBSTRING()最常用到的方式如下(在这里我们用SUBSTR()为例):SUBSTR(str,pos):由中,选出所有从

10、第位置开始的字符。请注意,这个语法不适用于SQL Server上。SUBSTR(str,pos,len):由中的第位置开始,选出接下去的个字符。select substr(store_name,3,6)from geography where store_name=Los Angeles;SQL 指令指令TRIM 移除移除SQL 中的 TRIM 函数是用来移除掉一个字符串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的数据库中有不同的名称:MySQL:TRIM(),RTRIM(),LTRIM()Oracle:RTRIM(),LTRIM()SQL Server:RTRIM()

11、,LTRIM()各种 trim 函数的语法如下:TRIM(位置 要移除的字符串 FROM 字符串)位置 的可能值为 LEADING(起头),TRAILING(结尾),or (起头及结尾)。这个函数将把 要移除的字符串 从字符串的起头、结尾,或是起头及结尾移除。如果我们没有列出 要移除的字符串 是什么的话,那空白就会被移除。SQL 指令指令LTRIM(字符串):将所有字符串起头的空白移除。RTRIM(字符串):将所有字符串结尾的空白移除。select rtrim(store_name)from geography g;-删除头和尾空白select trim(store_name)from geo

12、graphy g;-删除头和尾字母“o”select trim(BOTH o from store_name)from geography g;在起头处添加字段:在起头处添加字段:lpad(tab_month,2,0)月份格式改为“MM”2位 select lpad(7,2,0)from dualSQL 指令指令内容简介内容简介 SQL SQL 指令指令:SQL:SQL 如何被用来储存、读取、以及处理如何被用来储存、读取、以及处理数据库之中的资料。数据库之中的资料。表格处理表格处理:SQL:SQL 如何被用来处理数据库中的表格。如何被用来处理数据库中的表格。进阶进阶 SQL:SQL:介绍介绍

13、SQL SQL 进阶概念,以及如何用进阶概念,以及如何用 SQL SQL 来执行一些较复杂的运算。来执行一些较复杂的运算。SQL SQL 实例实例:介绍一些典型的实例。介绍一些典型的实例。CREATE TABLE CREATE TABLE 建表建表语法是:CREATE TABLE 表格名(栏位 1 栏位 1 资料种类 NOT NULLNOT NULL,栏位 2 栏位 2 资料种类,.)-Create tablecreate table GEOGRAPHY(region_name VARCHAR2(20),store_name VARCHAR2(20)NOT NULLNOT NULL)表格处理表

14、格处理CREATE TABLE CREATE TABLE 建表建表语法是:CREATE TABLE 表格名(栏位 1 栏位 1 资料种类 NOT NULLNOT NULL,栏位 2 栏位 2 资料种类,.)注意:字段类型char和varchar2区别CHAR的长度是固定的,而VARCHAR2的长度是可以变化的。比如,存储字符串“abc”,对于CHAR(20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2(20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。表格处理表格处理表格处理表格处理添加注释添加注释-Add comment

15、s to the table comment on table GEOGRAPHY is 商店所属地理位置;-Add comments to the columns comment on column GEOGRAPHY.region_name is 地区名称;comment on column GEOGRAPHY.store_name is 商店名称;CONSTRAINT CONSTRAINT 约束约束 限制限制NOT NULL UNIQUE CHECK 主键(Primary Key)外来键(Foreign Key)表格处理表格处理UNIQUE UNIQUE 唯一性唯一性UNIQUE 限制是

16、保证一个栏位中的所有资料都是有不一样的值。举例来说,在以下的语句中,CREATE TABLE Customer(SID integer Unique,Last_Name varchar(30),First_Name varchar(30);SID 栏位不能有重复值存在,而 Last_Name 及 First_Name 这两个栏位则是允许有重复值存在。请注意,一个被指定为主键的栏位也一定会含有 UNIQUE 的特性。相对来说,一个 UNIQUE 的栏位并不一定会是一个主键。表格处理表格处理CHECK CHECK 核对核对CHECK 限制是保证一个栏位中的所有资料都是符合某些条件。举例来说,在以下

17、的语句中,CREATE TABLE Customer(SID integer CHECK(SID 0),Last_Name varchar(30),First_Name varchar(30);SID 拦只能包含大于 0 的整数。注意,CHECK 限制目前尚未被执行于 MySQL 数据库上。表格处理表格处理主键主键主键(Primary Key)中的每一笔资料都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行资料。主键可以是原本资料内的一个栏位,或是一个人造栏位(与原本资料没有关系的栏位)。主键可以包含一或多个栏位。当主键包含多个栏位时,称为组合键(Composite Key)

18、。注意,在用ALTER TABLE语句来添加主键之前,我们需要确认被用来当做主键的栏位是设定为 NOT NULL;也就是说,那个栏位一定不能没有资料。Oracle:CREATE TABLE Customer(SID integer PRIMARY KEY,Last_Name varchar(30),First_Name varchar(30);Oracle:ALTER TABLE Customer ADD PRIMARY KEY(SID);表格处理表格处理 外来键外来键 外来键是一个(或数个)指向另外一个表格主键的栏位。外来键的目的是确定资料的参考完整性(referential integri

19、ty)。换言之,只有被准许的资料值才会被存入数据库内。举例来说,假设我们有两个表格:一个 CUSTOMER 表格,里面记录了所有顾客的资料;另一个 ORDERS 表格,里面记录了所有顾客订购的资料。在这里的一个限制,就是所有的订购资料中的顾客,都一定是要跟在 CUSTOMER 表格中存在。在这里,我们就会在 ORDERS 表格中设定一个外来键,而这个外来键是指向 CUSTOMER 表格中的主键。这样一来,我们就可以确定所有在 ORDERS 表格中的顾客都存在 CUSTOMER 表格中。换句话说,ORDERS表格之中,不能有任何顾客是不存在于 CUSTOMER 表格中的资料。表格处理表格处理 表

20、格处理表格处理在以上的例子中,ORDERS 表格中的 customer_SID 栏位是一个指向 CUSTOMERS 表格中 SID 栏位的外来键。表格处理表格处理CREATE VIEW CREATE VIEW 视图视图视观表(Views)可以被当作是虚拟表格。它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料。建立一个视观表的语法如下:CREATE VIEW VIEW_NAME AS SQL 语句create view v_geography as select region_name,trim(store_name)v_store_name f

21、rom geography g;-表格处理表格处理CREATE VIEW CREATE VIEW 视图视图视观表(Views)可以被当作是虚拟表格。它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料。建立一个视观表的语法如下:CREATE VIEW VIEW_NAME AS SQL 语句create view v_geography as select region_name,trim(store_name)v_store_name from geography g;-删除视图drop view v_geography;表格处理表格处理CREAT

22、E INDEXCREATE INDEX索引索引如果一个表格没有索引的话,数据库系统就需要将整个表格的资料读出(这个过程叫做table scan)。若有适当的索引存在,数据库系统就可以先由这个索引去找出需要的资料是在表格的什么地方,然后直接去那些地方抓资料。这样子速度就快多了。语法:CREATE INDEX INDEX_NAME ON TABLE_NAME(COLUMN_NAME)create index idx_store_info_store_name on store_information(store_name,)索引的命名并没有一个固定的方式。通常会用的方式是在名称前加一个字首,例如“

23、IDX_”,来避免与数据库中的其他物件混淆。另外,在索引名之内包括表格名及栏位名也是一个好的方式。(删除,修改索引)表格处理表格处理ALTER TABLE ALTER TABLE 修改表结构修改表结构ALTER TABLE语句的语法形式:ALTER TABLE table MODIFY column_name new_data_type (precision ,scale )NULL|NOT NULL|ADD ,.n|DROP COLUMN drop_colum_name ,.n 在以上语法形式中:column_name:要修改的列名。new_data_type:要修改列的新数据类型。prec

24、ision:是指定数据类型的精度。表格处理表格处理scale:是指定数据类型的小数位数。add_column_name:要添加到表中的列名。add_data_type:要添加到表中的列的数据类型。drop_colum_name:要从表中删除的列名 ,.n:可以有多个列。加一个栏位:ADD 栏位 1 栏位 1 资料种类 alter table customer add address char(30);删去一个栏位:DROP column 栏位 1 alter table customer drop column address;改变栏位的资料种类:MODIFY 栏位 1 新资料种类 alter

25、 table customer modify addrs char(50);修改栏位名 RENAME TO alter table customer rename column addr to addrs;表格处理表格处理DROP TABLE DROP TABLE 清除表格清除表格DROP TABLE 表格名 drop table customer;TRUNCATE TABLE TRUNCATE TABLE 清除表格中所有资料清除表格中所有资料TRUNCATE TABLE 表格名 truncate table customer;DELETE FROM DELETE FROM 删除表数据删除表数

26、据DELETE FROM“表格名”WHERE 条件 delete from store_information t where store_name=Los Angeles;表格处理表格处理INSERT INTO INSERT INTO 插入插入INSERT INTO 表格名(栏位1,栏位2,.)VALUES(值1,值2,.)insert into store_information(store_name,sales,dates)values(los angeles,900,jan-10-1999)INSERT INTO 表格1(栏位1,栏位2,.)SELECT 栏位3,栏位4,FROM 表格

27、2 insert into store_information(store_name,sales,dates)select store_name,sales,dates from v_store_information where dates like%1998表格处理表格处理UPDATE UPDATE 修改表格资料修改表格资料 UPDATE 表格名“SET 栏位1=新值 WHERE 条件 update store_information set sales=800 where store_name=los angeles;内容简介内容简介 SQL SQL 指令指令:SQL:SQL 如何被用来

28、储存、读取、以及处理如何被用来储存、读取、以及处理数据库之中的资料。数据库之中的资料。表格处理表格处理:SQL:SQL 如何被用来处理数据库中的表格。如何被用来处理数据库中的表格。进阶进阶 SQL:SQL:介绍介绍 SQL SQL 进阶概念,以及如何用进阶概念,以及如何用 SQL SQL 来执行一些较复杂的运算。来执行一些较复杂的运算。SQL SQL 实例实例:介绍一些典型的实例。介绍一些典型的实例。UNION UNION 求合集求合集将两个 SQL 语句的结果合并在一起。SQL 语句 1UNIONSQL 语句 2 select dates from store_informationunio

29、nselect dates from internet_sales UNION ALLUNION ALLUNION ALL 和 UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复。SQLSQL进阶进阶INTERSECT INTERSECT 交集交集和 UNION 指令类似,INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。不同的地方是,UNION 基本上是一个 OR(如果这个值存在于第一句或是第二句,它就会被选出),而 INTERSECT 则比较像 AND(这个值要存在于第一句和第二句才会被选出)。UNION 是合集,而 INTE

30、RSECT 是交集。INTERSECT 的语法如下:SQL 语句 1INTERSECTSQL 语句 2 SQLSQL进阶进阶MINUS MINUS MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。MINUS 的语法如下:SQL 语句 1MINUSSQL 语句 2 注意:在 MINUS 指令下,不同的值只会被列出一次。SQLSQL进阶进阶子查询

31、子查询我们可以在一个 SQL 语句中放入另一个 SQL 语句。当我们在 WHERE 子句或 HAVING 子句中插入另一个 SQL 语句时,我们就有一个子查询(subquery)的架构。子查询的作用是什么呢?它可以被用来连接表格。有的时候子查询是唯一能够连接两个表格的方式。子查询的语法如下:SELECT“栏位1”FROM 表格 WHERE 栏位2 比较运算素(SELECT“栏位1”FROM“表格”WHERE 条件)select sum(sales)from store_information t where store_name in(select store_name from geogra

32、phy where region_name=East);SQLSQL进阶进阶在这个例子中,我们并没有直接将两个表格连接起来,然后由此直接算出每一间东区店面的营业额。我们做的是先找出哪些店是在东区的,然后再算出这些店的营业额总共是多少。在以上的例子,内部查询本身与外部查询没有关系。这一类的子查询称为简单子查询(Simple Subquery)。如果内部查询是要利用到外部查询提到的表格中的栏位,那这个字查询就被称为相关子查询(Correlated Subquery)。以下是一个相关子查询的例子:select sum(i.sales)from store_information i where i.

33、store_name in(select store_name from geography gwhere g.store_name=i.store_name)SQLSQL进阶进阶EXISTS EXISTS 在上一页中,我们用 IN 来连接内查询和外查询。另外有数个方式,例如,及=,都可以用来连接内查询和外查询。EXISTS 也是其中一种方式。这一页我们将讨论 EXISTS 的用法。基本上,EXISTS 是用来测试内查询有没有产生任何结果。如果有的话,系统就会执行外查询中的 SQL。若是没有的话,那整个 SQL 语句就不会产生任何结果。EXISTS 的语法是:SELECT“栏位1”FROM“表

34、格1”WHERE EXISTS(SELECT*FROM“表格2”WHERE 条件)SQLSQL进阶进阶CASECASE SQL 用来做为 if-then-else 之类逻辑的关键字。CASE 的语法如下:SELECT CASE(栏位名)WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 .ELSE 结果N ENDFROM 表格名“条件”可以是一个数值或是公式。ELSE 子句则并不是必须的。SQLSQL进阶进阶select store_name,case store_name when los angeles then sales*2 when San Diego then

35、sales*1.5 else sales endnew sales,datesfrom store_information“New Sales”是用到 CASE 那个栏位的栏位别名。算排名算排名要以 SQL 列出排名,基本的概念是要做一个表格自我连结(self join),SQLSQL进阶进阶也是一个笛卡尔连接,将结果依序列出,然后算出每一行之前(包含那一行本身)有多少行数select a1.name,a1.sales,count(a2.sales)sales_rank from total_sales a1,total_sales a2 where a1.sales a2.sales or(

36、a1.sales=a2.sales and a1.name=a2.name)group by a1.name,a1.sales order by a1.sales desc,a1.name desc;对比:对比:select row_number()over(order by t.sales desc)m,t.*from total_sales t;SQLSQL进阶进阶算中位数算中位数select sales median from(select a1.name,a1.sales,count(a1.sales)rank from total_sales a1,total_sales a2 wh

37、ere a1.sales a2.sales or(a1.sales=a2.sales and a1.name=a2.name)group by a1.name,a1.sales order by a1.sales desc)a3 where rank=(select ceil(count(*)+1)/2)from total_sales);SQLSQL进阶进阶算累积总计算累积总计要以 SQL 算出累积总计,基本上的概念与列出排名类似:第一是先做个表格自我连结(self join),然后将结果依序列出。在做列出排名时,我们算出每一行之前(包含那一行本身)有多少行数;而在做累积总计 时,我们则是算

38、出每一行之前(包含那一行本身)的总合。select a1.name,a1.sales,sum(a2.sales)running_total from total_sales a1,total_sales a2 where a1.sales=a2.sales /*or(a1.sales=a2.sales and a1.name=a2.name)*/group by a1.name,a1.sales order by a1.sales desc,a1.name desc;SQLSQL进阶进阶算总合百分比算总合百分比每一笔资料是所有总合的百分之几?要用 SQL 算出总合百分比,我们需要用到算排名和累

39、积总计的概念,以及运用子查询的做法。在这里,我们把子查询放在外部查询的 SELECT 子句中。select a1.name,a1.sales,a1.sales/(select sum(sales)from total_sales)pct_to_total from total_sales a1,total_sales a2 where a1.sales=a2.sales /*or(a1.sales=a2.sales and a1.name=a2.name)*/group by a1.name,a1.sales order by a1.sales desc,a1.name desc;SQLSQL

40、进阶进阶算累积总合百分比算累积总合百分比我们要算出到目前为止的累积总合是所有总合的百分之几,而不是光看每一笔资料是所有总合的百分之几。select a1.name,a1.sales,sum(a2.sales)/(select sum(sales)from total_sales)pct_to_total from total_sales a1,total_sales a2 where a1.sales ”-查询表的前十行数据select*from tablename where rownum=10;-查询11-20行记录-方法一select*from(select rownum m,t.*fr

41、om report_info t where rownum=11;-方法二select*from tablename where rownum=20 minusselect*from tablename where rownum 11;-方法三select*from(select row_number()over(order by t.sales desc)m,t.*from total_sales t)where m between 2 and 5;SQLSQL进阶进阶对比学习对比学习select rownum,t.*from total_sales t;-顺序排序select row_nu

42、mber()over(order by t.sales desc)m,t.*from total_sales t;-跳跃排序select rank()over(order by t.sales desc)m,t.*from total_sales t;-连续排序select dense_rank()over(order by t.sales desc)m,t.*from total_sales t;SQLSQL进阶进阶内容简介内容简介 SQL SQL 指令指令:SQL:SQL 如何被用来储存、读取、以及处理如何被用来储存、读取、以及处理数据库之中的资料。数据库之中的资料。表格处理表格处理:SQ

43、L:SQL 如何被用来处理数据库中的表格。如何被用来处理数据库中的表格。进阶进阶 SQL:SQL:介绍介绍 SQL SQL 进阶概念,以及如何用进阶概念,以及如何用 SQL SQL 来执行一些较复杂的运算。来执行一些较复杂的运算。SQL SQL 实例实例:介绍一些典型的实例,以及与大规划相介绍一些典型的实例,以及与大规划相关的语句。关的语句。-设置月报报表参考期别设置月报报表参考期别select distinct tab_year 年份,tab_month 月份 from(select tab_year,tab_month from DXP_408703unionselect to_numbe

44、r(to_char(add_months(sysdate,-1),yyyy)tab_year,to_number(to_char(add_months(sysdate,-1),mm)tab_month from dual)order by tab_year desc,tab_month desc SQLSQL实例实例-设置季报报表参考期别设置季报报表参考期别select distinct tab_year 年份,tab_month 季度 from(select distinct tab_year,tab_month from JNJP_PRICE_EXPONENT_SGCCunionselec

45、t to_number(to_char(sysdate,yyyy)tab_year,trunc(to_number(to_char(sysdate,mm)/3)tab_month from dual)order by tab_year desc,tab_month desc;SQLSQL实例实例to char to char 是把日期或数字转换为字符串是把日期或数字转换为字符串to date to date 是把字符串转换为数据库中得日期类型是把字符串转换为数据库中得日期类型 使用TO_CHAR函数处理数字TO_CHAR(number,格式)TO_CHAR(salary,$99,999.99)

46、;使用TO_CHAR函数处理日期TO_CHAR(date,格式);使用TO_NUMBER函数将字符转换为数字 TO_NUMBER(char,格式)使用TO_DATE函数将字符转换为日期TO_DATE(char,格式)SQLSQL实例实例数字格式数字格式9 9 代表一个数字代表一个数字0 0 强制显示强制显示0 0$放置一个放置一个$符符L L 放置一个浮动本地货币符放置一个浮动本地货币符.显示小数点显示小数点,显示千位指示符显示千位指示符 来来SQLSQL实例实例日期格式日期格式格式控制格式控制 描述描述YYYYYYYY、YYYYYY、YY YY 分别代表分别代表4 4位、位、3 3位、位、2

47、 2位的数字年位的数字年YEAR YEAR 年的拼写年的拼写MM MM 数字月数字月MONTH MONTH 月的全拼月的全拼MON MON 月的缩写月的缩写DD DD 数字日数字日DAY DAY 星期的全拼星期的全拼DY DY 星期的缩写星期的缩写AM AM 表示上午或者下午表示上午或者下午HH24HH24、HH12 12HH12 12小时制或小时制或2424小时制小时制SQLSQL实例实例日期格式日期格式 MI MI 分钟分钟SS SS 秒钟秒钟SP SP 数字的拼写数字的拼写TH TH 数字的序数词数字的序数词“特殊字符特殊字符”假如特殊字符假如特殊字符HH24:MI:SS AM 15:4

48、3:20 PMHH24:MI:SS AM 15:43:20 PMDD“OF”MONTH 12 OF OCTOBERDD“OF”MONTH 12 OF OCTOBERDDSPTH fourteenthDDSPTH fourteenthDateDate的格式的格式 18-5 18-5月月-84-84to_date(2008-12-01 00:00:00,yyyy-mm-dd hh24:mi:ss)to_date(2008-12-01 00:00:00,yyyy-mm-dd hh24:mi:ss)SQLSQL实例实例-增加序号列增加序号列select rownum,t.*from report_info t;-按指定的顺序排序按指定的顺序排序select rownum,code,title,db_table from (select*from report_info order by decode(code,1628,1 ,1110,2 ,1623,3 ,1624,4 ,1625,5 )t where rownum=6;SQLSQL实例实例培训结束培训结束

侵权处理QQ:3464097650--上传资料QQ:3464097650

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


163文库-Www.163Wenku.Com |网站地图|