字段基本类型
int
char(num)
varchar(num)
serial
更多详情
限制
not null
primary key
unique
登录
psql -U dbuser 默认登录进入名为dbuser的数据库中,如果不存在请-d指定相应进入的数据库
psql -U username -p port -h localhost -d dbname
命令行
创建数据库用户具有超级权限
createuser dbuser -s ;
createdb dbname ;
password dbuser ;
psql 进入postgres
基本命令
\l 显示当前所有的数据库
\c dbname 切换进入数据库
\c 查看当前的连接信息
\d 当前库的所有表信息
\d tablename 当前表的所有字段信息
\q 退出登录
创建用户
create user dbuser ;
password dbuser ;
create user dbuser with password 'pwd' ;
create database dbname owner dbuser ;
授权
grant all privileges on database dbname to dbuser ;
创建数据库
create database dbname ;
drop database dbname ;
备份数据
pg_dump -h host -U user dbname > file.sql.bak
还原数据
psql -h host -U user -d dbname < file.sql.bak
创建新表
//serial 指定自增
create table users(id serial primary key,name varchar(20) not null,info text,lasttime date,age int not null default 23) ;
插入数据
INSERT INTO user_tbl(name, signup_date) VALUES(';张三';, ';2013-12-22';);
选择记录
select * from tablename limit length offset start ;
更新数据
UPDATE user_tbl set name = '李四' WHERE name = '张三' ;
删除记录
DELETE FROM user_tbl WHERE name = '李四' ;
清空表数据
truncate table tset1
delete from tset1
添加栏位
ALTER TABLE user_tbl ADD email VARCHAR(40);
更新结构
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
alter table gdt_accounts alter system_industry_id type varchar(12) ;
更名栏位
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
删除栏位
ALTER TABLE user_tbl DROP COLUMN email;
表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
删除表格
DROP TABLE IF EXISTS backup_tbl;
sql优化
postgreSQL获取数据库中所有table表名
SELECT tablename FROM pg_tables
WHERE tablename NOT LIKE 'pg%'
AND tablename NOT LIKE 'sql_%'
ORDER BY tablename;
postgreSQL获取某个表tablename所有字段名称 , 类型,备注,是否为空 等
SELECT a.attname as name, pg_type.typname as typename, col_description(a.attrelid,a.attnum) as comment,a.attnotnull as notnull
FROM pg_class as c,pg_attribute as a inner join pg_type on pg_type.oid = a.atttypid
where c.relname = 'tablename' and a.attrelid = c.oid and a.attnum>0
postgreSQL获取某个表tablename的主键信息
select pg_attribute.attname as colname,pg_type.typname as typename,pg_constraint.conname as pk_name from
pg_constraint inner join pg_class
on pg_constraint.conrelid = pg_class.oid
inner join pg_attribute on pg_attribute.attrelid = pg_class.oid
and pg_attribute.attnum = pg_constraint.conkey[1]
inner join pg_type on pg_type.oid = pg_attribute.atttypid
where pg_class.relname = 'tablename'
and pg_constraint.contype='p'
PostgreSQL获取数据库中所有view名视图
SELECT viewname FROM pg_views
WHERE schemaname ='public'
添加注释
postgresql给列添加注释信息
create table user( userid int not null, phonenumber int); comment on column user.userid is 'The user ID';
postgresql给表添加注释信息
comment on table user is 'Our session logs';
postgresql 查询注释信息
select description from pg_descriptionjoin pg_class on pg_description.objoid = pg_class.oidwhere relname = 'user'
查询指定schema下注释信息
select description from pg_description join pg_class on pg_description.objoid = pg_class.oid join pg_namespace on pg_class.relnamespace = pg_namespace.oid where relname = '' and nspname=''
添加索引
创建索引
CREATE INDEX indexname ON test1 (column);
分析优化
explain analyze select 1 from tbl_user where user_spell like '%CYL%';