《Oracle数据库技术及应用(第2版)》全套教学课件_第1页
《Oracle数据库技术及应用(第2版)》全套教学课件_第2页
《Oracle数据库技术及应用(第2版)》全套教学课件_第3页
《Oracle数据库技术及应用(第2版)》全套教学课件_第4页
《Oracle数据库技术及应用(第2版)》全套教学课件_第5页
已阅读5页,还剩267页未读, 继续免费阅读

下载本文档

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

文档简介

安装Oracle11g数据库服务器|Oracle11g的卸载|认识Oracle基本工具数据库的安全管理全套可编辑PPT课件项目1Oracle数据库的安装与卸载项目2认识与使用SQLPlus工具项目3Oracle数据库的管理项目4Oracle数据库表空间的管理与表的设计项目5数据查询的应用项目6PLSQL在数据库中的应用项目7程序单元在数据库中的应用项目8数据库的安全管理项目9数据库的备份与恢复知识目标掌握Oracle11g数据库服务器的安装方法01.02.掌握Oracle11g数据库服务器的卸载方法03.了解Oracle11g的基本工具能力目标能够正确安装Oracle11g数据库服务器01.02.能够卸载Oracle11g数据库服务器任务1安装Oracle11g数据库服务器在Windows环境下安装Oracle11g,创建一个名为ORCL的数据库删除用户任务2Oracle11g的卸载任务3认识Oracle基本工具010203SQL*PlusOEMSQLDeveloper04PL/SQLDeveloper感谢聆听启动与退出SQL*Plus|使用SQL*Plus的常用命令|在SQL*Plus中使用变量认识与使用SQL*Plus工具知识目标掌握启动与退出SQL*Plus的方法01.02.掌握SQL*Plus的常用命令03.掌握在SQL*Plus中使用变量能力目标能够熟练使用SQL*Plus的命令01.02.能够使用SQL*Plus解决实际问题任务1启动与退出SQL*Plus0102启动与退出SQL*Plus。连接命令的使用01方法一:在程序中启动、退出SQL*Plus任务1启动与退出SQL*Plus-01启动与退出SQL*Plus02方法二:在运行中启动、退出03方法三:在命令行中启动、退出择【开始】|【所有程序】|【Oracle-OraDb11g_home1】|【应用程序开发】|【SQL*Plus】选择【开始】|【运行…】命令,在文本框中输入sqlplus按回车【开始】|【所有程序】|【附件】|【命令提示符】|,输入sqlplus按回车01connect[用户名]/[用户口令][@SID][assysdba][assysoper]任务1启动与退出SQL*Plus-02连接命令的使用02断开与数据库的连接,但不退出SQL*Plus环境disconnect(disc)命令任务2使用SQL*Plus的常用命令010203实践SQL*Plus的各种编辑命令实践SQL*Plus编辑脚本文件的命令实践SQL*Plus中环境变量的设置04实践SQL*Plus格式命令任务2使用SQL*Plus的常用命令-01实践SQL*Plus的各种编辑命令SQL*Plus常用的编辑命令任务2使用SQL*Plus的常用命令-01实践SQL*Plus的各种编辑命令命令行方式创建用户运行结果表明语句有错误,显然这些字段都在emp表不在dept表,selectename,job,salfromdept;可以利用list先显示缓冲区的内容,然后使用ntext修改出错部分2fromemp,修改之后再使用list显示,看是否修改正确,修改正确之后使用“/”或者run进行执行01list、ntext、“/”或者run任务2使用SQL*Plus的常用命令-01实践SQL*Plus的各种编辑命令命令行方式创建用户运行结果表明语句有错误,因为dname字段不在emp表.selectdname,job,salfromemp;可以使用上述方法进行修改.还可以用change进行替换。list先显示缓冲区内容,2后面的*号代表第2行为当前行。在SQL>键入1,使1行成为当前行,然后使用change/dname/ename.02change任务2使用SQL*Plus的常用命令-01实践SQL*Plus的各种编辑命令命令行方式创建用户如果在empno后忘了写ename,job,sal,可以使用追加append来补写即可。selectempnofromemp;现将第一行设置为当前行,然后命令为append,ename,job,sal,03append任务2使用SQL*Plus的常用命令-01实践SQL*Plus的各种编辑命令命令行方式创建用户在上述的基础上增加第3行orderbyename,在SQL*Plus中输入以下语句:inputorderbyename如果使用append,是追加到第2行。并且在append的后面要输入2个空格,前面一个是间隔append和追加内容的,第2个是间隔emp和order的,如图所示。04input任务2使用SQL*Plus的常用命令-02实践SQL*Plus编辑脚本文件的命令命令行方式创建用户SQL*Plus中输入select*fromdeptSQL>后输入edit或者ed,就会打开一个含有缓冲区内容的记事本文件,如图2-10所示。选择文件另存为,即可保存。01edit或者ed任务2使用SQL*Plus的常用命令-02实践SQL*Plus编辑脚本文件的命令命令行方式创建用户save文件名选项只写文件名,表示将缓冲区内容存到默认文件夹。选项可以是create,表示若文件不存在就创建,否则命令失败,该选项为默认选项。选项可以是Append,表示若文件不存在就创建,否则在文件末尾追加。选项可以是replace,表示若文件不存在就创建,否则删除原文件重新创建。01save、get、@、start任务2使用SQL*Plus的常用命令-02实践SQL*Plus编辑脚本文件的命令命令行方式创建用户使用“get文件名”命令将保存的脚本文件装入缓冲区。使用SQL>@filename或者使用STARTfiel_name将脚本文件装入缓冲区并执行,01save、get、@、start任务2使用SQL*Plus的常用命令-02实践SQL*Plus编辑脚本文件的命令命令行方式创建用户spool文件路径和文件名作用:在该命令之后的屏幕上所显示的一切都要存到指定的文件中,只有当输入spooloff之后才可以看到文件中的内容,如果输入spoolout则表示将其内容送到打印机。02spool命令任务2使用SQL*Plus的常用命令-03实践SQL*Plus中环境变量的设置命令行方式创建用户设置环境变量:set环境变量变量的值04input显示环境变量的值:show环境变量|al任务2使用SQL*Plus的常用命令-04实践SQL*Plus格式化命令命令行方式创建用户显示表结构:表有多少列,每列的数据类型和长度,是否为空。可以缩写为desc01describe任务2使用SQL*Plus的常用命令-04实践SQL*Plus格式化命令命令行方式创建用户1)使用column命令设置别名语法:column原列名heading显示的新列名02column2)使用column命令格式化数据显示语法:column列名format格式格式如表columnc1formata20--将列c1(字符型)显示最大宽度调整为20个字符

