當前位置:首頁 » 編程語言 » postgresql增加欄位命令
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

postgresql增加欄位命令

發布時間: 2023-03-15 04:02:10

❶ postgresql中怎麼用psql命令

連接資料庫, 默認的用戶和資料庫是postgres
psql -U user -d dbname

切換資料庫,相當於mysql的use dbname
\c dbname
列舉資料庫,相當於mysql的show databases
\l
列舉表,相當於mysql的show tables
\dt
查看錶結構,相當於desc tblname,show columns from tbname
\d tblname

\di 查看索引

創建資料庫:
create database [資料庫名];
刪除資料庫:
drop database [資料庫名];
*重命名一個表:
alter table [表名A] rename to [表名B];
*刪除一個表:
drop table [表名];

*在已有的表裡添加欄位:
alter table [表名] add column [欄位名] [類型];
*刪除表中的欄位:
alter table [表名] drop column [欄位名];
*重命名一個欄位:
alter table [表名] rename column [欄位名A] to [欄位名B];
*給一個欄位設置預設值:
alter table [表名] alter column [欄位名] set default [新的默認值];
*去除預設值:
alter table [表名] alter column [欄位名] drop default;
在表中插入數據:
insert into 表名 ([欄位名m],[欄位名n],......) values ([列m的值],[列n的值],......);
修改表中的某行某列的數據:
update [表名] set [目標欄位名]=[目標值] where [該行特徵];
刪除表中某行數據:
delete from [表名] where [該行特徵];
delete from [表名];--刪空整個表
創建表:
create table ([欄位名1] [類型1] <references 關聯表名(關聯的欄位名)>;,[欄位名2] [類型2],......<,primary key (欄位名m,欄位名n,...)>;);
\right 顯示 PostgreSQL 的使用和發行條款
\encoding [字元編碼名稱]
顯示或設定用戶端字元編碼
\h [名稱] SQL 命令語法上的說明,用 * 顯示全部命令
\prompt [文本] 名稱
提示用戶設定內部變數
\password [USERNAME]
securely change the password for a user
\q 退出 psql

可以使用pg_mp和pg_mpall來完成。比如備份sales資料庫:
pg_mp drupal>/opt/Postgresql/backup/1.bak

❷ 資料庫如何增加欄位

簡單的方法:

1)create 一個新資料庫,(增加欄位後的)
2)從舊資料庫里導入,導入相同的欄位,新欄位空白,或固定的值。

❸ postgreSQL怎樣創建一個序列號/自動遞增的欄位

在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE許可權, CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加幾個 START WITH 1 -- 從1開始計數 NOMAXVALUE -- 不設置最大值 NOCYCLE -- 一直累加,不循環 CACHE 10; 一旦定義了emp_sequence,你就可以用CURRVAL,NEXTVAL CURRVAL=返回 sequence的當前值 NEXTVAL=增加sequence的值,然後返回 sequence 值 比如: emp_sequence.CURRVAL emp_sequence.NEXTVAL 可以使用sequence的地方: - 不包含子查詢、snapshot、VIEW的 SELECT 語句 - INSERT語句的子查詢中 - NSERT語句的VALUES中 - UPDATE 的 SET中 可以看如下例子: INSERT INTO emp VALUES (empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20); SELECT empseq.currval FROM DUAL; 但是要注意的是: - 第一次NEXTVAL返回的是初始值;隨後的NEXTVAL會自動增加你定義的INCREMENT BY值,然後返回增加後的值。CURRVAL 總是返回當前SEQUENCE的值,但是在第一次NEXTVAL初始化之後才能使用CURRVAL,否則會出錯。一次NEXTVAL會增加一次SEQUENCE的值,所以如果你在同一個語句裡面使用多個NEXTVAL,其值就是不一樣的。明白? - 如果指定CACHE值,ORACLE就可以預先在內存裡面放置一些sequence,這樣存取的快些。cache裡面的取完後,oracle自動再取一組到cache。 使用cache或許會跳號, 比如資料庫突然不正常down掉(shutdown abort),cache中的sequence就會丟失. 所以可以在create sequence的時候用nocache防止這種情況。 2、Alter Sequence 你或者是該sequence的owner,或者有ALTER ANY SEQUENCE 許可權才能改動sequence. 可以alter除start至以外的所有sequence參數.如果想要改變start值,必須 drop sequence 再 re-create . Alter sequence 的例子 ALTER SEQUENCE emp_sequence INCREMENT BY 10 MAXVALUE 10000 CYCLE -- 到10000後從頭開始 NOCACHE ; 影響Sequence的初始化參數: SEQUENCE_CACHE_ENTRIES =設置能同時被cache的sequence數目。 可以很簡單的Drop Sequence DROP SEQUENCE order_seq; 示例Sequence: CREATE SEQUENCE SCOTT.DMIFPOSTID START WITH 261 INCREMENT BY 1 NOMINVALUE NOMAXVALUE NOCYCLE CACHE 20 NOORDER 3、如何使用 第一種方法:一般來說需要新建一個觸發器(TRIGGER),使得在插入數據之前先運行Sequence生成自增號。示例Trigger -- Create table create table TEST ( SEQ INTEGER not null, NAME VARCHAR2(20), PWD VARCHAR2(20) ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); -- Create/Recreate primary, unique and foreign key constraints alter table TEST add constraint PK_TEST primary key (SEQ) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); create or replace trigger TI_TEST before insert on test for each row declare -- local variables here begin SELECT SEQ_TEST.NEXTVAL INTO :NEW.SEQ FROM DUAL; end TI_TEST; 插入語句 insert into test values('aa','aa'); 第二種方法:可以在插入數據時直接調用。 insert into table(id,name) values(seq_name.nextval,'名字');