国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【postgresql 基礎(chǔ)入門】表的操作,表結(jié)構(gòu)查看、修改字段類型、增加刪除字段、重命名表,對表的操作總是比別人棋高一著

這篇具有很好參考價(jià)值的文章主要介紹了【postgresql 基礎(chǔ)入門】表的操作,表結(jié)構(gòu)查看、修改字段類型、增加刪除字段、重命名表,對表的操作總是比別人棋高一著。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

表的操作

?專欄內(nèi)容

  • postgresql內(nèi)核源碼分析
  • 手寫數(shù)據(jù)庫toadb
  • 并發(fā)編程

?開源貢獻(xiàn)

  • toadb開源庫

個(gè)人主頁:我的主頁
管理社區(qū):開源數(shù)據(jù)庫
座右銘:天行健,君子以自強(qiáng)不息;地勢坤,君子以厚德載物.

系列文章

  • 入門準(zhǔn)備
  • postgrersql基礎(chǔ)架構(gòu)
  • 快速使用
  • 初始化集群
  • 數(shù)據(jù)庫服務(wù)管理
  • psql客戶端使用
  • pgAdmin圖形化客戶端
  • 數(shù)據(jù)庫的使用
  • 創(chuàng)建數(shù)據(jù)庫
  • 數(shù)據(jù)庫操作
  • 表的使用
  • 表的創(chuàng)建
  • 表的操作
  • 數(shù)據(jù)查詢
  • 數(shù)據(jù)查詢
  • 多表聯(lián)合查詢

前言

postgresql 數(shù)據(jù)庫是一款通用的關(guān)系型數(shù)據(jù),在開源數(shù)據(jù)庫中能與商業(yè)數(shù)據(jù)媲美,在業(yè)界也越來越流行。

因?yàn)槭情_源數(shù)據(jù)庫,不僅公開源碼,還有很多使用案例,好用的插件,所以它的慢慢變成了數(shù)據(jù)庫的先驅(qū)和標(biāo)準(zhǔn),通過postgresql可以很好從使用到原理,徹底搞懂;

如果是學(xué)習(xí)編程,也可以學(xué)到豐富的編程知識,數(shù)據(jù)結(jié)構(gòu),編程技巧,它里面還有很多精妙的架構(gòu)設(shè)計(jì),分層思想,可以靈活定制的思想。

本專欄主要介紹postgresql 入門使用,數(shù)據(jù)庫維護(hù)管理,通過這些使用來了解數(shù)據(jù)庫原理,慢慢了解postgresql是什么樣的數(shù)據(jù)庫,能做那些事情,以及如何做好服務(wù),最關(guān)鍵的是這些知識都是面試的必備項(xiàng)。

概述

前一篇分享了創(chuàng)建表的相關(guān)內(nèi)容,對于表也有很多屬性,如果這些屬性在創(chuàng)建時(shí)搞錯(cuò)了,那是否需要?jiǎng)h除表再來呢?

本文就從以下幾個(gè)方面,帶大家看看表的各種操作,在平時(shí)數(shù)據(jù)庫開發(fā)和維護(hù)時(shí),不需要再求助別人了。

  • 查看表結(jié)構(gòu)
  • 查詢數(shù)據(jù)
  • 插入數(shù)據(jù)
  • 刪除數(shù)據(jù)
  • 修改表字段
  • 添加和刪除表字段
  • 重命名表
  • 刪除表
  • 查表的OID

查看表的結(jié)構(gòu)

當(dāng)我們使用表時(shí),也要知道表的定義結(jié)構(gòu),有那些字段,以及字段的類型,有沒有主鍵,外鍵等;

如果不是我們自己創(chuàng)建的表,可以在數(shù)據(jù)庫中進(jìn)行查詢表結(jié)構(gòu);
下面使用安裝時(shí)自帶的psql做為客戶端進(jìn)行操作;

首先登錄數(shù)據(jù)庫,我們看到前期已經(jīng)有兩張table存在;

