GBase 8s 基本语法

  • DDL
    • 数据库
    • 视图
    • 索引
    • 存储过程
    • 函数
    • 同义词
    • 触发器
  • DML
    • insert
    • update
    • delete
    • merge
  • DQL
    • 数据准备
    • 单表查询
    • 多表关联查询
      • 自连接
      • 内连接
      • 左连接
      • 右连接
      • 全连接
    • 子查询
      • IN
      • EXISTS

DDL

数据库

新建数据库

create database [if not exists] <db_name> [in dbs_name] [with [buffered] log | with log mode ansi] [nlscasesensitive | nlscase insensitive];

重命名数据库

rename database <old_db_name> to <new_db_name>;

删除数据库

drop database [if exists] <db_name>;

DEMO

create database demo_db1;rename database demo_db1 to demo_db2; drop database demo_db2;
[gbasedbt@devsvr ~]$ dbaccess - -
Your evaluation license will expire on 2022-06-18 00:00:00
> create database demo_db1;Database created.> rename database demo_db1 to demo_db2;  359: Cannot drop or rename the current database or any open database.
Error in line 1
Near character position 35
> database gbasedb;Database closed.Database selected.> rename database demo_db1 to demo_db2;Database renamed.> drop database demo_db2;Database dropped.> 

新建表

create [standard | raw] table [if not exists] <table_name> (colname1 data_type1, colname2 data_type2, ...);

重命名表

rename table <old_table_name> to <new_table_name>;

删除表

drop table [if exists] <table_name>;

DEMO

create table t_user1(f_userid int, f_username varchar(20));rename table t_user1 to t_user2;drop table t_user2;
> database gbasedb;Database closed.Database selected.> create table t_user1(f_userid int, f_username varchar(20));Table created.> rename table t_user1 to t_user2;Table renamed.> drop table t_user2;Table dropped.> 

新增列

alter table <table_name | synonym_name>
add (new_column_name1 data_type1 [before old_column_name1] [, new_column_name2 data_type2 [before old_column_name2], ...]);

删除列

alter table <table_name | synonym_name> drop (old_column_name1[, old_column_name2, ...]);

重命名列

rename column <table_name>.<old_column_name> to <new_column_name>;

DEMO

drop table if exists t_user;create table t_user(f_userid int, f_username varchar(20));insert into t_user values(1, 'gbasedbt');select * from t_user;alter table t_user add (f_nickname varchar(20));select * from t_user;rename column t_user.f_nickname to f_showname;select * from t_user;alter table t_user drop (f_showname);select * from t_user;
[gbasedbt@devsvr train]$ dbaccess gbasedb -
Your evaluation license will expire on 2022-06-18 00:00:00Database selected.> drop table if exists t_user;Table dropped.> create table t_user(f_userid int, f_username varchar(20));Table created.> insert into t_user values(1, 'gbasedbt');1 row(s) inserted.> select * from t_user;f_userid f_username           1 gbasedbt            1 row(s) retrieved.> alter table t_user add (f_nickname varchar(20));Table altered.> select * from t_user;f_userid f_username           f_nickname           1 gbasedbt                                 1 row(s) retrieved.> rename column t_user.f_nickname to f_showname;Column renamed.> select * from t_user;f_userid f_username           f_showname           1 gbasedbt                                 1 row(s) retrieved.> alter table t_user drop (f_showname);Table altered.> select * from t_user;f_userid f_username           1 gbasedbt            1 row(s) retrieved.> 

视图

新建视图

create view [if not exists] <view_name> as <query_define>;

删除视图

drop view if exists <view_name>;

DEMO

create view vw_user as select * from t_user;select * from vw_user;drop view vw_user;
> create view vw_user as select * from t_user;View created.> select * from vw_user;f_userid f_username           1 gbasedbt            1 row(s) retrieved.> drop view vw_user;View dropped.> 

索引

新建索引

create [unique | distinct | cluster] index [if not exists] <idx_name>
on <table_name | synonym_name> (<column_name | func_name(column_name)> [asc | desc]);

重命名索引

rename index <old_index_name> to <new_index_name>;

删除索引

drop index [if exists] <idx_name>;

DEMO

create unique index idx_user on t_user (f_userid asc);rename index idx_user to idx_user01;drop index idx_user01;
> create unique index idx_user on t_user (f_userid asc);Index created.> rename index idx_user to idx_user01;Index renamed.> drop index idx_user01;Index dropped.> 

