一. 语法命令
1. 基础语法
创建数据库
create database testdb;
删除数据库
postgres=# drop database testdb;
DROP DATABASE
postgres=#
创建表
创建表之前要连接指定的数据库 \c test;
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);
写法1:
test=# create table company(id int primary key not null , name text not null , age int not null ,address char(50) , salary real);
写法2:
test=# CREATE TABLE COMPANY(
test(# ID INT PRIMARY KEY NOT NULL,
test(# NAME TEXT NOT NULL,
test(# AGE INT NOT NULL,
test(# ADDRESS CHAR(50),
test(# SALARY REAL
test(# );
# create tabke company(); 表示创建名为company的表
# 其中包括几个字段
# 每个字段新建的顺序按照 1.字段名 2.字段数据类型 3.是否可以为空 来定义
primary key主键不能为空 id int primary key not null
name text not null
age int not null
查看架构(schema)模式
\d 查看架构模式
\d tablename 查看表格信息
删除表
- 连接到对应的数据库 \c test;
test-# \c test;
您现在已经连接到数据库 "test",用户 "postgres".
test-#
- drop table company;
test=# drop table company;
DROP TABLE
test=#
- \d 查看删除后的目录结构
由于我一开始只有一张company; 删除后, 显示没有其他的表
更改表数据
比如我这里有一张pg_equipment的表
2. 插入记录
2.1 语法
PostgreSQL INSERT INTO 语句用于向表中插入新记录。
我们可以插入一行也可以同时插入多行。
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
- column1, column2,...columnN 为表中字段名。
- value1, value2, value3,...valueN 为字段对应的值。
在使用 INSERT INTO 语句时,字段列必须和数据值数量相同,且顺序也要对应。
如果我们向表中的所有字段插入值,则可以不需要指定字段,只需要指定插入的值即可:
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
2.2 实例
在test数据库中创建COMPANY表
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL,
JOIN_DATE DATE
);
\d company 查看创建表
插入数据
test=# INSERT INTO COMPANY (id,name,age,address,salary,join_date) VALUES (1, ‘Paul‘, 32, ‘California‘, 2000.00,‘2001-07-13‘);
INSERT 0 1
test=#
查看新增的表中的数据
SELECT * FROM company;
如果要忽略某一字段 如salary 就把对应某个字段删去, 对应的value值也删去
test=# INSERT INTO company (id,name,age,address,join_date) VALUES (2, ‘yang‘, 18, ‘suzhou‘, ‘2012-7-13‘);
INSERT 0 1
同理:
以下插入语句 join_data 字段使用 default 子句来设置默认值,而不是指定值:
runoobdb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (3, ‘Teddy‘, 23, ‘Norway‘, 20000.00, DEFAULT );
INSERT 0 1
插入多行
runoobdb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (4, ‘Mark‘, 25, ‘Rich-Mond ‘, 65000.00, ‘2007-12-13‘ ), (5, ‘David‘, 27, ‘Texas‘, 85000.00, ‘2007-12-13‘);
INSERT 0 2
使用 SELECT 语句查询表格数据:
使用 SELECT 语句查询表格数据:
runoobdb=# SELECT * FROM company;
ID NAME AGE ADDRESS SALARY JOIN_DATE
---- ---------- ----- ---------- ------- --------
1 Paul 32 California 20000.0 2001-07-13
2 Allen 25 Texas 2007-12-13
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0 2007-12-13
5 David 27 Texas 85000.0 2007-12-13
3. SELECT语法
3.1 语法
SELECT 语句语法格式如下:
SELECT column1, column2,...columnN FROM table_name;
- column1, column2,...columnN 为表中字段名。
- table_name 为表名
3.1.1 读取表中所有数据
SELECT * FROM table_name;
3.1.2 读取指定的字段和name:
SELECT ID,NAME FROM company;