表与数据完整性

来源:互联网 发布:铝合金模板设计软件 编辑:程序博客网 时间:2024/05/17 02:06

1.表

/*修改表*/

/*增加一列数据*/
ALTER  TABLE  t_student  ADD  phone  BIGINT;

/*删除一列数据( column列)*/
ALTER TABLE  t_student  DROP  COLUMN    phone;

/*修改列的名称 (有下划线的为更改后的名称)*/
ALTER TABLE  t_student    CHANGE   COLUMN   phonenum  phonenumber   BIGINT;  
ALTER   TABLE  t_student  CHANGE  COLUMN  phonenumber  phonenum   BIGINT;

/*修改列的数据类型*/
ALTER   TABLE  t_student  CHANGE    phonenumber  phonenumber  BIGINT;
ALTER    TABLE  t_student   MODIFY     phonenumber   VARCHAR(100);

/*修改表名*/
ALTER   TABLE  t_student  RENAME   t_stu;
SELECT * FROM    t_stu;

2.索引

含义:提高整个数据库操作进度的数据库对象,通过创建一个内部的索引表来达到快速搜索的目的。(一般作用于一到多个列)

劣势:会降低INSERT UPDATE  DELETE 的操作性能。(原因:这些操作发生时内部索引会更新,会降低数据库的整体性能)
/*创建索引*/
CREATE INDEX nameIndex ON t_stu(s_name);
SELECT * FROM  t_stu  WHERE  s_name="姓名";
SELECT * FROM  t_stu  WHERE  s_name="%名";     #索引不会起作用(从左到右执行)
SELECT * FROM  t_stu  WHERE  s_name="姓%"       #索引会起作用

/*删除索引*/
ALTER TABLE t_stu DROP INDEX nameIndex;

3.保证数据完整性

数据完整性:数据的可靠性和准确性。

Why:防止存储垃圾数据,提高数据库效率。

数据完整性分类:

1).实体完整性:将行定义为特定表的唯一实体。

             Why:保证每一行数据有效,保证实体能相互区别。

             如何实现:设置主键约束、唯一约束、或标识列属性来实现。

           主键约束:是应用于表的列的一个约束。主键列不能为空,不可有重复 ,主键列默认为非空;  

                  * 主键可以是一个列组成,也可以由多个列组成一个复合主键。**一个表中只能使用一次,

                                         一个列时:   CREATE TABLE t_student(                                       CREATE TABLE t_student(
                                                                 s_id INT,                                                                    s_id INTPRIMARY KEY,
                                                                 s_name VARCHAR(20),                                           s_name VARCHAR(20),
                                                               s_phone BIGINT UNIQUE,                                         s_phone BIGINT UNIQUE,
                                                                 PRIMARY KEY (s_id)                                                  );
                                                                );

                                          多个列时:
CREATE  TABLE  t_student(
                                                             s_id INT,
                                                             s_name VARCHAR(20),
                                                             s_age INT,
                                                             s_phone BIGINT UNIQUE,
                                                              PRIMARY KEY (s_id,s_name,s_age)
                                                               );

             唯一约束:指给定列的所有的值必须是唯一的。

                       **一个表中能使用多次,允许空置,可定义在允许为NULL值的列上,主键约束只能定义在not null值的列上。

                                    s_age INT NOT NULLUNIQUE,


2)域完整性:只给定列的输入有效性。

     实现方法:限制类型,外键约束、检查约束、默认值定义、非空约束。

            非空约束:在定义是假上NOT NULL加上关键词。

             默认值定义:当没有给定值时,表格会自动填充默认值。

                                      s_phone BIGINTDEFAULT 132,

             外键约束:外键关联主键上强制的一个约束。(用约束将两个表关联起来)


3).引用完整性:引用的编号是有效的。

             外键约束:外键关联主键上强制的一个约束。(用约束将两个表关联起来)

 /*外键*/       *s_t_id INTNOT  NULL  REFERENCES    t_tea(t_id);  一列单独定义
SELECT * FROM t_student;                                                                                                                                                                                                               
CREATE TABLE t_student(                                                                                                                                                                                                                 
    s_id INT NOT NULL,                                                                                                                                                                                                                      
    s_name VARCHAR(20) NOT NULL,                                                                                                                                                                                               
    s_age INT NOT NULL UNIQUE,                                                                                                                                                                                                    
    s_phone BIGINT DEFAULT 132 ,                                                                                                                                                                                                 
    s_t_id INT,                                                                                                                                                                                                                                   
    PRIMARY KEY (s_id),                                                                                                                                                                                                                
    CONSTRAINT teaKey FOREIGN KEY (s_t_id) REFERENCES t_tea(t_id)                                                                                                                                   
);                                                                                                                                                                                                                                                    

CREATE TABLE t_tea(                                                                                                                                                                                                                      
    t_id INT PRIMARY KEY,                                                                                                                                                                                                               
    t_name VARCHAR(20),                                                                                                                                                                                                                
    t_age INT                                                                                                                                                                                                                                     
);

4).用户自定义完整性:保证自定义规则。





未完待续
1 0