存储过程

新建存储过程

create procedure [if not exists] <procedure_name>(param1 data_type1, param2 data_type2, ...)
<spl code>
end procedure;

删除存储过程

drop procedure [if exists] <procedure_name> [(data_type1, data_type2, ...)];

DEMO

drop table if exists t_city;create table t_city(f_cityid int, f_cityname varchar(20));create procedure up_city_add(cityid int, cityname varchar(20))insert into t_city(f_cityid, f_cityname) values(cityid, cityname);
end procedure;call up_city_add(1, 'Beijing');
call up_city_add(2, 'Shanghai');
call up_city_add(3, 'Tianjin');
call up_city_add(4, 'Chongqing');select * from t_city;delete from t_city;execute procedure up_city_add(1, 'Beijing');
execute procedure up_city_add(2, 'Shanghai');
execute procedure up_city_add(3, 'Tianjin');
execute procedure up_city_add(4, 'Chongqing');select * from t_city;
> drop table if exists t_city;Table dropped.> create table t_city(f_cityid int, f_cityname varchar(20));Table created.> create procedure up_city_add(cityid int, cityname varchar(20))
>
> insert into t_city(f_cityid, f_cityname) values(cityid, cityname);
> end procedure;Routine created.> call up_city_add(1, 'Beijing');Routine executed.> call up_city_add(2, 'Shanghai');Routine executed.> call up_city_add(3, 'Tianjin');Routine executed.> call up_city_add(4, 'Chongqing');Routine executed.> select * from t_city;f_cityid f_cityname           1 Beijing             2 Shanghai            3 Tianjin             4 Chongqing           4 row(s) retrieved.> delete from t_city;4 row(s) deleted.> execute procedure up_city_add(1, 'Beijing');Routine executed.> execute procedure up_city_add(2, 'Shanghai');Routine executed.> execute procedure up_city_add(3, 'Tianjin');Routine executed.> execute procedure up_city_add(4, 'Chongqing');Routine executed.> select * from t_city;f_cityid f_cityname           1 Beijing             2 Shanghai            3 Tianjin             4 Chongqing           4 row(s) retrieved.> drop procedure up_city_add;Routine dropped.> 

函数

新建函数

create function [if not exists] <function_name>(param1 data_type1, param2 data_type2, ...)
returning data_type1 [as var1] [, data_type2 [as var2], ...]
<spl code>
return var1[, var2, ...];
end function;

删除函数

drop function [if exists] <function_name> [(data_type1, data_type2, ...)];

DEMO

drop function if exists fn_get_ymd;create function fn_get_ymd(dt date)
returning int as year, int as month, int as daydefine y,m,d int;let y = year(dt);
let m = month(dt);
let d = day(dt);return y,m,d;
end function;execute function fn_get_ymd(today);drop function fn_get_ymd;
> drop function if exists fn_get_ymd;Routine dropped.> create function fn_get_ymd(dt date)
> returning int as year, int as month, int as day
>
> define y,m,d int;
>
> let y = year(dt);
> let m = month(dt);
> let d = day(dt);
>
> return y,m,d;
> end function;Routine created.> execute function fn_get_ymd(today);year       month         day 2021           7           61 row(s) retrieved.> drop function fn_get_ymd;Routine dropped.> 

同义词

新建同义词

create [public | private] synonym [if not exists] <synonym_name> for <table_name | view_name | sequence_name>;

删除同义词

drop synonym [if exists] <synonym_name>;

DEMO

drop table if exists t_user;create table t_user(f_userid int, f_username varchar(20));drop synonym if exists syn_user;create synonym syn_user for t_user;insert into syn_user values(1, 'gbasedbt');select * from t_user;select * from syn_user;drop synonym syn_user;
> drop table if exists t_user;Table dropped.> create table t_user(f_userid int, f_username varchar(20));Table created.> drop synonym if exists syn_user;Synonym dropped.> create synonym syn_user for t_user;Synonym created.> insert into syn_user values(1, 'gbasedbt');1 row(s) inserted.> select * from t_user;f_userid f_username           1 gbasedbt            1 row(s) retrieved.> select * from syn_user;f_userid f_username           1 gbasedbt            1 row(s) retrieved.> drop synonym syn_user;Synonym dropped.> 

触发器

