数据库主要概念与用法整理

       这篇数据库的整理,既有参考书籍及网络上关于数据库的知识,也有个人的浅薄见解。如有错误,欢迎联系图片上的邮件地址,探讨改正。

       关系数据库系统与文件数据库系统的区别-主要有三点。

       1,关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构化。
       2,关系数据库系统中,用户看到的逻辑结构是二维表,而文件数据库系统中,基本元素是文件。
       3,文件数据库系统可以实现多媒体文件管理,支持c/s工作模式。
       注:两者一般配合使用,大概是关系数据库提供获取资源的方向,文件数据库提供资源。类似地图和地点的关系,两者可以相互独立,也可以相依存。

      

       sql常用使用语句

       select(查询),insert(插入),update(更新),delete(删除),create(建表),drop(删表),alert(更改表结构),grant(添加用户权限),revoke(移除用户权限)

      

    内连接与外连接的区别

        内连接(a表 inner join b表)要保证所有的行都满足链接条件。比如A表的编号列有a,b,c.B表的编号列有a,b,c,d.则结果只显示有相同编号的,d不显示。

        外连接则相反,外连接分文左(left outer join),右外连接(right outer join),还有全外连接(full outer join).以上面的内连接为例,左外连接就是以A表为示例,如果B表中没有相应的值则为空,右外连接相反,全外连接就是把左右外连接的结果全部显示出来。

         具体的使用可以参考这个链接的回答,答得还不错。
         注:内外链接的查询语句结果有点像and,or的判断条件语句,可以关联一下进行理解。多加练习,很快就能掌握。

 

     事务是什么,有什么用,它的作用是什么?
         在事务中,所有sql语句执行成功,它的数据才会提交。否则,事务取消或者是回滚。
         事务用来做什么?
             例如,你在网上购物时,它的交易过程包括以下几个操作
             更新客户所购物品的库存信息。
             保存客户的付款信息。
             生成订单保存到数据库中。
            更新用户相关信息,不如购物的数量。
        为了保证以上的步骤能够全部完成,就需要事务来约束它,如果都顺利执行这些操作,则交易成功。与交易相关的信息也全部更新成功。事务是为了防止数据库更新过程中产生的意外。

        事务要满足四个属性,一是原子性,二是一致性,三是隔离性,四是持久性。
        事务的代码是
           BEGIN TRANSACTION

           语句
           COMMIT
           ROLLBACK

         事务使用参考

        事务的rollback可以用来对执行的事务,进行还原操作。相当与我们平常用的ctrl+z撤销操作,不过它的操作对象是事务。

         


         存储过程
          增强sql语言的功能和灵活性。可以完成复杂的判断和运算。在一定程度上可以保证数据的安全。
          存储过程代码
          create procedure sp_name @[参数名][类型]
         as begin
            ...(SQL语句)
          end

          存储过程语句使用参考

          

         主键和外键
         主键是表中唯一的标识符。不能为空,相当于索引,一般由计算机自动生成,可以去设置表格的主键自增。
          外键也称外码,作为两个表之间的联系。如果key为a表的主键,而b表中也存在key,则key为b表中的外键。

         

         什么是死锁
        在操作系统中,由于若干程序不断的申请,释放资源。这个过程总,由于争夺资源而处于无限期的等待状态,造成程序无法继续执行下去。这时系统处于死锁状态,或者是产生了死锁。此时便只能依靠外力打破这种状态。
         产生死锁的四个必要条件。1,互斥,每个资源每次只能被一个进程使用,2请求与保持等待,一个进程请求资源被阻塞,对已获得的资源保持不放。3,不可掠夺,进程已获得的资源,未使用完成时,不得强制掠夺。4,环路等待,若干进程之间形成首尾相接的等待资源关系。

          简单来讲,就是资源使用的不适当。

         

         共享锁和互斥锁
         共享锁简称s锁,也叫读锁。用于不更改或不更新数据的操作。比如select语句。共享锁允许其他用户获取共享所得资源,但是不能修改它。

         互斥锁,简称x锁,也叫排他锁。用于数据修改操作。为了保证数据操作的完整性,加入互斥锁。以保证在任意时刻,只有一个线程访问对象。
         注:对于锁的使用,一定要注意,先锁在操作,操作完成后必须解锁。

 

       使用Top取出表中指定区间的记录
       使用Top(top10 表示取前十条)方法
       select top 10 * from a where id>(select max(id) from (select top 20 id from a) as a)
       选出前十条 条件是 id要大于(从前二十条中选出的最大值)
       select top 10* from s where id not in(select top 20 id from s)
      选出前十条 条件是 id不在前20条id之内。

     

    CHECK约束
       限制表中某一列或某些列中可接受的数据值或数据格式,它用于限制约束列的取值范围。

       视图
       视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。视图是一种虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,系统根据视图的定义去操作视图相关联的基本表。

       视图的作用:简单性(视图简化了用户对数据的理解以及操作)和安全性(用户只能查看和修改他们所能看到的数据)。

 

       参考资料:程序员面试笔试宝典。百度知道,csdn网站,360文献等等。

 

posted @ 2016-10-08 21:33  HuSay  阅读(789)  评论(0编辑  收藏  举报