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

【postgresql 基礎(chǔ)入門(mén)】數(shù)據(jù)表的查詢基本知識(shí),條件過(guò)濾、單列多列排序、按頁(yè)瀏覽數(shù)據(jù)、數(shù)據(jù)去重,得到你想要的數(shù)據(jù)

這篇具有很好參考價(jià)值的文章主要介紹了【postgresql 基礎(chǔ)入門(mén)】數(shù)據(jù)表的查詢基本知識(shí),條件過(guò)濾、單列多列排序、按頁(yè)瀏覽數(shù)據(jù)、數(shù)據(jù)去重,得到你想要的數(shù)據(jù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

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

?專欄內(nèi)容

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

?開(kāi)源貢獻(xiàn)

  • toadb開(kāi)源庫(kù)

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

系列文章

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

前言

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

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

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

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

概要介紹

PostgreSQL是一種強(qiáng)大的開(kāi)源關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。在這個(gè)系統(tǒng)中,你可以使用SQL(Structured Query Language)來(lái)查詢和操作數(shù)據(jù)。

本文將從以下幾個(gè)方面來(lái)分享,如何使用SQL來(lái)查詢數(shù)據(jù),通過(guò)過(guò)濾,排序得到想要的數(shù)據(jù),并且可以按需要的行數(shù)進(jìn)行分批返回;

  • SELECT 語(yǔ)句的基本語(yǔ)法
  • WHERE 子句用于過(guò)濾數(shù)據(jù)
  • ORDER BY 子句用于排序數(shù)據(jù)
  • LIMIT 和 OFFSET 子句用于限制返回的數(shù)據(jù)量
  • DISTINCT 去重?cái)?shù)據(jù)

SELECT 語(yǔ)句基本語(yǔ)法

在數(shù)據(jù)庫(kù)中最復(fù)雜的SQL語(yǔ)句就是SELECT,語(yǔ)法解析的大部分代碼都是處理它的各種子句及組合;
這里介紹它的最基本常用的語(yǔ)法格式;

語(yǔ)法

SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
    [ * | expression [ [ AS ] output_name ] [, ...] ]
    [ FROM from_item [, ...] ]
    [ WHERE condition ]
    [ ORDER BY expression [ ASC | DESC ] ]
    [ LIMIT { count | ALL } ]
    [ OFFSET start [ ROW | ROWS ] ]

準(zhǔn)備數(shù)據(jù)

你可以使用以下的SQL語(yǔ)句在PostgreSQL中插入10000條隨機(jī)數(shù)據(jù):

CREATE TABLE tbl_company (  
    ID INT PRIMARY KEY NOT NULL,  
    NAME TEXT NOT NULL,  
    ADDRESS CHAR(50),  
    SALARY REAL,
    founded DATE
);
db_factory2=> INSERT INTO tbl_company (id, name, address, salary, founded)
SELECT
    generate_series(1, 10000) AS id,
    'Name ' || generate_series(1, 10000) AS name,
    'Address ' || generate_series(1, 10000) AS address,
    (random() * 100000)::REAL AS salary,
    CURRENT_DATE - (random() * 10 * INTERVAL '1 year') AS founded
ORDER BY id;
INSERT 0 10000

在這個(gè)語(yǔ)句中,我們使用了generate_series函數(shù)生成了一個(gè)從1到10000的序列,用于生成唯一的id。

然后,我們使用字符串連接操作符(||)和generate_series函數(shù)生成隨機(jī)的姓名和地址。

接下來(lái),我們使用random()函數(shù)生成一個(gè)范圍在0到1之間的隨機(jī)數(shù),乘以100000后將其轉(zhuǎn)換為REAL類型作為薪資。

最后,我們使用CURRENT_DATE減去一個(gè)范圍在0到10之間的隨機(jī)年份,以生成成立日期。

這樣我們就有了10000條原始數(shù)據(jù),下面我們來(lái)進(jìn)行SQL查詢分析吧;

基本用法

指定要查詢的列名,從那張表里獲取數(shù)據(jù),SQL如下:

SELECT name, founded
FROM tbl_company;

也可以用*代替所有的列名

WHERE子句過(guò)濾數(shù)據(jù)

WHERE子句用于過(guò)濾SELECT語(yǔ)句返回的數(shù)據(jù)?;菊Z(yǔ)法如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

示例:假設(shè)我們只想獲取創(chuàng)立時(shí)間在2019年前的企業(yè)名稱和ID:

