postgresql-生成随机数据

1.

函数1:
CREATE FUNCTION "public"."NewProc"(length int4)
  RETURNS "pg_catalog"."text" AS $BODY$
declare chars text[] := '{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}';
  result text := '';
  i integer := 0;
begin
  if length < 0 then
    raise exception 'Given length cannot be less than 0';
  end if;
  for i in 1..length loop
    result := result || chars[1+random()*(array_length(chars, 1)-1)];
  end loop;
  return result;
end;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE COST 100
;

ALTER FUNCTION "public"."NewProc"(length int4) OWNER TO "postgres";

NewProc是函数的名字,可以自己修改,后边代码中会用到,名称为random_string,用于创建随机字符串

函数2:
CREATE FUNCTION "public"."NewProc"(length int4)
  RETURNS "pg_catalog"."text" AS $BODY$
declare
  chars text[] := '{0,1,2,3,4,5,6,7,8,9}';
  result text := '';
  i integer := 0;
begin
  if length < 0 then
    raise exception 'Given length cannot be less than 0';
  end if;
  for i in 1..length loop
    result := result || chars[1+random()*(array_length(chars, 1)-1)];
  end loop;
  return result;
end;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE COST 100
;

ALTER FUNCTION "public"."NewProc"(length int4) OWNER TO "postgres";

用于创建随机电话,后边会用到,名字为random_phone,

2.插入表sql语句

insert into table_name(column1,column2,,)

values(value1,value2,,,);

上述语句用于一次插入一条记录

3.当一次插入多条记录时,使用如下语句:

insert into table_name(column1,column2,....)

select value1,value2,..

[from  ...]

[where ...]

方括号中都可以缺省

4.

更新表中数据

update table_name set  column=value
WHERE  id in(子查询)

5.'||'在sql语句中起接字符串的作用

6.alter 表

在表中增加新字段,alter table table_name add column column_name character;

7.在postgresql shell 中查看所有的表:  \d

查看某一个具体的表:   \d table_name;

8.在现有的表中增加主键

alter table table_name add primary ket(column_name)

9.删除主键

alter table table_name drop constraint primarykeyname

primarykeyname是系统自动生成的名字,不是用户自己定义的名字,这一点需要主要

10.增加外键

alter table table_name1 add foreign key(column_name) references table_name2(column_name) on update cascade on delete cascade;

在table_name1中增加外键,那么这个外键应该是保存在table_name1中,删除的时候也只能删除这个表中的外键,不能乱删。

on update cascade 更新一起更新

on update restrict 更新不允许一起更新

on delete cascade 删除一起删除

on delete restrict 删除不允许一起删除

11.增加唯一值约束

alter table table_name add constraint unique_name unique(column);

注意:unique_name 在同个数据库中名字不能重复x

11.修改字段名字

alter table table_name rename column old_column to new_column;

12.修改字段的类型

alter table table_name alter column column_name type type_name;

13.删除外键

alter table table_name1 drop constraint  foreign_key_name;

外键需要知道谁参照谁,不能乱删除;参照的表中也存放了该外键的定义。

14.强制修改类型,使用using

alter table table_name alter column_name type character using column_name::character;

15.增加约束

alter table table_name alter column column_name character check(column_name>10)

16.增加默认值

alter table table_name alter column column_name set default 10;

删除默认值  alter table table_name alter column column_name drop default;

猜你喜欢

转载自blog.csdn.net/colorful_sun/article/details/81168878