快速入门Oracle

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

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

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

资源描述

1OracleOracleOracleOracle&&&&SQLSQLSQLSQL基本介绍:Oracle公司也提供应用系统;我们涉及的是数据库管理系统DBMS(多用户系统);数据库操作语言SQL——结构化查询语言;(StructuredQueryLanguage)SQL操作对象为DB中的数据,表现形式为——库和表。Oracle用表管理表:一、OracleOracleOracleOracle数据库中常用的数据类型varchar2(长度)可变长字符串date日期类型char(长度)定长number()表示整数或者浮点数clob字符的大对象blob二进制的大对象二、数据库查询1、SELECTSELECTSELECTSELECT语句从表中提取查询数据.语法为:SELECT[DISTINCT]{*,column1,column2,…}FROMtablenameWHERE{conditions}GROUPBY{…}HAVING{conditions}ORDERBY{expressions}[ASC/DESC];SELECE语句包括:投影操作(针对字段)、选择操作(针对记录)、连接操作说明:SELECT子句用于指定检索数据库的中哪些列,FROM子句用于指定从哪一张表或视图中检索数据。注意:DISTINCT在9i中排重并会触发排序;DISTINCT是字段联合起来不重复。SQL语句从性能上对大小写是敏感的,需要有规范来减少对DB的压力。OracleDBDBDBDBselectselectselectselecttable_nametable_nametable_nametable_namefromfromfromfromuser_tables;user_tables;user_tables;user_tables;////////查看当前有那些表descdescdescdescs_emps_emps_emps_emp////////查看表结构(sqlplussqlplussqlplussqlplus命令)以上两条很有用用户表系统表((((数据字典))))telnettelnettelnettelnet192.168.0.2192.168.0.2192.168.0.2192.168.0.23333通过sqlplussqlplussqlplussqlplus命令与数据库建立连接,来操作DDLDDLDDLDDL、DMLDMLDMLDML①PATHPATHPATHPATH中要加入sqlplussqlplussqlplussqlplus所在的目录PATHPATHPATHPATH中追加$ORACLE_HOME/bin$ORACLE_HOME/bin$ORACLE_HOME/bin$ORACLE_HOME/bin(下面有sqlplus命令)用户需要设置两个环境变量:②ORACLE_HOMEORACLE_HOMEORACLE_HOMEORACLE_HOMEOracleOracleOracleOracle安装目录③ORACLE_SIDORACLE_SIDORACLE_SIDORACLE_SID表示连接的数据库////////一定要设置,否则无法连数据库数据库实例的名字这里的实例名(instance(instance(instance(instancename)name)name)name):tarenatarenatarenatarenasqlplussqlplussqlplussqlplussd0sd0sd0sd0708708708708/sd/sd/sd/sd0708070807080708SQLSQLSQLSQL表示已经进入SQLSQLSQLSQL环境。//Oracle//Oracle//Oracle//Oracle的监听进程:1521152115211521ForEvaluationOnly.Copyright(c)byFoxitSoftwareCompany,2004-2007EditedbyFoxitPDFEditor22、WHEREWHEREWHEREWHERE子句。WHERE子句用来选择符合条件的记录。(用表达式、函数会影响索引的使用)between...and...表示结果在这之间,betweenand是一个闭区间;!=,,^=^=^=^=这三个都可以表示不等于;in(val1,val2,...)判断结果是否在这个集合中存在;inininin等价于:=any=any=any=any注意val1val1val1val1、val2val2val2val2…………的顺序会影响执行效率,与数据分布有关like'...'表示字符串通配查询,'%'表示0或多个字符,'_'表示一个字符;注意字符大小写敏感知道转义的用法:like‘S\_%’escape‘\’...and...表示只有两个条件同时满足;...or...表示条件满足其中之一即可;and优先级比or高all...是要求都满足条件;not.....可以与以上的条件产生相反的效果;notnotnotnotinininin等价于:allallallall注意空值的影响,空值与任何值比较结果都为空!!!!...isnull用来判断值是否为空。3、ORDERORDERORDERORDERBYBYBYBY子句(可以跟:字段名、别名、表达式、位置)ORDERBY子句使得SQL在显示查询结果时将各返回行按顺序排列,返回行的排列顺序由ORDERBY子句指定的表达式的值确定。空值当作无穷大判断。ASC(升序,默认的)DESC(降序)orderby目标列名(别名)排序顺序(不写则默认为升序)例:selectfirst_namefroms_emporderbyfirst_name;//默认为升序selectfirst_namefroms_emporderbydept_id,first_namedesc;//升序,降序三、SQLSQLSQLSQL常用的命令分类及例子数据定义语言操作表的结构:DDLDDLDDLDDL(DataDefinitionLanguage)数据操纵语言操作表的数据:DMLDMLDMLDML(DataManipulationLanguage)事务控制语言:TCLTCLTCLTCL(TransactionControlLanguage)create(创建)alter(更改)drop(删除)insert(插入)delete(删除)update(更新)select(查找)commit(提交)savepoint(保存点)rollback(回滚)必须要掌握,使用频度高!强调:事务处处流淌在我们的应用中!3数据控制语言:grant(授予)和revoke(回收)。与权限有关DCL(DataControlLanguage)1、数据定义语言DDLDDLDDLDDL举例:SQLcreatetablemyTab(nonumber(4),namevarchar2(20));//创建一个名为myTab的表,包含两列分别为no和name;SQLaltertablemyTabmodify(namevarchar2(25));//修改myTab中的name列,使此列能容纳25个字符;SQLaltertablemyTabadd(tel_novarchar2(20));//给表myTab增加一列tel_no;SQLaltertablemyTabdropcolumntel_no;//删除表myTab的tel_no列;SQLdroptablemyTab;//删除表myTab;SQLtruncatetablemyTab;//删除表myTab中的所有行(截断表),注意:此操作不可以rollback。2、数据操纵语言DMLDMLDMLDML举例:SQLinsertintomyTabvalues('001','John');//向表myTab中插入一行数据;SQLselectdistinctsalary薪水froms_empwheresalary1500orderbysaldesc;//选择表中salary大于1500的数据,以别名“薪水”显示并按照salary的降序进行排列输出;SQLcreatetableempaasselectempno,ename,job,salfromemp;//从emp表中选择“empno,ename,job,sal”四列的数据建立新表empa;SQLcreatetableempaasselect*fromempwhere1=2;//使用一个假条件根据现有表emp创建一个只包含结构的空表empa;SQLdeletefromempawheresal1500;//删除表empa中sal小于1500的行;SQLupdateempasetsal=1500wheresal1500;//更新,将表empa中sal小于1500的行的sal值全部改为1500。3、事务控制语言TCLTCLTCLTCL举例:SQLcommit;//用于提交并结束事务处理;SQLsavepointmark1;//保存点类似于标记,用来标记事务中的可回滚点;SQLrollbacktosavepointmark1;//回滚到保存点mark1。四、OracleOracleOracleOracle数据库函数注意:dual表(虚表)是专门用于函数测试和运算的。单行函数(where子句只能放单行函数)41、字符函数字符是大小写敏感的转小写lower(字段名)转大写upper(字段名)首字母大写initcap(字段名)字符串拼接concat(字段1,字段2)截取子串substr(字段名,起始位置,取字符个数)字符串长度length(…)忽略空值nvl(commission_pct,0)遇到空值,则用0代替例:selectfirst_name,substr(first_name,2,2)subfroms_emp;(从名字的第二个字符开始取两个字符)selectfirst_name,substr(first_name,-2,2)subfroms_emp;(从名字的倒数第二个字符开始取两个字符)2、数值函数四舍五入函数round(数据,保留到小数点后几位)1表示保留到小数点后一位;-1表示保留到小数点前一位。例:selectround(15.26,1)fromdual;截取数值函数trunc(数据,保留到小数点后几位)例:selecttrunc(123.456,1)fromdual;截取到小数点后一位,注意:与round函数不同,不会四舍五入。3、日期函数只要是日期格式,均包括(世纪、年、月、日、时、分、秒)的信息。日期是格式敏感的!缺省日期格式:日-月-年DD-MON-RRDD-MON-RRDD-MON-RRDD-MON-RR修改当前会话的日期格式,会按照指定的格式输出日期:altersessionsetnls_date_format='yyyymmddhh24:mi:ss';返回当前日期sysdatesysdatesysdatesysdate例:selectsysdatefromdual;另外,date类型可以运算:selectsysdate-1,sysdate,sysdate+1fromdual;单位为1天selectsysdate,sysdate+1/144fromdual;加10分钟两个日期相减表示:相隔多少天。使用函数:5selecttrunc(add_months(sysdate,1),'MONTH')fromdual;//取下个月的首天months_between(add_months(sysdate,5),sysdate)//两个时间有多少月add_months(sysdate,-5)//在系统时间5个月前的时间last_day(’06-DEC-07’)//一个月的最后一天31-DEC-07next_day(’06-DEC-07’,‘FRIDAY’)//求下一个星期五07-

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

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

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

×
保存成功