摘要:它在其他開放源代碼數據庫系統和專有系統之外,為用戶又提供了一種選擇。將插入空間以填補任何額外的空間。始終被視為唯一值上述兩個約束的組合。表范圍的約束可以是,,或。如何在中創建表我們將創建一個名為的表,它定義了各種游樂場設備。
歡迎大家前往騰訊云+社區,獲取更多騰訊海量技術實踐干貨哦~
本文由angel_郁 發表于云+社區專欄什么是PostgreSQL?
PostgreSQL是自由的對象-關系型數據庫服務器,在靈活的BSD風格許可證下發行。它在其他開放源代碼數據庫系統和專有系統之外,為用戶又提供了一種選擇。 我們還是建議您使用云數據庫進行搭建,省去數據遷移等麻煩操作,數據庫詳見:https://cloud.tencent.com/pro...
在本文中,我們將討論如何在postgreSQL接口中創建和管理表。您將學習如何正確配置表并使用它們來存儲您的信息。
如何在Ubuntu上安裝并登錄PostgreSQL我們將在Ubuntu上安裝PostgreSQL,但它應該可以在大多數其他發行版的默認存儲庫中使用。
輸入以下要安裝的命令:
sudo apt-get update sudo apt-get install postgresql postgresql-contrib
安裝后,創建一個新用戶來管理我們將要創建的數據庫:
sudo adduser postgres_user
登錄默認的PostgreSQL用戶(稱為“postgres”)來創建數據庫并將其分配給新用戶:
sudo su - postgres PSQL
您將被放入PostgreSQL命令提示符。
創建與您創建的系統用戶匹配的新用戶。然后創建該用戶管理的數據庫:
CREATE USER postgres_user密碼為" 密碼 "; CREATE DATABASE my_postgres_db OWNER postgres_user ;
使用以下命令退出界面:
q
退出默認的“postgres”用戶帳戶并使用以下命令登錄您創建的用戶:
exit sudo su - postgres_user
使用以下命令登錄您創建的數據庫:
psql my_postgres_db
我們現在準備了解表管理。
PostgreSQL中的表創建語法我們的數據庫還沒有任何表格。我們可以此命令為來驗證這一點:
d
No relations found.
我們可以通過以下語法來創建新表:
CREATE TABLE new_table_name ( table_column_title TYPE_OF_DATA column_constraints, next_column_title TYPE_OF_DATA column_constraints, table_constraint table_constraint ) INHERITS existing_table_to_inherit_from;
除了先前定義中列出的列之外,還繼承現有表中的所有列。括號內的部分分為兩部分:列定義和表約束。
PostgreSQL列和表定義列定義遵循以下語法模式:
column_name data_type (optional_data_length_restriction) column_constraints
列名應該是不言自明的。
PostgreSQL數據類型數據類型可以是以下任何一種:
布爾型:使用“boolean”或“bool”聲明true或false值。
字符值
char:擁有一個字符
char(#):保存#個字符數。將插入空間以填補任何額外的空間。
varchar(#):最多包含#個字符數。
整數值
smallint:-32768和32767之間的整數。
int:-214783648和214783647之間的整數。
serial:自動填充的整數。
浮點值
float(#):浮點數,至少有#個精度點。
real:8字節浮點數
numeric(#,after_dec):擁有#位數的實數,小數點后有after_dec位
日期和時間值
date:存儲日期值
time:存儲時間值
timestamp:存儲日期和時間值
timestamptz:存儲包含時區數據的時間戳
interval:存儲兩個時間戳值之間的差值
幾何數據
point:存儲一對定義點的坐標
line:存儲一組映射出一條線的點
lseg:存儲定義線段的數據
box:存儲定義矩形的數據
polygon:存儲定義任何封閉空間的數據
設備規格
inet:存儲IP地址
macaddr:存儲設備MAC地址
PostreSQL列和表約束列定義還可以具有約束,這些約束為列中找到的數據類型提供規則。以下內容可用作數據類型后面的空格分隔值:
NOT NULL:列不能具有空值
UNIQUE:任何記錄的列值都不能相同。Null始終被視為唯一值
PRIMARY KEY:上述兩個約束的組合。每張表只能使用一次
CHECK:確保列中值的條件為真
REFERENCES:值必須存在于另一個表的列中
在定義列之后,可以聲明表范圍的約束。表范圍的約束可以是UNIQUE,PRIMARY KEY,CHECK或REFERENCES。
如何在PostgreSQL中創建表我們將創建一個名為“pg_equipment”的表,它定義了各種游樂場設備。輸入以下表定義:
CREATE TABLE pg_equipment ( equip_id serial PRIMARY KEY, type varchar (50) NOT NULL, color varchar (25) NOT NULL, location varchar(25) check (location in ("north", "south", "west", "east", "northeast", "southeast", "southwest", "northwest")), install_date date );
NOTICE: CREATE TABLE will create implicit sequence "pg_equipment_equip_id_seq" for serial column "pg_equipment.equip_id" NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pg_equipment_pkey" for table "pg_equipment" CREATE TABLE
我們可以通過在提示符下輸入“ d”來查看我們的新表:
d
List of relations Schema | Name | Type | Owner --------+---------------------------+----------+--------------- public | pg_equipment | table | postgres_user public | pg_equipment_equip_id_seq | sequence | postgres_user (2 rows)
列出該表,以及“equip_id”串行數據類型聲明創建的序列。
如何在PostgreSQL中更改表數據我們可以使用以下通用語法更改表的定義:
ALTER TABLE table_name Action_TO_Take;
例如,我們可以通過輸入以下命令在我們的“pg_equipment”表中添加一列:
ALTER TABLE pg_equipment ADD COLUMN functioning bool;
ALTER TABLE
我們可以通過輸入來查看額外的列:
d pg_equipment
Column | Type | Modifiers --------------+-----------------------+----------------------------------------------------------------- equip_id | integer | not null default nextval("pg_equipment_equip_id_seq"::regclass) type | character varying(50) | not null color | character varying(25) | not null location | character varying(25) | install_date | date | functioning | boolean | . . .
要添加一個默認值,請提供以下命令:
ALTER TABLE pg_equipment ALTER COLUMN functioning SET DEFAULT "true";
如果我們想確保該值也不為null,我們可以這樣做:
ALTER TABLE pg_equipment ALTER COLUMN functioning SET NOT NULL;
要重命名該列,請使用以下語法:
ALTER TABLE pg_equipment RENAME COLUMN functioning TO working_order;
要刪除我們剛剛創建的列,請輸入以下命令:
ALTER TABLE pg_equipment DROP COLUMN working_order;
我們可以使用以下命令重命名整個表:
ALTER TABLE pg_equipment RENAME TO playground_equip;刪除PostgreSQL中的表
我們可以通過輸入下面的命令來刪除我們創建的表:
DROP TABLE playground_equip;
DROP TABLE
如果我們將該命令提供給不存在的表,我們將看到以下錯誤:
ERROR: table "playground_equip" does not exist
為了避免這個錯誤,我們可以告訴postgreSQL刪除表,并以任何方式成功返回。我們通過發出以下命令來完成此操作:
DROP TABLE IF EXISTS playground_equip;
NOTICE: table "playground_equip" does not exist, skipping DROP TABLE
這一次,它告訴我們找不到表,但繼續而不是拋出錯誤。
結論您現在應該知道在如何PostgreSQL中創建和管理簡單表。如果您正在者學習如何從命令行控制PostgreSQL,這些技能將非常有用。更多Linux教程,請持續關注騰訊云+社區的文章。
參考文獻:《How To Create, Remove, & Manage Tables in PostgreSQL on a Cloud Server》
問答PostgreSQL的隱藏特征?
相關閱讀Nginx的安裝和配置疑難解答
如何備份你的MySQL數據庫
MySQL 8.0 版本功能變更介紹
此文已由作者授權騰訊云+社區發布,原文鏈接:https://cloud.tencent.com/dev...
歡迎大家前往騰訊云+社區或關注云加社區微信公眾號(QcloudCommunity),第一時間獲取更多海量技術實踐干貨哦~
海量技術實踐經驗,盡在云加社區!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39001.html
摘要:當在中調用匿名函數時,它們用的都是同一個閉包,而且在這個閉包中使用了和的當前值的值為因為循環已經結束,的值為。最好將閉包當作是一個函數的入口創建的,而局部變量是被添加進這個閉包的。 閉包不是魔法 這篇文章使用一些簡單的代碼例子來解釋JavaScript閉包的概念,即使新手也可以輕松參透閉包的含義。 其實只要理解了核心概念,閉包并不是那么的難于理解。但是,網上充斥了太多學術性的文章,對于...
閱讀 1645·2023-04-25 20:36
閱讀 2059·2021-09-02 15:11
閱讀 1197·2021-08-27 13:13
閱讀 2656·2019-08-30 15:52
閱讀 4656·2019-08-29 17:13
閱讀 1006·2019-08-29 11:09
閱讀 1496·2019-08-26 11:51
閱讀 840·2019-08-26 10:56