常用SQL

未分类

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),
        '", "'
    ) || '")';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值