columnc1format9999--将列c1(num型)显示最大宽度调整为4个字符columnc1headingc2--将c1的列名输出为c2任务3在SQL*Plus中使用变量-01用户自定义的变量命令行方式创建用户在SQL语句、PL/SQL块以及脚本文件中可以直接使用。这类变量的特点:在变量名前面有一个“&”符号。使用变量和不使用变量的语句在形式上是一致的写法,比如字符型要加单引号01第一类不需要事先定义任务3在SQL*Plus中使用变量-01用户自定义的变量命令行方式创建用户可以在变量名前加上“&&”符号。使用这种形式的变量,只需要在第一次遇到这个变量时输入变量的值,变量值将保存下来,以后就不需要不断输入了01第一类不需要事先定义任务3在SQL*Plus中使用变量-01用户自定义的变量命令行方式创建用户第二类自定义变量需要事先定义,而且需要提供初值。定义变量的命令是DEFINE。定义变量的格式是:DEFINE变量名=变量值01第二类变量需要事先定义DEFINEsalary=3000。在使用变量时,仍然用“&变量名”的形式来引用变量的值任务3在SQL*Plus中使用变量-02参数变量命令行方式创建用户参数在SQL*Plus的命令行中指定的格式为:@文件名参数1参数2参数3。例如:脚本文件aa中的内容如下:selectenamefromempwheredeptno=&1andsal>&2;执行上面的脚本文件:@aa102000任务3在SQL*Plus中使用变量-03与变量有关的交互式命令命令行方式创建用户这条命令的格式为:prompt字符串。注意这里的字符串不需要单引号限定,即使是用空格分开的几个字样串,prompt命令只是简单地把其后的所有内容在屏幕上显示.01prompt命令用来在屏幕上显示指定的字符串任务3在SQL*Plus中使用变量-03与变量有关的交互式命令命令行方式创建用户accept命令的作用是接收用户的键盘输入,并把用户输入的数据存放到指定的变量中,它一般与prompt命令配合使用。02accept命令的作用是接收用户的键盘输入任务3在SQL*Plus中使用变量-03与变量有关的交互式命令命令行方式创建用户pause命令作用是使当前的执行暂时停止,在用户输入回车键后继续.pause命令的格式为:pause文本。03pause命令作用是使当前的执行暂时停止感谢聆听创建Oracle11g数据库|删除Oracle11g数据库|启动和关闭数据库实例Oracle数据库的管理知识目标掌握Oracle11g数据库的创建方法01.02.掌握Oracle11g数据库的删除方法能力目标能够正确创建Oracle11g数据库01.02.能够删除Oracle11g数据库服实例任务1创建数据库020304设置管理选项及存储位置设置恢复选项及数据库组件设置初始化参数01设置创建数据库的基本信息05创建数据库任务1创建数据库-01设置创建数据库的基本信息进入【开始】|【所有程序】|【Oracle-OraDB11g_home1】|【配置和移植工具】|【DatabaseConfigurationAssistant】。按要求下一步:任务1创建数据库-02设置管理选项及存储位置单击“下一步”按钮,按要求下一步:任务1创建数据库-03设置恢复选项及数据库组件单击“下一步”按钮,按要求下一步:任务1创建数据库-04设置初始化参数单击“下一步”按钮,按要求下一步:任务1创建数据库-05创建数据库单击“下一步”按钮,按要求下一步:任务2删除数据库进入【开始】|【所有程序】|【Oracle-OraDB11g_home1】|【配置和移植工具】|【DatabaseConfigurationAssistant】,单击“下一步”按钮,按要求下一步:任务3启动和关闭数据库实例0102启动数据库实例关闭数据库实例删除用户任务2启动和关闭数据库实例-01启动数据库实例NONOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。01STARTUPNOMOUNT任务2启动和关闭数据库实例-01启动数据库实例该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和redolog文件的内容,但并不打开这些文件。这种打开方式常在数据库维护操作时使用,如对数据文件的更名、改变redolog以及打开归档方式、执行数据库的fulldatabaserecovery。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出"Databasemounted."的提示。02STARTUPMOUNT任务2启动和关闭数据库实例-01启动数据库实例该命令完成创建实例、安装实例和打开数据库的所有三个步骤。此时数据库使数据文件和redolog文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面StartupMount方式下的所有提示外,还会给出一个"Databaseopened"的提示。此时,数据库系统处于正常工作状态,可以接受用户请求。03STARTUP任务2启动和关闭数据库实例-02关闭数据库实例这是数据库关闭SHUTDOWN命令的缺省选项。也就是说如果输入SHUTDOWN这样的命令,也就是执行SHUTDOWNNORNAL命令。发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意的是,采用这种方式,也许关闭一个数据库需要几天时间,或者更长。01SHUTDOWNNORMAL任务2启动和关闭数据库实例-02关闭数据库实例这是常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。02SHUTDOWNIMMEDIATE任务2启动和关闭数据库实例-02关闭数据库实例该选项仅在Oracle8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWNIMMEDIATE同样的方式关闭数据库。03SHUTDOWNTRANSACTIONAL任务2启动和关闭数据库实例-02关闭数据库实例这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。04SHUTDOWNABORT感谢聆听表空间管理|数据表管理|数据记录管理数据库表空间的管理与表的设计知识目标掌握数据库表空间的不同类型、表空间的操作01.02.掌握创建与维护Oracle数据表的方法03.掌握数据记录的添加与修改能力目标能创建、维护与删除表空间01.02.能创建与维护数据表03.能使用命令添加与修改数据记录任务1表空间管理0102创建表空间修改、删除表空间删除空间创建表空间0102OEM方式创建表空间命令行方式创建表空间删除用户任务1表空间管理-01创建表空间01OEM方式创建表空间任务1表空间管理-01创建表空间任务:使用OEM为ORCL数据库创建名为“OrclInfo”的永久表空间,对应数据文件为“OrclInfo01.dbf”,数据文件的“文件目录”为“C:\APP\YMW\ORADATA\ORCL\”,文件大小为“100MB”,满后自动扩展,增量为“50MB”。操作步骤如下:1)使用“SYS”用户的SYSDBA身份登录到OEM窗口选择“服务器”选项卡,然后在“存储”区域单击【表空间】超链接,如图4-1所示。01OEM方式创建表空间任务1表空间管理-01创建表空间2)单击【创建】按钮,进入“创建表空间”界面,并输入名称“OrclInfo”,选择类型为“永久”,其他选择默认值。3)单击数据文件右侧的【添加】按钮,为表空间创建数据文件。输入数据文件的名称“OrclInfo01.dbf”;按要求填写“文件目录”;文件大小100MB;在“存储”区域选择“数据文件满后自动扩展”复选框,增量设置为“50MB。4)点击确定,完成表空间的创建。02任务1表空间管理-01创建表空间命令行方式创建表空间基本语法Create[Smallfile|Temporary|Bigfile|Undo]Tablespace<表空间名称>Datafile<数据文件路径与名称>Size<数据文件大小>[AutoextendOn|OFF][Next<增量>][MaxsizeUnlimited|<数据文件最大值>][Online|Offline][Logging|NoLogging][Compress|NoCompress][Permanent|Temporary][ExtentManagementLocal|Dictionary][Autoallocate|UniformSize<盘区大小数值>][SegmentSpaceManagementAuto|Manual]02任务1表空间管理-01创建表空间命令行方式创建表空间操作步骤如下1)首先具有DBA权限的用户连接数据库,运行CMD输入命令:sqlplussys/(密码)@orclas

