首页 > 数据库 >gaussdb 基础管理 数据库 表 用户 模式 权限 存储过程

gaussdb 基础管理 数据库 表 用户 模式 权限 存储过程

时间:2024-10-14 18:17:27浏览次数:3  
标签:Insert NULL gaussdb ALTER values into 权限 数据库 CREATE

数据库database

#创建数据库,指定字符集UTF8,缺省情况下新数据库将通过复制标准系统数据库template0来创建,且仅支持使用template0来创建。

CREATE DATABASE devdb ENCODING 'UTF8' template = template0;

CREATE DATABASE testdb;

标识符的命名需要遵守如下规范:

* 标识符需要为字母(a-z)、下划线(_)、数字(0-9)或美元符号($)。

* 标识符必须以字母(a-z)或下划线(_)开头。

ENCODING [ = ] 'encoding' 可选。指定数据库使用的字符编码

TEMPLATE [ = ] template可选。模板名。即从哪一个模板创建新数据库。GaussDB采用从模板数据库复制的方式来创建新的数据库。

#修改数据库搜索路径

ALTER DATABASE testdb SET search_path TO pa_catalog,public;

#查询搜索路径

show search_path;

#查询数据库

SELECT datname FROM pg_database;

\l

#切回切换回默认数据库postgres

\c postgres

#重命名数据库

ALTER DATABASE testdb RENAME TO testdb1

表table

#行存表

CREATE TABLE PART ( P_PARTKEY BIGINT NOT NULL, P_NAME VARCHAR(55) NOT NULL, P_MFGR CHAR(25) NOT NULL, P_BRAND CHAR(10) NOT NULL, P_TYPE VARCHAR(25) NOT NULL, P_SIZE BIGINT NOT NULL, P_CONTAINER CHAR(10) NOT NULL, P_RETAILPRICE DECIMAL(15,2) NOT NULL, P_COMMENT VARCHAR(23) NOT NULL ) WITH (ORIENTATION = ROW);

#列存表

CREATE TABLE PART1 ( P_PARTKEY BIGINT NOT NULL, P_NAME VARCHAR(55) NOT NULL, P_MFGR CHAR(25) NOT NULL, P_BRAND CHAR(10) NOT NULL, P_TYPE VARCHAR(25) NOT NULL, P_SIZE BIGINT NOT NULL, P_CONTAINER CHAR(10) NOT NULL, P_RETAILPRICE DECIMAL(15,2) NOT NULL, P_COMMENT VARCHAR(23) NOT NULL ) WITH (ORIENTATION = COLUMN);

#查看表信息

\d

#增加列

ALTER TABLE part ADD COLUMN p_col1 bigint;

#增加列默认值

ALTER TABLE part ALTER COLUMN p_col1 SET DEFAULT 1;

#删除列默认值

ALTER TABLE part ALTER COLUMN p_col1 drop DEFAULT ;

#修改列数据类型

ALTER TABLE part MODIFY p_col1 INT;

#修改列名称

ALTER TABLE part RENAME p_col1 to p_col;

#查看表结构

\d part

#添加约束

CREATE UNIQUE INDEX bmsql_oorder_idx1 ON bmsql_oorder USING btree (o_w_id, o_d_id, o_carrier_id, o_id);

#添加索引

create index bmsql_customer_idx1 on bmsql_customer (c_w_id, c_d_id, c_last, c_first);

#查看索引

\di bmsql_customer_idx1

用户user

#创建用户

CREATE USER hccdp SYSADMIN IDENTIFIED BY "NHY^7ujm";

CREATE USER jim PASSWORD 'Gaussdb@123';

CREATE USER dim CREATEDB PASSWORD 'Gaussdb@123';

#修改密码

ALTER USER jim IDENTIFIED BY 'Abcd@123' REPLACE 'Gaussdb@123';

#添加权限

ALTER USER jim CREATEROLE;

#锁定用户 解锁用户

ALTER USER jim ACCOUNT LOCK;

ALTER USER jim ACCOUNT UNLOCK;

#删除用户

DROP USER jim? CASCADE;

#查看角色

\du jim

#查看用户列表

SELECT * FROM pg_user;

模式Schema

#创建模式 在数据库创建用户时,系统会自动帮助用户创建一个同名Schema

CREATE SCHEMA ds;

#更改模式名

ALTER SCHEMA ds RENAME TO ds_new;

#修改模式的所有者

ALTER SCHEMA ds_new OWNER TO jack;

#查看模式的所有者

SELECT s.nspname,u.usename AS nspowner FROM pg_namespace s, pg_user u WHERE s.nspowner = u.usesysid;

#查看模式

\dn

权限

#sysadmin权限授权给他

CREATE USER joe PASSWORD 'Gaussdb@123';

ALTER USER joe with sysadmin;

#查看用户权限变化

\du

#撤回权限

ALTER USER joe with nosysadmin;

#使用schema权限

GRANT USAGE ON SCHEMA tpcds TO joe;

#表所有权限

GRANT ALL PRIVILEGES ON tpcds.reason TO joe;

#列的权限

GRANT select (r_reason_sk,r_reason_id,r_reason_desc),update (r_reason_desc) ON tpcds.reason TO joe;

#数据库连接权限 创建schema 且允许joe将此权限授权给其他用户

GRANT create,connect on database postgres TO joe WITH GRANT OPTION;

#创建角色

CREATE ROLE tpcds_manager PASSWORD 'Gaussdb@123';

#赋予权限给角色

GRANT USAGE,CREATE ON SCHEMA tpcds TO tpcds_manager;

存储过程示例

#创建表 插入数据

