SQL语句

前段时间学的有关sql的相关知识,很多都没及时去整理,今天刚好有时间有没心情做其他的是,就整理整理吧

 

      一直以为做开发的对数据库操作方面的要求不会很高,只要会对数据增删改查就ok了.现在才知道对数据库的操作还应该包括写存储和函数,还要创建序列、索引,视图等.

    

      首先,还是讲序列, 序列是Oracle 9i提供的用于按照设定的规则自动产生数据的方案对象。在某些数据表的结构中,有些字段需要这种特性。比如,对于某个学生数据表的学号关键字段,用户可以希望在录入数据时,能够自动在上一个记录的学号字段上自动加1等.总之序列就是你为列设定你想要的增长方式

      格式为:

             create sequence hibernate_sequence  <------序列名

             increment by 1 <------步长

             start with 1 <------开始值

             maxvalue 999999 <----最大值

     其次是视图, 视图可以被看成是虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是 SELECT 语句。SELECT 语句的结果集构成视图所返回的虚拟表。用户可以用引用表时所使用的方法,在 Transact-SQL 语句中通过引用视图名称来使用虚拟表。使用视图可以实现下列任一或所有功能:
  将用户限定在表中的特定行上。
  例如,只允许雇员看见工作跟踪表内记录其工作的行。
  将用户限定在特定列上。
  例如,对于那些不负责处理工资单的雇员,只允许他们看见雇员表中的姓名列、办公室列、工作电话列和部门列,而不能看见任何包含工资信息或个人信息的列。
  将多个表中的列联接起来,使它们看起来象一个表。
  聚合信息而非提供详细信息。
  例如,显示一个列的和,或列的最大值和最小值。

     格式为

            create view viewname

            as

             select ...

      创建成功后就可以当做table来用了

 

 

      接着是索引,其实对索引还不是很明白.看网上意思大概是用于对查询优化的吧

        格式为:

       create index indexname

       on tablename (column[,column...])

 

      再接着就应该是触发器了,在所有的数据库技术中,我最喜欢的就是触发器了,因为他可以让数据库管理变得很简单,很多繁琐的工作都可以由他来帮我们来做了.比如视图的同步更新等,在我看来,如果没有触发器,视图存在的意义就要大打折扣了.

      格式

       Create Trigger truStudent   --触发器名字
       On Student                         --在Student表中创建触发器
       for Update                          --为什么事件触发
     As                                        --事件触发后所要做的事情
       if Update(StudentID)           
       begin

         Update BorrowRecord
           Set StudentID=i.StudentID
           From BorrowRecord br , Deleted   d ,Inserted i      --Deleted和Inserted临时表
           Where br.StudentID=d.StudentID

       end

      触发器应该也是数据库管理用的比较多吧.

 

      最后就是函数和过程.应该来说函数和过程给数据管理和访问都带来了很多的扩展,但我对这两个最不感冒了.郁闷

      格式:

      create or replace function 函数名
       (
         参数名1 数据类型,
         参数名2 数据类型
       )
      return 返回类型
     is(或者as)
     begin
       ....操作
       return 该类型的一个值;
     end;

 

     函数必须有返回值

     而过程却没有返回值,只能通过out类型的参数来带出值来


    创建过程的简要语法
    create or replace procedure 过程名
     (
      参数名1 数据类型,
      参数名2 数据类型
     )
     is(或者as)
     begin
        ....操作
     end;
最后顺便带下 包的创建 ,包包括包头的创建和包体的创建,并且,创建包体前一定要先创建好包头.

     格式如下:

 create or replace package 包名is
   function 函数名(参数 ) return number;
 end;
/
 create or replace package body 包名is
 function 函数名(参数 ) return number
 as
    begin
     ....操作
      return 需要返回的值;
    end;
  end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值