[senllang@hatch bin]$ ./psql -d db_factory2 -U hr
WARNING:  permission denied to set role "vp3"
psql (16beta1)
Type "help" for help.

db_factory2=> \d
                   List of relations
 Schema |           Name            |   Type   | Owner
--------+---------------------------+----------+-------
 public | company                   | table    | hr
 public | employees                 | table    | hr
 public | employees_employee_id_seq | sequence | hr
(3 rows)

db_factory2=>

接下來看一下這兩張表的結(jié)構(gòu),并驗(yàn)驗(yàn)證查詢和插入數(shù)據(jù)試一下;

db_factory2=> \d company
                  Table "public.company"
 Column  |     Type      | Collation | Nullable | Default
---------+---------------+-----------+----------+---------
 id      | integer       |           | not null |
 name    | text          |           | not null |
 age     | integer       |           | not null |
 address | character(50) |           |          |
 salary  | real          |           |          |
Indexes:
    "company_pkey" PRIMARY KEY, btree (id)

可以看到company 這張表的信息通過表格的形式展示出來,第一列是字段史,第二列是類弄,后面是約束,還有默認(rèn)值;

可以看到有五個(gè)字段,id字段是主鍵,主鍵也是一種索引,這里默認(rèn)采用btree索引類型,還有非空約束;address字段的長度為50;

查詢數(shù)據(jù)

再來看一下表中是否有數(shù)據(jù),這里可以按字段查,也可以用*來代替所有字段 ;

db_factory2=> select * from company;
 id | name | age | address | salary
----+------+-----+---------+--------
(0 rows)
db_factory2=> select id from company ;
 id
----
(0 rows)

表中還沒有數(shù)據(jù);

插入數(shù)據(jù)

插入數(shù)據(jù),我們使用標(biāo)準(zhǔn)SQL語句,如果每個(gè)字段都有值時(shí),可以省略字段名,解析時(shí)會(huì)根據(jù)值順序?qū)?yīng)到每個(gè)字段;

db_factory2=> insert into company (id,name,age,address,salary) values(1,'hongxing',8,'shangdong',4.8),(2,'dongfeng',20,'shenyang',10.22);
INSERT 0 2
db_factory2=> select * from company;
 id |   name   | age |                      address                       | salary
----+----------+-----+----------------------------------------------------+--------
  1 | hongxing |   8 | shangdong                                          |    4.8
  2 | dongfeng |  20 | shenyang                                           |  10.22
(2 rows)

一次插入了兩條數(shù)據(jù),values后面可以是多個(gè)值域,這樣就可以插入多條,但是值域中字段值數(shù)量必須一樣,否則解析器是沒有辦法對齊到表字段的;

修改字段

對已經(jīng)存在的表的字段進(jìn)行修改,可以對字段名稱,類型進(jìn)行變更;

修改類型

db_factory2=> alter table company alter column name type varchar(255);
ALTER TABLE
db_factory2=> \d company
                      Table "public.company"
 Column  |          Type          | Collation | Nullable | Default
---------+------------------------+-----------+----------+---------
 id      | integer                |           | not null |
 name    | character varying(255) |           | not null |
 age     | integer                |           | not null |
 address | character(50)          |           |          |
 salary  | real                   |           |          |
Indexes:
    "company_pkey" PRIMARY KEY, btree (id)

name字段的類型長度由原來無限制變更為255字符;

類型的修改需要注意,并不是所有類型都可以任意修改,修改后的類型必須兼容之前的類型,最好不存在數(shù)據(jù)丟失的問題;

修改字段名稱

表定義后,老板說這個(gè)名字起的不好,那只好修改一下,可以這樣操作;

db_factory2=> alter table company rename age TO founded;
ALTER TABLE
db_factory2=> \d company
                      Table "public.company"
 Column  |          Type          | Collation | Nullable | Default
---------+------------------------+-----------+----------+---------
 id      | integer                |           | not null |
 name    | character varying(255) |           | not null |
 founded | integer                |           | not null |
 address | character(50)          |           |          |
 salary  | real                   |           |          |
