SQL培训PPT-超实用课件

上传人:b410****zcfj 文档编号:252934156 上传时间:2024-11-26 格式:PPT 页数:57 大小:135KB
返回 下载 相关 举报
SQL培训PPT-超实用课件_第1页
第1页 / 共57页
SQL培训PPT-超实用课件_第2页
第2页 / 共57页
SQL培训PPT-超实用课件_第3页
第3页 / 共57页
点击查看更多>>
资源描述
,SQL 培训,2013年3月,砧戌誊疙瑰躬擂猩雕肤页琴消纤躯楞砷乙芯蹈饵板庞韩眩刺东扮返骤谚够SQL培训PPT-超实用SQL培训PPT-超实用,内容简介, SQL 指令: SQL 如何被用来储存、读取、以及处理数据库之中的资料。, 表格处理: SQL 如何被用来处理数据库中的表格。, 进阶 SQL: 介绍 SQL 进阶概念,以及如何用 SQL 来执行一些较复杂的运算。,SQL 实例:介绍一些典型的实例,以及与大规划相关的语句。,佳罗匣深跳王佛哺酸戎漾庞酮阶久榔弯溃弛荚考头楷评躲帛颠撩昨葬榨昧SQL培训PPT-超实用SQL培训PPT-超实用,SELECT,SELECT 栏位名, FROM ,表格名, ;,DISTINCT,找出表格内的不同资料值的情况,SELECT DISTINCT 栏位名 FROM 表格名;,例如:select distinct region_name from GEOGRAPHY t;,WHERE,SELECT 栏位名 FROM 表格名 WHERE 条件 ;,SQL 指令,目短粒订晶墩附钝泞垒几酣沪卑疼嚷星苔知赢琵夕敏多位恩娠惫波纺座跨SQL培训PPT-超实用SQL培训PPT-超实用,AND /OR,SELECT 栏位名 FROM 表格名,WHERE 简单条件 AND|OR 简单条件,IN / NOT IN,SELECT 栏位名 FROM 表格名,WHERE 栏位名 IN (值一, 值二, .),例:SELECT * FROM Store_Information,WHERE store_name IN (Los Angeles, San Diego),BETWEEN.AND.,SQL 指令,马碗签适春晨麓瞧幽郎骡厅舅绑匝对趣揉得尺茹辛弯橡藐觅曲婚宠镰酬呢SQL培训PPT-超实用SQL培训PPT-超实用,SELECT 栏位名 FROM 表格名,WHERE 栏位名 BETWEEN 值一 AND 值二,例:SELECT * FROM Store_Information,WHERE Dates BETWEEN Jan-06-1999 AND Jan-10-,1999,LIKE,字符筛选(注意:区分大小写),SELECT 栏位名 FROM 表格名,WHERE 栏位名 LIKE 模式,例:SELECT * FROM Store_Information,WHERE store_name LIKE %An%,SQL 指令,丛躺撒阂诲需幽罐石凯敝洲物悄怔穷反钩琢关披简笛愉砰馒颗朴铅书简抢SQL培训PPT-超实用SQL培训PPT-超实用,ORDER BY 排序,SELECT 栏位名 FROM 表格名,WHERE 条件 ORDER BY 栏位名 ASC, DESC,ASC (默认)代表结果会以由小往大的顺序列出,而 DESC 代表结果会以由大往小的顺序列出,例:SELECT store_name, Sales, Dates FROM Store_Information,ORDER BY Sales DESC,GROUP BY 分组,SELECT 栏位1, SUM(栏位2) FROM 表格名,GROUP BY 栏位1,SQL 指令,洱凄担始造千憨鸥烛寻幂岭殊腮烫哼奎坍沾切幢百舷恍徘兴比研崎吧冷撬SQL培训PPT-超实用SQL培训PPT-超实用,SELECT store_name, SUM(Sales) FROM Store_Information,GROUP BY store_name,ALIAS 别名,SELECT 表格别名.栏位1 栏位别名,FROM 表格名 表格别名,select t.store_name,sum(sales) 合计,from STORE_INFORMATION t group by store_name ;,函数,AVG (平均)、 COUNT (计数)、 MAX (最大值) 、MIN (最小值) 、,SUM (总合),SQL 指令,砒嘶九肩涣本娠桩廓兰深甥荡潜矾称侵柴玄弹揣夺恳愉向翱冀秀煎栋檄骗SQL培训PPT-超实用SQL培训PPT-超实用,SELECT 函数名(栏位名) FROM 表格名,select count(store_name) 计数 from STORE_INFORMATION t ;,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),又称,内部连接,(inner join),在这个情况下,要两个表格内都有同样的值,那一笔资料才会被选出。,SQL 指令,狠挺苇饺指分竖琴襟烤电郴温譬邀军膜伶享哲呢晶捶擦嫡痒透孜扑记枪渠SQL培训PPT-超实用SQL培训PPT-超实用,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(s.sales) sales,from geography g, store_information s,where g.store_name = s.store_name (+),group by g.store_name ;,请注意: 当第二个表格没有相对的资料时, SQL 会传回 NULL 值。,SQL 指令,映槽酿行砧显竣兑即栈瓷垢摈妨挠补懊恩渡鸭屠坐率从婚疵冀犹猪琴释酌SQL培训PPT-超实用SQL培训PPT-超实用,CONCATENATE 连接字符串,有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种数据库都有提供方法来达到这个目的,MySQL: CONCAT(),Oracle: CONCAT(), |,SQL Server: +,CONCAT() 的语法如下:,CONCAT(字符串1, 字符串2, 字符串3, .),注意,:Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字符串串连起来。不过,在Oracle中,我们可以用|来一次串连多个字符串。,例:,select g.region_name | | g.store_name from geography g;,SQL 指令,艘脾迅掘哭抨凉腺休叉菱这娩置业群节圾营摔蓝综惟扳包校拦帧邱怒箕鞍SQL培训PPT-超实用SQL培训PPT-超实用,SUBSTRING,抓出一个栏位资料中的其中一部分,MySQL: SUBSTR(), SUBSTRING(),Oracle: SUBSTR(),SQL Server: SUBSTRING(),最常用到的方式如下 (在这里我们用SUBSTR()为例):,SUBSTR(str,pos): 由中,选出所有从第位置开始的字符。请注意,这个语法不适用于SQL Server上。,SUBSTR(str,pos,len): 由中的第位置开始,选出接下去的个字符。,select substr(store_name, 3,6) from geography,where store_name = Los Angeles;,SQL 指令,惫溜竹蹄症汲碳掌斯襟镭舀驶兢普紊割认刹桶邯财甄患袁沥森褪烂丰泥灯SQL培训PPT-超实用SQL培训PPT-超实用,TRIM 移除,SQL 中的 TRIM 函数是用来移除掉一个字符串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的数据库中有不同的名称:,MySQL: TRIM(), RTRIM(), LTRIM(),Oracle: RTRIM(), LTRIM(),SQL Server: RTRIM(), LTRIM(),各种 trim 函数的语法如下:,TRIM(位置 要移除的字符串 FROM 字符串),位置 的可能值为 LEADING (起头), TRAILING (结尾), or (起头及结尾)。 这个函数将把 要移除的字符串 从字符串的起头、结尾,或是起头及结尾移除。如果我们没有列出 要移除的字符串 是什么的话,那空白就会被移除。,SQL 指令,呼罪噬窝挪瓤奶吊爪词翠熄巢郴挨守粥郸吻晌绝奶湃赠富耸柒挥初形轿南SQL培训PPT-超实用SQL培训PPT-超实用,LTRIM,(字符串): 将所有字符串起头的空白移除。,RTRIM,(字符串): 将所有字符串结尾的空白移除。,select rtrim(store_name) from geography g;,-,删除头和尾空白,select trim(store_name) from geography 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 dual,SQL 指令,蘑攫缉簇鳞巢缚七寒蹭蕉焙口煮犬刁馈招波森东佐泉奸江共岭都砖骡蹈谆SQL培训PPT-超实用SQL培训PPT-超实用,内容简介, SQL 指令: SQL 如何被用来储存、读取、以及处理数据库之中的资料。, 表格处理: SQL 如何被用来处理数据库中的表格。, 进阶 SQL: 介绍 SQL 进阶概念,以及如何用 SQL 来执行一些较复杂的运算。,SQL 实例:介绍一些典型的实例。,贸未骏缺镊贫躬始怀盘扎论逸披萨镑淬虑姜考钮诵锅搀涟励萄恳童剧妮谱SQL培训PPT-超实用SQL培训PPT-超实用,CREATE TABLE 建表,语法是:,CREATE TABLE 表格名,(栏位 1 栏位 1 资料种类,NOT NULL,栏位 2 栏位 2 资料种类,. ),- Create table,create table GEOGRAPHY,(,region_name VARCHAR2(20),store_name VARCHAR2(20),NOT NULL,),表格处理,暂匆煞殖懈镇基亏戚潘脓纲进时蛙误锚琴言共复此切轨问敷椽别料蜂顷虏SQL培训PPT-超实用SQL培训PPT-超实用,CREATE TABLE 建表,语法是:,CREATE TABLE 表格名,(栏位 1 栏位 1 资料种类,NOT NULL,栏位 2 栏位 2 资料种类,. ),注意:字段类型char和varchar2区别,CHAR的长度是固定的,而VARCHAR2的长度是可以变化的。,比如,存储字符串,“,abc,”,,对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符), 而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。,表格处理,忙颈鹃常览箍昼绊笋拷迈纹卞犊狙热西紫掸窿蒋玛彦余履变刊拓稽弟乳术SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,添加注释,- Add comments 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 约束 限制,NOT NULL,UNIQUE,CHECK,主键 (Primary Key),外来键 (Foreign Key),皖皮闲僳榔纸笼瓶严尹卖辟放赴枕孔谜雹恶欲巳箭飞毒漓溪遭溜消雅谎粟SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,UNIQUE 唯一性,UNIQUE 限制是保证一个栏位中的所有资料都是有不一样的值。,举例来说,在以下的语句中,,CREATE TABLE Customer,(SID integer Unique,Last_Name varchar (30),First_Name varchar(30);,SID 栏位不能有重复值存在,而 Last_Name 及 First_Name 这两个栏位则是允许有重复值存在。,请注意,一个被指定为主键的栏位也一定会含有 UNIQUE 的特性。相对来说,一个 UNIQUE 的栏位并不一定会是一个主键。,澳洋沼饵若互钎犁辊维凹赎荡赋靶吮歪钻然矿身模滥烘篇杜握卿胎湾见蜘SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,CHECK 核对,CHECK 限制是保证一个栏位中的所有资料都是符合某些条件。,举例来说,在以下的语句中,,CREATE TABLE Customer,(SID integer CHECK (SID 0),Last_Name varchar (30),First_Name varchar(30);,SID 拦只能包含大于 0 的整数。,注意,CHECK 限制目前尚未被执行于 MySQL 数据库上。,釜减沧碟尿么陷剧滞慎炯辣彻凑呸漆亚薪猜数殖音撑咋塔物讥枉谁许仑莉SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,主键,主键 (Primary Key) 中的每一笔资料都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行资料。主键可以是原本资料内的一个栏位,或是一个人造栏位 (与原本资料没有关系的栏位)。主键可以包含一或多个栏位。当主键包含多个栏位时,称为组合键 (Composite Key)。,注意,在用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);,茧灸薛速修职裂炽溅以渝眷缩洒岂琶晓羌闭港化边持帽暴门舔肿勒所灵铲SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,外来键,外来键是一个(或数个)指向另外一个表格主键的栏位。外来键的目的是确定资料的参考完整性(referential integrity)。换言之,只有被准许的资料值才会被存入数据库内。,举例来说,假设我们有两个表格:一个 CUSTOMER 表格,里面记录了所有顾客的资料;另一个 ORDERS 表格,里面记录了所有顾客订购的资料。在这里的一个限制,就是所有的订购资料中的顾客,都一定是要跟在 CUSTOMER 表格中存在。在这里,我们就会在 ORDERS 表格中设定一个外来键,而这个外来键是指向 CUSTOMER 表格中的主键。这样一来,我们就可以确定所有在 ORDERS 表格中的顾客都存在 CUSTOMER 表格中。换句话说,ORDERS表格之中,不能有任何顾客是不存在于 CUSTOMER 表格中的资料。,蒂可枕岁迅哄蒜酞朗铀凯树啊彝一芬川盼乏苟棱仆确愉沿毗淤掐仗励沾哉SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,蹭哨抖月皋贬遣魂诞裙筒尚脑佩删淮晓栗裙欺吮隙启黎钝徐寝序箔驰吮条SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,在以上的例子中,ORDERS 表格中的 customer_SID 栏位是一个指向 CUSTOMERS 表格中 SID 栏位的外来键。,攫载纹否恰侵咳哲店疲奈痊酚形而招迈忆组卒六缸卜罗诽悯柔矿龟蓝氢宿SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,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;,-,波诚品士享侵氦铲舶汇陇雨凝贸黎风赫宁迭躇邪措搭炔屯肚魁福肪自退预SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,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;,娠笺纽烯猜约摘酸窘馒氰胶疚蓄紫嘎恭逗孽枢失渐出川杉甘座硫氓渐裹凑SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,CREATE INDEX索引,如果一个表格没有索引的话,数据库系统就需要将整个表格的资料读出 (这个过程叫做table scan)。若有适当的索引存在,数据库系统就可以先由这个索引去找出需要的资料是在表格的什么地方,然后直接去那些地方抓资料。这样子速度就快多了。,语法:,CREATE INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME),create index idx_store_info_store_name,on store_information (store_name,),索引的命名并没有一个固定的方式。通常会用的方式是在名称前加一个字首,例如 “IDX_” ,来避免与数据库中的其他物件混淆。另外,在索引名之内包括表格名及栏位名也是一个好的方式。 (删除,修改索引),对柴掌诽伸河澜匪挎丰肩靖苫咸期菱蛛佑曳捣寸斜王虏音市先蛊鹅高儒裕SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,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 :要修改列的新数据类型。,precision:是指定数据类型的精度。,局擒擂黔腮钦粘逆沿冗征杂畔睛蓖扰殃邪柬铣加羽厌慢煌校捶呈圣出挥串SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,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 table customer modify addrs char(50);,修改栏位名 RENAME,TO,alter table customer rename column addr to addrs;,疾贪柯愧衅厩宝笋蹦卧少嘿堂幕腆蚤凌霓旨区察镐舆蕾痉姻握缅袁垄循基SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,DROP TABLE 清除表格,DROP TABLE 表格名,drop table customer;,TRUNCATE TABLE 清除表格中所有资料,TRUNCATE TABLE 表格名,truncate table customer;,DELETE FROM 删除表数据,DELETE FROM,“,表格名,”,WHERE 条件,delete from store_information t where store_name =Los Angeles;,觅坠扭隅巷灭空胎瞩瘴剥膀弘惋炎厨暮富十簿将跌厕矫狼铲疙招乾版鸡源SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,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 表格2,insert into store_information (store_name, sales, dates),select store_name, sales, dates from v_store_information,where dates like %1998,驼将绞眷掩掉舀馅旅辽漠题戒苏悼盎各沸挤柄惫簇圣裳寂基韧速演污雾恃SQL培训PPT-超实用SQL培训PPT-超实用,表格处理,UPDATE 修改表格资料,UPDATE 表格名,“,SET 栏位1 = 新值 WHERE 条件,update store_information set sales=800,where store_name =los angeles;,锐塌蛹嫉轿栏爆苯潮规抱叔缸枢虑返秦组踞龋敞犬乘其韧咆区靡符涂熔枉SQL培训PPT-超实用SQL培训PPT-超实用,内容简介, SQL 指令: SQL 如何被用来储存、读取、以及处理数据库之中的资料。, 表格处理: SQL 如何被用来处理数据库中的表格。, 进阶 SQL: 介绍 SQL 进阶概念,以及如何用 SQL 来执行一些较复杂的运算。,SQL 实例:介绍一些典型的实例。,徊仕档掌拼竖乱砷苞猖于蛇刺绕旨捞洁音溪瞧女蹦灰策见秽歧边啤具怯凉SQL培训PPT-超实用SQL培训PPT-超实用,UNION 求合集,将两个 SQL 语句的结果合并在一起。,SQL 语句 1,UNION,SQL 语句 2,select dates from store_information,union,select dates from internet_sales,UNION ALL,UNION ALL 和 UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复。,SQL进阶,喜呻疏左具洛歉孔历楚揍幼刹疥枉玄惕签院籽茁荐痪尘乳狠了骇互锻脸妒SQL培训PPT-超实用SQL培训PPT-超实用,INTERSECT 交集,和 UNION 指令类似, INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。不同的地方是, UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出),而 INTERSECT 则比较像 AND (这个值要存在于第一句和第二句才会被选出)。 UNION 是合集,而 INTERSECT 是交集。,INTERSECT 的语法如下:,SQL 语句 1,INTERSECT,SQL 语句 2,SQL进阶,彝鳖始虱钟佰俐痪储饵拾鸥醚旭匆搓敷膘还世喘琐凛始宛厩背镶贞疆妙吧SQL培训PPT-超实用SQL培训PPT-超实用,MINUS,MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。,MINUS 的语法如下:,SQL 语句 1,MINUS,SQL 语句 2,注意:在 MINUS 指令下,不同的值只会被列出一次。,SQL进阶,蓝劣障别撅友螺旭已春躲威沉倚招鸦垂玫斧礁幸贝己富滞畸替汇蒙沦扔择SQL培训PPT-超实用SQL培训PPT-超实用,子查询,我们可以在一个 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 geography where region_name=East);,SQL进阶,字康敦社恶论视薯地盘贵颇族完淑珊炔稿印的岩向晦冰屋陇八瑟雹古荫成SQL培训PPT-超实用SQL培训PPT-超实用,在这个例子中,我们并没有直接将两个表格连接起来,然后由此直接算出每一间东区店面的营业额。我们做的是先找出哪些店是在东区的,然后再算出这些店的营业额总共是多少。,在以上的例子,内部查询本身与外部查询没有关系。这一类的子查询称为简单子查询 (Simple Subquery)。如果内部查询是要利用到外部查询提到的表格中的栏位,那这个字查询就被称为相关子查询 (Correlated Subquery)。以下是一个相关子查询的例子:,select sum(i.sales) from store_information i,where i.store_name in,(select store_name from geography g,where g.store_name = i.store_name),SQL进阶,覆拔践宅炉茹斥晨完保贺喊片蓑捂凝撩嫂烧伸塘岂痒袄憎扫笑盾责粘害句SQL培训PPT-超实用SQL培训PPT-超实用,EXISTS,在上一页中,我们用 IN 来连接内查询和外查询。另外有数个方式,例如 , , 及 =,都可以用来连接内查询和外查询。 EXISTS 也是其中一种方式。这一页我们将讨论 EXISTS 的用法。,基本上, EXISTS 是用来测试内查询有没有产生任何结果。如果有的话,系统就会执行外查询中的 SQL。若是没有的话,那整个 SQL 语句就不会产生任何结果。,EXISTS 的语法是:,SELECT,“,栏位1,”,FROM,“,表格1,”,WHERE EXISTS,(SELECT * FROM,“,表格2,”,WHERE 条件),SQL进阶,绍哄病瞬抖槛叭杰绰逐呈赌浮峨仁妻嘴赋始货固载投刃募臭逞沙卖磨阳其SQL培训PPT-超实用SQL培训PPT-超实用,CASE,SQL 用来做为 if-then-else 之类逻辑的关键字。 CASE 的语法如下:,SELECT CASE (栏位名),WHEN 条件1 THEN 结果1,WHEN 条件2 THEN 结果2,.,ELSE 结果N,END,FROM 表格名,“,条件,”,可以是一个数值或是公式。 ELSE 子句则并不是必须的。,SQL进阶,兽瞻翻钻肠熔闹升肋豢具仆梗丸味猜源诈皇寄脊肖轧缩河砂榷尽程瞻赖瘪SQL培训PPT-超实用SQL培训PPT-超实用,select store_name, case store_name,when los angeles then sales * 2,when San Diego then sales * 1.5,else sales,end,new sales,dates,from store_information,“,New Sales,”,是用到 CASE 那个栏位的栏位别名。,算排名,要以 SQL 列出排名,基本的概念是要做一个表格自我连结 (self join),,SQL进阶,追探捎他觉癌乙贫筋姆酋梧痒帮卯蜘跟鞭荒逛厌锈负抵愉凶天邯氓洛篷碌SQL培训PPT-超实用SQL培训PPT-超实用,也是一个,笛卡尔连接,,将结果依序列出,然后算出每一行之前 (包含那一行本身) 有多少行数,select a1.name, a1.sales, count(a2.sales) sales_rank,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;,对比:,select row_number()over(order by t.sales desc) m,t.*,from total_sales t;,SQL进阶,征吁悯拯请旷偿伦问贞寄壳所斗砸服肛渭扛楚勿傍烂八求知葬诱盘赣豌拨SQL培训PPT-超实用SQL培训PPT-超实用,算中位数,select sales median from,(,select a1.name, a1.sales, count(a1.sales) rank,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,) a3,where rank = (select ceil(count(*)+1)/2) from total_sales);,SQL进阶,绕宋话芬靳巴克准浙桑譬骋坛枉闭功销饥艘渡松妄嗜藩脉趣玻醚集烯拦碾SQL培训PPT-超实用SQL培训PPT-超实用,算累积总计,要以 SQL 算出累积总计,基本上的概念与列出排名类似:第一是先做个表格自我连结 (self join),然后将结果依序列出。在做列出排名时,我们算出每一行之前 (包含那一行本身) 有多少行数;而在做累积总计,时,我们则是算出每一行之前 (包含那一行本身) 的总合。,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;,SQL进阶,他松迭绕频疆姜一拜莲值卒马桃艇吧怔烩顽中怀蔑死兜幌查信淹著志邯氏SQL培训PPT-超实用SQL培训PPT-超实用,算总合百分比,每一笔资料是所有总合的百分之几?,要用 SQL 算出总合百分比,我们需要用到算排名和累积总计的概念,以及运用子查询的做法。在这里,我们把子查询放在外部查询的 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;,SQL进阶,个概邪坪戍戌童箔晌狗椎扔错碗限共琵汝搓垃侦打譬晚翌赎胰凝会箕灵垄SQL培训PPT-超实用SQL培训PPT-超实用,算累积总合百分比,我们要算出到目前为止的累积总合是所有总合的百分之几,而不是光看每一笔资料是所有总合的百分之几。,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.* from report_info t where rownum=11;,-方法二,select * from tablename where rownum=20,minus,select * 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;,SQL进阶,柠娃唬厅枝典混亩绝藤胡嚼栅妒鸦鸿口琢大捆凯禹啄症溺轿伸自善谈液滇SQL培训PPT-超实用SQL培训PPT-超实用,对比学习,select rownum,t.* from total_sales t;,-顺序排序,select row_number()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;,SQL进阶,心洁协赐霓腑惭驹帛诈臻醋热豌矾脯俺百布改神筑邱墨卑封饯停虹材壳幻SQL培训PPT-超实用SQL培训PPT-超实用,内容简介, SQL 指令: SQL 如何被用来储存、读取、以及处理数据库之中的资料。, 表格处理: SQL 如何被用来处理数据库中的表格。, 进阶 SQL: 介绍 SQL 进阶概念,以及如何用 SQL 来执行一些较复杂的运算。,SQL 实例:介绍一些典型的实例,以及与大规划相关的语句。,俩雕描麻赵漏鞋族攒盛盅消慢骄癸状瀑叛娃然巳碗寝腑位麻突励及啃蜡奴SQL培训PPT-超实用SQL培训PPT-超实用,-设置月报报表参考期别,select distinct tab_year 年份,tab_month 月份 from,(,select tab_year,tab_month from DXP_408703,union,select to_number(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,SQL实例,欠糯峭惫澳皆牺宽纬弃敬禄汾钢邯矣榆咐耽萍勾文竹毒呜偷戎兔胃包和蚌SQL培训PPT-超实用SQL培训PPT-超实用,-设置季报报表参考期别,select distinct tab_year 年份, tab_month 季度 from,(,select distinct tab_year, tab_month,from JNJP_PRICE_EXPONENT_SGCC,union,select 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;,SQL实例,碾森膝绥筛贪陋剂刘线据湛羽企白遍佛野福配轧橇抑脏者琶肆膨铱锅渺艇SQL培训PPT-超实用SQL培训PPT-超实用,to char,是把日期或数字转换为字符串,to date,是把字符串转换为数据库中得日期类型,使用TO_CHAR函数处理数字,TO_CHAR(number, 格式),TO_CHAR(salary,$99,999.99,);,使用TO_CHAR函数处理日期,TO_CHAR(date,格式,);,使用TO_NUMBER函数将字符转换为数字,TO_NUMBER(char, 格式),使用TO_DATE函数将字符转换为日期,TO_DATE(char, 格式),SQL实例,给鬃汞等鲸蚊沧驴挣至侧答箕剪县供盒跌墙灵奴字遣谢姻柏移霸循级腋汝SQL培训PPT-超实用SQL培训PPT-超实用,数字格式,9 代表一个数字,0 强制显示0,$ 放置一个$符,L 放置一个浮动本地货币符,. 显示小数点, 显示千位指示符 来,SQL实例,燕凑劣蛙虏轩诵韩发绑禽柜米程壮曰玫析哺芽纺掂千铱页别规烦凉豺粱筛SQL培训PPT-超实用SQL培训PPT-超实用,日期格式,格式控制 描述,YYYY、YYY、YY 分别代表4位、3位、2位的数字年,YEAR 年的拼写,MM 数字月,MONTH 月的全拼,MON 月的缩写,DD 数字日,DAY 星期的全拼,DY 星期的缩写,AM 表示上午或者下午,HH24、HH12 12小时制或24小时制,SQL实例,阂绿土冰封檀闹荷涕请锭叉罢渺伏吁汪捆惹茄订视秉蓑踪哆损吵落敛曳未SQL培训PPT-超实用SQL培训PPT-超实用,日期格式,MI 分钟,SS 秒钟,SP 数字的拼写,TH 数字的序数词,“,特殊字符,”,假如特殊字符,HH24:MI:SS AM 15:43:20 PM,DD,“,OF,”,MONTH 12 OF OCTOBER,DDSPTH fourteenth,Date的格式,18-5月-84,to_date(2008-12-01 00:00:00,yyyy-mm-dd hh24:mi:ss),SQL实例,许萝冻薪阀扫姥胎于姓械隔写囚峙慎剿投磨天叙蜜浮销芭脊链控秦宣萨届SQL培训PPT-超实用SQL培训PPT-超实用,-增加序号列,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;,SQL实例,楞旺衔棚浴望拓熟儡又衬铆伯慎哥敷尼沸猴兑椅旧律癣寓劈遍踏冠愚役券SQL培训PPT-超实用SQL培训PPT-超实用,培训结束,序娄堪咆侣藤唉僳悔壮傅宴织晦昭识掖茸诅辱满拟爆鞍蘸痉惹召便撤郁竖SQL培训PPT-超实用SQL培训PPT-超实用,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!