【数据库原理实验(openGauss)】创建数据库、表和索引
创建数据库、表和索引
文章目录
- 创建数据库、表和索引
- 一、创建数据库
- 二、创建与删除模式
- 三、创建与修改表
- (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)】创建数据库、表和索引相关推荐
- 【数据库原理实验(openGauss)】数据库的备份与恢复
数据库的备份与恢复 文章目录 数据库的备份与恢复 一.物理备份和恢复 实验准备: (1)物理备份 (2)物理备份恢复 二.逻辑备份和恢复 实验准备: (1)gs_dump备份 1.gs_dump备份示 ...
- 【数据库原理实验(openGauss)】实验报告
<数据库系统原理实验>报告 文章目录 <数据库系统原理实验>报告 一.实验课程性质和教学目标 二.实验课程教学基本要求 三.实验教学内容 实验一 认识DBMS系统 (一)实验目 ...
- 【数据库原理实验(openGauss)】金融场景化实验
金融场景化实验 文章目录 金融场景化实验 一.金融数据模型 1.E-R图 2.关系模式 3.物理模型 Client(客户)表 bank_card(银行卡)表 finances_product(理财产品 ...
- mysql数据库原理实验报告_数据库原理实验报告(Mysql).doc
数据库原理实验报告(Mysql).doc 实验项目列表 序号实验项目名称指导教师1实验一 数据库的定义实验(验证性)2实验二 数据库的建立和维护实验(验证性)3实验三 数据库的查询实验(验证性)4实验 ...
- 【数据库原理实验(openGauss)】 使用JDBC连接数据库
使用JDBC连接数据库 文章目录 使用JDBC连接数据库 一.准备连接环境 1.修改数据库的pg_hba.conf文件 2.登陆数据库授权退出 3.修改数据库监听地址 4.下载Java驱动包导入工具 ...
- 【数据库原理实验(openGauss)】事务与并发控制
事务与并发控制 文章目录 事务与并发控制 一.事务 (1)事务的ACID特性 (2)事务管理 (3)事务实例 1.未提交的事务 2.已提交的事务 二.并发控制 (1)加锁语法 (2)加锁实例 一.事务 ...
- 【数据库原理实验(openGauss)】交互式SQL语句
交互式SQL语句 文章目录 交互式SQL语句 一.数据准备 (1)向Departments中写入数据 (2)向Teachers中写入数据 (3)向Students中写入数据 (4)向Courses中写 ...
- 数据库原理实验 三个关系表 学生表students 课程表course 学生选课表sc
实验数据如下: 在数据库中建立三个关系表Students,Course,SC. 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname, ...
- 【数据库原理实验(openGauss)】完整性控制
完整性控制 文章目录 完整性控制 一.约束 1.创建约束的方法 (1)创建基本表时定义表的完整性约束条件 (2)修改表时定义表的完整性约束条件 2.创建约束实例 二.触发器 (1)创建触发器语法 (2 ...
最新文章
- 亚马逊推出VR/AR开发平台Sumerian,功能强大不同于Poly
- 添加dubbo xsd的支持
- 安卓开发——JNI——回调java中的方法
- 游戏物体复用:对象池(以Unity3D为例)
- 数据结构严蔚敏--第三章--栈和队列
- Pandas常用操作方法
- Linux中vi命令详解
- Android模拟器6.0,逍遥安卓模拟器新版6.0.0 刺激战场手游流畅不卡专版
- 虚幻引擎4崩溃?10个UE4崩溃解决方法来了
- 更改 Windows 11 上的网络适配器优先级
- 以太坊--Uniswap分享
- Linux中的古老缩略语
- Spring Boot应用的启动和停止(Spring Boot应用通过start命令启动)
- 判断单链表是否存在环,判断两个链表是否相交问题详解(转)
- 打鼹鼠————牛客OJ
- 移动支付,华为也想喝点汤
- 【每日一篇】Servlet/tomcat/spring mvc之间关系
- VS Code下git的ca-bundle.crt问题
- php怎么banner指定超链接,巧用图片链接模块做banner广告图片,后台可更换图片
- android系统sd卡cid修改,Bluestacks Sd卡文件目录修改方法
热门文章
- mysql之返回影响行数
- Ubuntu20.04更新源步骤
- 建站基础知识之CSS 究竟什么来头?
- c++堆内存默认大小_Java 自动内存管理
- 服务器经过交换机传递文件丢失,H3C交换机bin文件丢失后补救方案
- Python音乐播放器-美观-简约-本地
- 分布式和微服务_太难了!阿里三面凉透~ Spring+高并发+算法+分布式微服务等等一个都没讲不清...
- macos catalina cdr下载_这个开源神器可快速帮你安装 MacOS 虚拟机
- linux(centos)系统安装activemq
- c语言答案知码,C语言笔试习题集答案和解析.doc