Indexes:
    "company_pkey" PRIMARY KEY, btree (id)

添加和刪除字段

雖然上面把age改成了founded成立日期,但是類型卻怎么也修改不成功; 那這 。。。

db_factory2=> alter table company alter column founded type timestamp without time zone;
ERROR:  column "founded" cannot be cast automatically to type timestamp without time zone
HINT:  You might need to specify "USING founded::timestamp without time zone".

注意:在做下列操作之前需要對數(shù)據(jù)進(jìn)行備份,否則數(shù)據(jù)就會(huì)丟失;
遇到這種情況,當(dāng)在初期時(shí),還在測試階段,可以采用刪除字段,再添加的辦法;當(dāng)然這樣做之后,這列的數(shù)據(jù)都會(huì)丟失;

刪除字段

db_factory2=> alter table company drop column founded ;
ALTER TABLE
db_factory2=> \d company
                      Table "public.company"
 Column  |          Type          | Collation | Nullable | Default
---------+------------------------+-----------+----------+---------
 id      | integer                |           | not null |
 name    | character varying(255) |           | not null |
 address | character(50)          |           |          |
 salary  | real                   |           |          |
Indexes:
    "company_pkey" PRIMARY KEY, btree (id)

添加字段

之后可以按正確的字段名稱,類型進(jìn)行添加

db_factory2=> alter table company add column founded date;
ALTER TABLE
db_factory2=> \d company
                      Table "public.company"
 Column  |          Type          | Collation | Nullable | Default
---------+------------------------+-----------+----------+---------
 id      | integer                |           | not null |
 name    | character varying(255) |           | not null |
 address | character(50)          |           |          |
 salary  | real                   |           |          |
 founded | date                   |           |          |
Indexes:
    "company_pkey" PRIMARY KEY, btree (id)

現(xiàn)在可以了,那么這一列的數(shù)據(jù)就需要重新錄入了,可以使用update語句批量錄入;

重命名表

如果發(fā)現(xiàn)表名含義不清,可以通過重命名的方式進(jìn)行修改;

db_factory2=> alter table company rename to tbl_company; 
ALTER TABLE

這個(gè)操作對于數(shù)據(jù)庫內(nèi)部不會(huì)產(chǎn)生影響,因?yàn)閮?nèi)部是通過OID進(jìn)行引用;但是對于已經(jīng)運(yùn)行的業(yè)務(wù)系統(tǒng),需要修改SQL中的引用方式;

刪除表

刪除一張不再使用的表

db_factory2=> drop table employees ;
DROP TABLE

刪除成功的前提是,這張表沒有被別的數(shù)據(jù)庫對象引用(視圖,外鍵等),比如在這個(gè)表上創(chuàng)建了視圖,那么就先要?jiǎng)h除視圖,或者是采取級聯(lián)刪除的方式一起刪除;

查表的OID

數(shù)據(jù)庫內(nèi)部使用OID引用,OID是唯一標(biāo)識,在磁盤上存儲(chǔ)時(shí)也采用OID來命名,如何知道表的OID呢?
表相關(guān)信息記錄在pg_class這張系統(tǒng)表中;

db_factory2=> select oid,relname from pg_class where relname='tbl_company';
  oid  |   relname
-------+-------------
 16510 | tbl_company
(1 row)

總結(jié)

通過本文的分享,對于表的屬性的查詢,變更有了進(jìn)一步了解,數(shù)據(jù)字典中關(guān)于表的信息,如OID,存儲(chǔ)位置,是普通表還是臨時(shí)表等,都記錄在pg_class當(dāng)中,當(dāng)然它還記錄了很多有用的信息,有興趣的同學(xué)可以自己查詢試試。

結(jié)尾

非常感謝大家的支持,在瀏覽的同時(shí)別忘了留下您寶貴的評論,如果覺得值得鼓勵(lì),請點(diǎn)贊,收藏,我會(huì)更加努力!

