达梦数据库相关操作语句
“这个字段在 Java 对象里有,但数据库表里不存在,不要拼到 SQL 里。”
– 如果字段还不存在,直接 ADD
ALTER TABLE ABC.PERSON
ADD "NAME" NUMBER(1,0) DEFAULT 0;
– 给字段加注释
COMMENT ON COLUMN ABC.PERSON.NAME IS '状态,1待审计 2已审计';
–如果字段存在
ALTER TABLE ABC.PERSON
MODIFY PERSON NUMBER(1,0) DEFAULT 0;
–去重后列出 T_G_D_DEVICE 表所有列,并额外给 IP 做 DISTINCT
SELECT DISTINCT IP
FROM JYZYQ.T_G_D_DEVICE;
在达梦(DM)里要找出 两张表有哪些字段同名,最简单的是直接查系统字典视图 ALL_TAB_COLUMNS(或 USER_TAB_COLUMNS、DBA_TAB_COLUMNS):
– 查当前用户下两张表的同名字段
SELECT COLUMN_NAMEFROM USER_TAB_COLUMNSWHERE TABLE_NAME IN ('T_G_D_WORK_ORDER', 'T_G_D_SESSION')
– 表名大写GROUP BY COLUMN_NAMEHAVING COUNT(*) = 2; – 出现两次说明两张表都有
删除某列字段和该字段中数据的sql
ALTER TABLE JYZYQ.T_G_D_AUDIT_SESSION_LOG DROP COLUMN EVENT;
多表联合,stationName、User等用于前端输出
SELECT a.*, d.STATION as stationName, b.USER_NAME as User, b.CODE as operateCode, b.WORK_NUM as workNum,
c.TITLE as rTitle, c.DETAIL as Detail, e.SYS_NAME as jumrName, f.RESULT as Result,
j.J_ACCOUNT as jAccount
FROM T_G_D_AUDIT_SESSION_LOG a
LEFT JOIN J j on j.ID=a.SESSION_ID
LEFT JOIN B b on b.code = j.OPERATE_CODE
LEFT JOIN C c on b.NUM = c.NUM
LEFT JOIN D d on b.DEVICE_ID = d.ID
LEFT JOIN E e on e.LOGIN_NAME = j.JUMPSERVER_ACCOUNT
LEFT JOIN F f on f.SESSION_ID = a.SESSION_ID
查询某表的某字段
SELECT *
FROM ABC.PERSON
WHERE "ID" = '051d118bf10d4bc198ef6d77a4381c70';
查询某表的某字段并添加某字段值:
UPDATE ABC.PERSON
SET OPERATE_CODE = 'CZ1921871948525350912'
WHERE ID = '051d118bf10d4bc198ef6d77a4381c70';
查询某表的某字段并添加多个字段值
> UPDATE ABC.PERSON SET OPERATE_CODE = 'qwer',
> STATUS_CODE = 'A1' -- 改的字段/值
> WHERE ID = '051d118bf10d4bc198ef6d77a4381c70';
commit,记住一定要点提交