1.何为约束对表中的数据进行限制,允许什么样的值,不允许什么样的值.保持数据的”实体完整性”和”参照完整性”.避免出现”脏数据”2.主键约束:PK:primaryKey在任何时候都必须有的.唯一,非空,高效方法:1.在Oracle服务器中修改约束条件2.命令语句:altertable表名add(primarykey列名);3.图形:在表中相应的字段后面”√”3.唯一约束:UniqueKey:不能重复,但可为空,空值可重复Altertable表名add(unique(列名));4.检查约束:Altertable表名add(check(agebetween10and50));-不能插入小于10,大于50的属性值5.创建外键约束:FK:foreignkey:Altertable表名add(foreignkey(“列名”))reference表名(“列名”);6.缺省约束defaultAltertable表名modify(“列名”default值);五.基本操作1.select查询:例:select列名from表名;Selectsname,‘X’froms;X:结果中会多出一列X2.as别名Select列名as‘新名称’from表名;重命名表:select*from表名新表名;3.union两表查询合成一表,并无重复记录unionall:不去重Select列名from表名UnionSelect列名from表名;4.where条件Select*from表where条件(属性=值)条件表达式:=,,,,not,and,or,inbetween,like,exists5.like一般与_共用,’_’代表任毅字符Select*from表名wheresnamelike‘_ang’;以ang结尾,四个字符的名称6.%任意长度字符Select*from表名where列名like‘%ng’;-一般不用该方法Select*from表名where列名like’w%’;-以W开头的不限长度的条件7.rownum控制行数,过滤数据量Select*from表where列名like‘w%’andrownum=3;-取前三列数据8.多表查询Select*from表1,表2where条件(列名相等);--过滤(主键=外键)9.连接查询.花费代价比嵌套的大①selectgrade,cnamefromsc,s,cwheresc.sid=s.sidands.sname=’wang’andsc.cid=c.cid;②selectcnamefrom(selectsname.cidfroms,scwheres.sid=sc.sid)p,cwherep.cid=c.cidandsname=’wang’;10.嵌套查询①selectgradefromscwheresid=(selectsidfromswheresname=’wang’);注释:1.当某些表的属性要出现在结果中,那这几张表查询必须用连接查询2.当某张表的是所有属性无需出现在结果中,那么查询用嵌套11.groupby分组查询Selectsname,sum(grade),min(grade),max(grade),avg(grade)froms,scwheres.sid=sc.sidgroupbysname;12.having过滤条件Selectsex,avg(age)fromsgroupbysexhavingavg(age)20;各个性别下平均年龄大于20岁的记录注释:执行顺序:where-groupby-having13.orderby排序desc:降序asc升序Select*from(select*fromsorderbyagedesc)whererownum=3;排序支持并列Select*fromscwheregradein(selectgradefrom(select*fromscorderbygradedesc)whererownum=4)orderbygradedesc;14.insert插入Insertinto表values(各个列名属性值)--顺序一定要与数据库内部数据一样15.update更新Update表set列名=’值’where条件;16.delete删除Deletefrom表where条件;注释:删除某一属性时用update17.内链接Select*frominnerjoinscons.sid=sc.sid;18.外连接①左外联接:以左表为基准,右表如果有包含满足条件的记录就显示出来,否则为空Select*fromsleftjoinscons.sid=sc.sidwheregradeisnull;==select*froms,scwheres.sid=sc.sid(+)②右外连接:以右表为基准,左表如果有包含满足条件的记录就显示出来,否则显示为空Select*from表rightjoin表on条件;③全外连接:将左表,右表中满足条件的记录合成一行,不满足的各自显示Select*from表fulljoin表on条件;19.序列:sequence一个命名的顺序编号的生成器①定义序列:Creatsequence序列名startwith1incrementby1select序列名.nextvalas‘id’,snamefrom表;②删除序列dropsequence序列名;
警惕易被痔疮掩盖的四大疾病交大一附院马现仓精神疾病障碍不是精