一、视图

1、视图:是从一个表或多个表中生成的虚拟的表。

2、检索每个学生的导师姓名与哲学成绩。

   select s.姓名,t.教师姓名,r.哲学

     from student s,teacher t,res r

     where s.教师编号=t.教师编号and s.学生编号=r.学生编号

3、创建视图

   create view  视图名

     as

     查询语句

4、使用视图:select * from 视图名

5、删除视图:drop  view  视图名

6、视图的优点

   分割数据,简化观点。

   简化操作。

   提供自动的安全保护功能。

7、修改视图:(右)视图名--修改

8、浏览视图信息

   sp_help 显示RDBMS中所有的对象信息(包括视图信息)

   

   select name,crdate

    from sysobjects

    where type ='v'

    order by name

    sysobjects表,记录了当前数据库中所有数据库对象。

   查看特定的视图信息:sp_help 视图名

   查看特定视图的文本信息(创建命令):sp_helptext  视图名

9. 插入数据

insert into】 表名

   (字段名1......,字段名n

   values

    (字段值1......,字段值n

10、向视图插入数据

    insert  into   视图名

    (视图字段名1......,视图字段名n

    values

    (字段值1......,字段值n

    向视图插入数据时,数据会写入实际的表中。

    向视图中插入数据的注意事项

    对多个表连接而成的视图而言,一个insert语句只能对某一个表实

        现插入,而不能对多个表实现插入。

    如果插入的数据中不包含特定的字段,而且该特定的字段在表的定

        义中是不允许为空的,则插入失败。

    不能对使用distinctgroup by语句的视图写入数据。

11、更新表中的数据

    update  表名

    set  字段名=字段值,......

    where 匹配条件

12、更新视图的数据

    update  视图名

    set  字段名=字段值,字段名=字段值,......

    where 匹配条件

13、删除数据(复习)

    delete  from  表名

    where  匹配条件

14、删除视图中的数据

    delete  from 视图名

    where  匹配条件

15、视图的文本加密

    create  view   视图名

    with encryption /*加密视图文本*/

    as

    查询语句

二、约束

1、约束,是对数据库名,对数据表名,字段名,记录,字段值等数据库 对象的取值要求.

         在一个RDBMS中,数据库名具有唯一性。

         在一个数据库中,数据表名具有唯一性。

   在一个数据表中,字段名具有唯一性。

         在一个数据表中,记录具有可被唯一标示的特性。

         在一个特定的字段中,字段值具有被限制的特性。

2、约束的种类

   主键约束  primary key

     唯一性约束  unique

     核查约束    check

       nullablity 约束

3、主键约束--primary key

   主键约束:利用表中一列或多列数据来唯一的标示一条记录。

    主键约束的要求:主键字段不允许有相同的值存在。

         主键字段必须有明确的值存在,不允许出现null值。

        一张表张只能有一个主键。

   定义主键:在创建表格时定义主键

             在一个没有定义主键的表格中定义主键

             修改或删除表格中的主键

    在创建表格时定义主键

       create table 表名

       (字段名  数据类型   primary key

          ......

         字段名   数据类型 )  

          系统会将特定的一个字段设置为主键,且为该主键自动生成

          一个默认的约束名:PK_表名_随机数。

        create  table  表名

         (字段名   数据类型 ,

            ......

           字段名   数据类型,

 constraint   约束名  primary key  (字段名,......,字段名))

   查看主键定义:sp_pkeys   表名

   删除主键:  alter  table  表名

   drop  constraint  主键约束名

   添加主键的定义:alter table 表名

   add  constraint 约束名  primary key (字段名)

4、唯一性约束unique

   unique约束的作用式用来确保不受主键约束的字段上数据的唯一性。

   唯一性约束与主键约束的区别:

唯一性约束允许有null值存在,主键约束不允许null值存在。

        一个表中可存在多个唯一性约束,但一个表中只能存在一个主

            键约束。

   定义唯一性约束:在创建表格时定义

   在没有唯一性约束的表格上添加约束

   修改或删除唯一性约束

   在创建表格时定义唯一性约束

create table test4

            (num int ,

             names varchar(20),

             constraint 唯一性约束名  unique (字段名))

    

   添加唯一性约束

alter table  表名

add  constraint  约束名  unique  (字段名)

   删除唯一性约束

  alter  table  表名

        drop 唯一性约束名

5、核查约束--check

   核查约束的作用是通过检查输入表的数据来维护字段值域的完整性。

   定义核查约束:在创建表格时定义核查约束

           在已将存在的表格中添加核查约束

           修改或删除核查约束

在创建表格时定义核查约束

    create  table  表名

     (字段名   数据类型  ,

       ......

      字段名  数据类型,

      constraint  约束名  check (字段名 字段值 ) )

例:create table test5

     (num int ,

      names varchar(20),

      graend char(2),

      constraint pk004 primary key (num),

      constraint un004 unique (names),

      constraint ch004 check (graend in ('',''))

     )

   

 向已存在的表中添加check约束

   alter table  表名

   add  constraint 约束名  check  (字段名  字段值)

 删除check约束

      alter table  表名

      drop  约束名