您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 北大青鸟oracle学习资料TP2
ACCPV4.0第二章SQL查询和SQL函数ACCPV4.0Oracle网络配置Oracle基本用户管理Oracle中用于访问数据库的主要查询工具有SQL*Plus、iSQL*Plus和PL/SQLOracle企业管理器是用于管理、诊断和调整多个数据库的工具回顾ACCPV4.0本章任务使用SQL执行数据查询控制数据的对象权限3ACCPV4.04技能目标了解Oracle数据类型了解数据定义语言和数据控制语言掌握SQL操作符和SQL函数ACCPV4.05SQL简介2-1SQL是StructuredQueryLanguage(结构化查询语言)的首字母缩写词SQL是数据库语言,Oracle使用该语言存储和检索信息表是主要的数据库对象,用于存储数据通过SQL可以实现与Oracle服务器的通信SELECTenameFROMEmp;发送SQL查询Oracle服务器enameBLAKESMITHALLENDAVIDMARTIN发送命令输出到用户端用户ACCPV4.06SQL简介2-2SQL支持下列类别的命令:数据定义语言(DDL)数据操纵语言(DML)事务控制语言(TCL)数据控制语言(DCL)数据定义语言CREATEALTERDROP数据操纵语言INSERTSELECTDELETEUPDATE事务控制语言COMMITSAVEPOINTROLLBACK数据控制语言GRANTREVOKEACCPV4.07Oracle数据类型5-1创建表时,必须为各个列指定数据类型以下是Oracle常用数据类型的类别:数据类型字符数值日期时间ACCPV4.08Oracle数据类型5-2字符数据类型CHARVARCHAR2LONG当需要固定长度的字符串时,使用CHAR数据类型。CHAR数据类型存储字母数字值。CHAR数据类型的列长度可以是1到2000个字节。VARCHAR2数据类型支持可变长度字符串VARCHAR2数据类型存储字母数字值VARCHAR2数据类型的大小在1至4000个字节范围内LONG数据类型存储可变长度字符数据LONG数据类型最多能存储2GBACCPV4.09Oracle数据类型5-3数值数据类型可以存储正数,负数,零,定点数和浮点数浮点数最高精度为38位数值数据类型的声明语法:NUMBER[(p[,s])]P表示精度,S表示小数点的位数日期时间数据类型存储日期和时间值,包括年、月、日,小时、分钟、秒主要的日期时间类型有:DATE-存储日期和时间部分,精确到整个的秒TIMESTAMP-存储日期、时间和时区信息,秒值精确到小数点后6位ACCPV4.010数据定义语言数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象用于操纵表结构的数据定义语言命令有:CREATETABLEALTERTABLETRUNCATETABLEDROPTABLEACCPV4.0创建表创建表命令用途语法:CREATETABLE[schema.]table(columndatatype[,columndatatype[,…]])11SQLCREATETABLEvendor_master(vencodeVARCHAR2(5),vennameVARCHAR2(20),venadd1VARCHAR2(20),venadd2VARCHAR2(20),venadd3VARCHAR2(20));ACCPV4.0表命名规则表名应该严格遵循下列命名规则1.表名首字符应该为字母2.不能使用oracle保留字来为表命名3.表名的最大长度为30个字符4.同一用户模式下的不同表不能具有相同的名称5.可以使用下划线,数字和字母,但不能使用空格和单引号6.Oracle中的表名(还有列名,用户名和其他对象名)不区分大小写,系统会自动转换成大写12ACCPV4.0更改表命令用途:有以下几种情况添加新列更改列的数据类型或数据类型的宽度添加或删除完整性约束条件删除现有列13ACCPV4.0更改表语法ALTERTABLEtablenameMODIFY(columndefinition…);ALTERTABLEtablenameADD(columndefinition…);ALTERTABLEtablenameDROPCOLUMNcolumn;14SQLALTERTABLEvendor_masterMODIFY(vennamevarchar2(25));SQLALTERTABLEvendor_masterADD(tel_novarchar2(12),tngst_no_number(12));SQLALTERTABLEvendor_masterDROPCOLUMNtngst_noACCPV4.0删除表用途语法DROPTABLEtablename15SQLDROPTABLEvendor_master;ACCPV4.016数据控制语言数据控制语言为用户提供权限控制命令用于权限控制的命令有:GRANT授予权限REVOKE撤销已授予的权限SQLGRANTSELECT,UPDATEONorder_masterTOMARTIN;SQLGRANTUPDATE(qty_hand,re_level)ONitemfileTOMARTIN;SQLGRANTSELECTONvendor_masterTOaccountsWITHGRANTOPTION;SQLREVOKESELECT,UPDATEONorder_masterFROMMARTIN;ACCPV4.017SQL操作符SQL操作符集合操作符逻辑操作符比较操作符算术操作符连接操作符Oracle支持的SQL操作符分类如下:ACCPV4.018算术操作符算术操作符用于执行数值计算可以在SQL语句中使用算术表达式,算术表达式由数值数据类型的列名、数值常量和连接它们的算术操作符组成算术操作符包括加(+)、减(-)、乘(*)、除(/)SQLSELECTitemdesc,max_level-qty_handavble_limitFROMitemfileWHEREp_category='spares';SQLSELECTitemdesc,itemrate*(max_level-qty_hand)FROMitemfileWHEREp_category='spares';ACCPV4.019比较操作符比较操作符用于比较两个表达式的值比较操作符包括=、!=、、、=、=、BETWEEN…AND、IN、LIKE和ISNULL等SQLSELECTitemdesc,re_levelFROMitemfileWHEREqty_handmax_level/2;SQLSELECTordernoFROMorder_masterWHEREdel_dateIN(‘06-1月-05’,‘05-2月-05');SQLSELECTvencode,venname,tel_noFROMvendor_masterWHEREvennameLIKE'j___s';ACCPV4.020逻辑操作符SQLSELECT*FROMorder_masterWHEREodate‘10-5月-05'ANDdel_date‘26-5月-05’;显示2005-5月-10至2005-5月-26的订单信息逻辑操作符用于组合多个计较运算的结果以生成一个或真或假的结果。逻辑操作符包括与(AND)、或(OR)和非(NOT)。ACCPV4.021集合操作符集合操作符将两个查询的结果组合成一个结果集合操作符UNIONUNIONALLINTERSECTMINUSUNION操作符返回两个查询选定都所有不重复都行。SQLSELECTordernoFROMorder_masterUNIONSELECTordernoFROMorder_detail;UNIONALL操作符合并两个查询选定的所有行,包括重复的行SQLSELECTordernoFROMorder_masterUNIONALLSELECTordernoFROMorder_detail;SQLSELECTqty_hand,max_levelFROMitemfileUNIONSELECTqty_ord,qty_deldFROMorder_detailORDERBY2;ACCPV4.022集合操作符集合操作符将两个查询的结果组合成一个结果集合操作符UNIONUNIONALLINTERSECTMINUSINTERSECT操作符只返回两个查询都有的行SQLSELECTordernoFROMorder_masterINTERSECTSELECTordernoFROMorder_detail;MINUS操作符只返回由第一个查询选定但是没有被第二个查询选定的行,也就是在第一个查询结果中排除在第二个查询结果中出现的行SQLSELECTordernoFROMorder_masterMINUSSELECTordernoFROMorder_detail;ACCPV4.023连接操作符连接操作符用于将多个字符串或数据值合并成一个字符串SQLSELECT(‘供应商’||venname||‘的地址是‘||venadd1||’’||venadd2||’’||venadd3)addressFROMvendor_masterWHEREvencode=‘V001’;通过使用连接操作符可以将表中的多个列合并成逻辑上的一行列ACCPV4.024操作符的优先级SQL操作符的优先级从高到低的顺序是:算术操作符--------最高优先级连接操作符比较操作符NOT逻辑操作符AND逻辑操作符OR逻辑操作符--------最低优先级ACCPV4.025SQL函数Oracle提供一系列用于执行特定操作的函数SQL函数带有一个或多个参数并返回一个值以下是SQL函数的分类:SQL函数标量函数分组函数ACCPV4.026标量函数分类标量(单行)函数对于从表中查询的每一行只返回一个值可以出现在SELECT子句中和WHERE子句中标量函数可以大致划分为:日期函数数字函数字符函数转换函数其他函数ACCPV4.027日期函数日期函数对日期值进行运算,并生成日期数据类型或数值类型的结果日期函数包括:ADD_MONTHSMONTHS_BETWEENLAST_DAYROUNDNEXT_DAYTRUNCEXTRACTACCPV4.0日期函数ADD_MONTHS函数返回给指定的日期加上指定的月数后的日期值。格式为ADD_MONTHS(d,n),其中d是日期,n表示月数28SQLSELECTdel_date,ADD_MONTHS(del_date,2)FROMorder_master;ACCPV4.0日期函数MONTHS_BETWEEN函数返回两个日期之间的月数格式为MONTHS_BETWEEN(d1,d2)详细:d1和d2是日期,输出结果为一个数值。如果d1晚于d2,则结果为正数;否则为负数。如果d1和d2为某月中的同一天或月份的最后一天,则结果始终为整数;否则oracle将根据一个月31天来计算结果的小数部分,并考虑d1和d2时间部分的差。LAST_DAY函数返回指定日期当月的最后一天的日期值格式为LAST_DAY(d)29SQLSELECTSYSDATE,LAST_DAY(SYSDATE)FROMdual;ACCPV4.0日期函数ROUND函数返回日期值,此日期四舍五入为格式模型指定的单位。格式为ROUND(d,[fmt])详细:d是日期,fmt是格式模型。fmt是一个可选项,日期默认舍入为最靠近的那一天。如果指定格式为年”YEAR”,则舍入到年的开始,即1月1日;如果格式为月”MONTH”,则舍入到月的第一日;如果格式为周”DAY”,则舍入到最靠近的星期日。30
本文标题:北大青鸟oracle学习资料TP2
链接地址:https://www.777doc.com/doc-13754 .html