首页 > 数据库 >GaussDB云数据库SQL应用系列-基础使用

GaussDB云数据库SQL应用系列-基础使用

时间:2024-09-27 14:26:33浏览次数:1  
标签:insert -- sno GaussDB SQL into cno 数据库


目录

一、前言

二、前提条件

1、连接数据库实例

2、GaussDB实例正常运行

三、操作示例

1、选择实例并进入SQL执行界面

2、创建数据库用户

3、创建数据库

4、创建SCHEMA

5、创建表(增删改查)

1)创建3张表,并初始化一些数据

2)假设查询场景,并通过SQL 实现

一、前言

随着云计算技术的不断发展,云数据库已经成为了企业信息化建设中不可或缺的一部分。而在众多的云数据库产品中,华为GaussDB以其卓越的性能和稳定性备受用户青睐。

GaussDB云数据库是一款具有高性能、高可用、高安全等特点。它采用了先进的存储技术和算法,可以快速处理大量的数据请求,并保证数据的一致性和可靠性。同时,GaussDB还具有丰富的应用场景。例如,在电商行业中,可以使用GaussDB来存储用户的购物记录和订单信息;在金融行业中,可以使用GaussDB来存储客户的账户信息和交易记录;在物流行业中,可以使用GaussDB来存储货物的运输信息和仓储信息等。

对于初学者来说,学习如何使用GaussDB云数据库也是一个不小的挑战。不过,华为提供了详细的官方资料,可以让用户可以轻松上手。 本次将为大家简单展示一下其CRUD的基础语句操作。

二、前提条件

1、连接数据库实例
通过“数据管理服务DAS”连接数据库实例(其他连接方式参见往期内容)

2、GaussDB实例正常运行
输入登录密码,点击“测试连接” 显示连接成功,则表示实例正常运行。

三、操作示例

1、选择实例并进入SQL执行界面
默认只有创建实例时的管理员用户可以访问初始数据库

2、创建数据库用户
--新增用户zhangsan

CREATE USER zhangsan WITH PASSWORD "P@ssw0rd";

----新增用户lisi,等价上面的语句,如果创建有“创建数据库”权限的用户,则需要加CREATEDB关键字。

CREATE USER lisi CREATEDB IDENTIFIED BY 'P@ssw0rd';

--查看新增用户

SELECT * FROM pg_user;

3、创建数据库
--创建一个新的数据库

CREATE DATABASE Gauss_TEST1

创建完Gauss_TEST1数据库后,可以选择继续在默认的postgres数据库下做后续的体验。当然,也可以使用新用户连接到此数据库执行接下来的创建表等操作,需要赋予其connect的权限(如下图)。

--将数据库的create、connect权限授权给用户zhangsan

GRANT create,connect on database Gauss_TEST1 TO zhangsan

本内容将切换新用户完成后续实验

4、创建SCHEMA
创建SCHEMA:

--创建SCHEMA,为用户zhangsan创建一个同名schema,子命令创建的表S、C、SC的拥有者为zhangsan。

CREATE SCHEMA zhangsan;

5、创建表(增删改查)
1)创建3张表,并初始化一些数据
创建表学生表:

--学生表,Students(SNO, SNAME)代表 (学号,姓名)

drop table students;

create table students(

    sno    INTEGER     NOT NULL,

    sname  varchar(32)

);

插入数据:

--插入数据

insert into students(sno,sname) VALUES (1001,'张三');

insert into students(sno,sname) VALUES (1002,'李四');

insert into students(sno,sname) VALUES (1003,'王五');

insert into students(sno,sname) VALUES (1004,'赵六');

--查看结果

select * from students;

创建课程表:

--课程表,course(CNO, CNAME, CTEACHER) 代表(课号, 课名, 教师)

create table if  not exists course(

    cno      INTEGER     NOT NULL,

    cname    varchar(32),

    cteacher varchar(32)

);

插入数据

--插入数据,

insert into course(cno,cname,cteacher)values(1,'数据库','张老师');

insert into course(cno,cname,cteacher)values(2,'操作系统','李老师');

insert into course(cno,cname,cteacher)values(3,'数据结构','王老师');

insert into course(cno,cname,cteacher)values(4,'python','赵老师');

--查看结果

select * from course;

创建学生成绩表:

--学生成绩表,SC(SNO, CNO, SCGRADE) 代表(学号, 课号, 成绩)

drop table sc;

create table sc(

    sno      INTEGER     NOT NULL,

    cno      INTEGER     NOT NULL,

    scgrade  DECIMAL(3,1)

);

插入数据

--插入数据

insert into sc(sno,cno,scgrade)values(1001,1,98);

insert into sc(sno,cno,scgrade)values(1001,2,90);

insert into sc(sno,cno,scgrade)values(1002,3,95);

insert into sc(sno,cno,scgrade)values(1002,4,88);

insert into sc(sno,cno,scgrade)values(1003,1,97);  

insert into sc(sno,cno,scgrade)values(1004,4,99);

--查看结果

select * from sc;

2)假设查询场景,并通过SQL 实现
示例1:所有参加"数据库"课程考试的同学成绩登记错误, 现需要每人增加1分

--所有参加"数据库"课程考试的同学成绩登记错误, 每人增加1分。

update sc set scgrade= scgrade+1

where cno in (select cno from course where cname ='数据库')

--查看更新结果

select *

  from  SC

 where cno in (select cno from course where cname ='数据库')