CREATE TABLE employee (id varchar(100),name varchar(100),salary int);

CREATE TABLE ep_grade (id varchar(100),grade varchar(100),flag int);

Insert into employee values(1,'张三',5000);

Insert into employee values(2,'李四',5000);

Insert into employee values(3,'王五',5000);

Insert into employee values(4,'赵六',5000);

Insert into employee values(5,'太一',5000);

Insert into employee values(6,'太二',5000);

Insert into employee values(7,'太三',5000);

Insert into employee values(8,'太四',5000);

Insert into ep_grade values(1,'A',2022);

Insert into ep_grade values(2,'S',2021);

Insert into ep_grade values(3,'B',2021);

Insert into ep_grade values(4,'B',2021);

Insert into ep_grade values(5,'A',2021);

Insert into ep_grade values(6,'C',2022);

Insert into ep_grade values(7,'C',2021);

Insert into ep_grade values(8,'B',2022);     

#创建存储过程

CREATE OR REPLACE PROCEDURE proc_emp()

AS

DECLARE

   EP_ID VARCHAR(100);

   GRADE VARCHAR(10);

   SALARY INT;

CURSOR C1 IS select distinct id,grade FROM ep_grade where Flag = 2021;

BEGIN

   OPEN C1;

   LOOP

      FETCH C1 INTO EP_ID,GRADE;

      EXIT WHEN C1%NOTFOUND;

      Case GRADE

      when 'S'

         then  update employee set salary = salary+1000 where id=EP_ID ;

      when 'A'

         then update employee set salary = salary+500  where id=EP_ID ;

      when 'B'

          then update employee set salary = salary+100 where id=EP_ID;

      when 'C'

          then update employee set salary = salary-200 where id=EP_ID;

      END Case;

DBE_OUTPUT.PRINT_LINE('ID: '||EP_ID||', Grade: '||GRADE||', updated.');

END LOOP;

CLOSE C1;

END;

/

#调用存储过程

call proc_emp();

标签:Insert,NULL,gaussdb,ALTER,values,into,权限,数据库,CREATE
From: https://blog.csdn.net/Story_begins/article/details/142887115

相关文章

  • 解决MaxKB数据库导入时的外键约束问题
    Hey,数据库小伙伴们!今天我们来聊聊在导入MaxKB数据库时,如何巧妙地绕过那些让人头疼的外键约束错误。别急,跟着我一步步来,保证你能够轻松搞定!问题来了:外键约束引发的导入错误在我们导入MaxKB数据库的数据时,可能会遇到因为外键约束而导致的导入错误。这通常是因为数据导入的顺......
  • 配置supermap iportal数据库,银河麒麟arm架构SP3系统中离线编译安装postgres、postgis
     一、安装环境准备postgresql-11.2.tar.gz、postgis-2.5.0.tar.gz文件,geos-3.6.1-12.ky10.aarch64.rpm包,再准备一台有外网的机器。如果遇到缺少的包,去有外网的机器下载,再考到内网机器里安装。大部分安装都是编译安装,遵循配置、编译、安装这三步。注意安装后的软件目录postgre......
  • Springboot基于java的学生宿舍管理系统ty263(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,公告信息,公寓信息,宿舍信息,宿舍分配,报修信息,报修进度,评分排名,晚归登记,宿舍评分开题报告内容一、课题背景及研究意义随着高校招生规模的扩大,学生数......
  • Springboot基于Java的信公OA办公系统b6c5g(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表员工,人事,财务,通知公告,阅读公告,文件信息,报销申请,通讯录,工资账套,工资信息,部门,职位开题报告内容一、研究背景和意义随着信息技术的迅猛发展和全球化的......
  • Springboot基于Java的校园二手物品交易系统7670z(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表物品分类,持物者,购买者,二手商品,商品订单,商品求购,在线咨询开题报告内容一、研究背景随着互联网技术的不断发展,电子商务平台已经深入到人们生活的方方面面。......
  • Android内容观察者(案例:监听数据库+代码+效果图)
    目录1.内容观察者概念1.什么是ContentObserver?2.主要方法3.使用场景4.工作原理5.注册和注销6.实现步骤7.注意事项2.创建内容观察者3.注册内容观察者4.取消注册内容观察者5.完整的activity代码6.案例:检测数据库1)创建一个Android​编辑2)创建数据库3......
  • c3p0数据库连接池出现Could not get JDBC Connection An attempt by a client to chec
    c3p0有些年头了,也曾红极一时。但你是否遇到过,明明并发并不高,连接池最大连接数也设的挺大了,还是报无法获取新连接。CouldnotgetJDBCConnectionAnattemptbyaclienttocheckoutaConnectionhastimedout.参考文章:https://cloud.tencent.com/developer/article/2319703......
  • 虚谷数据库的启动方式
    一、概述        虚谷数据库服务端免安装,将数据库服务端程序包拷贝至空闲空间大于10GB的目录,解压并进行相应的权限赋予后,直接启动即可,无需向系统目录拷贝特殊文件也无需写入注册表。    解压后有以下相关目录:二、启动数据库    解压数据库服务文......
  • jsp大学新生军训管理系统57a05(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表教官,学生,连队,教官评价,军训项目,考核制度,军训风采,考核成绩,应急知识开题报告内容一、研究背景与意义大学新生军训是高等教育的重要组成部分,旨在培养学生......
  • jsp党务资料管理系统gjzvf--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,教师,组织信息,书记,教师资料,学生资料,资料展示,通知公告开题报告内容一、研究背景及意义随着信息技术的快速发展,党务工作逐渐趋向信息化、智能化。党务......