sysbdba2)之后使用SQL语句方式创建表空间“OrclNormal”CREATESMALLFILETEMPORARYTABLESPACE"ORCLNORMAL"TEMPFILE'C:\APP\YMW\ORADATA\ORCL\OrclNormal01.dbf'SIZE100M任务:使用命令方式创建“OrclNormal”的临时表空间,对应的数据文件为“OrclNormal01.dbf”,数据文件的“文件目录”为“C:\APP\YMW\ORADATA\ORCL\”,文件大小为“100MB”。修改、删除表空间0102OEM方式修改、删除表空间命令行方式修改删除表空间删除用户任务1表空间管理-02修改、删除表空间01OEM方式修改、删除表空间任务1表空间管理-02修改、删除表空间1)在【表空间】页面选择需要编辑的表空间OrclInfo,然后单击【编辑】按钮2)在该页面可以进行修改表空间的名称、设置表空间的读写状态和可用状态、添加或删除数据文件任务:使用OEM修改表空间“OrclInfo”的状态为只读,添加一个数据文件“OrclInfo02.dbf”,数据文件的“文件目录”为“C:\APP\YMW\ORADATA\ORCL\”,文件大小为“200MB”,满后自动扩展,增量为“100MB”3)添加数据文件,“OrclInfo02.dbf”,数据文件的“文件目录”为“C:\APP\YMW\ORADATA\ORCL\”,文件大小为“200MB”,满后自动扩展,增量为“100MB”。4)删除表空间,在【表空间】页面选择需要删除的表空间OrclInfo,然后单击【删除】按钮,打开删除表空间的【警告】页面02命令行方式修改、删除表空间任务1表空间管理-02修改、删除表空间任务:使用命令修改表空间“OrclNormal”名称为“OrclNew”,修改数据文件“OrclNormal01.dbf”的大小为200MB,最后删除表空间“OrclNew”。1)修改表空间名为OrclNew。在命令行中输入命令ALTERTABLESPACE"ORCLNORMAL“RENAMETO"ORCLNEW"2)修改数据文件大小。在命令行输入命令ALTERDATABASETEMPFILE

'C:\APP\YMW\ORADATA\ORCL\OrclNormal01.dbf'

RESIZE

200M

