-- 关联表,然后赋值
update tb2 set tb2.fid = t.id from (select tb1.fid id from tb2
left join tb1 on tb2.name = tb1.name) t;
-- 提取列中一部分内容
update flevel4 set tmp_name = substr(log_name, 0, strpos(log_name, '区')+1) where log_name like '%区%';
-- 添加外键约束
alter table datalist
add constraint datalist_level3_id_fk
foreign key (level3_id) references level3 (id);
-- 修改数据库编码
update pg_database set encoding = pg_char_to_encoding('GBK') where datname = 'nyc';
-- 查看数据库编码
select * from pg_database where datname='nyc';
-- 纵向合并2个表
select * from table1 union all select * from table2
-- 删除表
drop table 表名;
-- 更新值
update 表名 set "Name" = "PQMC" where fid > 0; -- 列名Name的值等于列名PQMC的值
update 表名 set "Name" = 'PQMC' where fid > 0; -- 列名Name的值为'PQMC'
-- 获取表的所有列名
select column_name from information_schema.columns where table_name=表名;
-- 删除列
alter table 表名 drop column 列名;
-- 修改表名
alter table 表名 rename to 新表名;
-- 修改列类型,并设置默认值
alter table 表名 alter column "DJMC" set data type varchar using '9999';
-- 添加列
alter table "CQ" add column "DJMC" varchar;
-- 修改列名
alter table "CQ" rename "sjmc" to "SJMC";
-- 获取连接服务下的所有表名(表名开头不包含pg_和sql_)
select tablename from pg_tables
where tablename not like 'pg_%' and tablename not like 'sql_%'
-- 获取连接服务的所有数据库名
select datname from pg_database;
-- 表连接
select s.id, s.name, c.title from student as s
left join class as c on s.class_id = c.id; --通过student表的class_id列和class表的id列进行两个表连接
-- 为表添加外键(外键关联的一定是另一个表的主键)
alter table student -- 添加外键的表名
add constraint fk_student_lesson -- 外键的名称
foreign key(lesson_id) references lesson(id); --student表的lesson_id列的外键为lesson表的主键列id
-- 创建带外键的表
create table emp(
id int primary key,
name varchar(30),
salary nemueric(9,2),
dept_id int,
constraint fk_emp_dept foreign key(dep_id) references dept(id) --emp表的dept_id列的外键为dept表的主键列id
);
-- 为表添加主键
alter table student -- 添加主键的表名
add constraint pk_student_id -- 主键的名称
primary key(id); -- 主键的列名
-- 创建带有主键的表
create table emp(
id int primary key, -- 列级约束主键,不能指定主键名称
name varchar(30),
salary numeric(9,2)
);
create table emp(
id int,
name varchar(30),
salary numeric(9,2),
constraint pk_emp primary key(id) -- 表级约束的主键,可以指定主键的名称
);
-- 创建序列
create sequence teacher_id_seq start with 1; --从1开始的序列
-- 为表的列设置自增序列
alter table teacher alter column id set DEFAULT nextval('teacher_id_seq'::regclass); --teacher表的id列为自增序列
-- 更新序列
alter sequence teacher_id_seq restart with 7; --起始值为7