触发器三要素

  • 事件(Event)
    对数据库的插入、删除、修改操作。
    当声明的事件发生时,触发器开始工作。

  • 条件(Condition)
    当触发器被事件激活时,不是立即执行,而是首先由触发器测试触发条件。如果条件成立,则触发器执行相应的动作,否则触发器不做任何事情。

  • 动作规则(Action Role)

新增触发器

create [or replace] tirgger <trigger_name> <insert | update [of column_name] | delete | select> on <target_table_name>
<before | after | for each row>
when <condition>
<action>

DEMO

[gbasedbt@devsvr train]$ cat trigger.sql
drop table if exists t_log;create table t_log(f_logid serial, f_message varchar(50), f_operatedate date);drop table if exists t_sale;create table t_sale(f_saleid serial, f_productname varchar(20), f_qty int);create or replace trigger trg_sale_insert insert on t_sale
referencing new as new_item
for each row
(
insert into t_log(f_message, f_operatedate) values(concat('insert:', new_item.f_productname), today)
);create or replace trigger trg_sale_update update of f_qty on t_sale
referencing old as old_item
for each row
(
insert into t_log(f_message, f_operatedate) values(concat('update: f_qty->', to_char(old_item.f_qty)), today)
);create or replace trigger trg_sale_delete delete on t_sale
referencing old as old_item
for each row
(
insert into t_log(f_message, f_operatedate) values(concat('delete:f_saleid->', to_char(old_item.f_saleid)), today)
);create or replace trigger trg_sale_select select on t_sale
referencing old as old_item
for each row
(
insert into t_log(f_message, f_operatedate) values(concat('select:', old_item.f_productname), today)
);!echo "insert action"insert into t_sale(f_productname, f_qty) values('tv', 10);
insert into t_sale(f_productname, f_qty) values('a/c', 20);!echo "search log"select * from t_log;!echo "update action"update t_sale set f_qty = 15 where f_productname = 'tv';!echo "search log"select * from t_log;!echo "select action"select * from t_sale;!echo "search log"select * from t_log;!echo "delete action"delete from t_sale where f_productname = 'tv';!echo "search log"select * from t_log;!echo "select action"select * from t_sale;!echo "search log"select * from t_log;[gbasedbt@devsvr train]$ dbaccess mydb trigger.sql
Your evaluation license will expire on 2022-06-18 00:00:00Database selected.Table dropped.Table created.Table dropped.Table created.Trigger created.Trigger created.Trigger created.Trigger created.insert action1 row(s) inserted.1 row(s) inserted.search logf_logid f_message                                          f_operatedate 1 insert:tv                                          07/05/20212 insert:a/c                                         07/05/20212 row(s) retrieved.update action1 row(s) updated.search logf_logid f_message                                          f_operatedate 1 insert:tv                                          07/05/20212 insert:a/c                                         07/05/20213 update: f_qty->10                                  07/05/20213 row(s) retrieved.select actionf_saleid f_productname              f_qty 1 tv                            152 a/c                           202 row(s) retrieved.search logf_logid f_message                                          f_operatedate 1 insert:tv                                          07/05/20212 insert:a/c                                         07/05/20213 update: f_qty->10                                  07/05/20214 select:tv                                          07/05/20215 select:a/c                                         07/05/20215 row(s) retrieved.delete action1 row(s) deleted.search logf_logid f_message                                          f_operatedate 1 insert:tv                                          07/05/20212 insert:a/c                                         07/05/20213 update: f_qty->10                                  07/05/20214 select:tv                                          07/05/20215 select:a/c                                         07/05/20216 delete:f_saleid->1                                 07/05/20216 row(s) retrieved.select actionf_saleid f_productname              f_qty 2 a/c                           201 row(s) retrieved.search logf_logid f_message                                          f_operatedate 1 insert:tv                                          07/05/20212 insert:a/c                                         07/05/20213 update: f_qty->10                                  07/05/20214 select:tv                                          07/05/20215 select:a/c                                         07/05/20216 delete:f_saleid->1                                 07/05/20217 select:a/c                                         07/05/20217 row(s) retrieved.Database closed.[gbasedbt@devsvr train]$

删除触发器

drop trigger <trigger_name>;

DEMO

