一、什么是数据库对象
    数据库对象是数据库里定义的、用于存储或引用数据的对象,比如表、视图、簇、序列、索引和异名。

二、什么是规划
    规划是与数据库某个用户名相关联的数据库对象集合。相应的用户名被称为规划所有人,或是关联对象组的所有人。数据库里可以有一个或多个规划。用户只与同名规划相关联,通常情况下反之亦然。

三、表:数据库的主要存储方式

    1、列
        字段在关系型数据库也被称为列,它是表的组成部分,被设置为特定的数据类型。

    2、行
        行是数据库表里的一条记录。

    3、CREATE TABLE语句

        在创建表时,需要考虑以下一些基本问题。
        表里会包含什么类型的数据?
        表的名称是什么?
        哪个(或哪些)列组成主键?
        列(字段)的名称是什么?
        每一列的数据类型是什么?
        每一列的长度是什么?
        表里哪些列可以是NULL?

        创建表的基本语法:
     

CREATE TABLE table_name
         (
             Field1 date_type [not null],
             Field2 date_type [not null],
             Field3 date_type [not null],
             Field4 date_type [not null],
             Field5 date_type [not null]
         );

    4、命名规范

    5、ALTER TABLE命令
        ALTER TABLE命令的标准:

alter table table_name[modify] [column column_name][datatype]null not null] [restrict | cascade]
         [drop] [constraint constraint_name]
         [add] [column] column definition

        (1) 修改表的元素

            列的属性是其所包含数据的规则和行为。利用ALTER TABLE命令可以修改列的属性,在此“属性”的含义是:
            列的数据类型;
            列的长度、有效位数或标度;
            列值能否为空。

            语法:
          

ALTER TABLE table_name MODIFY
             Field date_type [not null];        (2) 添加列


            强行向表添加一列的方法:
            添加一列,把它定义为NULL(这一行不一定要包含数据);
            给这条新列在每条记录里都插入数据;
            把列的定义修改为NOT NULL。

        (3) 添加自动增加的列

            格式:

         

MySQL:
             CREATE TABLE table_name
             (
                 Field SERIAL;
                 …            SQL Server:
             CREATE TABLE table_name
             (
                 Field INT IDENTITY(1,1) NOT

NULL,
                ...

            Oracle:
            可以使用SEQUENCE对象和一个触发器来实现类似的效果。

        (4) 修改列

            修改列的通用规则:
            列的长度可以增加到特定数据类型所允许的最大长度;
            如果想缩短某列的长度,则必须要求这一列在表里所有数据的长度都小于或等于新长度;
            数值数据的位数可以增加;
            如果要缩短数值数据的位数,则必须要求这一列在表里所有数值的位数小于或等于新指定的位数;
            数值的小数位数可以增加或减少;
            列的数据类型一般是可以改变的。

    6、从现有表新建另一个表

        MySQL和Oralce:
        利用CREATE TABLE语句与SELECT语句组合可以复制现有的表。
     

create table new_table_name as
         select [*|column1, column2]
         from table_name
         [where]        SQL Server:
         利用SELECT…INTO方法来实现相同的效果。
         select [*|column1, column2]
         into new_table_name
         from table_name
         [where]

     7、删除表

drop table table_name [restrict | cascade]

四、完整性约束

    1、主键约束
        主键是表里一个或多个用于实现记录唯一性的字段。
        隐含约束:Field date_type [not null] PRIMARY KEY;
        明确指定:PRIMARY KEY(Field);
        明确指定两个主键:PRIMARY KEY(Field1, Field2);
        ALTER TABLE table_name:ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY(Field1, Field2);

    2、唯一性约束
        唯一性约束要求表里某个字段的值在每条记录里都是唯一的。
        Field date_type [not null] UNIQUE;

    3、外键约束
        外键是子表里的一个字段,引用父表里的主键。

        创建表的同时创建外键:
   

…
         CONSTRAINT constraint_name FOREIGN KEY(Field) REFERENCES table_name(Field);        利用ALTER TABLE命令可以向表里添加外键:
         ALTER TABLE table_name
         ADD CONSTRAINT constraint_name FOREIGN KEY(Field)
         REFERENCES table_name(Field);

    4、NOT NULL约束

    5、检查约束
        检查(CHK)约束用于检查输入到特定字段的数据的有效性。
        在检查约束力可以使用几乎任何条件,就像在SQL查询里一样。

    6、去除约束
        利用ALTER TABLE命令的DROP CONSTRAINT选项可以去除已经定义的约束。

ALTER TABLE table_name DROP CONSTRAINT constraint_name;