示例2:获取拥有1门课程以上考试成绩的学生信息

--获取拥有1门课程以上考试成绩的学生信息(学号、姓名、课程号、课程名称、考试成绩)

select  t2.sno

       ,t3.sname

       ,t4.cno

       ,t5.cname

       ,t4.scgrade      

 from

  (select * from

    (select sno

           ,cno

           ,ROW_NUMBER() OVER(PARTITION BY sno ) as num1

       FROM SC) t1

      WHERE  t1.num1>1) t2

left join students t3

on t2.sno=t3.sno

left join sc t4

on t2.sno=t4.sno

left join course t5

on t4.cno=t5.cno

order by sno

示例补充:上述SQL语句中用到子查询in 、窗口函数row_number()、用到左连接left join 。

IN: 子查询(Subquery)是指在一个查询语句中嵌套另一个查询语句,并将该查询语句的结果作为主查询语句的条件或结果之一。在SQL中,子查询通常使用IN关键字来实现。IN关键字用于指定一个值列表,它可以被用来匹配主查询中的某个列的值。
ROW_NUMBER:为各组内值生成连续排序序号,其中,相同的值其序号也不相同
Left join :两张表关联, 以左表为主表,用于从两个或多个表中获取数据。它的作用是返回左表中的所有行,同时返回与右表匹配的行。如果右表中没有与左表匹配的行,则返回NULL值。
——结束。

标签:insert,--,sno,GaussDB,SQL,into,cno,数据库
From: https://www.cnblogs.com/xiaoxu0211/p/18435609

相关文章

  • GaussDB云数据库SQL应用系列-视图管理
    ​一、前言GaussDB是一款基于云计算技术的高性能关系型数据库,支持多种数据模型和分布式架构。在GaussDB中,视图管理是非常重要的一项功能,它可以帮助用户更方便地管理和查询数据。数据库视图管理是指对数据库中的视图进行创建、修改、删除、查询等操作的过程。二、准备条件参考......
  • GaussDB云数据库SQL应用系列—索引管理
    一、前言随着互联网的快速发展,数据量呈现爆炸式增长。如何高效地管理和查询这些数据成为了企业面临的重要问题。而数据库索引作为数据库优化的关键手段之一,对于提高数据库性能和查询效率具有重要作用。本文将介绍GaussDB云数据库的索引创建和管理方法,并结合实际应用场景进行分析......
  • GaussDB整体性能慢分析
    @目录问题描述问题现象告警业务影响原因分析分析步骤分析定位方法步骤一步骤二步骤三步骤四CPU满I/O满或者I/O异常内存满网络异常步骤五并发问题数据库配置问题异常等待事件长时间性能下降短时性能抖动不优SQL问题描述整体性能慢。不满足客户作业对时延要求或者不满足客户预期。......
  • GaussDB SQL调优:建立合适的索引
    ​背景GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品具备企业级复杂事务混合负载能力,同时支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000+扩展能力,PB级海量存储等企业级数据库特性。拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关......
  • PARTIV-Oracle数据库存储结构-内存架构
    14.内存架构14.1.Oracle是数据库内存结构简介当实例启动时,Oracle数据库会分配一个内存区域并启动后台进程。这个内存区域存储以下信息:程序代码每个已连接会话的信息,即使它当前未活跃程序执行期间需要的信息,例如,正在从中提取行的查询的当前状态锁数据等在进程间共享和通信......
  • 分布式数据库在老乡鸡餐饮中的技术实践
    业务背景:MySQL带来的三个技术瓶颈老乡鸡隶属于安徽老乡鸡餐饮股份有限公司旗下品牌,是以中式快餐为特色的连锁餐饮品牌,在全国有1000多家快餐店,从养土鸡起家,实现了从养殖到餐桌的全产业链模式。目前,北京、上海、深圳、杭州等一线城市都有门店,并以每年新增300家的速度发展。鸡类菜品......
  • GaussDB分区表查询性能异常分析
    问题现象使用分区表进行相关查询业务,SQL性能慢。原因分析导致分区表业务慢的常见原因有以下几种:分区索引失效,顺序扫描导致的SQL性能慢分区表无法进行分区剪枝导致的SQL性能慢SQL计划选择非最优导致的SQL性能慢处理方法判断是否存在索引异常的行为部分分区DDL如果不带UP......
  • GaussDB内存过载分析
    问题现象数据库进程内存占比较高长时间占比较高观察监控平台内存占用的变化曲线,无论当前数据库是否有业务在运行,数据库进程内存占总机器内存的比例长时间处于较高状态,且不下降。执行作业期间占比较高数据库进程在没有业务执行时,内存使用持续处于较低的状态,当有业务执行时,内......
  • 《向量数据库指南》——向量数据库新纪元:跨越供应商锁定的
    在深入探讨供应商锁定对向量数据库领域非结构化数据迁移的影响时,我们不得不首先认识到,随着大数据和人工智能技术的飞速发展,向量数据库作为处理复杂、高维数据的有效工具,正逐渐成为企业数据架构中的关键组成部分。然而,这一领域的特殊性——尤其是向量数据的非结构化本质及其处理......
  • Windows(超详细保姆级教学)安装mongodb数据库
    一、下载mongodb安装包 mongodb安装二、下载完成后打开安装包下载mongodb三、在这个页面选择自定义安装四、安装完成后打开终端窗口(win+r)输入命令services.msc打开自己的服务列表查看五、配置Mongodb相应的环境变量        1.找到安装路径下......