一天天的sql总结

时间:2021-07-31 22:30:20
一天天的sql总结

  一. 多张表之间的查询:

    join/inner join  on inner join 是比较运算符,只返回符合条件的行。

    left/outer join on 左外连接包含left join左表所有行,如果左表中某行在右表没有匹配,则结果中对应行右表的部分全部为空(NULL).

    right/outer join  on 右外连接包含right join右表所有行,如果左表中某行在右表没有匹配,则结果中对应左表的部分全部为空(NULL)。

    full / full outer join on完全外连接包含full join左右两表中所有的行,如果右表中某行在左表中没有匹配,则结果中对应行右表的部分全部为空(NULL),如果左表中某行在右表中没有匹配,则结果中对应行左表的部分全部为空(NULL)。

    cross join 交叉连接 没有 WHERE 子句的交叉联接将产生连接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。如果我们在此时给这条SQL加上WHERE子句的时候,此时将返回符合条件的结果集,结果和inner join所示执行结果一样。

    

  二.如何查询数据库有多少张表

    在sql server 2005

      select * from sysobjects where(xtype='U')

    解释xtype参数的含义

    C = CHECK 约束

    D = 默认值或 DEFAULT 约束

    F = FOREIGN KEY 约束

    L = 日志

    FN = 标量函数

    IF = 内嵌表函数

    P = 存储过程

    PK = PRIMARY KEY 约束(类型是 K)

    RF = 复制筛选存储过程

    S = 系统表

    TF = 表函数

    TR = 触发器

    U = 用户表

    UQ = UNIQUE 约束(类型是 K)

    V = 视图

    X = 扩展存储过程

  在ORACLE 中

    select * from user_tables