笔记代码学习oracle_第1页
笔记代码学习oracle_第2页
笔记代码学习oracle_第3页
笔记代码学习oracle_第4页
笔记代码学习oracle_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle

Oracle&

;数据库操作语言SQLSQLDB用户 telnettelnet② ③ORACLE_SID //一定要设置,否则无法连数据库sqlplussd0701/sd0701 telnetORACLE_SIDPATHsqlplus比如命令:show //看登录的用户名sqlplus命一、Oraclevarchar2(长度)可变长字符 date日期类 定number() selecttable_namefromuser_tables; descselecttable_namefromuser_tables; descs_emp 1、SELECTFROMtablenameWHERE{conditions}GROUPBY{conditions}ORDERBY{expressions}注:distinct2、WHEREbetweenand 表示结果在这之间,betweenand in(va1,val2,...)判断结果是否在这个集合中存在;in等价于:=anylike'...'表示字符串通配查询,'%'表示0或多个字符,'_'表示一个字符; 知道转义的用法:like‘S\_%’escape‘\’and......or all not 可以与以上的条件产生相反的效果 notin等价于:注意空值的影响,空值与任何值比较结果都为空isnull3、ORDERBY排列顺序由ORDERBY子句指定的表达式的值确定。orderby目标列名(别名)排序顺序(不写则默认为升序例:selectfirst_namefroms_emporderbyfirst_name; selectfirst_namefroms_emporderbyfirst_namedesc; 三、SQL