drop trigger if exists trg_sale_insert;
drop trigger if exists trg_sale_update;
drop trigger if exists trg_sale_delete;
drop trigger if exists trg_sale_select;
> drop trigger if exists trg_sale_insert;Trigger dropped.> drop trigger if exists trg_sale_update;Trigger dropped.> drop trigger if exists trg_sale_delete;Trigger dropped.> drop trigger if exists trg_sale_select;Trigger dropped.> 

DML

insert

insert into <table_name | view_name | synonym_name> [column_name1, column_name2, ...] values(value1, value2, ...);insert into <table_name | view_name | synonym_name> [column_name1, column_name2, ...] select col_name1, col_name2, ... ;insert into <table_name | view_name | synonym_name> [column_name1, column_name2, ...] execute function <fn_name([param1, param2, ...])>;

DEMO

drop table if exists t_user1;create table t_user1(f_userid int, f_username varchar(20));insert into t_user1 values(1, 'gbasedbt');select * from t_user1;drop table if exists t_user2;create table t_user2(f_userid int, f_username varchar(20));insert into t_user2 select * from t_user1;select * from t_user2;drop table if exists t_user3;create table t_user3(f_userid int, f_username varchar(20));drop function if exists fn_user_add;create function fn_user_add(user_num int)
returning int as userid, varchar(20) as usernamedefine i int;
define userid int;
define username varchar(20);for i = 1 to user_numlet userid = i;let username = concat('user_', to_char(i));return userid, username with resume;
end for;end function;insert into t_user3 execute function fn_user_add(10);select * from t_user3;

update

update <table_name | view_name | synonym_name> set column_name1 = value1[, column_name2 = value2, ... ] [where condition];

DEMO

drop table if exists t_user;create table t_user(f_userid int, f_username varchar(50), f_age int);insert into t_user values(1, 'Mary', 18);
insert into t_user values(2, 'Jack', 21);select * from t_user;update t_user set f_age = 20 where f_userid = 1;select * from t_user;
> drop table if exists t_user;Table dropped.> create table t_user(f_userid int, f_username varchar(50), f_age int);Table created.> insert into t_user values(1, 'Mary', 18);1 row(s) inserted.> insert into t_user values(2, 'Jack', 21);1 row(s) inserted.> select * from t_user;f_userid f_username                                               f_age 1 Mary                                                        182 Jack                                                        212 row(s) retrieved.> update t_user set f_age = 20 where f_userid = 1;1 row(s) updated.> select * from t_user;f_userid f_username                                               f_age 1 Mary                                                        202 Jack                                                        212 row(s) retrieved.> 

delete

delete from <table_name | view_name | synonym_name> [where condition];

DEMO

select * from t_user;delete from t_user where f_userid = 1;select * from t_user;
> select * from t_user;f_userid f_username                                               f_age 1 Mary                                                        202 Jack                                                        212 row(s) retrieved.>
>
>
> select * from t_user;f_userid f_username                                               f_age 1 Mary                                                        202 Jack                                                        212 row(s) retrieved.> delete from t_user where f_userid = 1;1 row(s) deleted.> select * from t_user;f_userid f_username                                               f_age 2 Jack                                                        211 row(s) retrieved.> 

merge

merge into <target_table_name> as t
using <source_table_name | source_query> as s
on t.column_name1 = s.column_name2
when matched then update set t.col_1 = s.col_1, t.col_2 = s.col_2, ...
when not matched then insert (t.col_1, t.col_2, ...) values(s.col_1, s.col_2, ...);

DEMO

