Chinaunix首页 | 论坛 | 博客
  • 博客访问: 109135
  • 博文数量: 18
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 690
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-23 17:03
个人简介

北京神州立诚科技有限公司售前技术经理 ,负责公司产品售前技术支持工作及 Redhat Linux的虚拟化与Linux(redhat、suse)技术支持与培训。红帽国内前50名RHCA。PostgreSQL中文社区线下活动组织者之一。

文章分类

全部博文(18)

文章存档

2013年(18)

分类: Mysql/postgreSQL

2013-05-21 17:36:17


命令行操作

如果你键入你的SQL语句(通过命令行的工具psql),你需要在末尾加入一个分号。分号告诉psql已经到达命令的末尾了,因为很长的命令可能扩展到不止一行。

psql的基本命令

命令

描述

\?

获得帮助消息

\do

列出操作类型

\dt

列出表

\dT

列出类型

\h 

列出SQL命令的帮助;用实际的命令代替

\i 

执行文件里头的命令

\q

退出psql

使用psql工具:

/opt/PostgresPlus/9.2AS/bin/psql -U  [-d] 

点击(此处)折叠或打开

  1. [root@edb ~]# /opt/PostgresPlus/9.2AS/bin/psql -U enterprisedb edb
  2. Password for user enterprisedb:
  3. psql (9.2.1.3)
  4. Type "help" for help.

edb=# \l  查看全部数据库名

如何创建TABLE?在不知道语法的时候,可以通过 \h 命令名 查询。

点击(此处)折叠或打开

  1. edb=# \h create table
  2. Command: CREATE TABLE
  3. Description: define a new table
  4. Syntax:
  5. CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [
  6.   { column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ]
  7.     | table_constraint
  8.     | LIKE source_table [ like_option ... ] }
  9.     [, ... ]
  10. ] )
  11. [ INHERITS ( parent_table [, ... ] ) ]
  12. [ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
  13. [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
  14. [ TABLESPACE tablespace_name ]

建立一个空的TABLE

点击(此处)折叠或打开

  1. edb=# create table textnew();
  2. CREATE TABLE
  3. edb=#

通过\dt查看数据库里面的全部表

在空的TABLE里增加字段

alter table  add  ;

点击(此处)折叠或打开

  1. edb=# \dt textnew;
  2.                List of relations
  3.     Schema | Name | Type | Owner
  4. --------------+---------+-------+--------------
  5.  enterprisedb | textnew | table | enterprisedb
  6. (1 row)

  7. edb=# select * from textnew;
  8. --
  9. (0 rows)

  10. edb=# alter table textnew add uid serial;
  11. NOTICE: ALTER TABLE will create implicit sequence "textnew_uid_seq" for serial column "textnew.uid"
  12. ALTER TABLE
  13. edb=# alter table textnew add u_name character(10);
  14. ALTER TABLE
  15. edb=# select * from textnew;
  16.  uid | u_name
  17. -----+--------
  18. (0 rows)
删除字段:

alter table  drop  ;

点击(此处)折叠或打开

  1. edb=# alter table textnew add u_passwd character(10);
  2. ALTER TABLE

  3. edb=# select * from textnew;
  4.  uid | u_name | u_passwd
  5. -----+--------+----------
  6. (0 rows)

  7. edb=# alter table textnew drop u_passwd;
  8. ALTER TABLE

建立主键

alter table  add constraint  primary key(column_name);

点击(此处)折叠或打开

  1. edb=# alter table textnew add constraint pk_uid primary key(uid);
  2. ALTER TABLE

删除表:

点击(此处)折叠或打开

  1. edb=# drop table textnew;
  2. DROP TABLE

提高建表的效率:(通过以下方法,可以快速批量地建立数据库和表结构)

第一种:

点击(此处)折叠或打开

  1. edb=# create table testnew(uid serial,u_name varchar(10),u_passwd varchar(10),constraint pk_uid primary key(uid));
  2. NOTICE: CREATE TABLE will create implicit sequence "testnew_uid_seq" for serial column "testnew.uid"
  3. CREATE TABLE
  4. edb=# select * from testnew;
  5.  uid | u_name | u_passwd
  6. -----+--------+----------
  7. (0 rows)

第二种:

在当前目录下编写一个.sql文件

点击(此处)折叠或打开

  1. [root@edb /]# cat createTB.sql
  2. CREATE TABLE customer(
  3.     customer_id serial,
  4.     title char(4),
  5.     fname varchar(32),
  6.     lname varchar(32) NOT NULL,
  7.     addressline varchar(64),
  8.     town varchar(32),
  9.     zipcode char(10) NOT NULL,
  10.     phone varchar(16),
  11.     CONSTRAINT customer_pk PRIMARY KEY (customer_id)
  12. );

点击(此处)折叠或打开

  1. edb=# i createTB.sql
  2. psql:createTB.sql:11: NOTICE: CREATE TABLE will create implicit sequence "customer_customer_id_seq" for serial column "customer.customer_id"
  3. CREATE TABLE
  4. edb=# dt customer;
  5.                List of relations
  6.     Schema | Name | Type | Owner
  7. --------------+----------+-------+--------------
  8.  enterprisedb | customer | table | enterprisedb
  9. (1 row)

第三种:选择数据库 --> 运行SQL语句



编写SQL语句:


运行指定的SQL语句:

阅读(2913) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~