create()(更改)drop(删delete(删除)update(

commit(提交)savepoint(保存点)SQL>createtablemyTab(nonumber(4),name 创建一个名为SQL>altertablemyTabmodifyname SQL>altertablemyTabadd(tel_novarchar2(20)); SQL>altertablemyTabdropcolumntel_no; //删除表myTab的tel_no列;SQL>droptable SQL>truncatetablemyTab; 不可以rollback。SQL>selectdistinctsalary“薪水”froms_empwheresalary>1500orderbysaldesc;//选择表中salary大于1500的数据,以别名“薪水”显示并按照SQL>createtableempaasselectempno,ename,job,salfromSQL>createtableempaasselect*fromempwhere1=2;SQL>deletefromempawheresal<1500;SQL>updateempasetsal=1500whereSQL> SQL>rollbacktosavepointmark1; //回滚到保存点mark1。四、Oraclelower(字段名)upper(字段名initcap(字段名concat(1,substr(字段名,起始位置,取字符个数)字符串长度length(…)忽略空值例selectfirst_name,substr(first_name,2,2)subfroms_emp;(从名字的第二个字符selectfirst_name,substr(first_name,-2,2)subfroms_em字符开始取两个字符

round(数据,保留到小数点后几位例:selectround(15.36,1)fromdual;trunc(数据,保留到小数点后几位例:selecttrunc(123.456,1)from缺省日期格式:日-月-dd-mon-altersessionsetnls_date_format='yyyymmddhh24:mi:ss';返回当前日期sysdate 例:selectsysdatefromdual;另外,date类型可以运算selectsysdate-1,sysdate,sysdate+1from selectsysdate,sysdate+1/144fromdual; 两个日期相减表示相隔多少天。selecttrunk(add_months(sysdate,1),’MONTHfrom tochar(date,'日期格式'yyyymmddhh24:mi:ss'(标准日期格式),'year'(年的全拼),'month'(月的全拼),'day'(星期的全拼),'ddspth'(日期的全例:selectto_char(sysdate,'yyyymmddhh24:mi:ss')fromselectto_char(sysdate,'yearmonthdayddspth')fromdual; selectto_char(sysdate,'YEARMONTHDAYDDSPTH')fromdual;to_date('...','日期格式例:selectto_char(to_date('20061103','yyyymmdd'),'dd-month-yyfromfromtable1t1,table2t2where例如:selecte.first_name||’’||e.last_namename,dept_namefroms_empe,s_deptdwherefrom1122where表别名1.字段名 表别名2.字段名例:selectfirst_name,salaryfromwheresalarybetween1000andselect[表别名1.字段名1],[表别名2.字段名2],...from1112selecta.first_nameename,b.first_namecnamefroms_empa,s_empbwhere第一类问题:掌握哪个部门没有员工的写法,用外第一类问题:掌握哪个部门没有员工的写法,用外fromempe,deptdande.deptnoisnull1.LEFTOUTER1.LEFTOUTERJOIN:selecte.last_name,e.dept_id,froms_empleftouterjoins_deptselectselecte.last_name,e.dept_id,froms_empe,s_dept及 的括没及 的括没 selectselecte.last_name,froms_emprightouterjoins_deptdon(e.dept_id=d.id);selecte.last_name,froms_empe,s_deptdwheree.dept_id(+)=d.id;FULLOUTERJOIN:selectselecte.dept_id,d.idfroms_empe,s_deptdwheree.dept(+)=d.id(+)selectfroms_empfullouterjoins_deptdon(e.dept_id=d.id);groupbyselectgroupby子句可以跟selecthaving前面。groupby子句也会触发排序操作,会按分select[组函数或分组的字段名]...from表名groupby[字段名1],[字段名 例:selectavg(salary)froms_empgroupbyavgsumnumbercount、max、minmax(min(..)count(*)例 (第二类问题froms_empa,s_deptb,s_regioncwherea.dept_id=b.idgroupbyb.id;例selectfirst_name||''||last_name //||fromwheretitlein(selecttitlefroms_empwheredept_id=42);select后加子查询:谁的工资比本部门的平均工资高?(第三类问题selecte.first_name,e.salary,froms_emp,(selectdept_id,avg(salary)avgsalfroms_empwheree.dept_id=a.dept_idande.salary> 比如分为student表class表1、primarykey(PK) primarykey numberprimarykey(c))名字 primarykeycreatetable test(cnumber,c1 number, primarykey(c,c1)); 2、foreignkey(外键约束FK)保证引用的完整性,外键约束,外键的取值是parenttable(父表childtable父表的记录要保证没有被子表引用。要删表时,要先删子表,后删除父表。(可以通过使用cascadeconstraints选项来删除父表)parent(c1 primarykey numberprimarykeyc2 或表级约束定义 child(cnumberprimarykey, ,foreignkey(c2) notnullcreatetablestudent(idnumberprimarykey,namevarchar2(32)notnull,addresskey(id),unique(address));check例:createtablesal(a1number,九、数据字典user_XXXXX用户视图 动态性能视图dictdictionaryuser_constraints的类型,r_constraints_name字段表示外键引用自何处.user_cons_column表,是用户的列级约束表column_name字段存放的是约束字段的名字,position字段存放的是约束在联合键中的位置.事务的结束动作就是commit;DDL,DCL语句执行会自动提交commit。rollback;。(activetransaction),活动的事务中修改的十一、OracleOracle中的一个表列,但实际上它并未存储在表中。伪列可以从表中查询,但是不能插入、更新或删除它们的值。常用的伪列:rowidrownum。rowid值来定位表中的一行。通常情况下,rowid值可以唯一地标识数据库中的 emp;rownum:对于一个查询返回的每一行,rownum伪列返回一个数值代表的次序。rownum1,不能大于某用rownum伪列,用户可以限制查询返回的行数。如:SQL>select*fromempwhererownum<11;emp10十二、序列create 序列名(11,oracle中为了提高产生序列的效率一般一次性产生20个序列放入当前会话的序列池中备用以加快效率)sequence的参数:incrementbyn startwith 递增maxvalue minvalue cycle|no cache sequence user_sequences sequence_name,cache_size,last_number like's_'; 序列名 dropsequence序列名 十三、视图视图就相当于一条select语句,定义了一个视图就是定义了一个sql语句,视图不占空间,使用视图不会提高性能,但是能简化sql语句creatingviews视图名;createorreplaceviewstestasselect*fromtest1wherec1=1;createorreplace:view存在就覆盖,不存在才创建。force|noforce:基表存在时使用,不存在时则创建该表。就是执行创建时的select语句。删除视图withreadonlywithcheckoptionwherecheck约束的功createviewtest_cc select*fromtestwherewithcheck十四、索引对用户查询会提高效率。删除一个表时,相对应的索引也会删除。另外,索引是createindexon(字段名);createindextest_indexontest(c1);删除索引dropindex注意:创建索引就是为了减少物理读,索引会减少磁盘block搜索扫描的时间。ERRORatlineORA-00904:"LAST":invalid用!oerr来寻求帮助:SQL>oerrora 00904,00000,"%s:inva

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论