数据库原理实验(openGauss)创建数据库表和索引
Posted BkbK-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库原理实验(openGauss)创建数据库表和索引相关的知识,希望对你有一定的参考价值。
创建数据库、表和索引
一、创建数据库
-
步骤 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;
以上是关于数据库原理实验(openGauss)创建数据库表和索引的主要内容,如果未能解决你的问题,请参考以下文章
数据库原理实验(openGauss) 使用JDBC连接数据库