【数据库原理实验(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+命令查询表的属性:
使⽤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
foreign key references用法创建课程信息表
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>=0AND 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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。