实验1 数据定义

一、 实验目的
熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。
二、实验内容1

  1. 问题描述
    使用CREATE语句创建基本表。
    更改基本表的定义,增加列,删除列,修改列的数据类型。
    创建表的升降序索引。
    取消表、表的索引或表的约束。

  2. 数据库设计
    用create语句创建基本表,一般形式如下:
    CREATE TABLE tbl_name(create_definition,…) [TYPE =table_type]
    create_definition: col_name type [NOT NULL | NULL]
    [DEFAULT default_value] [AUTO_INCREMENT][PRIMARY KEY]
    ALTER语句更改表的语句的一般格式如下:
    ALTER TABLE<表名>
    [ADD<新列名><数据类型>[完整性约束]]
    [DROP CONSTRAINT[完整性约束名]]
    [ALTER COLUMN<列名><数据类型>]
    取消表的语句格式:
    DROP TABLE <表名>
    创建索引的语句格式:
    CREATE[UNIQUE][CLUSTERED]<索引名>
    On<表名>

  3. 程序实现
    使用SQL语句创建关系数据库表:
    CREATE TABLE PERSON
    (P# CHAR(8) NOT NULL UNIQUE,
    Pname CHAR(20) NOT NULL,
    Page INT,
    PRIMARY KEY(P#),CHECK(Page>18))

CREATE TABLE ROOM
(R# CHAR(8) NOT NULL UNIQUE,
Rname CHAR(20),
Rarea FLOAT(10),
PRIMARY KEY(R#))

CREATE TABLE PR(
P# CHAR(8) NOT NULL UNIQUE,
R# CHAR(8) NOT NULL UNIQUE,
Date Datetime,

PRIMARY KEY(P#,R#),
FOREIGN KEY(P#) REFERENCES PERSON ON DELETE CASCADE,
FOREIGN KEY(R#) REFERENCES ROOM ON DELETE CASCADE
)

更改表PERSON,增加属性Ptype,取消Page大于18的约束。把表ROOM中的属性Rname的数据类型改为长度40:
ALTER TABLE PERSON ADD Rtype CHAR(10)
ALTER TABLE PERSON DROP CONSTRAINT CK__PERSON__Page__0425A276
ALTER TABLE ROOM ALTER COLUMN Rname CHAR(40)

删除表Room的一个属性Rarea:
ALTER TABLE ROOM DROP COLUMN Rarea

取消表PR:
DROP TABLE PR

为Room表创建按R#降序排列的索引:
CREATE INDEX XCNO ON ROOM(R# DESC)

为PERSON表创建按P#升序排列的索引:
CREATE INDEX XSNO ON PERSON(P#)

创建表PERSON按P#升序排列的唯一性索引:
CREATE UNIQUE INDEX RNUA ON PERSON(Pname ASC)

取消PERSON表P#升序索引:
DROP INDEX PERSON.XSNO

三、实验内容2

  1. 问题描述
    (1)创建数据库表CUSTOMERS(CID,CNAME,CITY,DISCNT),数据库AGENTS(AID,ANAME,CITY,PERCENT),数据库表PRODUCTS(PID,PNAME)。其中CID,AID,PID分别是各表的主键,具有唯一性约束。
    (2)创建数据库表ORDERS(ORDNA,MONTH,CID,AID,PID,QTY,DOLLARS),其中,ORDNA是主键,具有唯一性约束,CID,AID,PID是外键,分别参照的是表CUSTOMERS的CID字段,表AGENTS的AID字段,表PRODUCTS的PID字段。
    (3)增加数据库表PRODUCTS的三个属性列:CITY,QUANTITY,PRICE。
    (4)为以上4个建立了各自的按主键增序排列的索引。
    (5)取消步骤四建立的4个索引。

  2. 数据库设计
    用create语句创建基本表,一般形式如下:
    CREATE TABLE tbl_name(create_definition,…) [TYPE =table_type]
    create_definition: col_name type [NOT NULL | NULL]
    [DEFAULT default_value] [AUTO_INCREMENT][PRIMARY KEY]
    ALTER语句更改表的语句的一般格式如下:
    ALTER TABLE<表名>
    [ADD<新列名><数据类型>[完整性约束]]
    [DROP CONSTRAINT[完整性约束名]]
    [ALTER COLUMN<列名><数据类型>]
    取消表的语句格式:
    DROP TABLE <表名>
    创建索引的语句格式:
    CREATE[UNIQUE][CLUSTERED]<索引名>
    On<表名>

  3. 程序实现
    创建数据库表CUSTOMERS(CID,CNAME,CITY,DISCNT),数据库AGENTS(AID,ANAME,CITY,PERCENT),数据库表PRODUCTS(PID,PNAME)。其中CID,AID,PID分别是各表的主键,具有唯一性约束。
    创建数据库表ORDER(ORDNA,MONTH,CID,AID,PID,QTY,DOLLARS),其中,ORDNA是主键,具有唯一性约束,CID,AID,PID是外键,分别参照的是表CUSTOMERS的CID字段,表AGENTS的AID字段,表PRODUCTS的PID字段

    CREATE TABLE CUSTOMERS
    (CID CHAR(20) NOT NULL UNIQUE,
    AID CHAR(20),
    PID CHAR(20),
    DISCNT INT,
    PRIMARY KEY (CID)
    );
    CREATE TABLE AGENTS
    (AID CHAR(20) NOT NULL UNIQUE,
    ANAME CHAR(20),
    CITY CHAR(20),
    “PERCENT” FLOAT,
    PRIMARY KEY (AID)
    );
    CREATE TABLE PRODUCTS
    (PID CHAR(20) NOT NULL UNIQUE,
    PNAME CHAR(20),
    PRIMARY KEY (PID)
    );
    CREATE TABLE ORDERS
    (ORDNA CHAR(20) NOT NULL UNIQUE,
    “MONTH” INT,
    CID CHAR(20),
    AID CHAR(20),
    PID CHAR(20),
    QTY INT,
    DOLLARS FLOAT,
    PRIMARY KEY (CID,AID,PID),
    FOREIGN KEY (CID) REFERENCES CUSTOMERS(CID),
    FOREIGN KEY (AID) REFERENCES AGENTS(AID),
    FOREIGN KEY (PID) REFERENCES PRODUCTS(PID)
    );

增加数据库表PRODUCTS的三个属性列:CITY,QUANTITY,PRICE。
ALTER TABLE PRODUCTS ADD CITY CHAR(20);
ALTER TABLE PRODUCTS ADD QUANTITY CHAR(20);
ALTER TABLE PRODUCTS ADD PRICE CHAR(20);

为以上4个建立了各自的按主键增序排列的索引:
CREATE INDEX XCON ON CUSTOMERS(CID ASC);
CREATE INDEX XAON ON AGENTS(AID ASC);
CREATE INDEX XPON ON PRODUCTS(PID ASC);
CREATE INDEX XOON ON ORDERS(ORDNA ASC);

取消步骤四建立的4个索引:
DROP INDEX CUSTOMERS.XCON;
DROP INDEX AGENTS.XAON;
DROP INDEX PRODUCTS.XPON;
DROP INDEX ORDERS.XOON;

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据定义数据操作是数据库管理系统中的两个基本概念。数据定义是指定义和管理数据库中的数据结构,包括表格、视图、索引、约束等。数据操作是指对数据库中的数据进行增、删、改、查等操作。 下面是一个简单的数据定义数据操作实验,以MySQL数据库为例: 1. 数据定义实验 (1)创建数据库 在MySQL中,可以使用CREATE DATABASE语句来创建一个新的数据库。例如,创建一个名为mydatabase的数据库: ``` CREATE DATABASE mydatabase; ``` (2)创建表格 在MySQL中,可以使用CREATE TABLE语句来创建一个新的表格。例如,创建一个名为students的表格,包含id(学号)、name(姓名)、age(年龄)和gender(性别)四个字段: ``` CREATE TABLE students ( id INT NOT NULL, name VARCHAR(50) NOT NULL, age INT NOT NULL, gender VARCHAR(10) NOT NULL, PRIMARY KEY (id) ); ``` (3)插入数据 在MySQL中,可以使用INSERT INTO语句来向表格中插入数据。例如,向students表格中插入一条记录: ``` INSERT INTO students (id, name, age, gender) VALUES (1001, '张三', 20, '男'); ``` 2. 数据操作实验 (1)查询数据 在MySQL中,可以使用SELECT语句来查询表格中的数据。例如,查询students表格中所有记录的id和name字段: ``` SELECT id, name FROM students; ``` (2)更新数据 在MySQL中,可以使用UPDATE语句来更新表格中的数据。例如,将students表格中id为1001的记录的age字段更新为21: ``` UPDATE students SET age = 21 WHERE id = 1001; ``` (3)删除数据 在MySQL中,可以使用DELETE语句来删除表格中的数据。例如,删除students表格中id为1001的记录: ``` DELETE FROM students WHERE id = 1001; ``` 以上就是一个简单的数据定义数据操作实验。在实际应用中,还需要掌握更多的SQL语句和技巧来管理和操作数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耗子煨汁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值