未分类
1.字段操作
- 增加字段
ALTER TABLE 表名 ADD 字段名 NUMERIC (18, 0);
- 删除字段
ALTER TABLE 表名 DROP IF EXISTS 字段名;
- 改变字段类型
ALTER TABLE 表名 ALTER 字段名 TYPE text;
- 改变字段名
ALTER TABLE 表名 RENAME 字段名 TO 新字段名;
2.约束
- 删除索引
DROP INDEX IF EXISTS 索引名;
- 创建一个索引
CREATE INDEX 索引名 ON 表名 (字段);
- 创建一个唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名 (字段);
- 创建一个唯一索引,多字段联合索引
CREATE UNIQUE INDEX 索引名 ON 表名(字段1, 字段2);
3.批量更新数据
- 批量更新数据,写法:
UPDATE 表 SET 字段 = REPLACE (字段, '字段值里面需要替换的内容', '替换后的内容');
- 把列中凡是有2011的全部修改成2014,如 lieming 里的201101131431改成201401131431,写法:
UPDATE tab SET lieming = REPLACE (lieming, '2011', '2014');
4.查询重复数据
- 查询字段1,字段2,字段3都重复的记录,并且只显示一条
SELECT DISTINCT
t1.*
FROM
表 t1,
表 t2
WHERE
AND t1.字段1 = p2.字段1
AND t1.字段2 = p2.字段2
AND t1.字段3 = p2.字段3
5.给字段追加数据
- 将某个字段更新,字段=字段+字符串,某字段值等于原值加上一个字符串
- postgreSQL (用 || 来连贯字符串)
update 表名 SET 字段= ‘添加的字符串’ || 字段;
- MySQL (用 concat 来连贯字符串)
update 表名 SET 字段= concat(‘添加的字符串’,name);
postgres
参考网址
postgres9.5中文文档
1.系统
- 查看数据库连接情况(postgres测试可用)
select * from pg_stat_activity
2.时间转换
- 将字符串格式的时间转化成timestamp,然后进行计算,最后转化成字符串
SELECT
to_char(
to_timestamp(
holdendtime,
'yyyy-MM-dd HH24:MI:SS.MS'
) + '1098 day',
'yyyy-MM-dd HH24:MI:SS.MS'
)
FROM
score_detail
3.Json相关
3.1解析json数组
将一个json数组字符串转化成列
SELECT
json_array_elements (user_json) -> 'username' username,
json_array_elements (user_json) -> 'age' age
FROM
(
SELECT
'[{"username": "张三", "age": 10}, {"username": "李四", "age": 20}]' :: json user_json
) AS t1
实例1:
多条也会解析成列表,
SELECT
json_array_elements (lv_num_json) -> 'id' ID,
json_array_elements (lv_num_json) -> 'rhname' RHNAME
FROM
(
SELECT
rights_holder_list :: json lv_num_json
FROM
copyright_certificate_apply
WHERE
ID = '97fb46ab8e154858a6ad0fc2e4b6e6d1'
) AS t1
4.行合并
SELECT
'("' || array_to_string(
ARRAY (SELECT NAME FROM hs_user),
'", "'
) || '")';