创建数据库、表和索引

文章目录

  • 创建数据库、表和索引
    • 一、创建数据库
    • 二、创建与删除模式
    • 三、创建与修改表
      • (1)创建表
      • (2)修改表
    • 四、创建与删除索引
      • (1)创建索引
      • (2)删除索引

一、创建数据库

  • 步骤 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)】创建数据库、表和索引相关推荐

  1. 【数据库原理实验(openGauss)】数据库的备份与恢复

    数据库的备份与恢复 文章目录 数据库的备份与恢复 一.物理备份和恢复 实验准备: (1)物理备份 (2)物理备份恢复 二.逻辑备份和恢复 实验准备: (1)gs_dump备份 1.gs_dump备份示 ...

  2. 【数据库原理实验(openGauss)】实验报告

    <数据库系统原理实验>报告 文章目录 <数据库系统原理实验>报告 一.实验课程性质和教学目标 二.实验课程教学基本要求 三.实验教学内容 实验一 认识DBMS系统 (一)实验目 ...

  3. 【数据库原理实验(openGauss)】金融场景化实验

    金融场景化实验 文章目录 金融场景化实验 一.金融数据模型 1.E-R图 2.关系模式 3.物理模型 Client(客户)表 bank_card(银行卡)表 finances_product(理财产品 ...

  4. mysql数据库原理实验报告_数据库原理实验报告(Mysql).doc

    数据库原理实验报告(Mysql).doc 实验项目列表 序号实验项目名称指导教师1实验一 数据库的定义实验(验证性)2实验二 数据库的建立和维护实验(验证性)3实验三 数据库的查询实验(验证性)4实验 ...

  5. 【数据库原理实验(openGauss)】 使用JDBC连接数据库

    使用JDBC连接数据库 文章目录 使用JDBC连接数据库 一.准备连接环境 1.修改数据库的pg_hba.conf文件 2.登陆数据库授权退出 3.修改数据库监听地址 4.下载Java驱动包导入工具 ...

  6. 【数据库原理实验(openGauss)】事务与并发控制

    事务与并发控制 文章目录 事务与并发控制 一.事务 (1)事务的ACID特性 (2)事务管理 (3)事务实例 1.未提交的事务 2.已提交的事务 二.并发控制 (1)加锁语法 (2)加锁实例 一.事务 ...

  7. 【数据库原理实验(openGauss)】交互式SQL语句

    交互式SQL语句 文章目录 交互式SQL语句 一.数据准备 (1)向Departments中写入数据 (2)向Teachers中写入数据 (3)向Students中写入数据 (4)向Courses中写 ...

  8. 数据库原理实验 三个关系表 学生表students 课程表course 学生选课表sc

    实验数据如下: 在数据库中建立三个关系表Students,Course,SC. 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname, ...

  9. 【数据库原理实验(openGauss)】完整性控制

    完整性控制 文章目录 完整性控制 一.约束 1.创建约束的方法 (1)创建基本表时定义表的完整性约束条件 (2)修改表时定义表的完整性约束条件 2.创建约束实例 二.触发器 (1)创建触发器语法 (2 ...

最新文章

  1. 亚马逊推出VR/AR开发平台Sumerian,功能强大不同于Poly
  2. 添加dubbo xsd的支持
  3. 安卓开发——JNI——回调java中的方法
  4. 游戏物体复用:对象池(以Unity3D为例)
  5. 数据结构严蔚敏--第三章--栈和队列
  6. Pandas常用操作方法
  7. Linux中vi命令详解
  8. Android模拟器6.0,逍遥安卓模拟器新版6.0.0 刺激战场手游流畅不卡专版
  9. 虚幻引擎4崩溃?10个UE4崩溃解决方法来了
  10. 更改 Windows 11 上的网络适配器优先级
  11. 以太坊--Uniswap分享
  12. Linux中的古老缩略语
  13. Spring Boot应用的启动和停止(Spring Boot应用通过start命令启动)
  14. 判断单链表是否存在环,判断两个链表是否相交问题详解(转)
  15. 打鼹鼠————牛客OJ
  16. 移动支付,华为也想喝点汤
  17. 【每日一篇】Servlet/tomcat/spring mvc之间关系
  18. VS Code下git的ca-bundle.crt问题
  19. php怎么banner指定超链接,巧用图片链接模块做banner广告图片,后台可更换图片
  20. android系统sd卡cid修改,Bluestacks Sd卡文件目录修改方法

热门文章

  1. mysql之返回影响行数
  2. Ubuntu20.04更新源步骤
  3. 建站基础知识之CSS 究竟什么来头?
  4. c++堆内存默认大小_Java 自动内存管理
  5. 服务器经过交换机传递文件丢失,H3C交换机bin文件丢失后补救方案
  6. Python音乐播放器-美观-简约-本地
  7. 分布式和微服务_太难了!阿里三面凉透~ Spring+高并发+算法+分布式微服务等等一个都没讲不清...
  8. macos catalina cdr下载_这个开源神器可快速帮你安装 MacOS 虚拟机
  9. linux(centos)系统安装activemq
  10. c语言答案知码,C语言笔试习题集答案和解析.doc