提交 eb38a39a 编写于 作者: Y youxiangyang

init notebook

上级 87e872fc
-- DDL
-- ## 数据库
CREATE database IF NOT EXISTS test_db IN datadbs WITH log;
-- 重命名数据库:需要先切换到其他库,才可以重命名或删除当前的库
RENAME database test_db TO myDB;
DROP database IF EXISTS test_db;
-- 切换到某个数据库
database mydb;
-- 创建表
CREATE TABLE IF NOT EXISTS t_user(
user_id int,
user_name VARCHAR(20)
);
-- 重命名表
RENAME TABLE t_user TO u_user;
-- 删除表
DROP TABLE IF EXISTS u_user;
-- 列:新增、删除、修改
ALTER TABLE u_user ADD (password varchar(100));
-- 重命名
RENAME COLUMN u_user.user_id TO id;
ALTER TABLE u_user DROP (password);
--- 视图
CREATE VIEW IF NOT EXISTS v_tmp AS
SELECT USER_name FROM u_user;
\ No newline at end of file
# SPL基础
## 概述
- SPL例程由开始语句、语句块、结束语句组成
- SPL例程根据是否返回值,分为存储过程和函数
- 语句块由SQL和SPL语句组成。
## 基本语法:
```sql
-- 存储过程
create procedure proc_name (param1 data_type1,param2 data_type2..)
sql_code;
end procedure;
-- 函数
create function func_name (param1 data_type1,...)
returning data_type1 [as id1],data_type2 [as id2]...
sql_code;
end function;
```
语法:
- 变量声明
- 变量赋值
- 条件
- 循环
- goto
- loop
- for/foreach
- while
- 异常处理
示例:
```sql
--变量声明
-- 变量声明
create procedure test1()
define m,n int;
define global i int default 1;
define global loginname varchar(20) default 'admin';
end procedure;
create procedure test2()
define global i int default 0;
define global username varchar(20) default '';
insert into t_user values (i,username);
let i=i+1;
let username=concat("syn_",to_char(i));
end procedure;
-- 变量赋值
create procedure test3()
define userid int;
define sex varchar(20);
let userid,username=1,"m";
insert into t_user values (userid,sex);
-- let var=value;
-- let var1,var2=value1,value2;
-- let var1,var2...=function(args1,args2....);
-- let var1,var2...=(select col1,col2...from tb);
-- case
-- case expr
-- when val_1 then
-- code1;
-- when val_2 then
-- code2;
-- else
-- code3;
-- end case;
create function test_func_1(sexcode int)
returning varchar(10) as sex
define sex varchar(10);
case sexcode
when 1 then
let sex='男';
when 2 then
let sex='女';
else
let sex='未知';
end case;
return sex ;
end function;
-- 循环
-- goto
-- << lbl_goto >>
-- spl_code;
-- if expr then
-- goto lbl_goto;
-- end if;
-- loop
-- loop
-- if expr then
-- exit;
-- end if;
-- end loop;
-- for/foreach
-- for i in (start to end ) loop
-- spl_code;
-- end loop;
-- for i in (start to end )
-- spl_code
-- end for;
-- foreach select col1,col2,... into var1,var2...from table
-- spl_code;
-- end foreach
-- while
-- while expr loop
-- spl_code;
-- end loop;
-- while expr
-- spl_code;
-- end while;
create procedure test4()
define i int;
let i=1;
while i<10
insert into table t_user values (i,concat("u_",to_char(i)))
let i = i+1
end while;
end procedure;
create table t_class(
class_id int,
class_name varchar(20)
);
create table t_student(
sid int,
username varchar(100),
age int,
sex varchar(5),
class_id int
);
```
\ No newline at end of file
# Gbase8s 学习笔记1
## 1.客户端工具dbaccess
dbaccess是GBase8s提供的一个命令行客户端工具。。嗯,使用起来的话,稍微有一些奇怪,一下子并不是很适应。不过,慢慢就好了。
支持的四种模式:
- 交互模式:
- 菜单交互模式:提供一个奇怪的交互模式,不喜欢。。
- 指令交互模式: 和其他数据库命令行类似那种。
- Demo : `dbaccess 数据库名 - `,
- 第一个参数指数据库,如果为-时候,表示未选择数据库,后面可以自己选择
- 第二个参数固定为 - ,表示输入为标准输入 STDIN
- 非交互模式:
- 管道模式: 接受标准输入中的sql,然后执行。
- Demo:`echo "select * from dual;" | dbaccess mydb(数据库)
- 脚本模式:将SQL保存到文件,然后通过dbaccess进行执行。
- Demo: `dbaccess mydb mysql.txt`
### 1.1 dbaccess配置
可以通过将一些配置写入环境变量来调整dbaccess的展示。
| 配置 | 功能 | 备注 |
| ------------------------------------- | ------------------------------------------------------------ | ---- |
| ` export DBFLTMASK=3` | 默认会显示浮点数的小数位数,这个参数可以调整显示的位数 | |
| `export DBEDIT=vi` | 设置默认编辑器 | |
| `export DBMOBEY=“[front][.|,][back]”` | 调整money数据类型的展示,默认会根据本地化设置,显示货币信息。 | |
| ` export GL_DATE="%iY-%m-%d"` | 设置date数据类型展示格式 | |
| `export DBACCESS_SHOW_TIME=1` | 显示SQL执行时间 | |
### 1.2 关于Gbase8s的客户端工具
嗯,其实并不是很习惯直接使用命令行工具。大多数的时候,我们都希望有一个类似DBeaver,Navicat等等的工具。通过一番打听,好像很多工具都还没有支持Gbase8s。不过官方目前正在开发一个工具,叫GbaseDataStudio。目前csdn有一些付费下载的连接,不过我没有币。后来巴拉巴拉,还是找到了,这里提供了一个下载地址:
> GBaseDataStudio_8.5.23.0_2_Windows_X86_64.zip
>
> 链接:https://www.123pan.com/s/6fiA-kGRKv 提取码:LUmJ
(还有其他平台的版本,mac,linux,不过这里没有上传,需要的,可以给我留言。)
> GBaseDataStudio管理工具手册.pdf
>
> 链接: https://www.123pan.com/s/6fiA-EGRKv 提取码: KJYo
![image-20211114191803986](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211114191803986.png)
还有一个办法,其实就是用DBeaver工具,新建一个数据库驱动。然后以JDBC的方式去连接数据库。(官方的工具,好像也是基于开源的DBeaver工具改出来的)不过目前还没有弄明白,如果后面找到方法后,再补上。
## SQL指南
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册