3)删除表空间。在命令行输入命令DROPTABLESPACEORCLNEWincludingcontentsanddatafiles;任务2数据表管理010203创建表修改表添加约束方案用户方案就是一系列对象的集合,是数据库中存储数据的一个逻辑表示或描述。每个用户都拥有自己的方案,方案与数据库用户是对应的。01020102任务2数据表管理表表是数据库中最基本和最重要的模式对象,是数据实际存放的地方。0303创建表010203OEM创建表命令创建表任务2数据表管理-01创建表SQLDeveloper创建表01任务2数据表管理-01创建表OEM创建表任务:使用OEM创建名为Student(学生表),并查看表的结构。1)点击创建。2)选择表的类型。3)按要求输入表名,字段名,数据类型创建表。4)点击查看,查看表的结构信息。02任务2数据表管理-01创建表命令行创建表任务:使用命令方式创建Professional(专业表),并查看表结构。1)创建表,在命令行中输入命令。CREATETABLESYS.Professional("PNO"varchar2(4)NOTNULL,"PNAME"varchar2(20)NOTNULL,"DEPTNO"varchar2(2),"TEAM_DIRECTOR"varchar2(8));2)查看表结构,在命令行中输入命令。DESCSYS.Professional;03任务2数据表管理-01创建表SQLDeveloper创建表任务:使用SQLDeveloper创建数据表Department(系部表)1)单击“表”节点,在弹出的快捷菜单中选择命令【新建表】2)按要求输入表名、字段名、数据类型,创建表01任务2数据表管理-02修改表命令行方式修改表结构修改表的语法格式:ALTERTABLE[<方案名>.]<表名>[ADD(<字段名><类型(长度)>[,<字段名><类型(长度)>…])][DROP[COLUMN<字段名>]|(<字段名>,<字段名>[,<字段名>…])][MODIFY(<字段名>字段类型[DEFAULT<值>|NOTNULL|NULL][,<字段名>字段类型[DEFAULT<值>|NOTNULL|NULL]])];其中:ALTER:为修改关键字。ADD:表示增加字段。DROP:表示删除字段。MODIFY:表示修改字段。02任务2数据表管理-02修改表OEM修改表任务:使用OEM给Student(学生表)添加字段sscore,数据类型number1)查找到刚刚创建的“Student”表2)点击编辑,在选项卡中列最后安全求添加字段名和数据类型任务2数据表管理-03添加约束命令行方式授予用户对象权限在数据库中存储数据,必须保证数据的正确性、准确性、一致性和完整性。

ORACLE使用完整性约束(integrityconstraints)防止不合法的数据写入数据库。数据完整性角度来看约束有五种,它们分别是:1、NOTNULL约束:用于对实体完整性进行约束。指定表中某个列不允许为空值,必须为该列提供值。2、UNIQUE约束:用于对实体完整性进行约束。使某个列或某些列的组合惟一,防止出现冗余值。3、PRIMARYKEY约束:用于对实体完整性进行约束。使某个列或某些列的组合惟一,也是表的主关键字。4、FOREIGNKEY约束:用于实体对参照(关系)完整性进行约束。使某个列或某些列为外关键字,其值与从表的主关键字匹配,实现引用完整性。5、CHECK约束:用于对域完整性进行约束。指定表中的每一行数据必须满足的条件。01任务2数据表管理-03添加约束OEM添加约束任务:使用OEM给Student(学生表)添加check约束,约束名为“入学成绩检查”,检查条件为>=300。把字段sno设为主键。为Student(学生表)和Class(班级表)创建FOREIGNKEY约束,约束名为“双表班级编号检查”,外键约束设置在classno字段上。01任务2数据表管理-03添加约束OEM添加约束1)点击编辑,在“约束条件”选项卡中选择约束条件“check”点击添加2)在“添加CHECK约束条件”页面中设置名称为“入学成绩检查”,在检查条件中输入“sscore>=300”3)点击继续按钮,选择选择约束条件“PRIMARY”点击添加01任务2数据表管理-03添加约束OEM添加约束4)输入约束名为“双表班级编号检查”,在可用列中选择“CLASSNO”点击“移动”,添加到所选列5)点击“引用表”,在“搜索和选择方案和表”页面中,输入方案“SYS”,表“CLASS”,在搜索结果中选取表“CLASS”6)点击“开始”,在可用列中选择“CLASSNO”点击“移动”添加到所选列02任务2数据表管理-03添加约束命令添加约束添加约束的语法格式:ALTERTABLE[<方案名>.]<表名>ADD([CONSTRAINT<约束名><约束类型>(约束条件表达式)]);删除约束的语法格式:ALTERTABLE[<方案名>.]<表名>DROP([CONSTRAINT<约束名><约束类型>(约束条件表达式)]);02任务2数据表管理-03添加约束命令添加约束1)设置Professional(专业表)的pno字段为主键,在命令栏中输入命令ALTERTABLE"SYS"."Professional“ADD(PRIMARYKEY("PNO")VALIDATE)02任务2数据表管理-03添加约束命令添加约束2)给Class(班级表)的num字段添加check约束,约束名为“班级人数检查”,检查条件>15。在命令栏中输入命令ALTERTABLE"SYS"."CLASS"ADD(CONSTRAINT"班级人数检查"CHECK(num>15)VALIDATE)02任务2数据表管理-03添加约束命令添加约束3)为Class(班级表)和Professional(专业表)创建FOREIGNKEY约束,约束名为“双表专业编号检查”,外键约束设置在pno字段上。在命令栏中输入命令

