《OracleSQL入门》PPT课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Copyright5itjob-Alan,2006.7Allrightsreserved.OracleRDBMSSQL入门1-2Copyright5itjob-Alan,2006.7.Allrightsreserved.目标学习完本课之后,你将掌握以下内容:•Oracle数据类型和单行函数•简单查询和复杂查询•DML、DDL语句1-3Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQL常用Oracle数据类型:类型说明CHAR(length[byte|char])固定length长度的字符数据VARCHAR(length[byte|char])可变长度字符数据,最大长度为4000byteNCHAR(length)固定length长度的Unicode字符数据,最大长度2000byteNVARCHAR2(length)可变长度Unicode字符数据,最大长度为4000byteNUMBER(precision,scale)NUMERIC(precision,scale)可变长数字,最大位数为precision(不包括小数点),scale指定小数点后的位数DEC和DECIMALNUMBER的子类型,38位精度FLOATNUMBER的子类型,38位精度1-4Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQL常用Oracle数据类型:类型说明INT,INTEGER,SMALLINT整数类型,NUMBER的子类型REAL浮点类型,支持18位精度BINARY_FLOAT支持32位单精度浮点数,10g新类型,比NUMBER执行快,5字节BINARY_DOUBLE支持64位双精度浮点数,10g新类型,比NUMBER执行快,9字节DATE日期和时间,默认格式由NLS_DATE_FORMAT参数指定TIMESTAMP[(seconds_precision)]日期和时间,默认格式由NLS_TIMESTAMP_FORMAT参数指定CLOB可变长度的单字节字符数据,最多存储128TB1-5Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQL常用Oracle数据类型:类型说明NCLOB可变长度的Unicode字符数据,最多存储128TBBLOB可变长度的二进制数据,最多存储128TBBFILE指向外部文件的指针LONG可变长度的字符数据,已被CLOB和NCLOB取代,最多2GBROWID十六进制的字符串,表示行地址XMLType存储XML数据VARRAY可变长数组,有序元素集合1-6Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLSQL语句种类:•DQL---DataQueryLanguage–Select语句•DML---DataManipulationLanguage–Insert、Update、Delete语句•DDL---DataDefinitionLanguage–Create、Alter、Drop、Rename、Truncate语句1-7Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLSQL语句种类:•DCL---DataControlLanguage–Grant、Revoke语句•TCL---TransactionControl–Commit、Rollback、Savepoint语句1-8Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•SQL操作符–LIKE–匹配字符串中的模式–模式由普通字符和”%”、”_”通配符组成–例:select*fromscott.empwhereenamelike“%s\_%”escape‘\’以下名字是否匹配?scottascottsys_system1-9Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•SQL操作符–IN–匹配值列表–下面语句将返回什么结果?1.select*fromempwheredeptnoin(10,20,30)2.select*fromscott.empwheredeptnonotin(10,20,30)3.select*fromscott.empwheredeptnonotin(20,10,NULL)1-10Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•SQL操作符–BETWEEN–匹配值范围–下面语句将返回什么结果?select*fromscott.empwheresalbetween1100and16001-11Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•SQL操作符–ISNULL–匹配NULL值–ISNAN–匹配NaN这个特殊值,意思是’非数字’–ISINFINITE–匹配无穷binary_float和binary_double值1-12Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•逻辑运算符–NOT–NOTx,x为false则返回true,否则反之–AND–xANDy,当x和y都为true时返回ture–OR–xORy,当x和y中有一个为true时返回ture优先级:NOTANDOR1-13Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•逻辑运算符–以下语句返回什么值?select*fromscott.empwherehiredate’20-2月-81’orsal3000andempno=‘7782’1-14Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–内连接–连接的多表必须有公共列(相等连接)–通过INNERJOIN语法实现–语法:SELECTtab_name1.col_name,tab_name2.col_name….FROMtab_name1INNERJOINtab_name2ONtab_name1.col=tab_name2.col其中col是两表的公共列1-15Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–内连接以下语句输出内容:selecte.ename,d.dnamefromempeinnerjoindeptdone.deptno=d.deptno1-16Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–内连接上面语句等同于(SQL86语法):selecte.ename,d.dnamefromempe,deptdwheree.deptno=d.deptno1-17Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–以下语句输出结果:selecte.ename,d.dname,s.gradefromempeinnerjoindeptdone.deptno=d.deptnoinnerjoinsalgradesone.salbetweens.losalands.hisal1-18Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–外连接1.左外连接–返回满足连接条件的所有行,而且还会返回不满足连接条件的连接操作符的左边表的其他行–语法:SELECTtab_name1.col_name,tab_name2.col_name….FROMtab_name1LEFTJOINtab_name2ONtab_name1.col=tab_name2.col1-19Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–外连接1.左外连接–Selectd.dname,e.enamefromdeptdleftjoinempeond.deptno=e.deptnoandd.deptno=10;请问输出结果?1-20Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–外连接1.左外连接1-21Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–外连接2.右外连接–返回满足连接条件的所有行,而且还会返回不满足连接条件的连接操作符的左边表的其他行–语法:SELECTtab_name1.col_name,tab_name2.col_name….FROMtab_name1RIGHTJOINtab_name2ONtab_name1.col=tab_name2.col1-22Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–外连接2.右外连接–Selectd.dname,e.enamefromdeptdrightjoinempeond.deptno=e.deptnoandd.deptno=10;输出结果?1-23Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–外连接2.右外连接1-24Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–外连接3.完全外连接–不仅返回满足连接条件的所有行,而且还会返回不满足连接条件的所有行–语法:SELECTtab_name1.col_name,tab_name2.col_name….FROMtab_name1FULLJOINtab_name2ONtab_name1.col=tab_name2.col1-25Copyright5itjob-Alan,2006.7.Allrightsreserved.ORACLESQLDQLStatement(select):•多表查询(SQL99)–外连接3.完全外连接–Selectd.dname,e.enamefromdeptdfulljoinempeond.deptno=e.deptnoandd.deptno=10;结果?1-26Copyright5itjob-Al

1 / 81
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功