Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 中文字幕精品视频,91视频中文字幕,刺激一区仑乱

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          openGauss數(shù)據(jù)庫之SQL介紹

          目錄

          一、什么是SQL?

          1、SQL的概念

          2、SQL的特點(diǎn)

          3、SQL發(fā)展簡史

          二、數(shù)據(jù)庫的“SQL”

          1、數(shù)據(jù)類型(常用)

          數(shù)值類型

          貨幣類型

          布爾類型

          字符類型

          日期/時(shí)間類型

          2、數(shù)據(jù)庫SQL基本語法

          創(chuàng)建用戶(CREATE USER)

          創(chuàng)建和管理數(shù)據(jù)庫

          創(chuàng)建表(CREATE TABLE)

          向表中插入數(shù)據(jù)

          更新表中數(shù)據(jù)

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

          刪除表中數(shù)據(jù)

          三、參考資料

          -------------------------------------------------------------------------------------------------------------------------

          一、什么是SQL?1、SQL的概念

          結(jié)構(gòu)化查詢語言(SQL)是用于訪問和處理關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)計(jì)算機(jī)語言。

          SQL提供了各種任務(wù)的語句,包括:

          SQL語言由用于處理數(shù)據(jù)庫和數(shù)據(jù)庫對象的命令和函數(shù)組成:

          2、SQL的特點(diǎn)3、SQL發(fā)展簡史

          SQL發(fā)展簡史如下:

          //注:

          ANSI是美國國家標(biāo)準(zhǔn)學(xué)會(huì)( )的英文簡稱,成立于1918年。

          ISO:國際標(biāo)準(zhǔn)化組織( for )。

          IEC:國際電工委員會(huì)( )。

          //

          二、數(shù)據(jù)庫的“SQL”

          數(shù)據(jù)庫支持的SQL標(biāo)準(zhǔn),默認(rèn)支持SQL2、SQL3和SQL4的主要特性。當(dāng)然了, 一般說到數(shù)據(jù)庫的SQL語句,就離不開兩個(gè)方面: 一是數(shù)據(jù)類型,二是sql語句基本語法。下文就此簡單闡述一下:

          1、數(shù)據(jù)類型(常用)

          數(shù)據(jù)庫支持的數(shù)據(jù)類型涵蓋非常廣, 幾乎包含所有形式的數(shù)據(jù)類型,如:數(shù)值類型、貨幣類型、布爾類型、字符類型、二進(jìn)制類型、日期/時(shí)間類型、幾何類型、網(wǎng)絡(luò)地址類型、位串類型、文本搜索類型、UUID類型、JSON/JSONB類型、HLL數(shù)據(jù)類型、范圍類型、對象標(biāo)識符類型、偽類型、列存表支持的數(shù)據(jù)類型、XML類型、賬本數(shù)據(jù)庫使用的數(shù)據(jù)類型等。 但是實(shí)際業(yè)務(wù)場景中大部分類型用到的比較少,具體遇到時(shí)可參考官方文檔說明。

          下文參考并整理了日常應(yīng)用開發(fā)中常用的主要數(shù)據(jù)類型,主要包含:數(shù)值類型、貨幣類型、布爾類型、字符類型、日期/時(shí)間類型等。

          數(shù)值類型

          數(shù)據(jù)庫的命名規(guī)則_sql命名表_sql數(shù)據(jù)庫命名規(guī)則

          表1:整數(shù)數(shù)據(jù)類型

          說明:TINYINT、、INTEGER、BIGINT和INT16類型存儲各種范圍的數(shù)字,也就是整數(shù)。試圖存儲超出范圍以外的數(shù)值將會(huì)導(dǎo)致錯(cuò)誤。

          常用的類型是INTEGER,因?yàn)樗峁┝嗽诜秶⒋鎯臻g、性能之間的最佳平衡。一般只有取值范圍確定不超過的情況下,才會(huì)使用類型。而只有在INTEGER的范圍不夠的時(shí)候才使用BIGINT,因?yàn)榍罢呦鄬斓枚唷?/p>

          sql數(shù)據(jù)庫命名規(guī)則_sql命名表_數(shù)據(jù)庫的命名規(guī)則

          表2:任意精度型

          說明:與整數(shù)類型相比,任意精度類型需要更大的存儲空間,其存儲效率、運(yùn)算效率以及壓縮比效果都要差一些。在進(jìn)行數(shù)值類型定義時(shí),優(yōu)先選擇整數(shù)類型。當(dāng)且僅當(dāng)數(shù)值超出整數(shù)可表示最大范圍時(shí),再選用任意精度類型。

          使用Numeric/Decimal進(jìn)行列定義時(shí),建議指定該列的精度p以及標(biāo)度s。

          sql命名表_sql數(shù)據(jù)庫命名規(guī)則_數(shù)據(jù)庫的命名規(guī)則

          表3:序列整型

          說明:

          、SERIAL、和類型不是真正的類型,只是為在表中設(shè)置唯一標(biāo)識做的概念上的便利。因此,創(chuàng)建一個(gè)整數(shù)字段,并且把它的缺省數(shù)值安排為從一個(gè)序列發(fā)生器讀取。應(yīng)用了一個(gè)NOT NULL約束以確保NULL不會(huì)被插入。在大多數(shù)情況下用戶可能還希望附加一個(gè)UNIQUE或PRIMARY KEY約束避免意外地插入重復(fù)的數(shù)值,但這個(gè)不是自動(dòng)的。最后,將序列發(fā)生器從屬于那個(gè)字段,這樣當(dāng)該字段或表被刪除的時(shí)候也一并刪除它。目前只支持在創(chuàng)建表時(shí)候指定SERIAL列,不可以在已有的表中,增加SERIAL列。另外臨時(shí)表也不支持創(chuàng)建SERIAL列。因?yàn)镾ERIAL不是真正的類型,也不可以將表中存在的列類型轉(zhuǎn)化為SERIAL。

          數(shù)據(jù)庫的命名規(guī)則_sql數(shù)據(jù)庫命名規(guī)則_sql命名表

          表4:浮點(diǎn)類型

          貨幣類型

          貨幣類型存儲帶有固定小數(shù)精度的貨幣金額

          sql數(shù)據(jù)庫命名規(guī)則_sql命名表_數(shù)據(jù)庫的命名規(guī)則

          布爾類型

          sql數(shù)據(jù)庫命名規(guī)則_數(shù)據(jù)庫的命名規(guī)則_sql命名表

          說明:“真”值的有效文本值是:TRUE、't'、'true'、'y'、'yes'、'1' 、'TRUE'、true、整數(shù)范圍內(nèi)1~2^63-1、整數(shù)范圍內(nèi)-1~-2^63。

          “假”值的有效文本值是:FALSE、'f'、'false'、'n'、'no'、'0'、0、'FALSE'、false。

          使用TRUE和FALSE是比較規(guī)范的用法(也是SQL兼容的用法)。

          字符類型

          sql命名表_數(shù)據(jù)庫的命名規(guī)則_sql數(shù)據(jù)庫命名規(guī)則

          日期/時(shí)間類型

          sql命名表_sql數(shù)據(jù)庫命名規(guī)則_數(shù)據(jù)庫的命名規(guī)則

          sql數(shù)據(jù)庫命名規(guī)則_數(shù)據(jù)庫的命名規(guī)則_sql命名表

          2、數(shù)據(jù)庫SQL基本語法

          SQL 語法主要分為三個(gè)類型DDL、DML、DCL,對應(yīng)13個(gè)動(dòng)詞:

          DDL(data )數(shù)據(jù)定義語言,用戶定義和管理sql數(shù)據(jù)庫中所有對象的語言。 主要命令:create、alter、drop等

          DML(data )數(shù)據(jù)操作語言。 主要命令:select、update、insert、delete等

          DCL(date control )數(shù)據(jù)庫控制功能。主要命令:grant、deny、revoke、commit、、等

          常見語法示例,主要包括: 創(chuàng)建用戶、創(chuàng)建和管理數(shù)據(jù)庫、創(chuàng)建表、插入數(shù)據(jù)、更新數(shù)據(jù)、查看數(shù)據(jù)、刪除數(shù)據(jù)等

          數(shù)據(jù)庫的命名規(guī)則_sql命名表_sql數(shù)據(jù)庫命名規(guī)則

          創(chuàng)建用戶(CREATE USER)

          --創(chuàng)建用戶jim,登錄密碼為。

          =# CREATE USER jim '';

          sql數(shù)據(jù)庫命名規(guī)則_數(shù)據(jù)庫的命名規(guī)則_sql命名表

          說明:必須至少8個(gè)字符,且至少包含3種字符(要符合常規(guī)密碼安全度設(shè)置要求)。

          --下面語句與上面的等價(jià)。

          =# CREATE USER kim BY '';

          --如果創(chuàng)建有“創(chuàng)建數(shù)據(jù)庫”權(quán)限的用戶,則需要加關(guān)鍵字。

          =# CREATE USER dim '';

          數(shù)據(jù)庫的命名規(guī)則_sql數(shù)據(jù)庫命名規(guī)則_sql命名表

          --將用戶jim的登錄密碼由修改為Abcd@123。

          =# ALTER USER jim BY 'Abcd@123' REPLACE '';

          數(shù)據(jù)庫的命名規(guī)則_sql數(shù)據(jù)庫命名規(guī)則_sql命名表

          說明:新密碼不能使用之前用過的密碼。

          --為用戶jim追加權(quán)限。

          =# ALTER USER jim ;

          --將的值設(shè)置為on, 設(shè)置成功后,在下一會(huì)話中生效。

          =# ALTER USER jim SET TO on;

          --重置jim的參數(shù)。

          =# ALTER USER jim RESET ;

          --鎖定jim帳戶。

          =# ALTER USER jim ACCOUNT LOCK;

          --刪除用戶。

          =# DROP USER kim CASCADE;

          =# DROP USER jim CASCADE;

          =# DROP USER dim CASCADE;

          sql數(shù)據(jù)庫命名規(guī)則_數(shù)據(jù)庫的命名規(guī)則_sql命名表

          說明:CASCADE,刪除用戶關(guān)聯(lián)的所有對象。

          創(chuàng)建和管理數(shù)據(jù)庫

          --使用如下命令創(chuàng)建一個(gè)新的數(shù)據(jù)庫db_tpcc。

          =# CREATE db_tpcc;

          --查看數(shù)據(jù)庫

          使用\l元命令查看數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫列表。

          =# \l

          使用如下命令通過系統(tǒng)表查詢數(shù)據(jù)庫列表。

          =# SELECT datname FROM ;

          sql命名表_sql數(shù)據(jù)庫命名規(guī)則_數(shù)據(jù)庫的命名規(guī)則

          注:數(shù)據(jù)庫名稱遵循SQL標(biāo)識符的一般規(guī)則。當(dāng)前角色自動(dòng)成為此新數(shù)據(jù)庫的所有者。

          如果一個(gè)數(shù)據(jù)庫系統(tǒng)用于承載相互獨(dú)立的用戶和項(xiàng)目,建議把它們放在不同的數(shù)據(jù)庫里。

          如果項(xiàng)目或者用戶是相互關(guān)聯(lián)的,并且可以相互使用對方的資源,則應(yīng)該把它們放在同一個(gè)數(shù)據(jù)庫里,但可以規(guī)劃在不同的模式中。模式只是一個(gè)純粹的邏輯結(jié)構(gòu),某個(gè)模式的訪問權(quán)限由權(quán)限系統(tǒng)模塊控制。

          創(chuàng)建數(shù)據(jù)庫時(shí),若數(shù)據(jù)庫名稱長度超過63字節(jié),server端會(huì)對數(shù)據(jù)庫名稱進(jìn)行截?cái)啵A羟?3個(gè)字節(jié),因此建議數(shù)據(jù)庫名稱長度不要超過63個(gè)字節(jié)。

          --修改數(shù)據(jù)庫

          用戶可以使用如下命令修改數(shù)據(jù)庫屬性(比如:owner、名稱和默認(rèn)的配置屬性)。

          使用以下命令為數(shù)據(jù)庫設(shè)置默認(rèn)的模式搜索路徑。

          =# ALTER db_tpcc SET TO ,public;

          --使用如下命令為數(shù)據(jù)庫重新命名。

          =# ALTER db_tpcc RENAME TO ;

          --刪除數(shù)據(jù)庫

          用戶可以使用DROP 命令刪除數(shù)據(jù)庫。這個(gè)命令刪除了數(shù)據(jù)庫中的系統(tǒng)目錄,并且刪除了磁盤上帶有數(shù)據(jù)的數(shù)據(jù)庫目錄。用戶必須是數(shù)據(jù)庫的owner或者系統(tǒng)管理員才能刪除數(shù)據(jù)庫。當(dāng)有人連接數(shù)據(jù)庫時(shí),刪除操作會(huì)失敗。刪除數(shù)據(jù)庫時(shí)請先連接到其他的數(shù)據(jù)庫。

          使用如下命令刪除數(shù)據(jù)庫:

          =# DROP db_tpcc;

          創(chuàng)建表(CREATE TABLE)

          --表是建立在數(shù)據(jù)庫中的,在不同的數(shù)據(jù)庫中可以存放相同的表。甚至可以通過使用模式在同一個(gè)數(shù)據(jù)庫中創(chuàng)建相同名稱的表。創(chuàng)建表前請先規(guī)劃存儲模型。

          =# CREATE TABLE

          integer,

          char(5),

          char(6),

          char(8)

          );

          sql命名表_sql數(shù)據(jù)庫命名規(guī)則_數(shù)據(jù)庫的命名規(guī)則

          當(dāng)結(jié)果顯示為如下信息,則表示創(chuàng)建成功。

          CREATE TABLE

          其中 、、和是表的字段名,integer、char(5)、char(6)和char(8)分別是這四字段名稱的類型。

          向表中插入數(shù)據(jù)

          --向表中插入數(shù)據(jù)前,意味著表已創(chuàng)建成功。

          向表中插入一行:

          數(shù)據(jù)值是按照這些字段在表中出現(xiàn)的順序列出的,并且用逗號分隔。通常數(shù)據(jù)值是文本(常量),但也允許使用標(biāo)量表達(dá)式。

          =# INSERT INTO (, , ) VALUES (3769, 'hello', 'Grace');

          如果用戶已經(jīng)知道表中字段的順序,也可無需列出表中的字段。例如以下命令與上面的命令效果相同。

          =# INSERT INTO VALUES (3769, 'hello', 'Grace');

          如果用戶不知道所有字段的數(shù)值,可以忽略其中的一些。沒有數(shù)值的字段將被填充為字段的缺省值。例如:

          =# INSERT INTO (, ) VALUES (3769, 'Grace');

          數(shù)據(jù)庫的命名規(guī)則_sql數(shù)據(jù)庫命名規(guī)則_sql命名表

          =# INSERT INTO VALUES (3769, 'hello');

          用戶也可以對獨(dú)立的字段或者整個(gè)行明確缺省值:

          =# INSERT INTO (, , ) VALUES (3769, 'hello', DEFAULT);

          =# INSERT INTO DEFAULT VALUES;

          如果需要在表中插入多行,請使用以下命令:

          =# INSERT INTO (, , ) VALUES

          (6885, 'maps', 'Joes'),

          (4321, 'tpcds', 'Lily'),

          (9527, 'world', 'James');

          如果需要向表中插入多條數(shù)據(jù),除此命令外,也可以多次執(zhí)行插入一行數(shù)據(jù)命令實(shí)現(xiàn)。但是建議使用此命令可以提升效率。

          如果從指定表插入數(shù)據(jù)到當(dāng)前表,例如在數(shù)據(jù)庫中創(chuàng)建了一個(gè)表的備份表,現(xiàn)在需要將表中的數(shù)據(jù)插入到表中,則可以執(zhí)行如下命令。

          =# CREATE TABLE

          integer,

          char(5),

          char(6),

          char(8)

          );

          =# INSERT INTO SELECT * FROM ;

          從指定表插入數(shù)據(jù)到當(dāng)前表時(shí),若指定表與當(dāng)前表對應(yīng)的字段數(shù)據(jù)類型之間不存在隱式轉(zhuǎn)換,則這兩種數(shù)據(jù)類型必須相同。

          刪除備份表

          =# DROP TABLE CASCADE;

          在刪除表的時(shí)候,若當(dāng)前需刪除的表與其他表有依賴關(guān)系,需先刪除關(guān)聯(lián)的表,然后再刪除當(dāng)前表。

          更新表中數(shù)據(jù)

          修改已經(jīng)存儲在數(shù)據(jù)庫中數(shù)據(jù)的行為叫做更新。用戶可以更新單獨(dú)一行,所有行或者指定的部分行。還可以獨(dú)立更新每個(gè)字段,而其他字段則不受影響。

          使用UPDATE命令更新現(xiàn)有行,需要提供以下三種信息:

          SQL通常不會(huì)為數(shù)據(jù)行提供唯一標(biāo)識,因此無法直接聲明需要更新哪一行。但是可以通過聲明一個(gè)被更新的行必須滿足的條件。只有在表里存在主鍵的時(shí)候,才可以通過主鍵指定一個(gè)獨(dú)立的行。

          建立表和插入數(shù)據(jù)的步驟請參考創(chuàng)建表和向表中插入數(shù)據(jù)。

          需要將表中為9527的地域重新定義為9876:

          =# UPDATE SET = 9876 WHERE = 9527;

          這里的表名稱也可以使用模式名修飾,否則會(huì)從默認(rèn)的模式路徑找到這個(gè)表。SET后面緊跟字段和新的字段值。新的字段值不僅可以是常量,也可以是變量表達(dá)式。

          比如,把所有的值增加100:

          =# UPDATE SET = + 100;

          在這里省略了WHERE子句,表示表中的所有行都要被更新。如果出現(xiàn)了WHERE子句,那么只有匹配其條件的行才會(huì)被更新。

          在SET子句中的等號是一個(gè)賦值,而在WHERE子句中的等號是比較。WHERE條件不一定是相等測試,許多其他的操作符也可以使用。

          用戶可以在一個(gè)UPDATE命令中更新更多的字段,方法是在SET子句中列出更多賦值,比如:

          =# UPDATE SET = 'Admin', = 'Local' WHERE = 4421;

          批量更新或刪除數(shù)據(jù)后,會(huì)在數(shù)據(jù)文件中產(chǎn)生大量的刪除標(biāo)記,查詢過程中標(biāo)記刪除的數(shù)據(jù)也是需要掃描的。故多次批量更新/刪除后,標(biāo)記刪除的數(shù)據(jù)量過大會(huì)嚴(yán)重影響查詢的性能。建議在批量更新/刪除業(yè)務(wù)會(huì)反復(fù)執(zhí)行的場景下,定期執(zhí)行VACUUM FULL以保持查詢性能。

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

          使用系統(tǒng)表查詢數(shù)據(jù)庫所有表的信息。

          =# SELECT * FROM ;

          使用gsql的\d+命令查詢表的屬性。

          =# \d+ ;

          數(shù)據(jù)庫的命名規(guī)則_sql數(shù)據(jù)庫命名規(guī)則_sql命名表

          執(zhí)行如下命令查詢表的數(shù)據(jù)量。

          =# SELECT count(*) FROM ;

          執(zhí)行如下命令查詢表的所有數(shù)據(jù)。

          =# SELECT * FROM ;

          sql數(shù)據(jù)庫命名規(guī)則_數(shù)據(jù)庫的命名規(guī)則_sql命名表

          說明:插數(shù)據(jù)時(shí),沒有數(shù)值的字段將被填充為字段的缺省值。

          執(zhí)行如下命令只查詢字段的數(shù)據(jù)。

          =# SELECT FROM ;

          執(zhí)行如下命令過濾字段的重復(fù)數(shù)據(jù)。

          =# SELECT ( ) FROM ;

          執(zhí)行如下命令查詢字段為3869的所有數(shù)據(jù)。

          =# SELECT * FROM WHERE = 3869;

          執(zhí)行如下命令按照字段進(jìn)行排序。

          =# SELECT * FROM ORDER BY ;

          刪除表中數(shù)據(jù)

          在使用表的過程中,可能會(huì)需要?jiǎng)h除已過期的數(shù)據(jù),刪除數(shù)據(jù)必須從表中整行的刪除。

          SQL不能直接訪問獨(dú)立的行,只能通過聲明被刪除行匹配的條件進(jìn)行。如果表中有一個(gè)主鍵,用戶可以指定準(zhǔn)確的行。用戶可以刪除匹配條件的一組行或者一次刪除表中的所有行。

          使用DELETE命令刪除行,如果刪除表中所有為3869的記錄:

          =# DELETE FROM WHERE = 3869;

          如果執(zhí)行如下命令之一,會(huì)刪除表中所有的行。

          =# DELETE FROM ;

          =# TABLE ;

          全表刪除的場景下,建議使用,不建議使用delete。

          刪除創(chuàng)建的表:

          =# DROP TABLE ;

          三、參考資料:

          1.官方文檔3.0.0 開發(fā)指南:

          2.SQL實(shí)踐操作經(jīng)驗(yàn)


          主站蜘蛛池模板: 无码丰满熟妇浪潮一区二区AV| 精品伦精品一区二区三区视频 | 精彩视频一区二区| 精品亚洲一区二区三区在线观看| 中文字幕精品一区二区2021年| 无码av不卡一区二区三区| 亚洲天堂一区在线| 一区二区不卡视频在线观看| 日本在线视频一区二区三区 | 亚洲美女一区二区三区| 精品aⅴ一区二区三区| 日本道免费精品一区二区| 一区二区三区在线| 人妻体内射精一区二区| 国模极品一区二区三区| 中文字幕一区二区三区在线观看| 国产在线一区二区综合免费视频| 一区二区三区四区在线视频| 日韩高清一区二区三区不卡| 国产精品自拍一区| 亚洲AV无码一区二区一二区| 国产精品视频一区二区三区经| 亚洲一区二区三区深夜天堂| 国产91大片精品一区在线观看| 亚洲AV综合色区无码一区 | 亚无码乱人伦一区二区| 丰满爆乳无码一区二区三区| 精品人妻少妇一区二区三区不卡 | 亚洲国产精品一区二区第四页| 国产在线步兵一区二区三区| 一区二区手机视频| 国产一区三区二区中文在线| 国产亚洲一区二区精品| 精品欧洲av无码一区二区| 亚洲AV无码一区二区三区牲色| 国产高清视频一区二区| 国模无码人体一区二区| 亚洲日本乱码一区二区在线二产线| 亚洲AV无码国产精品永久一区| 深夜福利一区二区| 亚洲福利视频一区|