达梦数据库的一些sql语句

查看表结构,调用存储过程:call SP_TABLEDEF("模式名", "表名")

查看表属于哪个用户:select * from dba_tables where TABLE_NAME='表名';

查询某模式下的所有表名:select TABLE_NAME from dba_tables where owner='SYSDBA';

查询数据库兼容情况:select * from vdm_ini where "VDM_INI".PARA_NAME='COMPATIBLE_MODE';

修改兼容模式:sp_set_para_value(2,'COMPATIBLE_MODE',4); 0表示不兼容 2表示部分兼容oracle 3表示部分兼容SQL 4表示部分兼容mysql

查询当前用户权限:select grantee,privilege from dba_sys_privs where grantee='角色名';

查询角色:select grantee,granted_role from dba_role_privs where grantee='用户名';

查询用户状态:select username, ACCOUNT_STATUS from dba_users ;

获取表的所有字段:select * from all_tab_columns where owner='模式名' and Table_Name='表名' \\

查询所有表空间:select * from dba_tablespaces

PARTITION子句指定分区
CREATE TABLE callinfo(
caller CHAR(15),
callee CHAR(15),
time DATETIME,
duration INT)
PARTITION BY RANGE(time)(
PARTITION p1 VALUES LESS THAN ('2018-04-01')
...)
)

查询分区语句:select * from callinfo PARTITION (p1);
具有DBA权限删除某一列时,需要带上CASCADE参数
ALTER TABLE PRODUCTION.PRODUT DROP PRODUCT_SUBCATEGORYID CASCADE;
增加UNIQUE约束 使用了ADD CONSTRAINT方法
ALTER TABLE PRODUCTION.PRODUCT ADD CONSTRAINT CON_PRODUCTNAME UNIQUE(NAME);
合并分区且修改分区 split子句拆分分区
ALTER TABLE PRODUCTION.PRODUCT_INVENTORY MERGE PARTITIONS P1,P2 INTO PARTITIONS P5;
ALTER TABLE T1 SPLIT PARTITION P1 AT(5,5) INTO (PARTITION P5, PARTITION P6);
ALTER TABLE T1 SPLIT PARTITION P3 INTO(PARTITION P7 VALUES LESS THAN(25,25),PARTITION P8 VALUES LESS THAN (28,28),PARTITION P9)
内连接:
--自然连接 natural join --查询不需要指定连接列,列名自己过滤,两个表的连接列的列名和数据类型要一致
--交叉连接cross join(笛卡集)---尽量避免,容易拖死数据库
--join ... using 子句 在满足多个连接列时,可以指定一个列做连接,连接列的前面不能加表名或者是前缀;join 关键字指定连接的两张表,using 指明连接列;要求 using 中的列存在于两张连接表中。
--join ... on子句 join 关键字指定连接的两张表,on 子句指定连接条件表达式,其中不允许出现 rownum,可为表设置简单代称。
--join ... on子句 join 关键字指定连接的两张表,on 子句指定连接条件表达式,其中不允许出现 rownum,可为表设置简单代称。
--hash join 可以通过 hint 强制走 hash join 优化器 CBO 根据小表的连接列生成 hash 值,连接大表,扫描大表

单子查询和多子查询(in,any,all)

TRUNCATE TABLE PRODUCTION.PRODUCT_REVIEW; --只删除表中记录,不删除表中结构

ALTER TABLE ORDERS REBULID SECTION; --对事务表ORDERS进行重整

ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD' --设置日期格式

COMMENT ON TABLE/COLUMN ... IS ... ; --添加注释信息

ALTER SYSTEM SET 'SORT_BUF_SIZE' =200 DEFERRED MEMORY; --动态 修改参数,对现在不生效,之后创建的才生效,延迟

ALTER SYSTEM SET 'MTAB_MEN_SIZE' =1200 spfile; --设置静态参数

ALTER SESSION SET 'HAGR_HASH_SIZE' = 2000; --修改当前会话

STAT 30 ON INDEX PURHASING.S1; --对PURHASING模式下的索引S1生成统计信息,采样率为30%

select * from tt minus/except select * from kk --使用minus或者是except查询tt中有kk中没有的数据

select * from tt intersect select * from kk --使用intersect查询tt和kk中都存在的数据

select * from production where production.row like "曹雪芹" --用.row来代替所有行的模糊查询

select listagg(name,',') within group(order by name) from product --首先按group by语句分组,再在组内按照within group中的order by进行排序

select name, ntile(3) over(order by nowprice) as ntile from production.product --根据nowprice使用ntile函数分成3组

开窗函数:
开窗函数() over (partition by 列名 order by列名) 。
● partition: 需要分区的列(可不使用)
● order bye: 对分区内排序
使用方法 函数含义
row_number() over(partition by col1 order by col2) 相等的值对应的排名相同,序号从1到n连续。
rank() over(partition by col1 order by col2) 但若有并列的名称,会占用下一名次的,则序号从1到n不连续。如果有两个人都排在第3名,则没有第4名
dense_rank() over(partition by col1 order by col2) 但若有并列的名称,不会占用下一名次的,则序号从1到n连续。如果有两个人都排在第3名,则下一名还是第4名
ntile( n ) over(partition by col1 order by col2) 将每个分区内排序后的结果均分成N个桶,排序对应的数字为桶号。如果不能平均分配,则较小桶号的桶分配额外的行,并且各个桶中能放的数据条数最多相差1
for update --只要for update语句没提交 其他会话黑锅就不能修改此结果集

CREATE CONTEXT INDEX INDEX1 ON PRODUCTION.PRODUCT(DESRIPTION) LEXER CHINESE_VGRAM_LEXER; --在DESRIPTION上添加全文索引

ALTER CONTEXT INDEX INDEX1 ON PRODUCTION.PRODUCT REBULID; --完全填充全文索引

SELECT PRODUCTID,NAME FROM PRODUCTION.PRODUCT WHERE CONTAINS(DESCRIPTION,'语言') --全文检索带‘语言’

临时表:
on commit delete rows --事务级
on commit preserve rows --会话级
create table test (a int,b image);
@insert into test values(1,@'e:\DSC_1663.jpg') --插入大对象

%TYPE 类型可以将变量同表列的类型进行绑定
%ROWTYPE 返回一个基于表定义的运算类型

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352

推荐阅读更多精彩内容