SELECT id, name, founded FROM tbl_company WHERE founded < '2019-01-01';

當(dāng)然可以帶多個(gè)條件,條件之間可以用 AND 表示與的關(guān)系,OR 表示或的關(guān)系 進(jìn)行串聯(lián);

ORDER BY子句排序

ORDER BY子句用于根據(jù)指定的列對(duì)SELECT語(yǔ)句返回的數(shù)據(jù)進(jìn)行排序?;菊Z(yǔ)法如下:

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

其中ASC表示按升序進(jìn)行排列,也就是從小到大; DESC 表示按降序進(jìn)行排列,也就是從大到小進(jìn)行顯示;

示例:假設(shè)按納稅額從降序排列:

select id, name, salary, founded from tbl_company order by salary desc;

當(dāng)然也可以帶有多個(gè)列的排序,數(shù)據(jù)庫(kù)處理時(shí)會(huì)按order by 子句中的順序,優(yōu)先第一個(gè),如果有相同的再按第二列進(jìn)行排序,依次進(jìn)行;

LIMIT和OFFSET按頁(yè)返回

當(dāng)按條件查詢的結(jié)果非常多時(shí),我們希望分批查看,這里就可以用limit 和 offset子句,達(dá)到分頁(yè)顯示的效果;

LIMIT子句用于限制SELECT語(yǔ)句返回的數(shù)據(jù)行數(shù)。基本語(yǔ)法如下:

SELECT column1, column2, ...
FROM table_name
LIMIT number_of_rows;

示例:我們獲取納稅前五的企業(yè)信息

select id, name, salary, founded from tbl_company order by salary desc limit 5;

OFFSET子句與LIMIT子句一起使用,可以跳過(guò)指定數(shù)量的行?;菊Z(yǔ)法如下:

SELECT column1, column2, ...
FROM table_name
LIMIT number_of_rows OFFSET offset;

示例:我們獲取納稅的第6到10名的企業(yè)信息

select id, name, salary, founded from tbl_company order by salary desc limit 5 offset 5; 

OFFSET子句與LIMIT子句的聯(lián)合使用,可以達(dá)到翻頁(yè)的效果,如果每頁(yè)限制為100條;

-- page1
select id, name, salary, founded from tbl_company order by salary desc limit 100 offset 0; 

-- page2
select id, name, salary, founded from tbl_company order by salary desc limit 100 offset 100; 

-- page3
select id, name, salary, founded from tbl_company order by salary desc limit 100 offset 200; 

DISTINCT 去重?cái)?shù)據(jù)

DISTINCT關(guān)鍵字用于從結(jié)果集中返回唯一的行。它可以用于單個(gè)列或多個(gè)列。

請(qǐng)注意,DISTINCT關(guān)鍵字適用于整個(gè)結(jié)果集,而不僅僅是選擇的列; 這意味著在查詢中使用DISTINCT時(shí),所有選擇的列的組合必須是唯一的。

為了演示,我們?cè)?code>tbl_company表中插入幾行重復(fù)數(shù)據(jù);

db_factory2=> insert into tbl_company values(10001, 'Name 1','Address 10001',8888,'2023-9-19');
INSERT 0 1
db_factory2=> insert into tbl_company values(10002, 'Name 10002','Address 1',8888,'2023-9-19');
INSERT 0 1
db_factory2=> insert into tbl_company values(10003, 'Name 10003','Address 10003',8888,'2023-9-19');
INSERT 0 1

結(jié)果集只有一列時(shí)

db_factory2=> select distinct name from tbl_company where id > 10000 or id < 10;
    name
------------
 Name 1
 Name 10002
 Name 10003
 Name 2
 Name 3
 Name 4
 Name 5
 Name 6
 Name 7
 Name 8
 Name 9
(11 rows)

可以看到結(jié)果中沒(méi)有重復(fù)項(xiàng),我們插入的id=10001與id=1的name列值是一樣的,在結(jié)果集中進(jìn)行了過(guò)濾;

結(jié)果集有多列時(shí)

db_factory2=> select distinct name, salary from tbl_company where id > 10000;
    name    | salary
------------+--------
 Name 1     |   8888
 Name 10002 |   8888
 Name 10003 |   8888
(3 rows)

