1、INSTANCES integer I DEFAULT )I NOPARALLEL CACHE I NOCACHE I CLUSTER cluster (column , columrf.)ENABLE enable_clauseI DISABLE disable_clause .AS subquery表是Oracle中最重要的数据库对象,表储备一些相似的数据集合,这些数据描述成 若干列或字段.create table语句的差不多形式用来在数据库中创建容纳数据行的 表.create table语句的简单形式接收表名,列名,列数据类型和大小.除了列名和描 述外,还能够指定约束条件,储备参数和该表
2、是否是个cluster的一部分.Schema用来指定所建表的owner,如不指定则为当前登录的用户.Table_name用来指定所创建的表名,最长为30个字符,但不能够数字开头(可为下划 线),但不可同其它对象或Oracle的保留字冲突.Column用来指定表中的列名,最多254个.Datatype用来指定列中储备什么类型的数据,并保证只有有效的数据才能够输入. co 1 umn_constraint用来指定列约束,如某一列不可为空,则可指定为not null. table_constraint用来指定表约束,如表的主键,外键等.Pct free用来指定表中数据增长而在Oracle块中预留的空
3、间.DEFAULT为10%,也确 实是讲该表的每个块只能使用90%, 10%给数据行的增大时使用.Pctused用来指定一个水平线,当块中使用的空间低于该水平线时才能够向该中加 入新数据行.Parallel用来指定为加速该表的全表扫描能够使用的并行查询进程个数.Cache用来指定该表为最应该缓存在SGA数据库缓冲池中的候选项.Cluster用来指定该表所储备的cluster.Tablespace用来指定用数据库的那个分区来储备该表的数据.Recoverable|Unrecoverable用来决定是否把对本表数据所作的变动写入Redo文 件.以复原对数据的操作.As当不指定表的各列时,可利用As
4、子句的查询结果来产生数据库结构和数据.例:1) create table mytable(mydec decimal,myint inteter)tablespace user_data pctfree 5pctused 30;2) create table mytable2as ( select * from mytablel);create sequence 语句语句:CREATE SEQUENCE schema. sequence_naineINCREMENT BY integerSTART WITH integerMAXVALUE integer I NOMAXVALUEMINVALU
5、E integer I NOMINVALUECYCLE I NOCYCLECACHE integer I NOCACHEORDER I NOORDER 序列用来为表的主键生成唯独的序列值. Increment by指定序列值每次增长的值 Maxvalue指定产生的序列的最大值 Minvalue指定产生的序列的最小值 Cycle指定当序列值逵到最大或最小值时,该序列是否循环. Cache指定序列生成器一次缓存的值的个数 Order指定序列中的数值是否按访咨询顺序排序.1)create sequence niyseqincrement by 4 start with 50 maxvalue 60
6、minvalue 50 cycle cache 3;2)sql create sequence new_s;insert into new (new_id, last_name, first_name) values(new_s. nextval, daur*, peimit);create view 语句CREATE OR REPLACE FORCE I NOFORCE VIEW schema. view_name(alias ,alias.)AS subqueryWITH CHECK OPTION CONSTRAINT constraint视图实际上是储备在数据库上旳select语句.每次
7、在sql语句中使用视图时, 表示该视图的select语句就用来得到需要的数据.Or replace创建视图时假如视图已存在,有此选项,新视图会覆盖旧的 视图.Force如有此选项,当视图基于的表不存在或在该模式中没有创建视图的权限 时,也能够建立视图.As subquery产生视图的select査询语句With check option假如视图是基于单表的且表中所有的非空列都包含在视图 中时,该视图可用于insert和update语句中,本 选项保证在每次插入或更新数据后,该数据能够在视 图中查到1) create or place view new_vasselect substr(d. d
8、_last_nanie, 1, 3),d. d_lastname, d. d_firstname, b. b_start_date, b. b_location from newl d,new2 bwhere d. d_lastname=b. b_lastname;四、INSERT语句:1.语法INSERT INTO schema. table I view | subquery gdblinkj(column , column .)VALUES (expr , exprj .) I subqueryWHERE condition2.插入单行使用VALUES关键词为新行的每一列指定一个值.假如
9、不明口某列的值,能够使用 NULL关键词将其值设为空值(两个连续的逗号也能够表示空值,也可使用NULL关 键词)插入一行时试图为那些NOT NULL的列提供一个NULL值,会返回错误信息.举例:插入一条记录到DEPARTMENT表中INSERT INTO DEPARTMENT(DEPARTMENT.ID, NAME, LOCATION_ID)VALUES (01,COMPUTER, 167)3.插入多行将SELECT语句检索出来的所有数据行都插入到表中.这条语句通常在从一个表向 另一个表快速复制数据行.INSERT INTO OR1)ER_TEMPSELECT A. OR1)ER_I1), B
10、. ITEM,ID, C. NAME, E. FIRST_NAME| I* / 11E. LAST_NAME,A.ORDER_DATE, A. SHIP_DATE, I). DESCRIPTION, B. ACTUAL_PRICE,B.QUANTITY, B. TOTALFROM SALES_ORI)ER A, ITEM B, CUSTOMER C,PRODUCT 1), EMPLOYEE EWHERE MONTHS_BETWEEN(TO_DATE(A. ORI)ER_DATE), TO_DATE(J 01-7 月-91 )AND A. CUSTOMER.11)=C. CUSTOMER】)AN
11、D C. SALESPERSON. I D=E. EMPLOYEE_I1)AND A. OR1)ER_ I I)=B. OR1)ER_ 11)AND B. PRODUCT 11)=D. PRODUCT ID4.从其它表复制数据:要快速地从一个表向另一个尚不存在的表复制数据,能够使用CREATE TABLE语句 定义该表并同时将SELECT语句检索的结果复制到新表中.CREATE TABLE EMPLOYEE_COPYASSELECT *FROM EMPLOYEE五、UPDATE语句:UPDATE schema. (table I view | subquerydblink: aliasSET
12、(column , column . ) = (subquery)I column = expr I (subquery) , (column , column . ) = (subquery)I column = expr I (subquery) .UPDATE语句更新所有满足WHERE子句条件的数据行.同样,该语句能够用SELECT 语句检索得到.但SELECT必须只检索到一行数据值.否则报错.而且每更新一行数 据,均要执行一次SELECT语句.UPDATE EMPLOYEE_COPSET SALARY=SALARY-400WHERE TO_NUMBER(TO_CHAR(HIRE_DAT
13、E,J YYMMDI) )X850101UPDATE ITEM_COP ASET A.ACTUAL_PRICE=(SELECT B.LIST_PRICEFROM PRICE B, SALES_ORDER CWHERE A. PRODUCT. II)=B. PRODUCT. 11) ANDA. ORDER_ID=C. ORDER.ID ANDTO_NUMBER(TO_CHAR(C. OR1)ER_DATE, YYYYMMDD ) BETWEEN TO_NUMBER(TO_CHAR(B. START_DATE, ) AND NVL(TO_NUMBER(TO_CHAR(END_DATE, ), 29
14、991231)六、DELETE语句:DELETE FROM schema. tab1e I viewgdblink alias WHERE conditionDELETE语句删除所有满足WHERE子句条件的数据行.DELETE FROM itemWHERE ORDER ID=510七、TRUNCATE 语句:TRUNCATE schema. J table八、各类 Functions:1-转换函数:1.1.语法:函數:TO_CHARTO_CHAR(number, format)用途:将一个数值转换成与之等价的字符串.假如不指定格式,将转换成最简单的字符串形式. 假如为负数就在前面加一个减号.O
15、racle为数值提供了专门多格式,下表列出了部分可同意的格式:元素描述示例值结果9返回指定位数的数值,前 面为0,显示为空格99999784 -578 123456745. 89578Q _578,*#* 46,插入小数点9999. 9978445.3482784. 0045. 35在结果串的指定位置插 入逗号9, 999, 999784 12345670.44 784,1,234,567 0$返回值前面加一个元符 号$99, 999784 -578 $784,-$578B结果的整数部分假如是0,就显示成空格B9999. 9784.0, .4,S返回有正负号的数值S9999+784EEEE以科
16、计数法表示数值9. 9EEEE450. 06664.5E+0P6.7E-0251.2.函數:TO_CHAR(date, format)将按format参数指定的格式将日期值转换成相应的字符串形式.同样,Oracle提供许多 的格式模型,用户能够用它们的组合来表示最终的输出格式.唯独限制确实是最终的掩 码不能超过22个字符下表列出了部分日期格式化元素.格式意义I)用数字表示星期几(1,2, 3,4,5, 6,7)DY用三个字符表示星期儿的缩写形式(MON)DAY星期儿的完整表示(MONDAY)DD用数字表示一月中的儿号DDD用数字表示年份中的天数W一月中的星期数WW一年中的星期数MM用数字表示月
17、数MON用三个字母表示月的缩写(APR)MONTH月的完整英文表示(FEBRUARY)Y年份中的最后一个数字(9)YY年份中的最后二个数字(99)YYY年份中的最后三个数字(999)YYYY年份用四个数字表示(1999)YEAR年份的字母全部拼写(NINETEEN-NINETY-NINE)AM 或 PM午前或午后表示符HH用小时表示日期MI分钟表示小时SS秒钟表示分钟SSSS自午夜以来的秒数(那个数字经常在0-86399之间)1.3.函數:TO_DATETO_DATE(string, format)依照给定的格式将一个字符审转换成Oracle的日期值.该函数的要紧用途是用来验证输入的日期值.在
18、应用程序中,用户必须验证输入日期是 否有效,如月份是否在卜12之间和日期中的天数是否在指定月份的天数内.1.4.函數:TO_NUMBERTO_NUMBER(string, format)该函数将一个字符串转换成相应的数值.关于简单的字符串转换数值(例如儿位数字加 上小数点)格式是可选的.2.日期函数2.1.函數:ADD_MONTHSADI)_MONTHS(date, number)在日期date上加指定的月数,返回一个新日期.假如给定为负数,返回值为日期date之 前儿个月的日期.number应当是个整数,假如是小数,正数被截为小于该数的最大整数, 负数被截为大于该数的最小整数.例如:SELE
19、CT TO_CHAR(ADD_MONTHS(sysdate, 1),DD-MON-YYYY ) Next monthFROM dualNext month19-FEB-20002.2.函數:LAST_DAYLAST_DAY(date)返回日期date所在月份的最后一天的日期.SELECT SYSDATE, LASTJ)AY(SYSDATE) ”Last”, LAST_DAY(SYSI)ATE) - SYSDATE MDays LeftFROM DUALSYSDATE Last Days Left2.3.函 M:MONTHS_BETWEENMONTHS_BETWEEN(datel, date2)
20、SELECT MONTHS_BETWEEN(TO_DATE(J 02-02-1992, * MM-DI)-YYYY,),TO_DATE( 01-01-1992,,MM-DD-YYYY)” MonthsMonths1.03225806SELECT MONTHS_BETWEEN(TO_DATE(, 02-29-1992, J MM-D1)-YYYY,), TO_DATE( 01 -31 -1992, MM-I)1)-YYYYHMonths2.4.函數:NEXT_DAY 语法:NEXT_DAY(date, day) 用途:该函数返回日期date指定若天后的日期.注意:参数day必须为星期,能够星期儿
21、的英文 完整拼写,或前三个字母缩写,或数字1,2, 3,4, 5, 6, 7分不表示星期日到星期六.例如, 查询返回本月最后一个星期五的日期.SELECT NEXT_DAY(last_day(sysdate)-7),FRIDAYNEXT_DAY(28-JAN-002.5.函數:ROUNDNEXT_DAY(date, format)该函数把一个日期四舍五入到最接近格式元素指定的形式.假如省略format,只返回 date的日期部分.例如,假如想把时刻(24/01/00 14:58:41)四舍五入到最近的小时.下 表显示了所有可用格式元素对日期的阻碍.Format ElementResultss2
22、4/01/00 14:4159:0024/01/00 15:00:DI)25/01/00 00:01/02/01 00:01/01/00 00:CCSELECT to_char(ROUND(sysdate,HH ),DD-MON-YY HH24:MI:SS,)TO_CHAR(ROUND(SYSDATE, HH DD-M0N-YYHH24:SS24-JAN-00 15:2.6.函數:TRUNCTRUNC(date, format)TRUNC函数与ROUND专门相似,它依照指定的格式掩码元素,只返回输入日期用户所关怀 的那部分,与ROUND有所不同,它删除更精确的时刻部分,而不是将其四舍五入.SE
23、LECT TRUNC(sysdate)TRUNCCSYS24-JAN-00FLOOR函数:求两个日期之间的天数用;select f loor(sysdate - to_date(* 20180805*, * yyyymindd ) from dual;3.字符函数3.1.函數:ASCIIASCI I(character)SELECT ASCIICZ,)ASCI I (Z903.2.函數:CHRCHR(number)该函数执行ASCII函数的反操作,返回其ASCII码值等于数值number的字符.该函数通 常用于向字符串中添加不可打印字符.SELECT CHR(65)|BCDEFCHR(65AB
24、CDEF3.3.函數:CONCATCONCAT(stringl, string2)该函数用于连接两个字符串,将string2跟在stringl后面返回,它等价于连接操作符 (II).SELECT CONCATCThis is a, computer*CONCAT(THISISAThis is a computer 它也能够写成如此:SELECT This is a11 computer FROM dual丨 ICOMPUTThis is a computer这两个语句的结果是完全相同的,但应尽可能地使用丨I操作符.3.4.函數:INITCAPINITCAP(string)该函数将字符串stri
25、ng中每个单词的第1个字母变成大写字母,其它字符为小写字母.SELECT INITCAPCfirst.nameir / 11 last_name)FROM employeeWHERE department_id=12INITCAP(FIRST_NAME| I; | |LAST_NChris .Alberts Matthew .FisherGrace RobertsMichaeL Douglas3.5.函數:INSTRINSTR(input_string, searchestring, n, m)该函数是从字符串input_string的第n个字符开始查找搜索字符串的第m次显现,假如 没有找到搜索的字符串,函数将返回0.假如找到,函数将返回位置.SELECT INSTR( the quick sly fox jumped over thelazy brown dog , the, 2,1)INSTRC THEQUICKSLYFOXJUMPEDOVERTHELAZYBROWNIXT , THE,2,1)3.6.函數:INSTRBINSTRB(input_string, search_string,n, m)该函数类似于INSTR函数,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1