资源描述:
《三、oracle数据定义ddl和dml讲课教案.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、三、oracle数据定义ddl和dmlORACLE主要的数据类型Character数据类型Number数据类型Date数据类型RAW和LongRaw数据类型LOB数据类型Character数据类型char类型固定大小,范围为1~2000varchar2类型可变长字符串,范围为1~4000long类型可变长的字符数据,最大可达2GB;特殊要求如下:1)表中只有一列为long类型2)long列不能定义为主键或者唯一约束3)不能在该列上建立索引4)过程或者存储过程不能使用该类型作为参数Number数据类型存储精度为38的浮点数、正数、负数等等使用格式:1)number2)number(p)3
2、)number(p,s)说明:p是精度即总位数,s为右边的小数位数Date数据类型Raw和LongRaw数据类型Raw数据类型存储面向字节的数据,如:二进制数和字符串,最大范围为2000个字节,使用时要指定大小LongRaw数据类型存储二进制数据,最大为2GB,跟long类型的限制一样LOB数据类型CLOB存储字符串Charactor的LOB类型BLOB存储二进制数据Binary的LOB类型,一般来存储大型的二进制对象BFILE存储二进制的文件存储非结构化的数据,最大的范围是4GB表的创建CREATETABLE[schema.]table({columndatatype[DEFAULT
3、expr][column_constraint]...
4、table_constraint})[[PCTFREEinteger][PCTUSEDinteger][INITRANSinteger][MAXTRANSinteger][TABLESPACEtablespace][STORAGEstorage_clause][CACHE
5、NOCACHE]
6、[CLUSTERcluster(column[,column]...)]][ENABLEenable_clause
7、DISABLEdisable_clause]...[ASsubquery]说明:1、TABLESPACE指定了该表使用的表空间2
8、、ASsubquery表示使用子查询创建表,只需要指定列名和列上的约束,不需要指定数据类型(或者列名也不指定)3、Enable
9、Disable表示是否使用完整性约束4、如果需要指定schema,即为其他用户创建表,则需要有CreateanyTable的系统权限示例-表创建(1)createtabletab_student(snochar(11)primarykey,snamevarchar2(30)notnull,sbirthdate,sageintdefault0,ssexchar(2)notnull,remarkvarchar2(60),constraintck_ta
10、b_student_sagecheck(ssexin('男','女')))tablespacets_stock说明:1、表创建时,就跟约束一起创建,该例中使用到的约束有:primarykey,notnull,default,check(未出现的还有foreignkey,unique等)2、思考建表后是如何建立约束呢?示例-表创建(2)1、建表和外键约束createtabletab_score(snochar(11)primarykey,scnochar(3)notnull,scorenumber(8,3)default0,constraintfk_tab_score_tab_
11、student_snoforeignkey(sno)referencestab_student(sno))2、用as子句建表createtabletab_dup(aa,bb)asselectsno,snamefromtab_student示例-表变动1、增加/改动/删除列altertabletab_studentadd(col1varchar2(10)notnull,col2int);altertabletab_studentmodify(ssexchar(1)notnull,remarkvarchar2(100))altertabletab_studentdrop(remark)
12、2、启用/禁止/删除表约束altertabletab_studentdisableconstraintck_tab_student_sagealtertabletab_studentdisableprimarykey;altertabletab_studentenableprimarykey;altertabletab_studentdropconstraintck_tab_student_sage;示例-表删除Droptabletab_stu