【数据库原理实验(openGauss)】创建数据库、表和索引

本文档详细介绍了如何在数据库中创建与管理数据库、模式、表和索引。包括创建数据库、表空间,创建与删除模式,以及创建、修改表和索引的步骤。此外,还展示了如何使用gsql命令查询表属性,并提供了删除索引的方法。
摘要由CSDN通过智能技术生成

创建数据库、表和索引

一、创建数据库

  • 步骤 1使用如下命令创建一个新的表空间tpcds_local。

    CREATE TABLESPACE tpcds_local RELATIVE LOCATION 'tablespace/tablespace_1';
    

    在这里插入图片描述

    其中“tpcds_local”为新创建的表空间,“数据库节点数据录 /pg_location/tablespace/tablespace_1”是用户拥有读写权限的空目录,如 /gaussdb/data/db1/pg_location/tablespace/tablespace_1 。

  • 步骤 2使用如下命令创建一个新的数据库db_sc。

    CREATE DATABASE db_sc WITH TABLESPACE = tpcds_local;
    

    在这里插入图片描述

  • 步骤 3数据库改名

    ALTER DATABASE db_sc RENAME TO db_school;
    

    在这里插入图片描述

  • 步骤4切换至数据库db_school

    \c db_school
    

    在这里插入图片描述

二、创建与删除模式

  • 创建模式

    执行如下命令来创建一个schema:

    CREATE SCHEMA book_eg;
    

    当结果显示为如下信息,则表示成功创建一个名为book_eg的schema。

    CREATE SCHEMA
    

    在这里插入图片描述

  • 创建book_eg模式下的教师信息表

    CREATE TABLE book_eg.Teachers ();
    
  • 创建book_eg模式下的院系信息表

    CREATE TABLE book_eg.Departments ();
    
  • 级联删除book_eg模式

    DROP SCHEMA book_eg CASCADE;
    

三、创建与修改表

(1)创建表

CREATE TABLE 语句创建基本表,其基本格式如下:
在这里插入图片描述

  • 创建教师信息表

    由于表之间存在外码的相互参照,因此先创建表和列级约束,最后通过修改表来创建表级约束

    CREATE TABLE Teachers
    (
            Tno CHAR(20) PRIMARY KEY,
            Tname CHAR(20) NOT NULL,
            Sex CHAR(20) CHECK(Sex='男' OR Sex= '女'),
            Birthday DATE,
    		Title CHAR (20),
    		Dno CHAR (20)
    );
    

    在这里插入图片描述

    • 使用gsql的\d+命令查询表的属性:

      \d+ Teachers
      

      在这里插入图片描述

  • 创建院系信息表

    CREATE TABLE Departments 
    (
    	Dno CHAR (20) PRIMARY KEY, 
    	Dname CHAR (20) , 
    	Dheadno CHAR (20) , 
    	FOREIGN KEY (Dheadno) REFERENCES 	Teachers(Tno)
    );
    

    在这里插入图片描述

    • 使用gsql的\d+命令查询表的属性:

      \d+ Departments
      

      在这里插入图片描述

  • 创建学生信息表

    CREATE TABLE Students 
    (
    	Sno CHAR (20) PRIMARY KEY, 
    	Sname CHAR (20) NOT NULL, 
    	Sex CHAR (20) CHECK (Sex='男' OR Sex='女'),
    	Birthday DATE, 
    	Enrollyear CHAR (20), 
    	Speciality CHAR(20) , 
    	Dno CHAR (20) , 
    	FOREIGN KEY (Dno) REFERENCES Departments (Dno)
    );
    

    在这里插入图片描述

    • 使用gsql的\d+命令查询表的属性:

      \d+ Students
      

      在这里插入图片描述

  • 创建课程信息表

    CREATE TABLE Courses 
    (
    	Cno CHAR (20) PRIMARY KEY, 
    	Cname CHAR (20) NOT NULL, 
    	Period SMALLINT, 
    	Credit SMALLINT
    );
    

    在这里插入图片描述

    • 使用gsql的\d+命令查询表的属性:

      \d+ Courses
      

      在这里插入图片描述

  • 创建选课信息表

    CREATE TABLE SC 
    (
    	Sno CHAR (20) , 
    	Cno CHAR (20), 
    	Grade SMALLINT CHECK (Grade>=0 AND Grade<=100) , 
    	PRIMARY KEY (Sno , Cno) , 
    	FOREIGN KEY (Sno) REFERENCES Students (Sno) , 
    	FOREIGN KEY (Cno) REFERENCES Courses (Cno)
    ) ;
    

    在这里插入图片描述

    • 使用gsql的\d+命令查询表的属性:

      \d+ SC
      

      在这里插入图片描述

  • 创建教学信息表

    CREATE TABLE Teaches
    (
    	Tno CHAR (20) , 
    	Cno CHAR (20) , 
    	TCscore SMALLINT, 
    	PRIMARY KEY (Tno , Cno) , 
    	FOREIGN KEY (Tno) REFERENCES Teachers (Tno) , 
    	FOREIGN KEY (Cno) REFERENCES Courses (Cno)
    ) ;
    

    在这里插入图片描述

    • 使用gsql的\d+命令查询表的属性:

      \d+ Teaches  
      

      在这里插入图片描述

至此,所有表均已创建完成,使用命令查看所有表:

\dt

在这里插入图片描述

(2)修改表

使用 ALTER TABLE 语句修改基本表
ALTER TABLE 的一般格式为:
在这里插入图片描述

  • 为教师表添加外码

    由于关系中存在相互参照,需要通过修改表添加表级约束

    ALTER TABLE Teachers 
    ADD FOREIGN KEY (Dno) REFERENCES Departments(Dno);
    

    在这里插入图片描述

四、创建与删除索引

(1)创建索引

用 CREATE INDEX 语句创建。创建索引的语句格式为:
在这里插入图片描述

  • 在Students Dno 上创建一个为Student_Dept 的索引:

    CREATE INDEX Student_Dept ON Students (Dno);
    

    在这里插入图片描述
    查看索引:

     \di
    

    在这里插入图片描述

    DBMS 自动为主码建立索引

(2)删除索引

删除索引时,可用下列语句来实现:

DROP INDEX <索引名>
  • 删除索引 Student_Dept

    DROP INDEX Student_Dept;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

BkbK-

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

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

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

打赏作者

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

抵扣说明:

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

余额充值