• 程序员面视题解析


    最近看了一些面试题,这些问题在我目前所做的项目中,几乎都没有运用到。应该是自己知识面太窄了,不管在实战中能否用到,我觉得还是有必要看看,即能扩展知识面,又能为面试打基础,何乐而不为呢!面试题具体如下(附答案):

    一、关于SQL Server 2000
       1.服务器1 上一个数据库server1.data1,data1中有一个表 table1;服务器2 上有一个

         server2.data2,data2中有一个表 table2,如何实现两个表之间的 inner join?
         分析:
         此问主要考察的是如何在一个服务器上查询另一个服务器中的数据。

         下面以 Pubs 数据库中titles表和 publishers表做示例演示:
         服务器1的地址:本机 数据库:pubs 表:titles
         服务器2的地址:192.168.1.12 数据库:pubs 表:publishers
         SELECT *
         FROM titles AS t
         INNER JOIN OPENROWSET(‘MSDASQL’,DRIVER={SQL Server};

         Server=192.168.1.12;                                                    

         UID=sa;PWD=’,pubs.dbo.publishers) AS p
         ON t.pub_id = p.pub_id

      

       2.如何提取一个字段的所有约束名称?
         分析:
         sysobjects 表

         在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。
         列举一些重要字段:
         name  sysname  对象名
         id     int      对象标识符
         uid    smallint  所有对象所有者的id
         xtype  char(2) 对象类型(C=CHECK约束 D=DEFAULT约束 F=FOREIGN KEY约束 U=用户表等)
         type   char(2)  和xtype几乎一致,自己也不清楚有什么区别
         parent_obj  int  父对象的对象标识号(例如对于触发器或约束,该标识号为表ID)
         syscomments 表

         包含每个视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的项。

         text 列包含原始 SQL 定义语句,其最大大小限制为 4 MB。该表存储在每个数据库中。
              列举一些重要字段:
         id   int 该文本适用的对象id
         ctext  varbinary(8000)  SQL定义语句的实际文本
         text   nvarchar(4000)   SQL定义语句的实际文本
         texttype smallint  0 用户提供的注释  1 系统提供的注释  4 加密注释

         下面通过查询上面两张系统表来实现: 
         SELECT sysobjects.name
         FROM syscomments
         INNER JOIN sysobjects
         ON syscomments.id = sysobjects.id
         WHERE text LIKE ‘%id%’  AND sysobjects.xtype=’c’


      3. 从数据库中提取一个表的所有字段名称、类型、约束?
        分析:
        syscolumns 表

        每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表
        位于每个数据库中。
        列举一些重要字段:
        name  sysname  列名或过程参数名
        id   int  该列所属表的对象ID,或与该参数关联的存储过程的ID
        xtype  tinyint  systypes中的物理存储类型
        length  smallint  systypes 中的最大物理存储长度
        systypes 表

        对于每种系统提供的数据类型和用户定义的数据类型,均包含一行信息。该表存储在每个
        数据库中

        列举一些重要字段:
        name  sysname  数据类型名称
        xtype  tinyint   物理存储类型
        length  smallint  systypes 数据类型的物理存储长度
        allownulls  bit  指出此数据类型的默认为空性。如果CREATE TABLE 或 ALTER TABLE指定了

                        为空性,那么该值将替代此数据类型的默认为空性。
        UNION 运算符使您得以将两个或多个 SELECT 语句的结果组合成一个结果集。

              使用 UNION 组合的结果集都必须具有相同的结构。而且它们的列数必须相同,并且相

              应的结果集列的数据类型必须兼容。

        以查询pubs数据库的jobs表为例:
        SELECT syscolumns.name,systypes.name
        FROM(syscolumns inner join sysobjects on syscolumns.id = sysobjects.id),systypes
        WHERE sysobjects.name = ‘jobs’ AND systypes.xtype = ‘u’
        UNION
        SELECT sysobjects.name,’约束名’
        FROM sysobjects
        WHERE sysobjects.xtype = ‘c’ AND sysobjects.parent_obj =
        SELECT id FROM sysobjects WHERE name = ‘jobs’)

     

    http://blog.sina.com.cn/s/articlelist_1237224282_0_1.html

  • 相关阅读:
    Python开源框架、库、软件和资源大集合
    java常用的框架介绍
    2016年7款最佳 Java 框架
    10款免费开源PHP框架
    10个提升MySQL性能的小技巧
    15个最受欢迎的Python开源框架
    Facebook's React vs AngularJS: A Closer Look
    用c#监控网络状态
    15种主要编程语言介绍及应用场合
    物联网常见通信协议梳理
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1801920.html
Copyright © 2020-2023  润新知