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


风晓
风晓 2024-01-14 10:19:08 54442 赞同 0 反对 0
分类: 资源 标签: 国产数据库
GaussDB云数据库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 。

1)IN: 子查询(Subquery)是指在一个查询语句中嵌套另一个查询语句,并将该查询语句的结果作为主查询语句的条件或结果之一。在SQL中,子查询通常使用IN关键字来实现。IN关键字用于指定一个值列表,它可以被用来匹配主查询中的某个列的值。

2)ROW_NUMBER:为各组内值生成连续排序序号,其中,相同的值其序号也不相同

3)Left join :两张表关联, 以左表为主表,用于从两个或多个表中获取数据。它的作用是返回左表中的所有行,同时返回与右表匹配的行。如果右表中没有与左表匹配的行,则返回NULL值。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
桌面通用(全架构)【在双系统环境下隐藏Windows启动菜单】操作指南  2057
银河麒麟桌面操作系统V10(SP1)2203-如何进行远程桌面互访?  1994
银河麒麟桌面操作系统【保留数据盘重装系统】  1804
麒麟系统各种原因开不了机解决(合集)  1587
桌面通用(全架构)【rpm包转成deb包】操作方法  931
银河麒麟桌面操作系统 V10-SP1 双系统安装 efi 分区问题  915
统信系统安装(合集)  853
统信桌面专业版【手动分区安装UOS系统】介绍  845
统启动异常几种类型(initramfs 模式)  688
最近下载排行榜
桌面通用(全架构)【在双系统环境下隐藏Windows启动菜单】操作指南 0
银河麒麟桌面操作系统V10(SP1)2203-如何进行远程桌面互访? 0
银河麒麟桌面操作系统【保留数据盘重装系统】 0
麒麟系统各种原因开不了机解决(合集) 0
桌面通用(全架构)【rpm包转成deb包】操作方法 0
银河麒麟桌面操作系统 V10-SP1 双系统安装 efi 分区问题 0
统信系统安装(合集) 0
统信桌面专业版【手动分区安装UOS系统】介绍 0
统启动异常几种类型(initramfs 模式) 0
作者收入月榜
1

prtyaa 收益393.72元

2

zlj141319 收益220.97元

3

1843880570 收益214.2元

4

IT-feng 收益213.03元

5

风晓 收益208.24元

6

777 收益172.82元

7

Fhawking 收益106.6元

8

信创来了 收益105.89元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!