oracle建表命令总结
对表中插入记录的限制:
主键primarykey实现表中记录的一个唯一性唯一不能为空,一个表中只有一个主键
外键foreignkey参照于主键的值可以重复,可以插入空值唯一性unique设置除主键外的唯一性可以插入空值自定义check用户自定义限制不为空notnull默认值default添加约束的方式建表时添加
createtabletable_name(col_namecol_type,...,constraintconstraint_nameprimarykey(col_name));建表后添加
altertabletable_nameaddconstraintconstraint_nameprimarykey(col_name);altertabletable_namedropconstraintconstraint_name;
由于一个表中主键只有一个,所以删除可以用dropprimarykey,而不用找constraint_name
也可在建表时列名后加限制,这时系统会对这个限制起名
添加复合主键
altertabletable_nameaddconstraintconstraint_nameprimarykey(col_name1,col_name2);添加外键约束
altertabletable_nameaddconstraintconstraint_nameforeignkey(col_name)referencesparent_table(col_name);
注:外键参照的那个列必须为那个表的主键,外键也可以参照unique(候选主键)
altertabletable_namedropprimarykeycascade;级联,当删除这个主键时,和这个主键相关的外键也会被删除
droptabletable_namecascadeconstraint;如果一个表中哪列是另一个表中外键的referance时,可以用这种方法删除
notnull
altertabletable_namemodifycol_namenotnull增加notnull限制altertabletable_namemodifycol_namenull取消限制default
altertabletable_namemodifycol_namedefaultdefault_value;
老师的总结:
约束CONSTRAINTPRIMARYKEYFOREIGNKEYUNIQUECHECKNOTNULLDEFAULT
1PRIMARYKEY主键约束----一个表中只有一个主键作用:实现表中记录的一个唯一性特点:唯一不能为空
种类:单一主键,复合主键
添加方式:建表时添加,和建表后添加
注意:当建立符合主键的时候必须使用表级添加2FOREIGNKEY外键作用:参照性
特点:参照主键中存在的值并且可以插入重复的记录,而且可以插入重复的空值。添加方式:建表时添加,和建表后添加
注意:添加的时候参照的是主键还可以参照unique(候选主键)references3UNIQUE唯一性
作用:因为表中只有一个主键,但是其他的列需要唯一要求特点:唯一,可以插入空值,可以插入重复的空值添加方式和主键完全相同4CHECK限制
作用:根据用户自己的需求来进行限制特点:可以实现多样化
添加方式:建表时添加,和建表后添加注意:添加的时候不要忘了使用括号。5NOTNULL不能为空
作用:使制定的列必须插入值特点:不能为空
添加方式:建表时添加,和建表后添加注意:用的使modify来进行修改6DEFAULT默认值
作用:当不插入值的时候给默认效果特点:省事
添加方式:建表时添加,和建表后添加注意:用的使modify来进行修改7删除约束
altertabletable_namedropconstraintcon_name;altertabletable_naemdropprimarykey
altertabletable_namedropprimarykeycascade;8删除表
droptabletable_name;
droptabletable_namecascadeconstraint;9启用约束
altertabletable_nameenableconstraintcon_name;altertabletable_nameenableprimarykey;10禁用约束
altertabletable_namedisableconstraintcon_name;altertabletable_namedisableprimarykey;
字符串:字符串分为定长类型char和变长类型varchar2。
数字:整数number(整数位),小数number(总长度,小数位),只写number,表示无限制。
日期:date类型,可以保存年月日时分秒。
createtableEmp(
empNonumber(5,0)notnull,enamevarchar(10),jobvarchar(9),mgrnumber(5,0),hiredatedate,salnumber(7,2),commnumber(7,2),deptNonumber(2,0))
createtableDept(
deptNonumber(2,0),DNAMEvarchar(14),LOCvarchar(13))INSERT
INTO
EMP
VALUES
(7369,"SMITH","CLERK",7902,to_date("201*-12-17","YY-MM-DD"),800,NULL,20);
INSERTINTOEMPVALUES(7499,"allen","SALESMAN",7698,to_date("201*-2-20","YY-MM-DD"),1600,300,30);
INSERTINTOEMPVALUES(7521,"WARD","SALESMAN",7698,to_date("201*-2-22",’YY-MM-DD’),1250,500,30);
INSERTINTOEMPVALUES(7566,"JONES","MANAGER",7839,to_date("201*-4-2",’YY-MM-DD’),2975,NULL,20);
INSERTINTOEMPVALUES(7654,"MARTIN","SALESMAN",7698,to_date("201*-9-28",’YY-MM-DD’),1250,1400,30);
INSERTINTOEMPVALUES(7698,"BLAKE","MANAGER",7839,to_date("201*-5-1",’YY-MM-DD’),2850,NULL,30);
INSERTINTOEMPVALUES(7782,"CLARK","MANAGER",7839,to_date("201*-6-9",’YY-MM-DD’),2450,NULL,10);
INSERTINTOEMPVALUES(7788,"scott","ANALYST",7566,to_date("201*-12-9",’YY-MM-DD’),3000,NULL,20);
INSERTINTOEMPVALUES(7839,"king","PRESIDENT",NULL,to_date("201*-11-17",’YY-MM-DD’),5000,NULL,10);
INSERTINTOEMPVALUES(7844,"TURNER","SALESMAN",7698,to_date("201*-9-8",’YY-MM-DD’),1500,0,30);
INSERTINTOEMPVALUES(7876,"ADAMS","CLERK",7788,to_date("201*-1-12",’YY-MM-DD’),1100,NULL,20);
INSERTINTOEMPVALUES(7900,"JAMES","CLERK",7698,to_date("201*-3-12",’YY-MM-DD’),950,NULL,30);
INSERTINTOEMPVALUES(7902,"FORD","ANALYST",7566,to_date("201*-3-12",’YY-MM-DD’),3000,NULL,20);
INSERTINTOEMPVALUES(7934,"MILLER","CLERK",7782,to_date("201*-01-23",’YY-MM-DD’),1300,NULL,10);
INSERTINTODEPTVALUES(10,"ACCOUNTING","NEWYORK");INSERTINTODEPTVALUES(20,"RESEARCH","DALLAS");INSERTINTODEPTVALUES(30,"SALES","CHICAGO");INSERTINTODEPTVALUES(40,"OPERATIONS","BOSTON");
扩展阅读:
友情提示:本文中关于《oracle建表命令总结》给出的范例仅供您参考拓展思维使用,oracle建表命令总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。