drop table if exists t_user1;create table t_user1(f_userid int, f_username varchar(20), f_age int);insert into t_user1 values(1, 'Tom', 28);
insert into t_user1 values(2, 'Jack', 26);
insert into t_user1 values(4, 'Rose', 18);select * from t_user1;drop table if exists t_user2;create table t_user2(f_userid int, f_username varchar(20), f_age int);insert into t_user2 values(3, 'Jim', 25);
insert into t_user2 values(4, 'Rose', 23);
insert into t_user2 values(5, 'Mike', 21);
insert into t_user2 values(6, 'Bill', 19);select * from t_user2;merge into t_user1 a
using t_user2 b
on a.f_userid = b.f_userid
when matched then update set a.f_age = b.f_age
when not matched then insert (a.f_userid, a.f_username, a.f_age) values(b.f_userid, b.f_username, b.f_age);select * from t_user1;
> drop table if exists t_user1;Table dropped.> create table t_user1(f_userid int, f_username varchar(20), f_age int);Table created.> insert into t_user1 values(1, 'Tom', 28);1 row(s) inserted.> insert into t_user1 values(2, 'Jack', 26);1 row(s) inserted.> insert into t_user1 values(4, 'Rose', 18);1 row(s) inserted.> select * from t_user1;f_userid f_username                 f_age 1 Tom                           282 Jack                          264 Rose                          183 row(s) retrieved.> drop table if exists t_user2;Table dropped.> create table t_user2(f_userid int, f_username varchar(20), f_age int);Table created.> insert into t_user2 values(3, 'Jim', 25);1 row(s) inserted.> insert into t_user2 values(4, 'Rose', 23);1 row(s) inserted.> insert into t_user2 values(5, 'Mike', 21);1 row(s) inserted.> insert into t_user2 values(6, 'Bill', 19);1 row(s) inserted.> select * from t_user2;f_userid f_username                 f_age 3 Jim                           254 Rose                          235 Mike                          216 Bill                          194 row(s) retrieved.> merge into t_user1 a
> using t_user2 b
> on a.f_userid = b.f_userid
> when matched then update set a.f_age = b.f_age
> when not matched then insert (a.f_userid, a.f_username, a.f_age) values(b.f_userid, b.f_username, b.f_age);4 row(s) merged.> select * from t_user1;f_userid f_username                 f_age 1 Tom                           282 Jack                          264 Rose                          233 Jim                           255 Mike                          216 Bill                          196 row(s) retrieved.> 

DQL

数据准备

drop table if exists t_dept;create table t_dept(f_deptid int, f_deptname varchar(10), f_parentid int);insert into t_dept values(0, 'MS', -1);
insert into t_dept values(1, 'Dev', 0);
insert into t_dept values(2, 'Test', 1);
insert into t_dept values(3, 'Market', 0);
insert into t_dept values(4, 'HR', 0);drop table if exists t_employee;create table t_employee(f_employeeid int, f_deptid int, f_employeename varchar(10), f_salary money);insert into t_employee values(1, 1, 'Tom', 6000.00);
insert into t_employee values(2, 1, 'Jack', 8000.00);
insert into t_employee values(3, 1, 'Mary', 6600.00);insert into t_employee values(4, 2, 'Henry', 5000.00);
insert into t_employee values(5, 2, 'Rose', 7500.00);
insert into t_employee values(6, 5, 'Bill', 6500.00);insert into t_employee values(7, 3, 'Kate', 5000.00);
insert into t_employee values(8, 3, 'Bob', 9000.00);

单表查询

select [first n] <* | column_name1[, column_name2, ...]> from <table_name>;select <column_name1[, column_name2, ...], aggr_func1(column_name_n1)[, aggr_func2(column_name_n2), ...]>
from <table_name>
group by column_name_n1[, column_name_n2, ...]
[order by column_name_m1 [asc | desc][, column_name_m2  [asc | desc], ...]];

DEMO

select first 3 * from t_employee;select f_deptid, max(f_salary) as f_salary from t_employee group by f_deptid order by f_salary desc;
> select first 3 * from t_employee;f_employeeid    f_deptid f_employeename         f_salary 1           1 Tom                    $6000.002           1 Jack                   $8000.003           1 Mary                   $6600.003 row(s) retrieved.> > select f_deptid, max(f_salary) as f_salary from t_employee group by f_deptid order by f_salary desc;f_deptid         f_salary 3         $9000.001         $8000.002         $7500.005         $6500.004 row(s) retrieved.> 

多表关联查询

自连接

select * from <table_name> a, <table_name> b where a.f_column_name1 = b.f_column_name2;

DEMO

select a.*, b.f_deptname as f_parentname from t_dept a, t_dept b where a.f_parentid = b.f_deptid;
> select a.*, b.f_deptname as f_parentname from t_dept a, t_dept b where a.f_parentid = b.f_deptid;f_deptid f_deptname  f_parentid f_parentname 1 Dev                  0 MS        2 Test                 1 Dev       3 Market               0 MS        4 HR                   0 MS        4 row(s) retrieved.> 

内连接

selct table_name1.column_name1, table_name1.column_name2, ... ,table_name2.column_name1, table_name2.column_name2, ...
from <table_name1> a
inner join <table_name2> b
on a.column_name1 = b.column_name2;

DEMO

