MYSQL教程之查询表主键外键信息的SQL
如果你需要额外的功能的话,MySQL的普及性实际上可以让你发现总有一个厂商会提供准确的解决方案,而这个方案会满足你的需要和需求。我的BSOOC里必要一个查询表主键外键信息的SQL,昨晚研讨到清晨1点,终究能完成这个方针:Oracle:
selecto.obj#asobjectId,o.nameAStableName,oc.nameASconstraintName,
decode(c.type#,1,C,2,P,3,U,
4,R,5,V,6,O,7,C,?)asconstraintType,
col.nameAScolumnName
fromsys.con$oc,sys.con$rc,
sys.obj$ro,sys.obj$o,sys.obj$oi,
sys.cdef$c,
sys.col$col,sys.ccol$cc,sys.attrcol$ac
whereoc.con#=c.con#
andc.obj#=o.obj#
andc.rcon#=rc.con#(+)
andc.enabled=oi.obj#(+)
andc.robj#=ro.obj#(+)
andc.type#!=8
andc.type#!=12/*dontincludeloggroups*/
andc.con#=cc.con#
andcc.obj#=col.obj#
andcc.intcol#=col.intcol#
andcc.obj#=o.obj#
andcol.obj#=ac.obj#(+)
andcol.intcol#=ac.intcol#(+)
ando.name=yourtable
SQLServer:
SELECTsysobjects.idobjectId,
OBJECT_NAME(sysobjects.parent_obj)tableName,
sysobjects.nameconstraintName,
sysobjects.xtypeASconstraintType,
syscolumns.nameAScolumnName
FROMsysobjectsINNERJOINsysconstraints
ONsysobjects.xtypein(C,F,PK,UQ,D)
ANDsysobjects.id=sysconstraints.constid
LEFTOUTERJOINsyscolumnsONsysconstraints.id=syscolumns.id
WHEREOBJECT_NAME(sysobjects.parent_obj)=yourtable
别的数据库还没工夫往完成.
“通过有能力的DBA的一个简单计划,MySQL可以达到令人难以想像的运行速度,”一位资深DBA如此表示。MySQL中没有多余的功能来拖累CPU或占用内存。 备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。 我们学到了什么?思考问题的时候从表的角度来思考问 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。 但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右) 外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 光写几个SQL实在叫无知。 而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。
页:
[1]