ALTERTABLE"SYS"."CLASS"ADD(CONSTRAINT"双表专业编号检查"FOREIGNKEY("PNO")REFERENCES"SYS"."PROFESSIONAL"("PNO")VALIDATE)任务3数据记录管理0102添加、修改数据记录文件导入记录删除空间01任务3数据记录管理-01添加、修改数据记录OracleSQLDeveloper是Oracle公司出品的一个免费的集成开发环境。是一个免费非开源的用以开发数据库应用程序的图形化工具,使用SQLDeveloper可以浏览数据库对象、运行SQL语句和脚本、编辑和调试PL/SQL语句。另外还可以创建执行和保存报表。任务:在OracleSQLDeveloper中,对“”student“表新增如下表所示的记录数据。并对“student”表的记录进行修改、删除SQLDeveloper添加修改记录SNOSNAMESSEXSBIRTHDAYCLASSNO100001张三男1992-01-03RJ01100002李丽女1993-12-05WL01TELPHONEADDRESSSSCOR苏省太仓市健雄路1号45613878964563江苏省太仓市济南路1号31701任务3数据记录管理-01添加、修改数据记录SQLDeveloper添加修改记录1)在过滤器页面中选择“OBJECT_NAME”、“LIKE”,输入表名“student”01任务3数据记录管理-01添加、修改数据记录SQLDeveloper添加修改记录2)在【OracleSQLDeveloper】主窗口右侧窗格的“STUDENT”中切换到“数据”选项卡,单击【插入行】按钮。依次双击输入数据的位置,完成数据的输入。3)如果需要修改记录数据,直接双击要修改的数据内容区域,进入编辑状态,在数据编辑栏内直接修改数据内容,02任务3数据记录管理-01添加、修改数据记录SQLDeveloper命令方式添加修改记录数据操纵语言(DML)用来操纵表或视图的数据。INSERT命令插入数据,UPDATE命令更新数据,DELETE删除数据,SELECT命令查询数据。INSERT语句用于在指定表中添加数据。语法格式如下:INSERTINTOtable_name(字段名1,字段名2,······)VALUES(‘对应值1’,‘对应值2’······);插入数据时,值列表需要和字段名称的顺序数据类型一致,如果值列表与表的字段顺序数量一致,则可以省略字段名列表。插入的数据如果是字符型,必须用单引号括起来;如果是空值,则值需要设为NULL;如果是默认值,则用DEFAULT。UPDATE语句用来修改表中的数据,可以一次修改一条或者多条记录。语法格式如下:UPDATEtable_nameSET需要修改的字段名=’更改的值’WHERE指定的条件;DELETE语句可以删除表中的一条或多条记录。语法格式如下:DELETEFROMtable_nameWHERE指定的条件;删除表的记录还可以使用TRUNCATE命令,使用该命令可以释放占用的数据块表空间,并且不写入日志文件,执行效率高,但此操作不支持回滚。语法格式如下:TRUNCATETABLEtable_name02任务3数据记录管理-01添加、修改数据记录SQLDeveloper命令方式添加修改记录任务:在OracleSQLDeveloper中使用命令的方式对“class”表新增如下表所示的记录数据记录CLASSNOCLASSNAMENUMPNOCOUNSELORRJ01软件1班401101王媛WL01网络1班301203武城02任务3数据记录管理-01添加、修改数据记录SQLDeveloper命令方式添加修改记录操作步骤在【OracleSQLDeveloper】右侧窗口点击ORCL,在命令窗口中输入命令:insertintoclass(classno,classname,num,pno,counselor)values('RJ01','软件1班','40','1101','王媛');02任务3数据记录管理-01添加、修改数据记录SQLDeveloper命令方式添加修改记录任务:把“class”表中班级编号为“WL01”的人数修改为35。操作步骤在命令窗口中输入修改命令UPDATECLASSSETnum='35'WHEREclassno='WL01';02任务3数据记录管理-01添加、修改数据记录SQLDeveloper命令方式添加修改记录任务:删除“class”表中班级编号为“RJ01”的记录。操作步骤在命令窗口中输入修改命令DELETEFROMCLASSWHERECLASSNO='RJ01';01任务3数据记录管理-02文件导入记录SQLDeveloper导入EXCEL文件内容任务:把EXCEL文件“系部表“中的的数据导入到表“Department”中去。操作步骤1)在【OracleSQLDeveloper】主窗口左侧依次展开“oral”-“表”-“Department”,右键单击,在弹出的快捷菜单中选择【导入数据】命令。01任务3数据记录管理-02文件导入记录SQLDeveloper导入EXCEL文件内容2)在【打开】页面中选择导入数据源“系部表.xls”,单击“打开”按钮。01任务3数据记录管理-02文件导入记录SQLDeveloper导入EXCEL文件内容3)打开【数据导入向导】之“数据预览”对话框,在“工作表”下拉列表中选择“系部表”,选择复选框“标题”。01任务3数据记录管理-02文件导入记录SQLDeveloper导入EXCEL文件内容4)打开【数据导入向导】之“选择列”对话框,单击【全部添加】按钮,将“可用列”列表中的全部列添加到“所选列”中。01任务3数据记录管理-02文件导入记录SQLDeveloper导入EXCEL文件内容5)打开【数据导入向导】之“列定义”对话框,检查表名、源数据列和目标表列是否对应。单击【下一步】按钮。01任务3数据记录管理-02文件导入记录SQLDeveloper导入EXCEL文件内容6)打开【数据导入向导】之“完成”对话框,单击【验证】按钮。单击【完成】按钮完成“Department”的数据导入。01任务3数据记录管理-02文件导入记录SQLDeveloper导入EXCEL文件内容7)点击【刷新】按钮,查看导入后“Department”表中的数据感谢聆听单表数据查询|多表连接查询|子查询数据查询的应用知识目标掌握SQL语言分类01.02.掌握各种函数的用法03.掌握SELECT语句的基本结构能力目标能进行SELECT基本查询01.02.能进行SELECT多表连接查询03.能创建与使用子查询任务1单表数据查询010203创建与使用基本查询创建与使用条件查询创建与使用分组查询任务1单表数据查询SQL(structuredquerylanguage)语言是用于数据库查询的结构化语言。SQL语言包含四个部分:(1)DQL—数据查询语言(如,SELECT语句);(2)DML—数据操纵语言(如,INSERT、UPDATE、DELETE语句);(3)DDL—数据定义语言(如,CREATE、DROP等语句);(4)DCL—数据控制语言(如,COMMIT、ROLLBACK等语句)。Select语句的一般格式如下:Select<字段名或表达式列表>From[方案名].<数据表名或视图名>Where<条件表达式>GroupBy<分组的字段名或表达式>Having<筛选条件>OrderBy<排序的字段名或表达式>[ASC|DESC]Select语句的使用方法(1)Select是查询语句必需的关键字(2)From子句是Select语句所必需的子句,用于标识从中检索数据的一个或多个数据表或视图。(3)Where子句用于设定检索条件以返回需要的记录。(4)GroupBy子句用于将查询结果按指定的一个字段或多个字段的值进行分组统计。(5)Having子句与GroupBy子句配合使用,用于对由GroupBy子句分组的结果进一步限定搜索条件。(6)OrderBy子句用于将查询结果按指定的字段进行排序。01查询表的全部信息任务1单表数据查询-01创建与使用基本查询任务:查询“Student”表所有学生的全部信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。Select*Fromsys.Student;02查询表的指定列信息任务1单表数据查询-01创建与使用基本查询任务:查询“Student”表中所有学生的“SNO”、“SNAME”、“TELPHONE”的信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。SelectSNO,SNAME,TELPHONEFromsys.Student;03查询表并更改显示的列标题任务1单表数据查询-02创建与使用条件查询任务:查询“Student”表中所有学生的“SNO”、“SNAME”、“TELPHONE”的信息,并分别以“学号”、“姓名”、“联系电话”作为输出标题。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。SelectSNOAS学号,SNAMEAS姓名,TELPHONEAS联系电话Fromsys.Student;任务1单表数据查询-02创建与使用条件查询命令行方创建表空间SQL语言中包括的运算符与表达式主要有:算术运算符、比较运算符、逻辑运算符、集合运算符和连接运算符等。1)算术运算符算术运算符主要用来进行加、减、乘、除等算术运算。SQL中常用的算术运算符有:+、-、*、()等。2)比较运算符SQL中常用的比较操作符有:=(等于)、!=(不等于)、<(小于)、>(大于)、<=(小于等于)、>=(大于等于)、in(在列表中)、between(介于之间)、like(匹配)等。3)逻辑运算符SQL语言中常用的逻辑操作符有:and(与)、or(或)、not(非)。逻辑操作符的优先顺序为not>and>or。4)集合运算符集合运算符又称为谓词运算符。常用的集合运算符有union、intersect、minus5)连接运算符用来连接连个字段,或者将多个字符串连接起来。操作符的优先级别:算术>连接>比较>逻辑。01任务1单表数据查询-02创建与使用条件查询查询表中指定行任务:查询“Student”表中学号为“100001”的学生的全部信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。Select*Fromsys.StudentWHEREsno=’100001’;02任务1单表数据查询-02创建与使用条件查询查询不重复的行任务:查询“Student”表中“CLASSNO”的所有信息,并去除重复的记录。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。SelectDistinctclassnoFromsys.Student;03任务1单表数据查询-02创建与使用条件查询查询表中前若干行任务:查询“Student”表中前5个学生信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。Select*Fromsys.StudentWHERErownum<6;04任务1单表数据查询-02创建与使用条件查询指定条件查询任务:查询“student”表中出生日期在“1992-10-30”以前的男生信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。SELECT*FROMSYS.STUDENTWHEREsbirthday<'1992-10-30'ANDssex='男';04任务1单表数据查询-02创建与使用条件查询指定条件查询任务:查询“student”表中姓“吴”的女生信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。SELECT*FROMSYS.STUDENTWHEREsnamelike'吴%'ANDssex='女';04任务1单表数据查询-02创建与使用条件查询指定条件查询任务:查询“RJ01”和“RJ02”班入学成绩大于420的学生信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。SELECT*FROMSYS.STUDENTWHEREclassnoIN('RJ01','RJ02')andsscore>420;01查询数据并分组任务1单表数据查询-03创建与使用分组查询任务:查询“Student”表并分班显示人数。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。SELECTclassno,COUNT(sno)FROMSYS.STUDENTGROUPbyclassno;02查询时进行分组统计任务1单表数据查询-03创建与使用分组查询任务:查询“Student”表并分班显示学生人数大于7人班级。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。SELECTclassno,COUNT(sno)FROMSYS.STUDENTGROUPbyclassnoHAVINGCOUNT(sno)>7;03查询时进行分组并排序任务1单表数据查询-03创建与使用分组查询任务:查询“Student”表中各个班级的平均成绩并升序显示。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。SELECTclassno,round(avg(sscore),0)FROMSYS.STUDENTGROUPbyclassnoORDERbyavg(sscore);任务2多表连接查询010203创建基本连接多表查询创建多表内连接查询创建多表外连接查询04创建多表交叉连接查询任务2多表连接查询连接查询是在SELECT语句使用WHERE子句、JOIN关键字构建连接条件对多表进行连接,并显示结果。连接查询分为内连接查询、外连接查询和交叉连接查询。其中外连接查询包括左外连接查询、右外连接查询和全外连接查询3种。连接的格式有如下2种:格式一:Select<输出字段或表达式列表>From[<方案名>.]<表1或视图1>[别名1],[<方案名>.]<表2或视图2>[别名2][Where<表1.列名><连接操作符><表2.列名>]连接操作符可以是:=、<>、!=、>、<、<=、>=,当操作符是“=”时表示等值连接。格式二:Select<输出字段或表达式列表>From[<方案名>.]<表1或视图1>[别名1]<连接类型>[<方案名>.]<表2或视图2>[别名2]On<连接条件>其中“连接类型”用于指定所执行的连接查询的类型,内连接为InnerJoin,外连接为OutJoin,交叉连接为CrossJoin,左外联接为LeftJoin,右外联接为RightJoin,完整外联系为FullJoin。01两表连接查询任务2多表连接查询-01创建基本连接多表查询任务:查询“sys.Student”表和“sys.score”表中所有学生的信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。select*fromsys.student,sys.scoreWHEREsys.student.sno=sys.score.sno;02多表连接查询任务2多表连接查询-01创建基本连接多表查询任务:查询“sys.Student”表、“sys.score”表、“sys.class”表中所有学生的数据库成绩信息,显示结果包括“sno”、“cname”、“score”、“counselor”字段。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。selectsys.student.sname,ame,sys.score.score,sys.class.counselorfromsys.studentsys.score,sys.classwheresys.student.sno=sys.score.snoandsys.class.classno=sys.student.classnoandame='数据库';01任务2多表连接查询--02创建多表内连接查询创建多表内连接查询任务:从“sys.Student”表中查询在“sys.score”表里有的学生课程成绩,要求显示结果包括“sname”、“cname”、“score”字段。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。Selectsys.student.sname,ame,sys.score.scorefromsys.studentinnerjoinsys.scoreonsys.student.sno=sys.score.sno;01创建左外连接查询任务2多表连接查询-03创建多表外连接查询任务:从“sys.Student”表中查询在“sys.class”表中有对应的班级的学生信息,显示结果包括“sno”、“sname”、“classno”、“counselor”。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。select*fromsys.student,sys.scoreWHEREsys.student.sno=sys.score.sno;左外连接查询leftjoin显示符合条件的数据行,同时显示左边数据表不符合条件的数据行,右边没有对应的条目显示NULL。02创建右外连接查询任务2多表连接查询-03创建多表外连接查询任务:查询“sys.Student”表和“sys.class”表中有哪些的班级没有对应的学生信息,显示结果包括“sno”、“sname”、“classno”、“counselor”。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。selectsys.student.sno,sys.student.sname,sys.class.classno,sys.class.counselorfromsys.studentrightjoinsys.classonsys.student.classno=sys.class.classno;右外连接查询rightjoin显示符合条件的数据行,同时显示右边数据表不符合条件的数据行,左边没有对应的条目显示NULL03创建完全连接查询任务2多表连接查询-03创建多表外连接查询任务:查询“sys.Student”表、“sys.class”表和“sys.score”表中所有学生的班级情况和成绩,显示结果包括“sno”、“sname”、“classno”、“cname”、“score”、“counselor”。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。selectsys.student.sno,sys.student.sname,sys.class.classno,ame,sys.score.score,sys.class.counselorfromsys.studentfulljoinsys.classonsys.student.classno=sys.class.classnofulljoinsys.scoreonsys.student.sno=sys.score.sno;完全连接查询fulljoin显示符合条件的数据行,同时显示左右不符合条件的数据行,相应的左右两边显示NULL,即显示左连接、右连接和内连接的并集。01任务2多表连接查询--04创建多表交叉连接查询不加条件,交叉查询任务:查询“sys.Student”表和“sys.score”表中所有学生的成绩,显示结果包括“sno”、“sname”、“cname”、“score”。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。selectsys.student.sno,sys.student.sname,ame,sys.score.scorefromsys.studentcrossjoinsys.score;交叉连接查询crossjoin会返回被连接的两个表所有数据行的笛卡尔积,即返回到的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。02任务2多表连接查询--04创建多表交叉连接查询加条件,交叉查询任务:查询“sys.Student”表和“sys.score”表中所有学生的成绩,显示结果包括“sno”、“sname”、“cname”、“score”。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。selectsys.student.sno,sys.student.sname,ame,sys.score.scorefromsys.studentcrossjoinsys.scoreWHEREsys.student.sno=sys.score.sno;交叉连接查询crossjoin会返回被连接的两个表所有数据行的笛卡尔积,即返回到的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。任务3子查询010203创建与使用单值子查询创建与使用多值子查询创建与使用相关子查询任务3子查询子查询其实就是嵌套查询,一个查询语句嵌套在另一个查询语句中那么称该查询语句为子查询。子查询在主查询之前执行,主查询使用子查询的结果。子查询可以返回单个结果,可以返回多个结果,也可以不返回结果。如果子查询返回单个值结果,则为单值子查询,可以在主查询中对其使用相应的单行记录比较运算符。如果子查询返回多个结果,则为多值子查询,此时不允许对其使用单行记录比较运算符。在DQL和DML语句中都可以嵌套使用SELECT子句。即SELECT、INSERT、UPDATE和DELETE语句都可以嵌套SELECT子句。在一般情况下SELECT子句将作为以WHERE或HAVING子句引导的条件。常见语法格式如下:select字段列表fromtable1where表达式operator(select字段列表fromtable2);其条件表达式的形式有以下几种:(1)字段名=(SELECT子句),如果SELECT子句只返回单个值作为条件,可以使用此条件表达式。(2)字段名IN(SELECT子句),如果SELECT子句返回多个值作为条件,必须使用此条件表达式。(3)字段名EXISTS(SELECT子句),如果SELECT子句返回值是布尔类型的,必须使用此条件表达式01子查询返回空值任务3子查询-01创建与使用单值子查询任务:查询“score”表中“王二”的所有信息。由于“score”表中只有学号字段“sno”,没有姓名字段“sname”,所以要通过学生信息表“student”查找到“王二”的学号“sno”的值。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。select*fromsys.scorewheresno=(selectsnofromsys.studentwheresname='王二');02子查询返回单值任务3子查询-01创建与使用单值子查询任务:查询“score”表中“李丽”的所有信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。select*fromsys.scorewheresno=(selectsnofromsys.studentwheresname='李丽');01任务3子查询-02创建与使用多值子查询创建单表多值子查询息任务:查询“student”表中入学成绩大于班级入学成绩平均分的学生信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。select*fromsys.studentwheresscore>any(selectavg(sscore)fromsys.studentgroupbyclassno);02任务3子查询-02创建与使用多值子查询创建多表多值子查询息任务:查询“student”表中“数据库”成绩>85分的所有学生信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。select*fromsys.studentwheresnoin(selectsnofromsys.scorewherecname='数据库'andscore>85);01在select字段列表中使用相关子查询任务3子查询-03创建与使用相关子查询任务:查询“student”表中“sscore”>400分的学生信息,显示结果包括“sno”、“sname”、“sscore”、“classno”,并分别显示为“学号”、“姓名”、“入学成绩”、“班级名称”。显示结果按照入学成绩升序排列。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。selectsno学号,sname姓名,sscore入学成绩,(SELECTclassnamefromsys.classwheresys.student.classno=sys.class.classno)班级名称fromsys.studentWHEREsscore>400ORDERBYsscore;02在where语句中使用相关子查询任务3子查询-03创建与使用相关子查询任务:查询“class”表中,没有出现在“student”表中的所有班级信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。select*fromsys.classwhereclassnonotin(SELECTclassnofromsys.studentwherestudent.classno=class.classno);03在where语句中使用exists子查询任务3子查询-03创建与使用相关子查询任务:分别查询“class”表中,出现和没有出现在“student”表中的所有班级信息。1)使用exists查询2表都有的班级信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。selectclassno,classnamefromsys.classwhereexists(SELECTclassnofromsys.studentwherestudent.classno=class.classno)03在where语句中使用exists子查询任务3子查询-03创建与使用相关子查询任务:分别查询“class”表中,出现和没有出现在“student”表中的所有班级信息。2)使用exists查询在“student”表中没出现的班级信息。操作步骤:在脚本输入区域,输入如下所示的SQL查询语句。selectclassno,classnamefromsys.classwhereexists(SELECTclassnofromsys.studentwherestudent.classno=class.classno)感谢聆听PL/SQL基础|使用记录类型|流程控制语句PL/SQL在数据库中的应用知识目标掌握PL/SQL语言的概念01.02.掌握PL/SQL的基本结构03.掌握PL/SQL的基本控制语句能力目标能使用PL/SQL定义常量、变量01.02.能使用PL/SQL进行顺序输出03.能使用记录类型完成数据查找任务1PL/SQL基础0102使用PL/SQL定义常量、变量并输出编写程序对数据进行计算并输出任务1PL/SQL基础PL/SQL语言是Oracle对关系型数据语言SQL的过程化扩充,它将数据库技术和过程化程序设计语言联系起来,将变量、控制结构、过程和函数等结构化程序设计的要素引入SQL语言中,以提高结构化编程语言对数据的支持能力,提高程序的执行效率。PL/SQL具有以下特点:1、支持事务控制和SQL数据操作命令。2、支持SQL的所有数据类型,并且在此基础上扩展了新的数据类型,也支持SQL的函数以及运算符。3、PL/SQL可以存储在Oracle服务器中,服务器上的PL/SQL程序可以使用权限进行控制。4、Oracle有自己的DBMS包,可以处理数据的控制和定义命令。利用PL/SQL语言编写的程序也称为PL/SQL程序块。PL/SQL程序块的基本单位是块,PL/SQL程序都是由块组成的。完整的PL/SQL程序块包含三个基本部分:声明部分、执行部分和异常处理部分,其基本结构如下:[DECLARE定义语句段]---------------声明部分BEGIN