select a.f_employeeid, a.f_employeename, b.f_deptname
from t_employee a
inner join t_dept b
on a.f_deptid = b.f_deptid;
> select a.f_employeeid, a.f_employeename, b.f_deptname
from t_employee a
inner join t_dept b
on a.f_deptid = b.f_deptid;> > > f_employeeid f_employeename f_deptname 1 Tom            Dev       2 Jack           Dev       3 Mary           Dev       4 Henry          Test      5 Rose           Test      7 Kate           Market    8 Bob            Market    7 row(s) retrieved.> 

左连接

selct table_name1.column_name1, table_name1.column_name2, ... ,table_name2.column_name1, table_name2.column_name2, ...
from <table_name1> a
left outer join <table_name2> b
on a.column_name1 = b.column_name2;

DEMO

select a.f_employeeid, a.f_employeename, b.f_deptname
from t_employee a
left outer join t_dept b
on a.f_deptid = b.f_deptid;
> select a.f_employeeid, a.f_employeename, b.f_deptname
from t_employee a
left outer join t_dept b
on a.f_deptid = b.f_deptid;> > > f_employeeid f_employeename f_deptname 1 Tom            Dev       2 Jack           Dev       3 Mary           Dev       4 Henry          Test      5 Rose           Test      6 Bill                     7 Kate           Market    8 Bob            Market    8 row(s) retrieved.> 

右连接

selct table_name1.column_name1, table_name1.column_name2, ... ,table_name2.column_name1, table_name2.column_name2, ...
from <table_name1> a
right outer join <table_name2> b
on a.column_name1 = b.column_name2;

DEMO

select a.f_employeeid, a.f_employeename, b.f_deptname
from t_employee a
right outer join t_dept b
on a.f_deptid = b.f_deptid;
> select a.f_employeeid, a.f_employeename, b.f_deptname
from t_employee a
right outer join t_dept b
on a.f_deptid = b.f_deptid;> > > f_employeeid f_employeename f_deptname MS        1 Tom            Dev       2 Jack           Dev       3 Mary           Dev       4 Henry          Test      5 Rose           Test      7 Kate           Market    8 Bob            Market    HR        9 row(s) retrieved.> 

全连接

selct table_name1.column_name1, table_name1.column_name2, ... ,table_name2.column_name1, table_name2.column_name2, ...
from <table_name1> a
full outer join <table_name2> b
on a.column_name1 = b.column_name2;

DEMO

select a.f_employeeid, a.f_employeename, b.f_deptname
from t_employee a
full outer join t_dept b
on a.f_deptid = b.f_deptid;
> select a.f_employeeid, a.f_employeename, b.f_deptname
from t_employee a
full outer join t_dept b
on a.f_deptid = b.f_deptid;> > > f_employeeid f_employeename f_deptname 1 Tom            Dev       2 Jack           Dev       3 Mary           Dev       4 Henry          Test      5 Rose           Test      6 Bill                     7 Kate           Market    8 Bob            Market    MS        HR        10 row(s) retrieved.> 

子查询

IN

