第一篇:oracle笔记课件
查找索引 Unique--唯一
创建student表并创建索引;
创建序列deptno_seq,可自动生成部门号,初始值50,增量10。
向dept表中输入3条虚拟记录
插入3行之后的currval
删除表空间,用管理员身份删除;
创建表空间my_index。
为快速查询,基于员工的姓名ename来创建索引ename_index。
查询全表
查询一列
按顺序排列 列名改成中文版
查询b开头的名字信息;
名字里有e的;
b字母开头五个字符;
查这个日期进来的员工编号;
查询最大值最小值平均值
虚表
查询部门数量,distinct是删除重复。
实验三
创建视图empview,用以查询职工姓名、工作、工资,并且按照职工工资从低到高排序。
更新视图中SCOTT员工的工资为3001元
创建视图来查询所有员工的姓名,工作部门名称
3.创建视图在CHICAGO工作的所有销售员的姓名,工作岗位
4.创建视图来查看所有职工的上级是谁。
5.创建视图来查看哪些部门没有员工。
6、查询所有以M开头的职工的姓名。(提示:在ORACLE中,“%”表示任意多字符,“_”表示单个字符)
7、查询姓名只有四个字符的职工姓名。
8、请按以下格式显示职工姓名和职位:WARD IS MANAGER(“||”可将字符串连接)。
9、查询KING的直接下级(可用自连接或子查询完成)。
conn sys/syspwd@li as sysdba select username,privilege,admin_option from user_sys_privs;select grantee,privilege,admin_option from dba_sys_privs;
Oracle 安全管理
用户及权限管理。
实验五
1、创建myuser表空间,用以存储下面建立的用户和角色。
2、创建以自己姓名简称+role命名的角色(如zyfrole),赋予其连接、创建表的权限。
3、创建以自己姓名+user命名的用户(如zyfuser),将第2题中创建的角色赋予它。
4、以第3题中创建的用户连接数据库,创建一张学生表。『学生(学号,姓名,性别,年龄)』
5、以第3题中创建的用户查看emp表中工资高于3000的职工的职工号、职工姓名和工资;将emp表中‘SCOTT’用户的工资调整为3500。(要将需要的权限授予该用户)
1、创建用户user1/user1,并授予用户CREATE SESSION 和UNLIMITED TABLESPACE的权限。
2、EXP SCOTT/TIGER@ORCL FILE=‘D:DATAscott20101120.dmp'
3、将scott20101120.dmp导入到user用户
4、在scott用户中删除dept表,包括表数据和表结构(注意:应先删除emp表中存在的外键约束FK_DEPTNO,其删除形式为ALTER TABLE emp DROP CONSTRAINT fk_deptno)IMP scott/tiger@orcl file=d:datadept_emp.dmp
SELECT * FROM dept;
5.使用逻辑备份集恢复scott
以myuser身份连接数据库
实验八
1、编写一个PL/SQL块,交换两个变量的值。分别显示交换前后的变量值。
2、编写一个PL/SQL块,用一个循环显示1~10之间的所有奇数。
3、使用sql/plus,显示emp表中的职工号为7788的职工号,职工姓名和部门编号。4、5个数求最大值(使用表类型)
设定5个数的值,求出其中最大的值,并赋值给mx变量
第二篇:Oracle学习笔记
Char(10)定长字符串,使用默认国家支持字符集,如果非空的话,总是包含10字节的信息。Char字段最大可存储2000字节信息.Nchar 定长unicode字符串.nchar(10)非空的话总是包含10个字符的信息。Nchar字段最大同样可以存储2000字节
Varchar2 变长字符串,使用默认国家支持字符集,varchar2(10)最长10字节.varchar2字段最大可以存储4000字节, varchar2(10 byte)最多10字节,而可能的字符数跟字符集有关,在多字节字符集中可能只有两个字符.varchar2(10 char)最多10字符,字节可能40字节.Nvarchar2 包含unicode的变长字符串,nvarchar2(10)最长10字符,nvarchar2 字段最大可以存储4000字节
Raw 变长二进制数据类型,采用此数据类型不会发生字符集转换.此种类型最多可存储2000字节
Number 最多存储精度为38位的数字.number(p,s)p:precision 精度,默认38,也可用*代表,取值范围1-38。S取值范围-48-127.默认为0
Char类型尽量少用,比较时很容易出现同样的内容由于char类型会用空格填充的问题导致不匹配.但直接用字符串比较时不会出现此问题是因为会有隐式转换,使用绑定变量(变量类型不为char)或者列值直接比较时会出此问题。可以用rpad 或trim来解决此问题,但最好用rpad填充,因为trim会导致列索引无法使用.
第三篇:课件笔记
村口发生交通事故,卡车司机受伤,围观群众哄抢卡车上的水果,你是村长助理,正在值班,有村民向你汇报,你怎么处理?
第一,生命至上,在遇到事故的时候,首先要考虑对伤员的救治,时间就是生命,任何情况造成的拖延都有可能导致伤员救治不及时。同时一定要避免二次事故的发生。
第二,我立即安排其他工作人员代我值班,我赶往现场。先查看伤者的伤势。在确定不会引起二次伤害的前提下,可以将伤者转移到附近阴凉处,进行简单的包扎救治。如果有严重骨折或内出血等症状,不能移动,那就保持好现状,并请有医护经验的人进行简单的止血包扎等工作。
第三,我会打电话给交通、公安等部门,告知事故发生的具体情况,并按他们的要求进行保护现场等工作。并打电话给村长及村委会的成员,向他们进行汇报。
第四,我会制止村民哄抢水果的行为,要求拿了水果的村民尽快送还,晓之以利害,请现场的群众相互转达通知。我们村应以古道热肠,民风淳朴的著称,我不希望看到他们在别人出事故的时候落井下石,这不但不道德,而且是违法犯罪的行为。我相信绝大多数群众只是不明真相的盲从者,在我的劝导下,会回归理性和善良。如果有人不配合,我也会委婉地指出,这是违法行为,一旦追究,需要承担相应的责任。
第五,等村干部到来后,我会配合他们一起照顾伤员、维持现场秩序、追回并看管卡车上的水果等物品。配合急救中心和交通部门的工作人员进行工作。
公务员应对自然灾害处置要点:
第一,马上组织干部和群众在第一时间内赶赴现场,组织抢险救灾,对灾区的群众进行营救,疏散灾区群众,防止衍生灾害发生,安排好吃穿住用行,对伤者救治,年老体弱者进行医疗护理。
第二,对灾情进一步了解,掌握一手资料。代表政府慰问受灾群众,安抚家属情绪,对受灾群众进行心理辅导和心理干预,稳定群众情绪。
第三,把了解的具体的情况及时向上级领导部门汇报,争取得到上级部门和领导的支持,及时拨付有关物资以解群众燃眉之急,协调相关部门维护正常社会秩序,避免人为原因造成物价上涨,哄抢财物等事件发生。
第四,把相关物资迅速发放到受灾群众手中,并登记造册,保证群众日常之需。
第五,带领群众开展灾后生产自救,重建家园。
第六,写出总结报告,认真分析原因吸取经验教训。
例题1:你们村接到消息会发洪水,你作为村长,怎么办?
天灾无情,洪水将袭,人民群众的生命财产受到巨大威胁,作为一村之长,定要身先士卒。所以我一定要采取一系列必要措施,确保村民的生命财产安全。
第一,确认信息来源。如果准确,立即与村委会干部一同组织人员通知村里的各户人家,对可能遭到洪水侵袭的村民做好疏散准备,安排好疏散群众的衣食住行,组织好村民进行抗洪救灾的准备工作。
第二,对水灾可能造成的损失进行评估,安抚大家的情绪,消除恐慌。密切的关注天气的变化,安排人员观察村河流涨水的情况,且发现情况马上报告。
第三,随时把抗洪的情况向上级部门汇报,争取得到上级政府部门的支持,及时的拨付物资以供不时之需。
第四,如果洪水到来,马上转移群众,到达指定的安全区域;洪水过后,做好灾后的医疗防疫与重建工作。
应变能力是领导者的必备能力之面对突发事件时,务必保持冷静,趁着应一。当对。尤其是对于工作在一线的基层干部来说,更要具备处理复杂、突发事件的能力。
公务员应对生产事故处置要点:
第一,马上组织领导干部和群众在第一时间内赶赴现场,组织救援,对事故群众进行营救,疏散灾区附近群众,防止衍生事故发生,导致更大的损失。安排吃穿住用行,并对伤者救治。
第二,对事故进一步了解,掌握一手资料,协同有关部门,成立事故调查小组,调查事故原因。代表政府慰问事故群众,看望伤员,安抚家属情绪,对事故群众进行安抚,消除紧张和恐慌情绪。
第三,把调查的具体的情况及时向上级领导部门汇报,对相关的责任人进行处理,协调企业领导加强对员工的安全教育,提高职工安全生产的意识,杜绝此类事故再次发生。
第四,协调相关的部门对造成的损失进行赔付。
第五,积极配合相关部门,协调工作恢复生产。
第六,写出总结报告,认真分析原因吸取经验教训,完善应急预案。
你乡镇某煤矿发生爆炸,死伤数人,还有矿工被围困。领导派你赶赴现场处理相关事宜,你怎么做?
灾情就是命令,时间就是生命,矿工安全大于天。因此我一定会服从安排,第一时间赶赴现场进行处理,从以下几个环节开展工作: 【处理】
第一,赶赴现场后,协调煤矿企业负责人员和相关救援单位组织救援,全力以赴抢救生命;维护现场秩序,疏散可能受到事故波及的群众,撤离到安全区域,防止衍生事故发生,避免更大的损失。安排好疏散人员的吃穿住用行,对伤者进行救治。
第二,对事故进一步了解,掌握一手资料,协同安全生产监管、监察机关、公安机关、工会等部门成立事故调查小组,查明事故原因。代表政府慰问事故群众,看望伤员,安抚家属情绪,对事故群众进行安抚,消除紧张和恐慌情绪。
第三,把调查的具体情况及时向上级领导汇报,追究相关责任,监督煤矿企业加强安全生产保障,加强安全检查,对员工进行安全教育,提高安全与自我保护意识。
第四,协调相关部门对造成损失的员工进行赔付。
第五,对此次的煤矿爆炸事件的调查和处理结果进行总结汇报,仔细查找原因,完善对此类事件的应急预案。
【总结】在以后处理突发事件的过程中,我们一定要“ 沉着、稳定、依法、高效”地处理问题,保证群众根本利益,维护社会稳定。
学校突发流感,造成学生的恐慌,作为学校负责人,你会采取哪些措施?
【表态】保障学生的健康与安全,是学校担负的一项重要工作内容。特别是流感蔓延,作为学校领导,必须高度的重视,迅速妥善处理此事。
【处理】
第一,通过广播宣传和组织传达等方式,告知实际情况,稳定学生情绪的,消除校园慌乱气氛。
第二,启动学校防治流感应急预案,将流感情况向教育主管部门汇报。联系卫生防疫部门,对学校的各个场所进行消毒,组织学生注射流感疫苗等。
第三,成立防治流感工作小组,召开全体教师会议,要求各位班主任做好本班的学生稳定工作,让学生对流感病情有详细的了解,有效做到个人预防。要求学生在流感活动期尽量减少集体活动,以免发生集体感染。
第四,根据情况,分别处理。将患病严重的同学送往医院进行治疗;对患病不严重的同学进行有效隔离。与此同时,时刻关注疫情变化,实行晨检和晚检制度,一旦发现有异常的学生及时送往医院进行治疗。
第五,做好学生心理的安抚工作;随时公开病情防控信息,杜绝谣言。
【总结】疫情解除之后,对工作进行总结,向上级主管部门汇报。并通过这次事件,总结经验,建立更加完备的防控制度和体系,以保证学校正常的教学和生活秩序。
群体中毒事件(食物、药物、环境污染物中毒等等)公务员应对群体中毒事件处置要点:
第一、第一时间向医疗部门报告,组织人员对中毒群众进行抢救,对可能中毒的对象进行观察,疏散污染区群众,保护现场对现场信息进行采集,为进一步救治与防治提供依据。
第二、对中毒事件进一步了解,掌握一手资料,协同有关部门调查原因,根据事实具体处理。
第三、把调查救治的具体的情况及时向上级领导部门汇报,控制有毒有害物质蔓延,减少或杜绝衍生事件发生。
第四、及时公开救治情况,与问题的处理情况避免由于信息闭塞引起不必要恐慌,干扰社会正常秩序。
第五、写出总结报告,认真分析原因吸取经验教训,完善应急预案,加大监管力度。
例题:你村发生一起食物中毒事件,领导交办你去处理,你如何解决?
【表态】食物中毒事关百姓的生命安危,我将竭尽全力妥善处理好食物这次中毒事件。【处理】第一,我会进行必要的应急处理。在第一时间奔赴现场,在途中,我会尽早通知卫生、质检等相关部门到达现场。到达现场后,按照相关事故制定的预案,成立工作组,分工协作。首先要对中毒人员进行抢救,以人为本、生命至上,千方百计抢救中毒群众的生命。
第二,组织卫生、质检和公安等专业人员,迅速查明原因,采取果断措施,堵住中毒的源头,防止中毒人群进一步扩大。对于事故的责任人要严肃处理。在处理事件的过程中,我会向领导汇报工作进程。
第三,要做好中毒人员家属的思想工作,稳定情绪;及时向外界发布有关中毒事件的情况,避免外界恐慌。
【总结】事件处理完毕后,写出总结报告,重点是分析中毒事件产生的原因,提出加强食品安全工作的建议,严防此类事件再次发生。
你刚到该村信访室工作,有很多群众前来上访,而且群情激愤,围观群众也越聚越多,影响了正常工作秩序。如果信访室领导派你来处理这件事情,你应该怎么办?
群体性上访事件影响到社会的安定团结,我一定要抱着维稳的目的,及时作出处理。同时也要确实了解到民众的诉求,尽快帮助民众解决问题,这样才真正符合维稳的要求,才是和谐社会的真正体现。
第一,组织信访室的其他同事,分工协作。自己接待上访群众,稳定群众情绪,推选群众代表反映情况。其他同事隔离围观人员,疏散其他人群,保证正常的工作秩序。
第二,热情接待群众代表,诚恳地检讨一些工作上的失误;认真倾听群众心声,做好详细记录,如果在自己职权范围可以解决的,当场予以解决。不在自己职权范围内的,不轻易表态,及时向领导汇报,明确态度。
第三,根据不同情况做好解释以及政策宣传工作,晓之以理,动之以情,诚恳地说服大家先回去听候答复。
第四,如实向领导反映情况,并在领导授权的前提下召集有关部门切实解决群众反映的突出问题,维护群众切身利益,做好稳定工作。
第五,做好上访群众的后期反馈工作,一有进一步处理消息,立即向群众通报,与其进行沟通,询问是否有其他意见和建议,真正将上访群众的事作为自己的事来处理,体现政府关心群众的特点。
作为一名乡镇基层工作者,全心全意为群众解决实际困难,处理好与人民群众的关系,是我们应尽的职责。只要我们和群众心连心,维护好与群众鱼水关系,就没有解决不了的问题。
会议准备: 1.确定会议主题、名称、时间、地点、会议规模、议程和会议安排; 2.确定参加会议的范围或人员(领导、专家、主持人、学者等代表),成立工作组(资料组、组织组、宣传组、后勤组、保卫组等),确定工作人员、会议经费预算;
3.安排好场地、住宿、伙食、用品、资料、交通等; 4.做好会场布置,制定好后勤保障方案;
5.发放会议通知 会议实施: 1.会议签到及会议文件资料发放;
2.按会议议程进行,维持会场秩序,做好会议记录;
3.安排好会议进行中的后勤保障,处理会议过程中的突发情况等。会议结束: 1.安排好参会人员离开的交通; 2.清理会场,统计经费并报销; 3.整理会议资料并形成简报; 4.落实会议精神,撰写工作总结。
准备:
确定调查题目,明确调查目的; 确定调查内容,设计调查方案; 确定调查对象,选取调查单位; 确定调查的调查方式和方法; 设计调查表或调查问卷; 确定调查时间和调查期限;
确定调查经费,确定调查工作人员并培训。实施
采集调查数据;
指导工作人员工作;
协调调查进度及出现的其他情况。调查的资料整理分析 进行数据审核、查询; 进行调查数据处理;
确定调查资料分析研究方法,并进行调查分析;
撰写并提供调查报告。如有必要,还可召开新闻发布会。
准备阶段: 1.掌握被接待人员的基本情况,包括单位、姓名、职务、性别、民族、人数、来访目的、来访日期等;2.作出接待方案,内容包括:接站安排,食宿安排,行程安排,经费预算等;3.并将接待方案报领导审批;做好相关准备,将接待方案的具体工作落实到位;4.通知及协调与接待有关的部门协助落实接待计划。
实施阶段:1.接站;2.落实住宿、饮食等工作;3.将活动安排方案与来访人
员组织者取得联系征求到访人员意见;如果活动安排进行了调整,调整以后的方案要及时向领导汇报;4.按照原定方案进行接待,及时处理好接待过程中发生的细节问题。
结束阶段:1.征求到访人员对接待工作的意见;2.协助安排好返程交通,结算住宿费等;3.落实返程送行车辆及人员并送站;通知到访人员单位接站;4.结算经费并报销,清理接待工作文件资料并向领导汇报。
参观学习的基本流程
(一)参观学习(旅游)的准备
确定时间、地点、参观(旅游)人数及参观目的; 确定经费预算及来源; 确定方案;
事前安排好食宿、交通路线。
(二)参观学习(旅游)的实施 维持秩序,保证活动顺利进行;
确定与被参观单位(旅游地)的接洽工作; 调动参观人员与参观对象的交流互动工作。
(三)参观学习(旅游)后的总结
进行活动总结;召开参观学习后研讨会;上报经费。
基本流程
(一)培训准备
确定目的、内容和方式。
确定对象、工作人员和管理人员。聘请教师、确定授课方式。确定时间及期限,安排场地。
做好计划及管理规定,印制购买资料及教材试卷。做好经费预算及食宿等其他后勤保障工作。
通知培训人员培训时间、地点、注意事项等相关内容。
(二)进行培训
召集培训人员,明确培训的要求。按计划进行培训,监控培训的进展。加强培训管理,及时处理培训突发情况。
(三)培训结束
进行培训考核,征求培训意见。
结算培训经费,将培训材料进行归档。撰写培训总结并向领导汇报。
(一)比赛类流程
1.比赛准备
确定比赛内容、比赛项目、主题、形式、目的和意义。确定参赛人员。
(二)晚会类流程 1.晚会筹备
确定主题、形式、目的、时间等。成立筹备小组,确定人员分工。编排节目,选定演员、主持人等。
制定策划书,设计晚会形式,制作节目单。选择晚会会场,设计舞美。
做好经费预算,购买相关物品,安排音响、灯光等事项。邀请嘉宾,确定观众范围,做好宣传。
进行彩排、联排,及时纠正晚会中出现的问题。发放通知,摆放会场中的相关物品。检查会场设施,做好安全预案。
成立工作小组,对工作人员和管理人员进行相关培训。确定主持人、裁判员、评委。
确定比赛时间及期限,安排比赛场地。
做好赛前计划及赛事规定,印制,购买奖品等比赛所需物品。做好经费预算及食宿等其他后勤保障工作。2.进行比赛
召集参赛人员,明确参赛要求。
按计划进行比赛,监控比赛进展,使比赛公平公开公正的进行。加强服务和管理,及时处理比赛突发情况。3.比赛结束
进行颁奖仪式,存档获奖作品。结算经费。
撰写比赛总结并向领导汇报。
(一)宣传(咨询)的准备
1.确定宣传主题、目的;
2.确定宣传地点、对象;
3.明确宣传内容、方式(网络、电视、广播、报纸等媒体报道宣传,文艺汇演、讲座等现场宣传,宣传单、条幅、展板等平面宣传)和方法;
4.确定宣传时间和期限;
5.编写宣传资料,制作宣传材料,准备宣传工具和物品;
6.确定经费预算,通知工作人员(必要时可以招募志愿者)并培训,联系参与人员(专家、领导、媒体)。
(二)宣传(咨询)实施
1.布置宣传场地;
2.指导,监督工作人员工作; 3.协调宣传进度及出现的其他情况。
(三)宣传(咨询)效果验收
1.了解宣传效果,征集意见、建议,整理媒体报道; 2.撰写工作报告。
1、捐助慰问准备
确定时间、地点、对象及数量、捐助慰问物品、方式。
确定参加活动的人员,成立工作组(采购组、联络组、宣传组、运输组、后勤组等),做好经费预算。
采购捐助慰问物资、通知参加人员(领导及各部门代表)、联系慰问对象、安排好车辆和交通路线等。
制定好后勤保障方案。
2、活动实施
按照计划准时出发。
做好慰问物资交接工作,走访慰问对象,做好情况记录。
3、捐助慰问总结
落实返程安排,结算经费。
整理捐助慰问情况记录并形成简报。撰写工作总结。
第四篇:课件制作学习笔记三
课件制作学习笔记
(三)广宗县前旧店中心小学王素爽
教学中应用多媒体课件应注意的问题
1、信息超量,抑制学生思维
多媒体课件的使用,减少了教师的板书、作图时间,提高了教学效率,但在制作课件过程中,唯恐内容单薄,将与教学有关的内容,全部纳入课件,而授课时间受到限制,有时只得加快传递速度,但学生接受信息和掌握知识需要一定时间的跨度,速度快将使学生丢失信息,不利于记忆、思考、提高知识水平,比传统的满堂灌教学还要过分,这与当前的教学改革背道而驰。
2、分散学生注意力,弱化思维
教学是一门艺术,使用多媒体课件辅助教学则是艺术中的艺术。教师教学的过程是动态的,必须根据教学内容的难易程度、学生的接受能力、课堂气氛及时调整进度和教学方法,多媒体课件运用的恰当可以受到好地效果,但是有的课件过分追求形式,甚至于喧宾夺主,使学生分散了注意力,冲淡了教学主题,弱化了学生思维,影响了教学效果。
3、思维异步,教与学互动受阻
现代教育思想强调以学生为中心,要求学生由外部刺激的被动接受者转化为信息加工的主体及知识学习的主动建构者,应把课堂教学的主动权还给学生。然而由于诸多因素,许多教师在运用课件进行课堂教学时实现师生互动和人机互动受阻,其中一个主要原因是,当学生在课堂上提出一个解决方案或方法不同于教师事先设计的方案时,迫于课堂时受限,师生互动不能完全展开,只能简单应对而回到课件中,从而导致师生思维异步,互动受阻,学生的自主性没有得到充分发挥。
4、板书不足,影响教学效果
系统的板书是学生在老师的讲解引导下进行知识加工,形成新知的外部支撑点,是感性认识上升到理性认识的桥梁,是教学内容不可或却的环节。而现实的情况往往是这样,教师只是点击鼠标,适当解说,黑板空无一字或只写课题,学生长时间观看屏幕,他们独立探究、阅读、实践的时间较短。这种教学方式既不利于学生主体参与,也不利于教师主导作用的发挥,教学效果平平。
综上所述,我们在发挥多媒体课件辅助教学积极作用的同时,要消除它的负面因素。因此我们应该在传统教学与现代教学的理论层面和教学层面上进行必要的整合,使多媒体课件更好的发挥作用。
第五篇:oracle语法
第一篇 基本操作
--解锁用户 alter user 用户 account unlock;--锁定用户 alter user 用户 account lock;alter user scott account unlock;
--创建一个用户yc 密码为a create user 用户名 identified by 密码; create user yc identified by a;
--登录不成功,会缺少create session 权限,赋予权限的语法 grant 权限名 to 用户; grant create session to yc;
--修改密码 alter user 用户名 identified by 新密码; alter user yc identified by b;
--删除用户 drop user yc;
--查询表空间
select *from dba_tablespaces;--查询用户信息
select *from dba_users;--创建表空间
create tablespace ycspace datafile 'E:oracleappproduct11.2.0dbhome_1oradataycspace.dbf' size 2m autoextend on next 2m maxsize 5m offline;
--创建临时表空间
create temporary yctempspace tempfile 'E:oracleappproduct11.2.0dbhome_1oradataycspace.dbf' size 2m autoextend on next 2m maxsize 5m offline;
--查询数据文件
select *from dba_data_files;
--修改表空间
--
1、修改表空间的状态
--默认情况下是online,只有在非离线情况下才可以进行修改
alter tablespace ycspace offline;--离线状态,不允许任何对象对该表空间的使用,使用情况:应用需要更新或维护的时候;数据库备份的时候 alter tablespace ycspace read write;--读写状态 alter tablespace ycspace online;alter tablespace ycspace read only;--只读,可以查询信息,可以删除表空间的对象,但是不能创建对象和修改对象。使用情况:数据存档的时候
--
2、修改表空间的大小--增加文件的大小
alter database datafile 'E:oracleappproduct11.2.0dbhome_1oradataycspace.dbf' resize 10m;--增加数据文件
alter tablespace ycspace add datafile 'E:oracleappproduct11.2.0dbhome_1oradataadd.dbf' size 2m;
--删除表空间的数据文件
alter tablespace 表空间的名字 drop datafile 数据文件名;
--删除表空间
drop tablespace ycspace;
--删除表空间且表空间中的内容和数据文件
drop tablespace ycspace including contents and datafiles;
--指定表空间 的 创建用户的语法
create user yc1 identified by a default tablespace ycspace temporary tablespace temp;
--删除用户 drop user yc1;
--权限
--赋予创建会话的权限 grant create session to yc1;
--创建一个表
create table studentInfo(sid int, sname varchar2(10));
--赋予yc1用户创建表的权限 grant create table to yc1;--赋予yc1使用表空间的权限 grant unlimited tablespace to yc1;
--系统权限
--对象权限
--插入
insert into studentInfo values(2,'abcd');--查询
select *from studentInfo;--修改
update studentInfo set sid=1;--删除
delete studentInfo;drop table studentInfo;--系统权限删除表
--赋权的语法
--系统权限
grant 权限名(系统权限或对象权限,角色,all)to 用户(角色,public)with admin option;
--对象权限
grant 权限名(系统权限或对象权限,角色,all)on 用户(角色,public)with grant option;
--收权语法--系统权限
revoke 权限名(系统权限或对象权限,角色,all)from 用户(角色,public)with admin option;--对象权限
revoke 权限名(系统权限或对象权限,角色,all)from 用户(角色,public)with grant option;
--赋予创建用户的权限并且把这个权限传递下去,即yc1可以给别人赋权 grant create user to yc1 with admin option;
--收回权限,只能收回scottd ,不能收回由scott赋权的yc1的权限 revoke create user from scott;
--查看用户所具有的权限 select *from user_sys_privs;
--对象权限详解 select * from emp;--使用yc1来查询scott里面的emp表 select * from scott.emp;
--赋予yc1查询emp表和插入的权限 grant select on emp to yc1;grant insert on emp to yc1;grant update(empno,ename)on emp to yc1;
grant delete on emp to yc1;
--对scott的emp表添加数据
insert into scott.emp(empno,ename)value(111,'acv');update scott.emp set ename='yc'where empno=111;
--赋予查询、赋予删除、添加、修改 grant select on 表名 to 用户
--grant select,delete,update,insert on 表名 to 用户 grant select,delete,update,insert on emp to yc1;grant all on dept to yc1;--all代表所有的对象权限
select *from scott.emp;
select *from scott.dept;insert into scott.dept values(50,'企事业文化部','bumen');
--查看角色
--dba:数据库管理员,系统最高权限,可以创建数据结构(表空间等)--resource:可以创建实体(表、视图),不可以创建数据库的结构
--connect:连接的权限,可以登录数据库,但是不可以创建实体和不可以创建数据库结构
select *from role_sys_privs;
grant connect to yc1;
--将可以连接的角色赋予给yc1,则yc1就是应该可以连接数据库的人,类似于 create session。create table StuInfos(sid int);
select *from StuInfos;
create table stuInfo(sid int primary key ,--主键 primary key 非空且唯一(主键约束)sname varchar2(10)not null,--姓名不能为空,(非空约束)sex char(2)check(sex in('男','女')),--(检查约束),check, age number(3,1)constraint ck_stuInfo_age check(age>10 and age<100),--也可以用varchar ;age between 10 and 100 ,在10和100之间,是一个闭区间 tel number(15)unique not null,--唯一约束,address varchar2(200)default '什么鬼')
insert into stuInfo values(3,'大大','男',18,4321543,default);insert into stuInfo values(1,'张三','男',10);select *from stuInfo;
drop table stuInfo;
create table classInfo(cid int primary key,--班级id cname varchar2(20)not null unique--班级名)create table stuInfo(sid int primary key, sname varchar2(20), cid int constraint fofk_stuInfo_cid references classInfo(cid)on delete cascade)insert into classInfo values(1,'1班');insert into classInfo values(2,'2班');insert into classInfo values(3,'3班');insert into classInfo values(4,'4班');
select *from classInfo;select *from stuInfo;
insert into stuInfo values(1001,'张三',2);insert into stuInfo values(1002,'张四',4);
update classInfo set cid=1 where cid=8;
drop table stuInfo;--要先删除这个 drop table classInfo;--再删除这个
delete classInfo where cid=4;--同时删除这两个表中的4
--删除用户的时候
drop user yc1 [cascade]--删除用户的同时把它创建的对象都一起删除
--修改表
--
1、添加表中字段
--alter table 表名 add 字段名 类型
alter table classInfo add status varchar2(10)default '未毕业'
--
2、修改已有字段的数据类型
--alter table 表名 modify 字段名 类型 alter table classInfo modify status number(1)
--
3、修改字段名
--alter table 表名 rename column 旧字段名 to 新的字段名 alter table classInfo rename column cname to 班级名;
--
4、删除字段--alter table 表名 drop column 字段名 alter table classInfo drop column status;
--
5、修改表名
--rename 旧表名 to 新表名 rename classInfo to 班级信息;
--删除表
--
1、截断表效率高,每删除一次会产生一次日志
2、截断会释放空间,而delete不会释放空间
--删除表结构和数据 drop table 表名;--删除表中所有数据 truncate table classInfo;delete classInfo;
create table classInfo(cid int primary key,--班级id cname varchar2(20)not null unique ,--班级名 stasuts varchar2(100));select *from classInfo;
--数据的操作
--增加数据语法
--insert into 表名[(列名,....)] values(对应的数据的值);
insert into classInfo values(1,'一班','未毕业');--需要按照表结构的顺序插入 insert into classInfo values(4,'六班','未毕业');insert into classInfo(cname,cid)values('二班',2);--需要按照括号中的顺序插入,但是 not null primary key 必须插入的。
insert into classInfo(cname,cid)values('三班',3);
--删除的语法
--delete 表名 [where 条件] delete classInfo where cid>=2;
--修改记录的语法
--update 表名 set [字段='值' ] [where 条件] update classInfo set cname='三班';--会修改所有该字段 update classInfo set cname='四班' where cid=1;update classInfo set cname='五班', stasuts ='未毕业' where cid=3;
--alter table classInfo drop constraint SYS_C0011213;
--添加多个时可以使用序列--用序列来做自动增长
create sequence seq_classInfo_cid start with 1001 increment by 1;
insert into classInfo values(seq_classInfo_cid.Nextval,'七班','未毕业');insert into classInfo values(seq_classInfo_cid.Nextval,'八班','未毕业');insert into classInfo values(seq_classInfo_cid.Nextval,'九班','未毕业');insert into classInfo values(seq_classInfo_cid.Nextval,'十班','未毕业');
create table classInfo2(cid int primary key,--班级id cname varchar2(20)not null unique ,--班级名 stasuts varchar2(100));select *from classInfo2;drop table classInfo2;
insert into classInfo2 select *from classInfo;insert into classInfo(cname,cid)select cname,cid from classInfo;alter table classInfo2 drop constraint SYS_C0011213;
select seq_classInfo_cid.nextval from dual;select seq_classInfo_cid.Currval from dual;
--直接创建一个新表,并拿到另一个表其中的数据 create table newTable as select cname,cid from classInfo;create table newTable1 as select *from classInfo;
select *from newTable;select *from newTable1;insert into newTable1 values(1008,'dg','');
直接在使用scott登陆,进行查询操作
----------------------简单查询
select *from emp;
select empno as id,ename as name from emp;
select empno 编号,ename 姓名 from emp;
--去除重复
select job from emp;select distinct job from emp;select job,deptno from emp;select distinct job,deptno from emp;
--字符串的连接
select '员工编号是' ||empno || '姓名是' ||ename ||'工作是'||job from emp;
--乘法
select ename,sal *12 from emp;--加减乘除都类似
---------限定查询
--奖金大于1500的
select *from emp where sal>1500;--有奖金的
select *from emp where comm is not null;--没有奖金的
select *from emp where comm is null;--有奖金且大于1500的
select *from emp where sal>1500 and comm is not null;--工资大于1500或者有奖金的
select *from emp where sal>1500 or comm is not null;--工资不大于1500且没奖金的
select *from emp where sal<=1500 and comm is null;select *from emp where not(sal >1500 or comm is not null);--工资大于1500但是小于3000的
select *from emp where sal>1500 and sal<3000;select *from emp where sal between 1500 and 3000;--between是闭区间,是包含1500和3000的
--时间区间
select *from emp where hiredate between to_date('1981-01-01','yyyy-MM-dd')and to_date('1981-12-31','yyyy-MM-dd');--查询雇员名字
select *from emp where ename='SMITH';--查询员工编号
select *from emp where empno=7369 or empno=7499 or empno=7521;select *from emp where empno in(7369,7499,7521);select *from emp where empno not in(7369,7499,7521);--排除这3个,其他的都可以查
--模糊查询
select *from emp where ename like '_M%';--第2个字母为M的 select *from emp where ename like '%M%';select *from emp where ename like '%%';--全查询
--不等号的用法
select * from emp where empno!=7369;select *from emp where empno<> 7369;
--对结果集排序--查询工资从低到高
select *from emp order by sal asc;select *from emp order by sal desc,hiredate desc;--asc 当导游列相同时就按第二个来排序--字符函数
select *from dual;--伪表 select 2*3 from dual;select sysdate from dual;--变成大写
select upper('smith')from dual;--变成小写
select lower('SMITH')from dual;--首字母大写
select initcap('smith')from dual;--连接字符串
select concat('jr','smith')from dual;--只能在oracle中使用 select 'jr' ||'smith' from dual;--推荐使用--截取字符串
select substr('hello',1,3)from dual;--索引从1开始--获取字符串长度 select length('hello')from dual;--字符串替换
select replace('hello','l','x')from dual;--把l替换为x-------通用函数--数值函数--四舍五入
select round(12.234)from dual;--取整的四舍五入 12 select round(12.657,2)from dual;--保留2位小数 select trunc(12.48)from dual;--取整
select trunc(12.48675,2)from dual;--保留2位小数--取余
select mod(10,3)from dual;--10/3取余 =1
--日期函数
--日期-数字=日期 日期+数字=日期 日期-日期=数字
--查询员工进入公司的周数
select ename,round((sysdate-hiredate)/7)weeks from emp;--查询所有员工进入公司的月数
select ename,round(months_between(sysdate,hiredate))months from emp;--求三个月后的日期
select add_months(sysdate,6)from dual;select next_day(sysdate,'星期一')from dual;--下星期 select last_day(sysdate)from dual;--本月最后一天
select last_day(to_date('1997-1-23','yyyy-MM-dd'))from dual;
--转换函数 select ename , to_char(hiredate,'yyyy')年,to_char(hiredate,'mm')月,to_char(hiredate,'dd')日 from emp;
select to_char(10000000,'$999,999,999')from emp;
select to_number('20')+to_number('80')from dual;--数字相加
--查询员工年薪
select ename,(sal*12+nvl(comm,0))yearsal from emp;--空和任何数计算都是空
--Decode函数,类似if else if(常用)
select decode(1,1,'one',2,'two','no name')from dual;--查询所有职位的中文名 select ename, decode(job, 'CLERK', '业务员', 'SALESMAN', '销售', 'MANAGER', '经理', 'ANALYST', '分析员', 'PRESIDENT', '总裁', '无业')from emp;
select ename, case when job = 'CLERK' then '业务员' when job = 'SALESMAN' then '销售' when job = 'MANAGER' then '经理' when job = 'ANALYST' then '分析员' when job = 'PRESIDENT' then '总裁' else '无业' end from emp;
-----------------------------
--多表查询
select *from dept;select *from emp,dept order by emp.deptno;select *from emp e,dept d where e.deptno=d.deptno;select e.*,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno;
--查询出雇员的编号,姓名,部门编号,和名称,地址
select e.empno,e.ename,e.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno;
--查询出每个员工的上级领导
select e.empno,e.ename,e1.empno,e1.ename from emp e,emp e1 where e.mgr=e1.empno;
select e.empno,e.ename,d.dname from emp e,dept d ,salgrade s, emp e1 where e.deptno=d.deptno and e.sal between s.losal and s.hisal and e.mgr=e1.empno;
select e.empno,e.ename,e1.empno,e1.ename from emp e,emp e1 where e.mgr=e1.empno(+);
--外连接
select *from emp order by deptno;--查询出每个部门的员工 /* 分析:部门表是全量表,员工表示非全量表,在做连接条件时,全量表在非全量表的哪端,那么连接时全量表的连接条件就在等号哪断 */--左连接
select * from dept d,emp e where d.deptno=e.deptno(+)order by e.deptno;--右连接
select * from emp e,dept d where e.deptno(+)=d.deptno order by e.deptno;
-----------------------------作业
--查询与smith相同部门的员工姓名和雇佣日期 select *from emp t where t.deptno=(select e.deptno from emp e where e.ename='SMITH')and t.ename<> 'SMITH';
--查询工资比公司平均工资高的员工的员工号,姓名和工资 select t.empno,t.ename,t.sal from emp t where t.sal>(select avg(sal)from emp);
--查询各部门中工资比本部门平均工资高的员工号,姓名和工资 select t.empno,t.ename,t.sal from emp t,(select avg(e.sal)avgsal,e.deptno from emp e group by e.deptno)a where t.sal>a.avgsal and t.deptno=a.deptno;--查询姓名中包含字母u的员工在相同部门的员工的员工号和姓名 select t.empno,t.ename from emp t where t.deptno in(select e.deptno from emp e where e.ename like '%U%')and t.empno not in(select e.empno from emp e where e.ename like '%U%');
--查询管理者是king的员工姓名和工资 select t.ename,t.sal from emp t where t.mgr in(select e.empno from emp e where e.ename='KING');
--------------------------sql1999语法
select *from emp join dept using(deptno)where deptno=20;select *from emp natural join dept;select *from emp e join dept d on e.deptno=d.deptno;select *from dept;select *from dept d left join emp e on d.deptno=e.deptno;select *from dept d,emp e where d.deptno=e.deptno(+);
---分组
select count(empno)from emp group by deptno;select deptno,job,count(*)from emp group by deptno,job order by deptno;select *from EMP for UPDATE;
--group by 后面有的字段,select后才可以有,group by后面没有的字段,select后面绝对不能有
select d.dname, d.loc, count(e.empno)from emp e, dept d where e.deptno = d.deptno group by d.dname, d.loc;
---------子查询
select *from emp t where t.sal>(select *from emp e where e.empno=7654);
select rownum ,t.* from emp t where rownum <6;
--pagesize 5 select *from(select rownum rw,a.* from(select *from emp)a where rownum <16)b where b.rw>10;select *from(select *from emp)where rownum>0;--索引
create index person_index on person(p_name);
--视图
create view view2 as select *from emp t where t.deptno=20;select *from view2;
-------------pl/sql--plsql是对sql语言的过程化扩展-----declare begin dbms_output.put_line('hello world');end;-------declare age number(3);marry boolean := true;--boolean不能直接输出 pname varchar2(10):= 're jeknc';begin age := 20;dbms_output.put_line(age);if marry then dbms_output.put_line('true');else dbms_output.put_line('false');end if;dbms_output.put_line(pname);end;
--常量和变量
--引用变量,引用表中的字段的类型
Myname emp.ename%type;--使用into来赋值
declare pname emp.ename%type;begin select t.ename into pname from emp t where t.empno=7369;dbms_output.put_line(pname);end;
--记录型变量
Emprec emp%rowtype;--使用into来赋值
declare Emprec emp%rowtype;begin select t.* into Emprec from emp t where t.empno=7369;dbms_output.put_line(Emprec.empno || ' '||Emprec.ename||' '||Emprec.job);end;
--if分支
语法1:
IF 条件 THEN 语句1;语句2;END IF;语法2:
IF 条件 THEN 语句序列1; ELSE 语句序列 2; END IF; 语法3:
IF 条件 THEN 语句;ELSIF 条件 THEN 语句;ELSE 语句;END IF;--1 declare pname number:=# begin if pname = 1 then dbms_output.put_line('我是1');else dbms_output.put_line('我不是1');end if;end;--2 declare pname number := # begin if pname = 1 then dbms_output.put_line('我是1');elsif pname = 2 then dbms_output.put_line('我是2');else dbms_output.put_line('我不是12');end if;end;
--loop循环语句 语法2: Loop EXIT [when 条件];…… End loop
--1 declare pnum number(4):=0;
begin while pnum < 10 loop dbms_output.put_line(pnum);pnum := pnum + 1;end loop;end;
--2(最常用的循环)declare pnum number(4):=0;begin loop exit when pnum=10;pnum:=pnum+1;dbms_output.put_line(pnum);end loop;end;--3 declare pnum number(4);begin for pnum in 1..10 loop dbms_output.put_line(pnum);end loop;end;
-----游标 语法:
CURSOR 游标名 [(参数名 数据类型,参数名 数据类型,...)] IS SELECT 语句;例如:cursor c1 is select ename from emp;
declare cursor c1 is select * from emp;emprec emp%rowtype;begin open c1;loop fetch c1 into emprec;exit when c1%notfound;dbms_output.put_line(emprec.empno || ' ' || emprec.ename);end loop;close c1;--要记得关闭游标 end;
--------例外
--异常,用来增强程序的健壮性和容错性--no_data_found(没有找到数据)--too_many_rows(select …into语句匹配多个行)--zero_pide(被零除)--value_error(算术或转换错误)--timeout_on_resource(在等待资源时发生超时)
--写出被0除的例外程序 declare pnum number(4):= 10;begin pnum := pnum / 0;exception when zero_pide then dbms_output.put_line('被0除了');when value_error then dbms_output.put_line('算术或转换错误');when others then dbms_output.put_line('其他异常');end;
--自定义异常
--No_data exception;--要抛出raise no_data;
declare cursor c1 is select * from emp t where t.deptno = 20;no_data exception;emprec emp%rowtype;begin open c1;loop fetch c1 into emprec;if c1%notfound then raise no_data;else dbms_output.put_line(emprec.empno || ' ' || emprec.ename);end if;end loop;close c1;
exception when no_data then dbms_output.put_line('无员工');when others then dbms_output.put_line('其他异常');end;
--存储过程 语法:
create [or replace] PROCEDURE 过程名[(参数名 in/out 数据类型)] AS begin PLSQL子程序体; End;
或者
create [or replace] PROCEDURE 过程名[(参数名 in/out 数据类型)] is begin PLSQL子程序体; End 过程名;
-----创建一个存储过程helloworld create or replace procedure helloworld is begin dbms_output.put_line('hello world');end helloworld;
------创建一个涨工资的
create or replace procedure addsal(eno in emp.empno%type)is emprec emp%rowtype;begin select * into emprec from emp t where t.empno = eno;
update emp t set t.sal = t.sal + 100 where t.empno = eno;dbms_output.put_line('涨工资前是' || emprec.sal || ',涨工资后是' ||(emprec.sal + 100));end addsal;
-----------------java代码调用存储过程和函数--存储过程--create or replace procedure acc_yealsal(eno in emp.empno%type,yearsal out number)is pcomm emp.comm%type;psal emp.sal%type;begin select t.sal,t.comm into psal,pcomm from emp t where t.empno=eno;yearsal :=psal*12 +nvl(pcomm,0);end;----存储函数
create or replace function 函数名(Name in type, Name in type,...)return 数据类型 is 结果变量 数据类型;begin
return(结果变量);end函数名;--存储函数计算年薪
create or replace function accf_yearsal(eno in emp.empno%type)return number is Result number;psal emp.sal%type;pcomm emp.comm%type;begin select t.sal, t.comm into psal, pcomm from emp t where t.empno = eno;Result := psal * 12 + nvl(pcomm, 0);return(Result);end accf_yearsal;
-------触发器
--触发语句:增删改: 语法:
CREATE [or REPLACE] TRIGGER 触发器名 {BEFORE | AFTER} {DELETE | INSERT | UPDATE [OF 列名]} ON 表名
[FOR EACH ROW [WHEN(条件)] ] begin PLSQL 块 End 触发器名
---插入一个新员工则触发
create or replace trigger insert_person after insert on emp begin dbms_output.put_line('插入新员工');end;select *from emp;insert into emp values(1001,'李四','管理',7902,sysdate,100,100,20);
--raise_application_error(-20001, '不能在非法时间插入员工')
--================================ SQL> @ E:powerDesignerA_脚本user.sql--导入脚本文件
select *from H_USER;
insert into h_user valuer(sequserid.nextval,'a','a',sysdate,'北京',1);
--数据库建模
--一对多:多的一端是2,箭头指向的是表1,即少的一端
--在实体类中一的一端的实体类有多的一端的实体类的集合属性
--使用powerDesiger进行数据库建模,然后将数据导入,导入到plsql中进行使用
--------------------连接远程数据库--方法1,修改localhost的地址 ORCL =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl.lan)))--方法2--或者直接在登陆界面在database中输入远程数据库的ip地址和端口号进行远程登陆 1.create user username identified by password;//建用户名和密码oracle ,oracle
2.grant connect,resource,dba to username;//授权 grant connect,resource,dba,sysdba to username;
3.connect username/password//进入。
4.select table_name,column_name from user_tab_columns where table_name='TABLE_NAME';//查询表中的表名,字段名等等。最后的table_name要大写。
5.如何执行脚本SQL文件? SQL>@PATH/filename.sql;
7.查询用户下的所有表 select distinct table_name from user_tab_columns;===仅显示一列表名。
8.如何搜索出前N条记录?
select * from tablename where rownum 9.查找用户下的所有表:select * from tab;--查询该用户下的所有表及视图(显示表名tname,类型tabname和clusterid) 2、显示当前连接用户 SQL> show user –不能用在sql窗口 只能用在command命令窗口。 3、查看系统拥有哪些用户 SQL> select * from all_users; 4、新建用户并授权 SQL> create user a identified by a;(默认建在SYSTEM表空间下) SQL> grant connect,resource to a; 5、连接到新用户 SQL> conn a/a –或者是connect a/a 6、查询当前用户下所有对象 SQL> select * from tab;--table或是view 7、建立第一个表 SQL> create table a(a number); 8、查询表结构 SQL> desc a 9、插入新记录 SQL> insert into a values(1); 10、查询记录 SQL> select * from a; 11、更改记录 SQL> update a set a=2; 12、删除记录 SQL> delete from a; 13、回滚 SQL> roll; SQL> rollback; 14、提交 SQL> commit; select * from (select t.*,dense_rank()over(order by cardkind)rank from cardkind t) where rank = 2; 46.如何在字符串里加回车? select 'Welcome to visit'||chr(10)||'www.CSDN.NET' from dual;--‘||chr(10)||’作为换行符 53.如何使select语句使查询结果自动生成序号? select rownum COL from table;--主要就是oracle中引入了rownum 54.如何知道数据裤中某个表所在的tablespace? select tablespace_name from user_tables where table_name='TEST';--table_name名称要大写。 select * from user_tables中有个字段TABLESPACE_NAME,(oracle); select * from dba_segments where …; 55.怎么可以快速做一个和原表一样的备份表? create table new_table as(select * from old_table); 59.请问如何修改一张表的主键? alter table aaa drop constraint aaa_key; alter table aaa add constraint aaa_key primary key(a1,b1); 60.改变数据文件的大小? 用 ALTER DATABASE....DATAFILE....; 手工改变数据文件的大小,对于原来的 数据文件有没有损害。 61.怎样查看ORACLE中有哪些程序在运行之中? 查看v$session表 62.怎么可以看到数据库有多少个tablespace? select * from dba_tablespaces; 72.怎样查看哪些用户拥有SYSDBA、SYSOPER权限? SQL>conn sys/change_on_install –登不上去 SQL>select * from V_$PWFILE_USERS;76.如何显示当前连接用户? SHOW USER 77.如何查看数据文件放置的路径 ? col file_name format a50 SQL> select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id; 79.如何改变一个字段初始定义的Check范围? SQL> alter table xxx drop constraint constraint_name; 之后再创建新约束: SQL> alter table xxx add constraint constraint_name check(); 83.如何执行脚本SQL文件? SQL>@所在的文件路径 /filename.sql;例如放在E盘的根目录下则应该是 @E:a.sql;回车就OK了。 84.如何快速清空一个大表? SQL>truncate table table_name; 85.如何查有多少个数据库实例? SQL>SELECT * FROM V$INSTANCE; 86.如何查询数据库有多少表? SQL>select * from all_tables; 87.如何测试SQL语句执行所用的时间? SQL>set timing on; SQL>select * from tablename; 89.字符串的连接 SELECT CONCAT(COL1,COL2)FROM TABLE; SELECT COL1||COL2 FROM TABLE; 90.怎么把select出来的结果导到一个文本文件中? SQL>SPOOL C:ABCD.TXT; SQL>select * from table; SQL >spool off; 91.怎样估算SQL执行的I/O数 ? SQL>SET AUTOTRACE ON; SQL>SELECT * FROM TABLE; OR SQL>SELECT * FROM v$filestat; 可以查看IO数 92.如何在sqlplus下改变字段大小? alter table table_name modify(field_name varchar2(100)); 改大行,改小不行(除非都是空的) 93.如何查询某天的数据? select * from a where trunc(日期字段)=to_date('2003-05-02','yyyy-mm-dd');若是date型数据 insert into bsyear values(to_date('20130427','yyyymmdd'));或者是insert into bsyear values('27-4月-2013'); 94.sql 语句如何插入全年日期? create table BSYEAR(d date);insert into BSYEAR select to_date('20030101','yyyymmdd')+rownum-1 from all_objects where rownum <= to_char(to_date('20031231','yyyymmdd'),'ddd');--在表后直接插入365行数据日期。 紧急插入几条重要的: 如何在Oracle中复制表结构和表数据 1.复制表结构及其数据: create table table_name_new as select * from table_name_old 2.只复制表结构: create table table_name_new as select * from table_name_old where 1=2;或者: create table table_name_new like table_name_old 3.只复制表数据: 如果两个表结构一样: insert into table_name_new select * from table_name_old 如果两个表结构不一样: insert into table_name_new(column1,column2...)select column1,column2...from table_name_old 创建带主键的表: create table stuInfo(stuID int primary key,stuName varchar2(20),age int);或是不直接增加主键 alter table stuInfo add constraint stuInfo _PK primary key(stuID) 95.如果修改表名? alter table old_table_name rename to new_table_name; 97.如何知道用户拥有的权限? SELECT * FROM dba_sys_privs;--一个权限对应一条数据,这样对于同一个用户就有多条数据了。 98.从网上下载的ORACLE9I与市场上卖的标准版有什么区别? 从功能上说没有区别,只不过oracle公司有明文规定;从网站上下载的oracle产品不得用于商业用途,否则侵权。 101.如何搜索出前N条记录? SELECT * FROM empLOYEE WHERE ROWNUM < n ORDER BY empno;Select * from a where rownum 104.如何统计两个表的记录总数? select(select count(id)from aa)+(select count(id)from bb)总数 from dual;--总数那是没有单引号的,双引号可以。 106.如何在给现有的日期加上2年?(select add_months(sysdate,24)from dual;--2015/4/27 9:28:52 110.tablespace 是否不能大于4G? 没有限制.111.返回大于等于N的最小整数值? SELECT CEIL(N)FROM DUAL; 112.返回小于等于N的最小整数值? SELECT FLOOR(N)FROM DUAL; 113.返回当前月的最后一天? SELECT LAST_DAY(SYSDATE)FROM DUAL; ; 115.如何找数据库表的主键字段的名称? SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='TABLE_NAME';--我没有查出来。 116.两个结果集互加的函数? SQL>SELECT * FROM BSEMPMS_OLD INTERSECT SELECT * FROM BSEMPMS_NEW; SQL>SELECT * FROM BSEMPMS_OLD UNION SELECT * FROM BSEMPMS_NEW; SQL>SELECT * FROM BSEMPMS_OLD UNION ALL SELECT * FROM BSEMPMS_NEW; 117.两个结果集互减的函数? SQL>SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW; 139.如何查找重复记录? SELECT * FROM TABLE_NAME WHERE ROWID!=(SELECT MAX(ROWID)FROM TABLE_NAMe WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2); 140.如何删除重复记录? DELETE FROM TABLE_NAME WHERE ROWID!=(SELECT MAX(ROWID)FROM TABLE_NAME D WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2); 162.如何知道表在表空间中的存储情况? select segment_name,sum(bytes),count(*)ext_quan from dba_extents where tablespace_name='&tablespace_name' and segment_type='TABLE' group by tablespace_name,segment_name;--把&tablespace_name改成相应的表空间名称。