:meta-keywords: cubrid charset, cubrid coercibility, cubrid collation, cubrid current_user, cubrid default, cubrid last_insert_id, cubrid row_count :tocdepth: 3 ********* ì •ë³´ 함수 ********* .. contents:: CHARSET ======= .. function:: CHARSET(expr) *expr* ì˜ ë¬¸ìžì…‹ì„ 반환한다. :param expr: 문ìžì…‹ì„ êµ¬í• ëŒ€ìƒ í‘œí˜„ì‹ :rtype: STRING .. code-block:: sql SELECT CHARSET('abc'); :: 'iso88591' .. code-block:: sql SELECT CHARSET(_utf8'abc'); :: 'utf8' .. code-block:: sql SET NAMES utf8; SELECT CHARSET('abc'); :: 'utf8' COERCIBILITY ============ .. function:: COERCIBILITY(expr) *expr*\ ì˜ ì½œë ˆì´ì…˜ 변환ë„(coercibility)를 반환한다. ì½œë ˆì´ì…˜ 변환ë„는 칼럼(표현ì‹)ë“¤ì´ ì„œë¡œ 다른 ì½œë ˆì´ì…˜ê³¼ 문ìžì…‹ì„ ê°€ì§€ê³ ìžˆì„ ë•Œ ì–´ë–¤ ì½œë ˆì´ì…˜ê³¼ 문ìžì…‹ìœ¼ë¡œ ë³€í™˜í• ê²ƒì¸ì§€ë¥¼ ê²°ì •í•œë‹¤. ì–´ë–¤ ì—°ì‚°ì„ ìˆ˜í–‰í•˜ëŠ” ë‘ ê°œì˜ ì¹¼ëŸ¼(표현ì‹)ì´ ìžˆì„ ë•Œ, ë†’ì€ ë³€í™˜ë„를 가진 ì¸ìžëŠ” ë” ë‚®ì€ ë³€í™˜ë„를 가진 ì¸ìžì˜ ì½œë ˆì´ì…˜ìœ¼ë¡œ 변환ëœë‹¤. ì´ì™€ ê´€ë ¨í•˜ì—¬ :ref:`ì½œë ˆì´ì…˜ ë³€í™˜ë„ <collation-coercibility>`\ 를 ì°¸ê³ í•œë‹¤. :param expr: ì½œë ˆì´ì…˜ 변환ë„를 êµ¬í• ëŒ€ìƒ í‘œí˜„ì‹ :rtype: INT .. code-block:: sql SELECT COERCIBILITY(USER()); :: 7 .. code-block:: sql SELECT COERCIBILITY(_utf8'abc'); :: 10 COLLATION ========= .. function:: COLLATION(expr) *expr*\ ì˜ ì½œë ˆì´ì…˜ì„ 반환한다. :param expr: ì½œë ˆì´ì…˜ì„ êµ¬í• ëŒ€ìƒ í‘œí˜„ì‹ :rtype: STRING .. code-block:: sql SELECT COLLATION('abc'); :: 'iso88591_bin' .. code-block:: sql SELECT COLLATION(_utf8'abc'); :: 'utf8_bin' CURRENT_USER, USER ================== .. c:macro:: CURRENT_USER .. c:macro:: USER **CURRENT_USER**\ 와 **USER** ì˜ì‚¬ 칼럼(pseudo column)ì€ ë™ì¼í•˜ë©°, 현재 ë°ì´í„°ë² ì´ìŠ¤ì— ë¡œê·¸ì¸í•œ 사용ìžì˜ ì´ë¦„ì„ ë¬¸ìžì—´ë¡œ 반환한다. ê¸°ëŠ¥ì´ ë¹„ìŠ·í•œ :func:`SYSTEM_USER` 함수와 :func:`USER` 함수는 ì‚¬ìš©ìž ì´ë¦„ì„ CSQL ë˜ëŠ” CASê°€ ì‹¤í–‰ëœ í˜¸ìŠ¤íŠ¸ ì´ë¦„ê³¼ 함께 반환한다. :rtype: STRING .. code-block:: sql --selecting the current user on the session SELECT USER; :: CURRENT_USER ====================== 'PUBLIC' .. code-block:: sql SELECT USER(), CURRENT_USER; :: user() CURRENT_USER ============================================ 'PUBLIC@cdbs006.cub' 'PUBLIC' .. code-block:: sql --selecting all users of the current database from the system table SELECT name, id, password FROM db_user; :: name id password ========================================================= 'DBA' NULL NULL 'PUBLIC' NULL NULL 'SELECT_ONLY_USER' NULL db_password 'ALMOST_DBA_USER' NULL db_password 'SELECT_ONLY_USER2' NULL NULL DATABASE, SCHEMA ================ .. function:: DATABASE() .. function:: SCHEMA() **DATABASE** 함수와 **SCHEMA** 함수는 ë™ì¼í•˜ë©°, 현재 ì—°ê²°ëœ ë°ì´í„°ë² ì´ìФ ì´ë¦„ì„ **VARCHAR** íƒ€ìž…ì˜ ë¬¸ìžì—´ë¡œ 반환한다. :rtype: STRING .. code-block:: sql SELECT DATABASE(), SCHEMA(); :: database() schema() ============================================ 'demodb' 'demodb' DBTIMEZONE ========== .. function:: DBTIMEZONE() ë°ì´í„°ë² ì´ìФ ì„œë²„ì˜ íƒ€ìž„ì¡´(오프셋 ë˜ëŠ” 지명)ì„ ë¬¸ìžì—´ë¡œ ì¶œë ¥í•œë‹¤(예: '-05:00', ë˜ëŠ” 'Europe/Vienna'). .. code-block:: sql SELECT DBTIMEZONE(); :: dbtimezone ====================== 'Asia/Seoul' .. seealso:: :func:`SESSIONTIMEZONE`, :func:`FROM_TZ`, :func:`NEW_TIME`, :func:`TZ_OFFSET` DEFAULT ======= .. function:: DEFAULT(column_name) .. c:macro:: DEFAULT **DEFAULT**\ 와 **DEFAULT** 함수는 ì¹¼ëŸ¼ì— ì •ì˜ëœ ê¸°ë³¸ê°’ì„ ë°˜í™˜í•œë‹¤. 해당 ì¹¼ëŸ¼ì— ê¸°ë³¸ê°’ì´ ì§€ì •ë˜ì§€ 않으면 **NULL** ë˜ëŠ” ì—러를 ì¶œë ¥í•œë‹¤. **DEFAULT**\ 는 ì¸ìžê°€ 없는 반면, **DEFAULT** 함수는 칼럼 ì´ë¦„ì„ ìž…ë ¥ ì¸ìžë¡œ 하는 ì°¨ì´ê°€ 있다. **DEFAULT**\ 는 **INSERT** ë¬¸ì˜ ìž…ë ¥ ë°ì´í„°, **UPDATE** ë¬¸ì˜ **SET** ì ˆì—서 사용ë 수 ìžˆê³ , **DEFAULT** 함수는 ëª¨ë“ ê³³ì—서 사용ë 수 있다. ê¸°ë³¸ê°’ì´ ì •ì˜ë˜ì§€ ì•Šì€ ì¹¼ëŸ¼ì— ì–´ë– í•œ ì œì•½ ì¡°ê±´ì´ ì •ì˜ë˜ì–´ 있지 않거나 **UNIQUE** ì œì•½ ì¡°ê±´ì´ ì •ì˜ëœ 경우ì—는 **NULL**\ ì„ ë°˜í™˜í•˜ê³ , 해당 ì¹¼ëŸ¼ì— **NOT NULL** ë˜ëŠ” **PRIMARY KEY** ì œì•½ ì¡°ê±´ì´ ì •ì˜ëœ 경우ì—는 ì—러를 반환한다. .. code-block:: sql CREATE TABLE info_tbl(id INT DEFAULT 0, name VARCHAR); INSERT INTO info_tbl VALUES (1,'a'),(2,'b'),(NULL,'c'); SELECT id, DEFAULT(id) FROM info_tbl; :: id default(id) ============================= 1 0 2 0 NULL 0 .. code-block:: sql UPDATE info_tbl SET id = DEFAULT WHERE id IS NULL; DELETE FROM info_tbl WHERE id = DEFAULT(id); INSERT INTO info_tbl VALUES (DEFAULT,'d'); .. note:: CUBRID 9.0 미만 ë²„ì „ì—서는 í…Œì´ë¸” ìƒì„± 시 DATE, DATETIME, TIME, TIMESTAMP ì¹¼ëŸ¼ì˜ DEFAULT ê°’ì„ SYS_DATE, SYS_DATETIME, SYS_TIME, SYS_TIMESTAMP로 ì§€ì •í•˜ë©´, CREATE TABLE 시ì ì˜ ê°’ì´ ì €ìž¥ëœë‹¤. ë”°ë¼ì„œ ë°ì´í„°ê°€ INSERTë˜ëŠ” 시ì ì˜ ê°’ì„ ìž…ë ¥í•˜ë ¤ë©´ INSERT êµ¬ë¬¸ì˜ VALUES ì ˆì— í•´ë‹¹ 함수를 ìž…ë ¥í•´ì•¼ 한다. .. _disk_size: DISK_SIZE ========= .. function:: DISK_SIZE(expr) ì´ í•¨ìˆ˜ëŠ” *expr* ê°’ì„ ì €ìž¥í•˜ëŠ” ë° í•„ìš”í•œ ë°”ì´íЏ í¬ê¸°ë¥¼ 반환한다. 주로 ë°ì´í„°ë² ì´ìФ íž™ 파ì¼ì— ê°’ì„ ì €ìž¥í•˜ëŠ” ë° í•„ìš”í•œ í¬ê¸°ë¥¼ 확ì¸í• 때 사용한다. :param expr: ì—°ì‚°ì‹ :rtype: INTEGER .. code-block:: sql SELECT DISK_SIZE('abc'), DISK_SIZE(1); :: disk_size('abc') disk_size(1) ================================== 7 4 ê°’ì˜ ì‹¤ì œ ë‚´ìš©ì— ë”°ë¼ í¬ê¸°ê°€ 다르며, :ref:`문ìžì—´ ì••ì¶•<string_compression>` ë„ ê³ ë ¤í•œë‹¤. .. code-block:: sql CREATE TABLE t1(s1 VARCHAR(10), s2 VARCHAR(300), c1 CHAR(10), c2 CHAR(300)); INSERT INTO t1 VALUES(REPEAT('a', 10), REPEAT('b', 300), REPEAT('c', 10), REPEAT('d', 300)); INSERT INTO t1 VALUES('a', 'b', 'c', 'd'); SELECT DISK_SIZE(s1), DISK_SIZE(s2), DISK_SIZE(c1), DISK_SIZE(c2) FROM t1; :: disk_size(s1) disk_size(s2) disk_size(c1) disk_size(c2) ================================================================ 12 24 10 300 4 4 10 300 INDEX_CARDINALITY ================= .. function:: INDEX_CARDINALITY(table, index, key_pos) **INDEX_CARDINALITY** 함수는 í…Œì´ë¸”ì—서 ì¸ë±ìФ ì¹´ë””ë„리티(cardinality)를 반환한다. ì¸ë±ìФ ì¹´ë””ë„리티는 ì¸ë±ìŠ¤ë¥¼ ì •ì˜í•˜ëŠ” ê³ ìœ í•œ ê°’ì˜ ê°œìˆ˜ì´ë‹¤. ì¸ë±ìФ ì¹´ë””ë„리티는 다중 칼럼 ì¸ë±ìŠ¤ì˜ ë¶€ë¶„ í‚¤ì— ëŒ€í•´ì„œë„ ì ìš©í• ìˆ˜ 있는ë°, ì´ë•Œ 세 번째 ì¸ìžë¡œ ì¹¼ëŸ¼ì˜ ìœ„ì¹˜ë¥¼ ì§€ì •í•˜ì—¬ 부분 í‚¤ì— ëŒ€í•œ ê³ ìœ ê°’ì˜ ê°œìˆ˜ë¥¼ 나타낸다. ì´ ê°’ì€ ê·¼ì‚¬ì¹˜ìž„ì— ìœ ì˜í•œë‹¤. ê°±ì‹ ëœ ê²°ê³¼ë¥¼ ì–»ìœ¼ë ¤ë©´ 반드시 **UPDATE STATISTICS** ë¬¸ì„ ë¨¼ì € 수행해야 한다. :param table: í…Œì´ë¸” ì´ë¦„ :param index: *table* ë‚´ì— ì¡´ìž¬í•˜ëŠ” ì¸ë±ìФ ì´ë¦„ :param key_pos: 부분 í‚¤ì˜ ìœ„ì¹˜. *key_pos* 는 0부터 시작하여 키를 구성하는 칼럼 개수보다 ìž‘ì€ ë²”ìœ„ë¥¼ 갖는다. 즉, 첫 번째 ì¹¼ëŸ¼ì˜ *key_pos* 는 0ì´ë‹¤. ë‹¨ì¼ ì¹¼ëŸ¼ ì¸ë±ìŠ¤ì˜ ê²½ìš°ì—는 0ì´ë‹¤. ë‹¤ìŒ íƒ€ìž… 중 하나가 ë 수 있다. * 숫ìží˜• 타입으로 ë³€í™˜í• ìˆ˜ 있는 문ìžì—´. * ì •ìˆ˜í˜•ìœ¼ë¡œ ë³€í™˜í• ìˆ˜ 있는 숫ìží˜• 타입. FLOAT나 DOUBLE íƒ€ìž…ì€ ROUND 함수로 변환한 ê°’ì´ ëœë‹¤. :rtype: INT 리턴 ê°’ì€ 0 ë˜ëŠ” ì–‘ì˜ ì •ìˆ˜ì´ë©°, ìž…ë ¥ ì¸ìž 중 하나ë¼ë„ **NULL** ì´ë©´ **NULL** ì„ ë°˜í™˜í•œë‹¤. ìž…ë ¥ ì¸ìžì¸ í…Œì´ë¸”ì´ë‚˜ ì¸ë±ìŠ¤ê°€ 발견ë˜ì§€ 않거나 *key_pos* ê°€ ì§€ì •ëœ ë²”ìœ„ë¥¼ 벗어나면 **NULL** ì„ ë¦¬í„´í•œë‹¤. .. code-block:: sql CREATE TABLE t1( i1 INTEGER , i2 INTEGER not null, i3 INTEGER unique, s1 VARCHAR(10), s2 VARCHAR(10), s3 VARCHAR(10) UNIQUE); CREATE INDEX i_t1_i1 ON t1(i1 DESC); CREATE INDEX i_t1_s1 ON t1(s1(7)); CREATE INDEX i_t1_i1_s1 on t1(i1,s1); CREATE UNIQUE INDEX i_t1_i2_s2 ON t1(i2,s2); INSERT INTO t1 VALUES (1,1,1,'abc','abc','abc'); INSERT INTO t1 VALUES (2,2,2,'zabc','zabc','zabc'); INSERT INTO t1 VALUES (2,3,3,'+abc','+abc','+abc'); UPDATE STATISTICS ON t1; SELECT INDEX_CARDINALITY('t1','i_t1_i1_s1',0); :: index_cardinality('t1', 'i_t1_i1_s1', 0) =========================================== 2 .. code-block:: sql SELECT INDEX_CARDINALITY('t1','i_t1_i1_s1',1); :: index_cardinality('t1', 'i_t1_i1_s1', 1) =========================================== 3 .. code-block:: sql SELECT INDEX_CARDINALITY('t1','i_t1_i1_s1',2); :: index_cardinality('t1', 'i_t1_i1_s1', 2) =========================================== NULL .. code-block:: sql SELECT INDEX_CARDINALITY('t123','i_t1_i1_s1',1); :: index_cardinality('t123', 'i_t1_i1_s1', 1) ============================================ NULL INET_ATON ========= .. function:: INET_ATON( ip_string ) **INET_ATON** 함수는 IPv4 ì£¼ì†Œì˜ ë¬¸ìžì—´ì„ ìž…ë ¥ë°›ì•„ ì´ì— 해당하는 숫ìžë¥¼ 반환한다. 'a.b.c.d' 형ì‹ì˜ IP 주소 문ìžì—´ì„ ìž…ë ¥í•˜ë©´ "a * 256 ^ 3 + b * 256 ^ 2 + c * 256 + d"ê°€ 반환ëœë‹¤. 반환 íƒ€ìž…ì€ **BIGINT** ì´ë‹¤. :param ip_string: IPv4 주소 문ìžì—´ :rtype: BIGINT ë‹¤ìŒ ì˜ˆì œì—서 192.168.0.10ì€ "192 * 256 ^ 3 + 168 * 256 ^ 2 + 0 * 256 + 10"으로 계산ëœë‹¤. .. code-block:: sql SELECT INET_ATON('192.168.0.10'); :: inet_aton('192.168.0.10') ============================ 3232235530 INET_NTOA ========= .. function:: INET_NTOA( expr ) **INET_NTOA** 함수는 숫ìžë¥¼ ìž…ë ¥ë°›ì•„ IPv4 주소 형ì‹ì˜ 문ìžì—´ì„ 반환한다. 반환 íƒ€ìž…ì€ **VARCHAR** ì´ë‹¤. :param expr: ìˆ«ìž í‘œí˜„ì‹ :rtype: STRING .. code-block:: sql SELECT INET_NTOA(3232235530); :: inet_ntoa(3232235530) ====================== '192.168.0.10' LAST_INSERT_ID ============== .. function:: LAST_INSERT_ID() **LAST_INSERT_ID** 함수는 **AUTO_INCREMENT** ì¹¼ëŸ¼ì˜ ê°’ì´ ìžë™ ì¦ê°€í• 때 가장 ìµœê·¼ì— **INSERT**\ ëœ ê°’ì„ ë°˜í™˜í•œë‹¤. :rtype: BIGINT **LAST_INSERT_ID** 함수가 반환하는 ê°’ì€ ë‹¤ìŒì˜ íŠ¹ì§•ì„ ê°€ì§„ë‹¤. * **INSERT** 문 ìˆ˜í–‰ì— ì„±ê³µí–ˆë˜ ê°€ìž¥ ìµœê·¼ì˜ **LAST_INSERT_ID** ê°’ì´ ìœ ì§€ëœë‹¤. **INSERT** 문 ìˆ˜í–‰ì— ì‹¤íŒ¨í•˜ëŠ” 경우 **LAST_INSERT_ID**\() ê°’ì€ ë³€ë™ì´ 없으나 **AUTO_INCREMENT** ê°’ì€ ë‚´ë¶€ì 으로 ì¦ê°€í•œë‹¤. ë”°ë¼ì„œ, ë‹¤ìŒ **INSERT** 문 ìˆ˜í–‰ì´ ì„±ê³µí•œ ì´í›„ **LAST_INSERT_ID**\() ê°’ì€ ë‚´ë¶€ì 으로 ì¦ê°€ëœ **AUTO_INCREMENT** ê°’ì„ ë°˜ì˜í•œë‹¤. .. code-block:: sql CREATE TABLE tbl(a INT PRIMARY KEY AUTO_INCREMENT, b INT UNIQUE); INSERT INTO tbl VALUES (null, 1); INSERT INTO tbl VALUES (null, 1); :: ERROR: Operation would have caused one or more unique constraint violations. .. code-block:: sql INSERT INTO tbl VALUES (null, 1); :: ERROR: Operation would have caused one or more unique constraint violations. .. code-block:: sql SELECT LAST_INSERT_ID(); :: 1 -- In 2008 R4.x, above value was 3. .. code-block:: sql INSERT INTO tbl VALUES (null, 2); SELECT LAST_INSERT_ID(); :: 4 * 다중 í–‰ **INSERT** 문(INSERT INTO tbl VALUES (), (), ..., ())ì—서 **LAST_INSERT_ID**\ ()는 첫 번째로 ìž…ë ¥ëœ **AUTO_INCREMENT** ê°’ì„ ë°˜í™˜í•œë‹¤. 즉, ë‘ ë²ˆì§¸ 행부터는 ìž…ë ¥ì´ ë˜ì–´ë„ **LAST_INSERT_ID**\ () ê°’ì´ ë³€í•˜ì§€ 않는다. .. code-block:: sql INSERT INTO tbl VALUES (null, 11), (null, 12), (null, 13); SELECT LAST_INSERT_ID(); :: 5 .. code-block:: sql INSERT INTO tbl VALUES (null, 21); SELECT LAST_INSERT_ID(); :: 8 * **INSERT** ë¬¸ì´ ì‹¤í–‰ì— ì„±ê³µí•œ 경우, **LAST_INSERT_ID** () ê°’ì€ íŠ¸ëžœìžì…˜ì´ 롤백ë˜ì–´ë„ ì˜ˆì „ì˜ **LAST_INSERT_ID** () 값으로 복구ë˜ì§€ 않는다. .. code-block:: sql -- csql> ;autocommit off CREATE TABLE tbl2(a INT PRIMARY KEY AUTO_INCREMENT, b INT UNIQUE); INSERT INTO tbl2 VALUES (null, 1); COMMIT; SELECT LAST_INSERT_ID(); :: 1 .. code-block:: sql INSERT INTO tbl2 VALUES (null, 2); INSERT INTO tbl2 VALUES (null, 3); ROLLBACK; SELECT LAST_INSERT_ID(); :: 3 * 트리거 ë‚´ì—서 사용한 **LAST_INSERT_ID**\ () ê°’ì€ íŠ¸ë¦¬ê±° ë°–ì—서 확ì¸í• 수 없다. * **LAST_INSERT_ID**\ 는 ê° ì‘ìš© í´ë¼ì´ì–¸íŠ¸ì˜ ì„¸ì…˜ë§ˆë‹¤ ë…립ì 으로 ìœ ì§€ëœë‹¤. .. code-block:: sql CREATE TABLE ss (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, text VARCHAR(32)); INSERT INTO ss VALUES (NULL, 'cubrid'); SELECT LAST_INSERT_ID (); :: last_insert_id() ======================= 1 .. code-block:: sql INSERT INTO ss VALUES (NULL, 'database'), (NULL, 'manager'); SELECT LAST_INSERT_ID (); :: last_insert_id() ======================= 2 .. code-block:: sql CREATE TABLE tbl (id INT AUTO_INCREMENT); INSERT INTO tbl values (500), (NULL), (NULL); SELECT LAST_INSERT_ID(); :: last_insert_id() ======================= 1 .. code-block:: sql INSERT INTO tbl VALUES (500), (NULL), (NULL); SELECT LAST_INSERT_ID(); :: last_insert_id() ======================= 3 .. code-block:: sql SELECT * FROM tbl; :: id ======================= 500 1 2 500 3 4 LIST_DBS ======== .. function:: LIST_DBS() **LIST_DBS** 함수는 ë””ë ‰í„°ë¦¬ 파ì¼(**$CUBRID_DATABASES/databases.txt**)ì— ì¡´ìž¬í•˜ëŠ” ëª¨ë“ ë°ì´í„°ë² ì´ìФ 리스트를 공백 문ìžë¡œ 구분하여 ì¶œë ¥í•œë‹¤. :rtype: STRING .. code-block:: sql SELECT LIST_DBS(); :: list_dbs() ====================== 'testdb demodb' ROW_COUNT ========= .. function:: ROW_COUNT() **ROW_COUNT** 함수는 가장 ë§ˆì§€ë§‰ì— ìˆ˜í–‰ëœ **UPDATE**, **INSERT**, **DELETE**, **REPLACE** ë¬¸ì— ì˜í–¥ì„ 받는 í–‰ì˜ ê°œìˆ˜ë¥¼ ì •ìˆ˜ë¡œ 반환한다. **INSERT ON DUPLICATE KEY UPDATE** ë¬¸ì— ì˜í•´ INSERTëœ ê° í–‰ì€ 1ì„ UPDATEëœ í–‰ì€ ê°ê° 2를 반환한다. **REPLACE** ë¬¸ì— ëŒ€í•´ì„œëŠ” DELETE와 INSERT를 합한 개수를 반환한다. 트리거로 ì¸í•´ 수행ë˜ëŠ” ë¬¸ìž¥ë“¤ì€ í•´ë‹¹ ë¬¸ìž¥ì˜ ROW_COUNTì— ì˜í–¥ì„ ë¼ì¹˜ì§€ 않는다. :rtype: INT .. code-block:: sql CREATE TABLE rc (i int); INSERT INTO rc VALUES (1),(2),(3),(4),(5),(6),(7); SELECT ROW_COUNT(); :: row_count() =============== 7 .. code-block:: sql UPDATE rc SET i = 0 WHERE i > 3; SELECT ROW_COUNT(); :: row_count() =============== 4 .. code-block:: sql DELETE FROM rc WHERE i = 0; SELECT ROW_COUNT(); :: row_count() =============== 4 SESSIONTIMEZONE =============== .. function:: SESSIONTIMEZONE() ì„¸ì…˜ì˜ íƒ€ìž„ì¡´(오프셋 ë˜ëŠ” 지명)ì„ ë¬¸ìžì—´ë¡œ ì¶œë ¥í•œë‹¤(예: '-05:00', ë˜ëŠ” 'Europe/Vienna'). .. code-block:: sql SELECT SESSIONTIMEZONE(); :: sessiontimezone ====================== 'Asia/Seoul' .. seealso:: :func:`DBTIMEZONE`, :func:`FROM_TZ`, :func:`NEW_TIME`, :func:`TZ_OFFSET` USER, SYSTEM_USER ================= .. function:: USER() .. function:: SYSTEM_USER() **USER** 함수와 **SYSTEM_USER** 함수는 ë™ì¼í•˜ë©°, ì‚¬ìš©ìž ì´ë¦„ì„ CSQL ë˜ëŠ” CASê°€ ì‹¤í–‰ëœ í˜¸ìŠ¤íŠ¸ ì´ë¦„ê³¼ 함께 반환한다. ê¸°ëŠ¥ì´ ë¹„ìŠ·í•œ :c:macro:`USER`\ 와 :c:macro:`CURRENT_USER` ì˜ì‚¬ 칼럼(pseudo column)ì€ í˜„ìž¬ ë°ì´í„°ë² ì´ìŠ¤ì— ë¡œê·¸ì¸í•œ 사용ìžì˜ ì´ë¦„ì„ ë¬¸ìžì—´ë¡œ 반환한다. :rtype: STRING .. code-block:: sql --selecting the current user on the session SELECT SYSTEM_USER (); :: user() ====================== 'PUBLIC@cubrid_host' .. code-block:: sql SELECT USER(), CURRENT_USER; :: user() CURRENT_USER ============================================ 'PUBLIC@cubrid_host' 'PUBLIC' .. code-block:: sql --selecting all users of the current database from the system table SELECT name, id, password FROM db_user; :: name id password ========================================================= 'DBA' NULL NULL 'PUBLIC' NULL NULL 'SELECT_ONLY_USER' NULL db_password 'ALMOST_DBA_USER' NULL db_password 'SELECT_ONLY_USER2' NULL NULL VERSION ======= .. function:: VERSION() CUBRID 서버 ë²„ì „ì„ ë‚˜íƒ€ë‚´ëŠ” ë²„ì „ 문ìžì—´ì„ 반환한다. :rtype: STRING .. code-block:: sql SELECT VERSION(); :: version() ===================== '9.1.0.0203'