查詢namesalary兩列數(shù)據(jù),發(fā)現(xiàn)salary列還是有重復(fù)數(shù)據(jù),但是對(duì)于兩列的組合結(jié)果集來(lái)說(shuō),是沒(méi)有重復(fù)行的;

下面是對(duì)于兩列都有重復(fù)行的情況進(jìn)行演示;

db_factory2=> select distinct  salary, founded from tbl_company where id > 10000;
 salary |  founded
--------+------------
   8888 | 2023-09-19
(1 row)

db_factory2=> select  salary, founded from tbl_company where id > 10000;
 salary |  founded
--------+------------
   8888 | 2023-09-19
   8888 | 2023-09-19
   8888 | 2023-09-19
(3 rows)

可以看到加DISTINCT與不加的效果,對(duì)于整行重復(fù)的都進(jìn)行了過(guò)濾;

DISTINCT關(guān)鍵字 只能寫(xiě)在所有列的開(kāi)始位置,因?yàn)樗轻槍?duì)所有列的結(jié)果集;

結(jié)尾

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

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

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

到了這里,關(guān)于【postgresql 基礎(chǔ)入門(mén)】數(shù)據(jù)表的查詢基本知識(shí),條件過(guò)濾、單列多列排序、按頁(yè)瀏覽數(shù)據(jù)、數(shù)據(jù)去重,得到你想要的數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • MySQL數(shù)據(jù)表查詢

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

    ??作者介紹:一個(gè)有夢(mèng)想、有理想、有目標(biāo)的,且渴望能夠?qū)W有所成的追夢(mèng)人。 ??學(xué)習(xí)格言:不讀書(shū)的人,思想就會(huì)停止?!业铝_ ??個(gè)人主頁(yè):進(jìn)入博主主頁(yè) ??專欄系列:進(jìn)入MySQL知識(shí)專欄 ??歡迎小伙伴們?cè)L問(wèn)到博主的文章內(nèi)容,在瀏覽閱讀過(guò)程發(fā)現(xiàn)需要糾正的地

    2024年02月11日
    瀏覽(23)
  • SQL Server多數(shù)據(jù)表之間的數(shù)據(jù)查詢和分組查詢

    SQL Server多數(shù)據(jù)表之間的數(shù)據(jù)查詢和分組查詢

    在SQL中,多數(shù)據(jù)表之間的查詢主要用于以下方面: 在SQL Server中,多數(shù)據(jù)表之間的數(shù)據(jù)查詢主要用于以下幾個(gè)方面: 關(guān)聯(lián)數(shù)據(jù)提取 :現(xiàn)代數(shù)據(jù)庫(kù)通常將數(shù)據(jù)分散在多個(gè)相關(guān)的表中以便于管理。例如,訂單信息可能存儲(chǔ)在一個(gè)表中,而客戶信息可能存儲(chǔ)在另一個(gè)表中。為了獲取

    2024年01月24日
    瀏覽(32)
  • HBase數(shù)據(jù)表查詢操作和獲取多版本數(shù)據(jù)

    HBase數(shù)據(jù)模型是一個(gè)多維稀疏映射。 HBase中的表包含列族,其列限定符包含值和時(shí)間戳。在大多數(shù) HappyBase API 中,列族和限定符名稱被指定為單個(gè)字符串,例如cf1:col1,而不是作為兩個(gè)單獨(dú)的參數(shù)。雖然列族和限定符在 HBase 數(shù)據(jù)模型中是不同的概念,但它們?cè)谂c數(shù)據(jù)交互時(shí)幾

    2024年02月15日
    瀏覽(23)
  • MySQL數(shù)據(jù)庫(kù)——MySQL SELECT:數(shù)據(jù)表查詢語(yǔ)句

    在?MySQL 中,可以使用 SELECT 語(yǔ)句來(lái)查詢數(shù)據(jù)。查詢數(shù)據(jù)是指從數(shù)據(jù)庫(kù)中根據(jù)需求,使用不同的查詢方式來(lái)獲取不同的數(shù)據(jù),是使用頻率最高、最重要的操作。 SELECT 的語(yǔ)法格式如下: 其中,各條子句的含義如下: {*|字段列名} 包含星號(hào)通配符的字段列表,表示所要查詢字段的

    2024年02月05日
    瀏覽(232)
  • SQL Server 數(shù)據(jù)表模糊查詢(like 用法)以及查詢函數(shù)

    在SQL Server Management Studio (SSMS) 中,進(jìn)行模糊查詢主要是通過(guò)使用 like 操作符來(lái)實(shí)現(xiàn)的。 like 操作符用于在 where 語(yǔ)句中搜索列中具有指定模式的數(shù)據(jù)。 我們?cè)诤?jiǎn)單例子中來(lái)了解: % 通配符:表示任意數(shù)量的字符。 這個(gè)例子會(huì)選擇 column_name 列中包含\\\"pattern\\\"這個(gè)詞的所有記錄,就

    2024年01月22日
    瀏覽(53)
  • Mysql 查詢數(shù)據(jù)庫(kù)或數(shù)據(jù)表中的數(shù)據(jù)量以及數(shù)據(jù)大小

    ?許多數(shù)據(jù)庫(kù)的元數(shù)據(jù)都是存儲(chǔ)在mysql中的,例如hive、startrockes,因此可以通過(guò)mysql中的“information_schema.TABLES”表來(lái)查詢對(duì)應(yīng)數(shù)據(jù)庫(kù)或?qū)?yīng)數(shù)據(jù)表的具體信息。 1、查詢各個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)條數(shù)和數(shù)據(jù)大小 2、查詢各個(gè)數(shù)據(jù)表中的數(shù)據(jù)條數(shù)和數(shù)據(jù)大小 3、查看指定數(shù)據(jù)庫(kù)容量大小

    2024年04月27日
    瀏覽(96)
  • 8-MySQL查詢高級(jí)用法,數(shù)據(jù)表的關(guān)聯(lián)關(guān)系

    8-MySQL查詢高級(jí)用法,數(shù)據(jù)表的關(guān)聯(lián)關(guān)系

    1.分組 group by 詳情見(jiàn),發(fā)布的第七篇博客文章,7- MySQL函數(shù) 2.排序 order by 說(shuō)明: 在MySQL中,ORDER BY是一種用于對(duì)查詢結(jié)果進(jìn)行排序的。它可以根據(jù)一列或多列的值,以升序或降序的方式對(duì)查詢結(jié)果進(jìn)行排序,使得查詢者可以更加方便 地查看、分析和處理數(shù)據(jù)。 使用OR

    2024年02月08日
    瀏覽(29)
  • SQL學(xué)習(xí)(六)--DML(針對(duì)數(shù)據(jù)表記錄的查詢操作)

    目錄 一、 單表查詢 小拓展: 數(shù)據(jù)準(zhǔn)備: 1.? ?查詢整張表的數(shù)據(jù)

    2023年04月27日
    瀏覽(22)
  • 查詢Oracle當(dāng)前用戶下,所有數(shù)據(jù)表的總條數(shù)

    查詢Oracle當(dāng)前用戶下,所有數(shù)據(jù)表的總條數(shù)

    查詢Oracle當(dāng)前用戶下,所有數(shù)據(jù)表的總條數(shù) 方法1:存儲(chǔ)過(guò)程 (文末有方法2,一個(gè)SQL也可輕松搞定!) 右鍵點(diǎn)擊 Procedures ,點(diǎn)擊 New 點(diǎn)擊 OK 把存儲(chǔ)過(guò)程寫(xiě)進(jìn)去,然后點(diǎn)擊編譯運(yùn)行: 3.2.1 方法一 方法2 點(diǎn)擊File -- New -- Test Window 寫(xiě)入剛剛新增的存儲(chǔ)過(guò)程 方法2:SQL select sum(t.NUM_RO

    2024年02月12日
    瀏覽(29)
  • MySql基礎(chǔ)教程(三):創(chuàng)建數(shù)據(jù)表、數(shù)據(jù)增刪改查、刪除數(shù)據(jù)表

    MySql基礎(chǔ)教程(三):創(chuàng)建數(shù)據(jù)表、數(shù)據(jù)增刪改查、刪除數(shù)據(jù)表

    創(chuàng)建MySQL數(shù)據(jù)表需要以下信息: 表名 表字段名 定義每個(gè)表字段 1.1 語(yǔ)法 下面是創(chuàng)建MySQL數(shù)據(jù)表的SQL通用語(yǔ)法: 以下例子在 nobug 數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表 nobug_user : 實(shí)例解析: 如果你不想字段為 NULL 可以設(shè)置字段的屬性為 NOT NULL, 在操作數(shù)據(jù)庫(kù)時(shí)如果輸入該字段的數(shù)據(jù)為NULL ,

    2024年02月11日
    瀏覽(90)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包