select *
from <table_name1>
where column_name1 in
(select column_name2 from <table_name2>;
select *
from <table_name1>
where column_name1 in <(val1, val2, ...)>;

DEMO

select * from t_employee where f_deptid in (select f_deptid from t_dept);select * from t_employee where f_deptid in (3, 5);
> select * from t_employee where f_deptid in (select f_deptid from t_dept);f_employeeid    f_deptid f_employeename         f_salary 1           1 Tom                    $6000.002           1 Jack                   $8000.003           1 Mary                   $6600.004           2 Henry                  $5000.005           2 Rose                   $7500.007           3 Kate                   $5000.008           3 Bob                    $9000.007 row(s) retrieved.> select * from t_employee where f_deptid in (3, 5);f_employeeid    f_deptid f_employeename         f_salary 6           5 Bill                   $6500.007           3 Kate                   $5000.008           3 Bob                    $9000.003 row(s) retrieved.> 

EXISTS

select *
from <table_name1>
where exists (select 1 from <table_name2> where table_name1.column_name1 = table_name2.column_name2);

DEMO

select *
from t_employee a
where exists (select 1 from t_dept b where b.f_deptid = a.f_deptid);
> select *
> from t_employee a
> where exists (select 1 from t_dept b where b.f_deptid = a.f_deptid); f_employeeid    f_deptid f_employeename         f_salary 1           1 Tom                    $6000.002           1 Jack                   $8000.003           1 Mary                   $6600.004           2 Henry                  $5000.005           2 Rose                   $7500.007           3 Kate                   $5000.008           3 Bob                    $9000.007 row(s) retrieved.> 

GBase 8s 基本语法相关推荐

  1. [GBase 8s 教程]GBase 8s 分页语法

    GBase 8s 中支持使用SKIP m FIRST/LIMIT n 选项,或者使用TOP m,n 选项来限制SELECT语句中查询的数据的数量. 注:两者不可同时使用. 语法 带有SKIP m FI ...

  2. 国产数据库南大通用GBase 8s学习路径

    1. GBase 8s 安装与手动创建实例 2.GBase 8s 客户端工具之dbaccess 3.GBase 8s 运行模式与切换(新版本) 4.GBase 8s基本数据类型 5.GBase 8s ...

  3. GBase 8s SQL 指南:教程———6编写高级SELECT语句

    6编写高级SELECT语句 本章中增大了使用SELECT语句可执行的操作的范围.并使您能够执行更复杂的数据库查 询和数据处理.编写SELECT语句着重于SELECT语句语法中的五个子句.本章添加了 G ...

  4. GBase 8s SQL 指南:语法————2.2 SQL 语句

    ALTER ROUTINE 语句 使用 ALTER ROUTINE  语句更改先前定义的用户定义的例程(UDR)的例程修饰符或路径名.该 语句是 SQL ANSI/ISO  标准的扩展. 语法 元素 ...

  5. GBase 8s 入门

    GBase 8s产品架构介绍 产品特效介绍 支持标准Linux 内核:Cent OS,Redhat, Suse等 •支持基于x86-64的标准PC服务器,支持Power Linux平台和国产申威.飞腾 ...

  6. GBase 8s 数据库操作指南

    一.数据库日常管理指南 简介: GBase 8s数据库日常管理包括数据库模式的切换,以及服务器的监控.监控主要分为两个方面,一方面是系统级别的监控,主要包括对系统cpu的监控,以及内存的占用情况:另一 ...

  7. [GBase 8s 教程]GBase 8s NULL值处理

    NULL 值代表遗漏的未知数据.使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据, 但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. NULL 值与任何其它 ...

  8. [GBase 8s 教程]GBase 8s ALTER TABLE 命令

    在 GBase 8s 中,ALTER TABLE 命令用于添加,修改,删除一张已经存在表的列. 另外你也可以用 ALTER TABLE 命令添加和删除约束. 语法 用 ALTER TABLE 在一张已 ...

  9. [GBase 8s 教程]GBase 8s UNION 操作符

    GBase 8s UNION 操作符合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每个 SEL ...

最新文章

  1. 角度编码器 ST-3806-15-RS
  2. 【转】数据库的锁机制
  3. 160个Crackme024之Opcode加密
  4. [转] 最近点对距离问题
  5. HDU 4777 Rabbit Kingdom 树状数组
  6. 安装solc模块4.25版本
  7. PHP 使用mysqli与MySQL交互
  8. 程序设计与算法----枚举之完美立方
  9. android 模仿uc标签页,android模仿UC首页天气效果
  10. java todo error_运行我的第一个Java应用程序出错
  11. 回来bool的函数无return时返回true还是false
  12. Debug与Release版本的区别详解
  13. rpg模拟器汉化android版,nekorpg模拟器
  14. 503热敏电阻温度阻值对应表
  15. SEO长尾理论,关键词需求覆盖理论
  16. 前端开发需要学习什么?
  17. android禁止屏幕自动旋转_如何禁止屏幕翻转
  18. 在服务器端,转换amr格式音频文件为MP3格式
  19. Sleep(0)的妙用
  20. Android挂逼修炼之行---微信摇骰子和猜拳作弊器原理解析 (转载)

热门文章

  1. docker volume用法
  2. 【机器学习】数值分析01——绪论及误差分析
  3. CEC循环生态社区周而复始生生不息推进XAG令牌市场
  4. 挖矿病毒 解决思路 xmr
  5. 综测仪 IQ简介和IQview使用方法
  6. 主成份分析与因子分析的区别
  7. Julia(一)--Julia变量
  8. android如何监听应用进入后台,回到前台时做相应逻辑
  9. 配置Discuz论坛教程
  10. SQL注入—跨库注入