作者郵箱:study@senllang.onaliyun.com
如有錯(cuò)誤或者疏漏歡迎指出,互相學(xué)習(xí)。

注:未經(jīng)同意,不得轉(zhuǎn)載!文章來源地址http://www.zghlxwxcb.cn/news/detail-713806.html

到了這里,關(guān)于【postgresql 基礎(chǔ)入門】表的操作,表結(jié)構(gòu)查看、修改字段類型、增加刪除字段、重命名表,對表的操作總是比別人棋高一著的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • hadoop的基礎(chǔ)操作——Hadoop中創(chuàng)建、修改、查看、刪除文件夾及文件

    hadoop的基礎(chǔ)操作——Hadoop中創(chuàng)建、修改、查看、刪除文件夾及文件

    一、實(shí)驗(yàn)?zāi)康?熟練掌握常用的hadoop shell命令 二、實(shí)驗(yàn)內(nèi)容? ? 1.學(xué)習(xí)在開啟、關(guān)閉Hadoop 2.學(xué)習(xí)在Hadoop中創(chuàng)建、修改、查看、刪除文件夾及文件 3.學(xué)習(xí)改變文件的權(quán)限及文件的擁有者 4.學(xué)習(xí)使用shell命令提交job任務(wù) 5.Hadoop安全模式的進(jìn)入與退出 三、實(shí)驗(yàn)原理或流程 調(diào)用文件系

    2024年02月03日
    瀏覽(85)
  • Sqlserver查看表的主鍵,刪除主鍵,修改主鍵

    Sqlserver查看表的主鍵,刪除主鍵,修改主鍵

    1.查看表的結(jié)構(gòu) EXEC sp_help \\\'表名\\\'; 查詢使用 sp_help 存儲(chǔ)過程,它將返回有關(guān)表的詳細(xì)信息,包括列名、數(shù)據(jù)類型、約束等。在結(jié)果中查找?guī)в?“PK” 標(biāo)記的列,它們表示主鍵約束。 2.查看表的主鍵信息 EXEC sp_pkeys \\\'表名\\\'; 查詢使用 sp_pkeys 存儲(chǔ)過程,它將返回指定表的主鍵信息

    2024年02月07日
    瀏覽(28)
  • 【postgresql 基礎(chǔ)入門】多表聯(lián)合查詢 join與union 并,交,差等集合操作,兩者的區(qū)別之處

    ? 專欄內(nèi)容 : postgresql內(nèi)核源碼分析 手寫數(shù)據(jù)庫toadb 并發(fā)編程 ? 開源貢獻(xiàn) : toadb開源庫 個(gè)人主頁 :我的主頁 管理社區(qū) :開源數(shù)據(jù)庫 座右銘:天行健,君子以自強(qiáng)不息;地勢坤,君子以厚德載物. 入門準(zhǔn)備 postgrersql基礎(chǔ)架構(gòu) 快速使用 初始化集群 數(shù)據(jù)庫服務(wù)管理 psql客戶

    2024年02月08日
    瀏覽(16)
  • kafka 基礎(chǔ)概念、命令行操作(查看所有topic、創(chuàng)建topic、刪除topic、查看某個(gè)Topic的詳情、修改分區(qū)數(shù)、發(fā)送消息、消費(fèi)消息、 查看消費(fèi)者組 、更新消費(fèi)者的偏移位置)

    kafka 基礎(chǔ)概念、命令行操作(查看所有topic、創(chuàng)建topic、刪除topic、查看某個(gè)Topic的詳情、修改分區(qū)數(shù)、發(fā)送消息、消費(fèi)消息、 查看消費(fèi)者組 、更新消費(fèi)者的偏移位置)

    kafka官網(wǎng) Broker ??一臺(tái)kafka服務(wù)器就是一個(gè)broker,可容納多個(gè)topic。一個(gè)集群由多個(gè)broker組成; Producer ??生產(chǎn)者,即向kafka的broker-list發(fā)送消息的客戶端; Consumer ??消費(fèi)者,即向kafka的broker-list訂閱消息的客戶端; Consumer Group ??消費(fèi)者組是 邏輯上的一個(gè)訂閱者 ,由多個(gè)

    2024年02月01日
    瀏覽(121)
  • PostgreSQL 修改表字段常用命令操作

    當(dāng)需要修改表字段數(shù)據(jù)類型時(shí),可以使用以下命令: 其中, table_name 為要修改的表名, column_name 為要修改的字段名, new_data_type 為新設(shè)定的數(shù)據(jù)類型。 例如,將表 students 中的字段 age 從整數(shù)類型修改為浮點(diǎn)型: 當(dāng)需要修改表字段名稱時(shí),可以使用以下命令: 其中, table_

    2024年02月02日
    瀏覽(27)
  • 單向帶頭鏈表的添加修改刪除操作

    單向帶頭鏈表的添加修改刪除操作

    ? 雙向鏈表的添加操作

    2024年02月02日
    瀏覽(18)
  • MySQL-DDL-表的結(jié)構(gòu)-查詢&修改&刪除

    MySQL-DDL-表的結(jié)構(gòu)-查詢&修改&刪除

    查詢當(dāng)前數(shù)據(jù)庫所有表: show tables 查詢表結(jié)構(gòu): desc +表名 ? 查詢建表語句: show create table + 表名 添加字段: alter table 表名 add 字段名 類型(長度)[ comment 注釋]?[約束]? 修改字段類型: alter table 表名 modify 字段名 新數(shù)據(jù)類型(長度) 修改字段名和字段類型: alter table 表

    2024年02月16日
    瀏覽(166)
  • ②【MySQL表操作】 數(shù)據(jù)庫表的創(chuàng)建、查詢、修改、刪除

    ②【MySQL表操作】 數(shù)據(jù)庫表的創(chuàng)建、查詢、修改、刪除

    個(gè)人簡介:Java領(lǐng)域新星創(chuàng)作者;阿里云技術(shù)博主、星級博主、專家博主;正在Java學(xué)習(xí)的路上摸爬滾打,記錄學(xué)習(xí)的過程~ 個(gè)人主頁:.29.的博客 學(xué)習(xí)社區(qū):進(jìn)去逛一逛~ 數(shù)據(jù)庫表中的數(shù)據(jù)類型 : 數(shù)值類型: TINYINT :小整數(shù) SMALLINT :大整數(shù) MEDIUMINT :大整數(shù),范圍大于SMALLINT

    2024年02月06日
    瀏覽(115)
  • 【數(shù)據(jù)結(jié)構(gòu)】順序表的定義和操作

    【數(shù)據(jù)結(jié)構(gòu)】順序表的定義和操作

    目錄 1.初始化 2.插入 3.刪除 4.查找 5.修改 6.長度 7.遍歷 8.完整代碼 ??嗨!我是Filotimo__??。很高興與大家相識,希望我的博客能對你有所幫助。 ??本文由Filotimo__??原創(chuàng),首發(fā)于CSDN??。 ??如需轉(zhuǎn)載,請事先與我聯(lián)系以獲得授權(quán)??。 ??歡迎大家給我點(diǎn)贊??、收藏??

    2024年02月03日
    瀏覽(14)
  • 【數(shù)據(jù)結(jié)構(gòu)】雙鏈表的定義和操作

    【數(shù)據(jù)結(jié)構(gòu)】雙鏈表的定義和操作

    目錄 1.雙鏈表的定義 2.雙鏈表的創(chuàng)建和初始化 3.雙鏈表的插入節(jié)點(diǎn)操作 4.雙鏈表的刪除節(jié)點(diǎn)操作 5.雙鏈表的查找節(jié)點(diǎn)操作 6.雙鏈表的更新節(jié)點(diǎn)操作 7.完整代碼 ??嗨!我是Filotimo__??。很高興與大家相識,希望我的博客能對你有所幫助。 ??本文由Filotimo__??原創(chuàng),首發(fā)于CS

    2024年02月03日
    瀏覽(93)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包