执行语句段---------------执行部分[EXCEPTION异常处理语句段]--------------异常处理部分END;声明部分以DECLARE为标志,主要是定义程序中要使用的常量、变量、游标等。执行部分以BEGIN为开始标志,以END为结束标志,包含了对数据库的数据操纵语句和各种控制语句。异常处理部分包含在执行部分里,以EXCEPTION为标志,包含了对程序执行过程中产生的异常情况的处理程序。任务1PL/SQL基础-01使用PL/SQL定义常量、变量并输出常量是指在程序运行期间其值不能改变的量。定义常量的语法格式如下:<常量名>Constant<数据类型>:=<值>;变量是指在程序运行期间可以改变的量。定义变量时没有关键字,但要指定数据类型,定义变量的语法格式如下所示。<变量名><数据类型>[(数据大小):=<初始值>];在定义常量和变量时要注意以下事项:1、“变量名”和“常量名”必须以字母A~Z开头,不区分大小写,其后面跟可选的一个或多个字母、数字(0~9)、特殊字符($、#或_),长度不超过30个字符,“变量名”和“常量名”中不能有空格。2、CONSTANT是声明常量的关键字,只在声明常量时使用。3、每一个变量或常量都有一个特定的数据类型。4、每个变量或常量声明占一行,行尾使用分号“;”结束。5、常量必须在声明时赋值。变量在声明时可以不赋值。01定义常量并输出任务1PL/SQL基础-01使用PL/SQL定义常量、变量并输出任务:使用PL/SQL定义常量H、M,并分别给它们赋值H初始值为“苏州健雄,”,M初始值为“欢迎您!”,并在屏幕上顺序输出。操作步骤:在脚本输入区

温馨提示

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

最新文档

评论

0/150

提交评论