数据库----实验1 数据定义

本文详细介绍了SQL数据定义语言的实验过程,包括创建、修改和删除基本表,以及建立和取消索引的方法。通过具体实例,展示了如何使用SQL语句进行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我从前最怕旁人火眼金睛,如今,倒是盼着有人能够洞幽烛远。如此,就能赠我一点欢喜。

                                               实验1 数据定义

一、实验目的

熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。

二、实验内容

1. 问题描述

2. 数据库设计

定义基本表:

CREATE TABLE <表名>

      <列名> <数据类型> [ <列级完整性约束条件> ]

      [<列名> <数据类型> [<列级完整性约束条件>] ]

      [<表级完整性约束条件> ] );

注意:如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。

Primary key 是主码,Unique 取唯一值,Foreign key(外码) references 被参照表(被参照列)

修改基本表:

ALTER TABLE <表名>

[ ADD [COLUMN] <新列名> <数据类型> [ 完整性约束 ] ]

[ ADD <表级完整性约束>]

[ DROP [COLUMN] <列名> [CASCADE|RESTRICT] ]

[ DROP CONSTRAINT <完整性约束名> ]

[ ALTER COLUMN<列名> <数据类型> ]

删除基本表:

DROP TABLE <表名>RESTRICT| CASCADE];

RESTRICT:删除表是有限制的。

欲删除的基本表不能被其他表的约束所引用

如果存在依赖该表的对象,则此表不能被删除

CASCADE:删除该表没有限制。

在删除基本表的同时,相关的依赖对象一起删除

建立索引:

CREATE [UNIQUE] [CLUSTER] INDEX <索引名>

ON <表名>(<列名>[<次序>][,<列名>[<次序>] ])

次序:ASCDESC,缺省值为ASC

UNIQUE:唯一索引,每一个索引值对应唯一的数据记录;

CLUSTER:聚簇索引,索引项的顺序与表中记录的物理顺序一致,一个基本表上最多只能建立一个聚簇索引

删除索引:

DROP INDEX <索引名>

删除索引时,系统会从数据字典中删去有关该索引的

描述。

3. 程序实现(1

create table customers(

       cid char(8) unique,

       cname char(15),

       city char(20),

       discnt int,

       primary key(cid)

)

create table agents(

       aid char(8) unique,

       aname char(15),

       city char(20),

       postcode int,

       primary key(aid)

)

create table products(

       pid char(8) unique,

       pname char(15),

       primary key(pid)

)

2

create table orders(

       ordna char(8) unique,

       month int,

       cid char(8) unique,

       aid char(8) unique,

       pid char(8) unique,

       qty int,

       dollars float,

       primary key(ordna),

       foreign key (cid) references customers(cid),

       foreign key (aid) references agents(aid),

       foreign key (pid) references products(pid)

)

3

alter table products add city char(20)

alter table products add quantuty int

alter table products add price float

4

create index suoyin on customers(cid)

create index suoyin on agents(aid)

create index suoyin on products(pid)

create index suoyin on orders(ordna)

5

drop index customers.suoyin

drop index agents.suoyin

drop index products.suoyin

drop index orders.suoyin

4. 测试

         1)创建的三个数据库表如下:

customers表:

agents表:

products表:

         2)创建的orders数据库表如下:

         3products表增加三个属性列后如下:

       4)以上四个表按主键升序排列建立索引:

customers表:

agents表:

products表:

orders表:

     5)取消(4)中建立的索引:

customers表:

agents表:

products表:

orders表:

试一试:经实验支持直接删除列的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值