四、表层面上的操作

1.   由于对表的操作都是对象层面的操作,因此在对表进行操作是一定要用USE语句指定表所属的数据库:

       a. 规则:USE XXX    

       b. 表示打开名为XXX的数据库;

       c. 接下来再使用CREATE TABLE、ALTER TABLE等语句;


2.   表的创建:

       a. 一般性规则:

           CREATE TABLE XXX (

                     列名1   数据类型   列级完整性约束,

                     列名2   数据类型   列级完整性约束,

                     ............

                     表级完整性约束1,

                     表级完整性约束2,

                     ................

           )

       b. 完整性约束:一共有两种,定义在一列上的完整性约束为列级完整性约束,而定义在多个列上的完整性约束就是表级完整性约束;

       c. 其中“列名 数据类型”一定要放在最前面,并且列名一定是第一个,数据类型一定是第二个,而后面的列级完整性约束可能有很多,但是顺序可以是任意的;

       d. 本例中使用到的几种完整性约束:

            主键约束:一张表中有且仅有一个主键,列级完整性约束为PRIMARY KEY,而表级完整性约束为PRIMARY KEY(列名1, 列名2....),后者是将多个列组成一个主键;

            唯一键:可以有多个,只有列级完整性约束UNIQUE;

            外键:可以有多个外键,而外键只能是表级完整性约束,FOREIGN KEY 本表中的一个列名 REFERENCES 外表名(外表明中的一个属性);

       e. 例子:            

USE Student_Course
	
	CREATE TABLE Student (
		Sno		CHAR(9)		PRIMARY KEY,
		Sname	CHAR(20)	UNIQUE,
		Ssex	CHAR(2),
		Sage	SMALLINT,
		Sdept	CHAR(20)
	)
	

	CREATE TABLE Course (
		Cno		CHAR(4)		PRIMARY KEY,
		Cname	CHAR(40),
		Cpno	CHAR(4),
		Ccredit	SMALLINT,
	
		FOREIGN KEY (Cpno) REFERENCES Course(Cno)
	)
	

	CREATE TABLE SC (
		Sno		CHAR(9),
		Cno		CHAR(4),
		Grade	SMALLINT,
	
		PRIMARY KEY(Sno, Cno),
		FOREIGN KEY (Sno) REFERENCES Student(Sno),
		FOREIGN KEY (Cno) REFERENCES Course(Cno)
	)

3.   修改表:

       a. 必须使用USE语句和ALTER TABLE语句;

       b. 添加列:ADD 列名 类型 列级完整性约束

       c. 修改列的类型(不支持修改列的完整性约束):ALTER COLUMN 列名 修改后的类型

       d. 对一个列添加完整性约束:ADD 约束名(列名)     //将某种约束施加到某一列上;


4.   删除表:

      a. 规则为:DROP TABLE XXX 选项

      b. 选项同样是RESTRICT和CASCADE,缺省情况下默认为RESTRICT;

      c. RESTRICT将在表有任何依赖的情况下拒绝删除,而CASCADE将表及其一切依赖一并删除(比如表的键、触发器、视图等);


5.   建立和删除索引:

      a. 索引的作用:

           i.   索引是建立在列上的;

           ii.  有点像哈希表,每个元组对应一个索引,在查找的是有就不用根据物理路径进行查找而可以直接根据索引值的指向找到指定元组的物理存储单元;

           iii. 可以大大提高查找效率;

      b. 索引的特点:索引的具体值的选取由数据库系统来完成,用户不必也无法得知索引的具体值,一般采用B+树和哈希表来实现索引;

      c. 索引建立规则:CREATE 索引类型 INDEX 索引名 ON 表名(列名1 次序, 列名2 次序.....)

      d. 索引类型:

           UNIQUE:表示索引值唯一,一个索引值只对应唯一的一个数据记录,一张表中可以建立多个;

           CLUSTER:聚簇索引,表示索引值的顺序和记录的物理存储顺序保持一致,这就相当于数组的随机访问,查找是聚簇索引的速度最快;

           注:一张表最多只能有一个聚簇索引,但是可以有多个唯一索引;

                   聚簇索引使得对表进行记录的插入删除变得非常不方便,代价非常大(类似数组的插入和删除),因此需要经常更新的表不建立聚簇索引;

      e. 次序有两种,一种是ASC表示索引值是按照升序排列的,另一种是DESC表示索引值是按照降序排列的;

      f.  删除索引的规则:DROP INDEX 索引名 ON 表名     或者     DROP INDEX 表名.索引名             两者都是删除指定表中的指定索引; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值