数据定义

SQL标准不提供修改模式定义和修改视图定义的操作

模式的定义与删除

1定义模式

模式的定义语句:CREATE SCHEMA<模式名>authorization<用户名>

如果没有指定模式名,那么模式名隐含为用户名

用户可以在创建模式的同时在这个模式定义中进一步创建表视图定义授权。

2删除模式

drop schema<模式名><cascade|restrict>

cascade表示在删除模式的同时把该模式中所有的数据库对象全部删除

restrict表示如果该模式中已经定义了下属数据库对象,则拒绝删除语句的执行

基本表的定义删除与修改

1定义基本表

创建一个模式就建立了一个数据库的命名空间,一个框架

Create table<表名>(<列名><数据类型>列级完整性约束条件

                    .......)

表级完整性约束条件

例建立一个课程表Course

create table Course

(Cno char(4)primary key,//列级完整性约束条件,Cno是主码

Cname char(40)not null,    //列级。。。,Cname不能为空值

Cpno char(4)                //Cpno 的含义是先修课

Ccredit smallint,

foreign key(Cpno)references Course(Cno)

//表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno);

本例说明参照表和被参照表可以使一个表//外键参照表,主键被参照表

例2建立学生选课表SC

create table SC

(Sno char(9),

Cno char(4),

Grade Smallint,

primary key(Sno,Cno)//主码由两个属性构成,必须作为表级完整性进行定义

foreign key(Sno)references Student(Sno),

//表级完整性约束条件,Sno是外码,被参照表是student

foreign key(Cno)references Course(Cno)

//表级完整性约束条件,Cno是外码,被参照表是Course);


2模式与表

三种方法定义所属模式

1,在表中明显给出模式名

create table “S-T”.Student(....)

2在创建模式语句的同时创建表

3当用户创建基本表时若没有指定模式,系统根据搜索路径(search path)来确定该对象所属模式


3修改基本表

alter table<表名>

【add 【cloumn】<新列名><数据类型>【完整性约束】】

【add<表级完整性约束>】

【drop 【column】<列名>【cascade|restrict】】//删除表中的列

【drop constraint<完整性约束名>【restrict|cascade】】//删除指定的完整性约束条件

【alter column<列名》<数据类型>】;//用于修改原有的列定义,包括修改列名和数据类型

例向student表中添加入学时间列,其数据类型为日期型

alter table student add S_entrance  Date;

将年龄的数据类型由字符型改为整数

alter table student alter conlumn Sage int;

增加课程名称必须取唯一值得约束条件

alter table Course add unique(Cname);


4删除基本表

drop table<表名>[restrict|cascade];



索引的建立与删除

数据库索引有多种类型,常见

顺序文件上的索引

B+树索引

散列索引

位图索引

1建立索引

create【unique】【cluster】index<索引名>

on 《表名》(列名,次序)

例student表按学号升序建唯一索引,SC按学号升序和课程号降序建唯一索引

create unique index Coucno ON course(Cno);

create unique index SCno ON SC(Sno ASC,Cno DESC);

2修改索引

alter index<旧索引名>rename to<新索引名>;

3删除索引

drop index<索引名>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值