关于PostgreSQL的基本部分的总结

首先

这篇文章的续写在这里。

 

我听说过自己动手实践是学习最好的方法,所以我在家的云虚拟机上搭建了一个数据库容器,记录了我边操作边学习的过程。

数据库操作

链接数据库

如果从DB服务器进行连接,可以省略-h选项。

# psql -U {DBユーザー名} -d {DB名} -h {DBサーバーのホスト名}

创建数据库

# CREATE DATABASE {DB名};

表操作

# CREATE TABLE Shohin(shohin_id CHAR(4) NOT NULL,
  shohin_mei VARCHAR(100) NOT NULL,
  shohin_bunrui VARCHAR(32) NOT NULL,
  hanbai_tanka INTEGER,
  shiire_tanka INTEGER,
  torokubi DATE,
  PRIMARY KEY (shohin_id));
CREATE TABLE

数据类型种类

型型種別備考INTEGER数値型整数のみCAHR文字列型固定長の文字列型。CHAR(10)のように、カッコ内に文字列の最大長を入れる。CHAR(10)に’abc’という文字を入れた場合、残りの7枠は半角スペースで埋められる。VARCHAR文字列型可変長文字列型。VARCHAR(10)に’abc’という文字を入れた場合でも、半角スペースで埋められない。DATE日付型年月日を入れる

约束

制約備考NOT NULL空データはNGPRIMARY KEY主キーに設定。PRIMARY KEY({カラム名})で、指定するカラム名を主キーに設定する。

删除表

# DROP TABLE {テーブル名};

增加一列

# ALTER TABLE {テーブル名} ADD COLUMN {列の定義};

删除列。

# ALTER TABLE {テーブル名} DROP COLUMN {列名};

对表格进行数据输入

在开始交易之前进行限制,直到进行提交或回滚为止。

# BEGIN TRANSACTION;
BEGIN

注册数据(记录)。

# INSERT INTO Shohin VALUES ('0001', 'Tシャツ', '衣服', 1000, 500, '2009-09-20');
INSERT 0 1

确认注册并解除交易。

# COMMIT;
COMMIT

如果不确认注册,则解除交易。

# ROLLBACK
ROLLBACK

搜索桌子

选择查询

在搜索表中的数据时,使用SELECT语句。
SELECT子句和FROM子句可以大写书写,但是小写也可以运行。
使用SELECT * FROM {表名}进行搜索。

# SELECT * FROM shohin;
 shohin_id |   shohin_mei   | shohin_bunrui | hanbai_tanka | shiire_tanka |  torokubi  
-----------+----------------+---------------+--------------+--------------+------------
 0001      | Tシャツ        | 衣服          |         1000 |          500 | 2009-09-20
 0002      | 穴あけパンチ   | 事務用品      |          500 |          320 | 2009-09-11
 0003      | カッターシャツ | 衣服          |         4000 |         2800 | 

通过在*的位置插入列名称,可以仅提取所需的列。
列名称可以用逗号分隔并指定多个。
列的顺序可以自由调整。

# SELECT shohin_mei, shohin_bunrui FROM shohin;
   shohin_mei   | shohin_bunrui 
----------------+---------------
 Tシャツ        | 衣服
 穴あけパンチ   | 事務用品
 カッターシャツ | 衣服

# SELECT shohin_bunrui, shohin_mei FROM shohin;
 shohin_bunrui |   shohin_mei   
---------------+----------------
 衣服          | Tシャツ
 事務用品      | 穴あけパンチ

在Column中,也可以为其添加别名。如果使用日语,请使用双引号括起来。

# SELECT shohin_mei AS name, shohin_bunrui AS "分類" FROM shohin;
      name      |     分類     
----------------+--------------
 Tシャツ        | 衣服
 穴あけパンチ   | 事務用品
 カッターシャツ | 衣服

请提供一个独特的句子

您可以进行重复删除的搜索。
您也可以选择多列。

# SELECT DISTINCT shohin_bunrui FROM shohin;
 shohin_bunrui 
---------------
 キッチン用品
 衣服
 事務用品
(3 rows)

哪里的句子

可以写出条件式。
SELECT ~ FROM ~ WHERE {条件式};
以下的例子是仅限于搜索商品分类列为“衣服”的数据。

# SELECT * FROM shohin WHERE shohin_bunrui='衣服';
 shohin_id |   shohin_mei   | shohin_bunrui | hanbai_tanka | shiire_tanka |  torokubi  
-----------+----------------+---------------+--------------+--------------+------------
 0001      | Tシャツ        | 衣服          |         1000 |          500 | 2009-09-20
 0003      | カッターシャツ | 衣服          |         4000 |         2800 | 
(2 rows)

比较运算符

比較演算子内容 =等しい<>等しくない>=以上<=以下>より大きい<より小さい

逻辑运算符

当需要否定WHERE语句条件或使其多次匹配时使用。

# SELECT * FROM shohin WHERE shohin_bunrui='衣服' AND hanbai_tanka > 1000;
 shohin_id |   shohin_mei   | shohin_bunrui | hanbai_tanka | shiire_tanka | torokubi 
-----------+----------------+---------------+--------------+--------------+----------
 0003      | カッターシャツ | 衣服          |         4000 |         2800 | 
(1 row)
論理演算子内容AND複数条件に合致する場合ORいずれかの条件が合致する場合NOT条件に合致しない場合

参考书籍:请给出一种选项。

我在这本书中学习了很多。这本书是以PostgreSQL为主题,并且非常适合初学者的我。

数据的汇集

使用COUNT函数来计算记录数量。
在括号内指定列名时,指定的列的数据为NULL的记录将被排除。

# SELECT COUNT(*) FROM shohin;
 count 
-------
     8
(1 row)

# SELECT COUNT(shiire_tanka) FROM shohin;
 count 
-------
     6
(1 row)

使用SUM函数计算总和。

# SELECT SUM(shiire_tanka) FROM shohin;
  sum  
-------
 12210
(1 row)

还有其他几个函数可进行数值计算。

関数内容COUNTレコード数SUM合計AVG平均MAX最大MIN最小

根据分类进行计数

使用GROUP BY句可以按类别进行汇总。

# SELECT shohin_bunrui, COUNT(*) FROM shohin GROUP BY shohin_bunrui;
 shohin_bunrui | count 
---------------+-------
 キッチン用品  |     4
 衣服          |     2
 事務用品      |     2
(3 rows)

排序

你可以使用ORDER BY子句进行排序。

# SELECT * FROM shohin ORDER BY hanbai_tanka DESC;
 shohin_id |   shohin_mei   | shohin_bunrui | hanbai_tanka | shiire_tanka |  torokubi  
-----------+----------------+---------------+--------------+--------------+------------
 0006      | 圧力鍋         | キッチン用品  |         6800 |         5000 | 2009-09-20
 0003      | カッターシャツ | 衣服          |         4000 |         2800 | 
 0004      | 包丁           | キッチン用品  |         3000 |         2800 | 2009-01-15
ソートキー内容ASC昇順で並べる。ソートキーを省略した場合は昇順となる。DESC降順で並べる。

 

广告
将在 10 秒后关闭
bannerAds