Repository navigation
Data Editing
๋จ์ผ ํ ์ด๋ธ์ ์กฐํํ ๊ฒฐ๊ณผ๋ ๊ทธ๋ฆฌ๋์์ ๋ฐ๋ก ๊ณ ์น ์ ์์ต๋๋ค. ๊ณ ์น ๋ด์ฉ์ ์ ์ฉ(โ) ์ ๋๋ฅผ ๋๊น์ง ์๋ฒ์ ๊ฐ์ง ์๊ณ , ์ ์ฉ์ ํ ํธ๋์ญ์ ์ผ๋ก ๋ฌถ์ฌ ํ๋๋ผ๋ ์คํจํ๋ฉด ์ ๋ถ ๋๋์๊ฐ๋๋ค.
| ๊ฒฐ๊ณผ | ํธ์ง |
|---|---|
SELECT a, b FROM t ยท SELECT * FROM t WHERE โฆ ยท SELECT t.a FROM t t
|
๊ฐ๋ฅ |
JOIN ยท GROUP BY ยท DISTINCT ยท UNION ยท ์๋ธ์ฟผ๋ฆฌ FROM ยท ์/๋ณ์นญ ์ด(a+1, a AS x) |
์ฝ๊ธฐ ์ ์ฉ(์ํ์ค์ ์ด์ ) |
๋ทฐ ยท ํ๋ก์์ ๊ฒฐ๊ณผ ยท ์ปค์ ยท ์ด์(PROD) ์ ์ ยท ์ค์ grid.edit ๋ |
์ฝ๊ธฐ ์ ์ฉ |
ํ์ ์๋ฒ์์ ์ ํํ ํ๋ ์ฐพ์ ์ ์์ด์ผ ํฉ๋๋ค. Nexa SQL์ ๋ค์ ์์๋ก ๋ฐฉ๋ฒ์ ์ ํฉ๋๋ค.
| ๋ฑ๊ธ | ์กฐ๊ฑด | ๋ฌด์์ผ๋ก ์ฐพ๋ |
|---|---|---|
| 1๊ธ | PK ๋๋ UNIQUE ์ด์ด ๊ฒฐ๊ณผ์ ์ ๋ถ ์๋ค | ๊ทธ ํค ์ด(์๋ณธ ๊ฐ) |
| 1๊ธ-๋ณด์ | ํค๋ ์๋๋ฐ ๊ฒฐ๊ณผ์์ ๋น ์ก๋ค(SELECT name FROM emp) |
ํค ์ด์ ์จ์ ์ด๋ก ๋ง๋ถ์ฌ ํ ๋ฒ ๋ค์ ์กฐํ(ํ๋ฉด์๋ ์ ๋ณด์ ยท grid.edit_hidden_keys) |
| 2๊ธ | ํค๊ฐ ์๋ค | DBMS ํ ์๋ณ์๋ฅผ ์จ์ ์ด๋ก ๋ง๋ถ์ฌ ํ ๋ฒ ๋ค์ ์กฐํ โ Oracle ROWID ยท SQLite rowid ยท PostgreSQL ctid+xmin(grid.edit_rowid) ยท SQL Server/MySQL์ ์์ |
| 3๊ธ | ํค๋ ํ ์๋ณ์๋ ์๋ค | ๋น๊ต ๊ฐ๋ฅํ ๋ชจ๋ ์ด์ ์๋ณธ ๊ฐ(LOBยท์ค์ยท๊ธด ๋ฌธ์ยทxml/jsonยท๊ณต๊ฐํ ์ ์ธ ยท grid.edit_all_cols) |
| ์ฝ๊ธฐ ์ ์ฉ | ์ ์ด๋ ๊ฒ๋ ์ ๋๋ค | โ |
์จ์ ์ด์ ๋ณต์ฌยทํ
์คํธ ๋ณด๊ธฐยทโA/Ctrl+A ์ด๋์๋ ๋์ค์ง ์๊ณ WHERE ์ ์๋ง ์ฐ์
๋๋ค. ๋ค์ ์กฐํ์ ์คํจํ๋ฉด(์: SQLite WITHOUT ROWID ํ) ์๋ ๋ฌธ์ฅ์ผ๋ก ๋์๊ฐ 3๊ธ์ผ๋ก ํ์ ํฉ๋๋ค.
| ๋์ | ํคยท๋ง์ฐ์ค |
|---|---|
| ํธ์ง ์์ | Enter ยท ๋๋ธํด๋ฆญ ยท ๊ทธ๋ฅ ํ์ดํ(์ฒซ ๊ธ์๋ก ์์) |
| ํ์ | Enter(์๋ ์ ๋ก) ยท Tab / Shift+Tab(์ค๋ฅธ์ชฝ/์ผ์ชฝ ์ ๋ก) ยท ๋ค๋ฅธ ์ ํด๋ฆญ |
| ์ทจ์ | Esc |
| ์ ๋น์ฐ๊ธฐ / NULL | Delete ยท Backspace(๋น ๊ฐ = NULL์ grid.edit_empty) ยท ์ฐํด๋ฆญ โธ Set NULL |
| ์ ์ด๋(ํธ์ง๊ธฐ ๋ฐ) | ํ์ดํ ยท Tab / Shift+Tab |
| ํ ์ถ๊ฐ ยท ๋ณต์ ยท ์ญ์ | ํด๋ฐ + โง โ ยท ์ฐํด๋ฆญ ๋ฉ๋ด(์ญ์ ๋ ํ์๋ง ยท ์ ์ฉ ๋ DELETE) โ ๋ณต์ ยท์ญ์ ๋ ์
์ ํ๋ ๊ณ ๋ฅธ ๋ค ์ผ์ง๋๋ค(ํ ์ถ๊ฐ๋ ์ธ์ ๋) |
| ๋ถ์ฌ๋ฃ๊ธฐ | โV/Ctrl+V โ ํญยท์ค ๊ตฌ๋ถ ํ๋ ฌ์ ์ ํ ์
๋ถํฐ ์ฑ์(ํ์ด ๋ชจ์๋ผ๋ฉด ์๋ ์ถ๊ฐ ยท ์ํ grid.paste_max_rows) |
| ๋๋๋ฆฌ๊ธฐ / ๋ค์ ํ๊ธฐ | โZ/Ctrl+Z ยท โโงZ/Ctrl+Y(๊ทธ๋ฆฌ๋ ํธ์ง ์ ์ฉ ์ด๋ ฅ) |
| ๋ณ๊ฒฝ ๋ชฉ๋ก ยท SQL ๋ฏธ๋ฆฌ๋ณด๊ธฐ | ์ฐํด๋ฆญ โธ Changes / Preview SQL(๋ณด๋ผ ๋ฌธ์ฅ์ ๋ฆฌํฐ๋ด๋ก) |
| ์ ์ฉ ยท ์ ๋ถ ๋๋๋ฆฌ๊ธฐ | ํด๋ฐ โ / โ |
ํธ์ง ์ค์ธ ์
์ ํ์ ๊ธ์์ ๊ฐ์ ์๋ฆฌ์ ์์๊ฐ ์ด๋ฆฌ๊ณ ๊ธด ๊ธ์ ์ฒซ๋จธ๋ฆฌ๋ถํฐ ๋ณด์
๋๋ค. ์์ ์์์ ๋๋ธํด๋ฆญ์ ๋จ์ด, ์ธ ๋ฒ ํด๋ฆญ์ ์ ์ฒด ์ ํ์
๋๋ค(editor.dblclick ยท editor.triple_click ยท editor.dblclick_underscore).
- ๋ฐ๋ ์ = ๊ธ์์ ์ฃผํฉ + ๊ตต๊ฒ(๋ฐฐ๊ฒฝ์ ์ด์ง๋ง). ๊ฐ์ ๊ณ ์ณค๋ค๊ฐ ์๋ ๊ฐ์ผ๋ก ๋๋๋ฆฌ๋ฉด ๋ฐ๋ ๊ฒ์ผ๋ก ์น์ง ์์ต๋๋ค(A โ B โ A = ๋ณ๊ฒฝ ์์).
- ํ ๋ : ์ถ๊ฐ ํ ์ด๋ก ยท ๋ฐ๋ ํ ๊ฐ์กฐ์ ยท ์ญ์ ํ ๋นจ๊ฐ + ์ทจ์์ ยท ์ ์ฉ์ ์คํจํ ํ ๋ถ์ ๋ฐฐ๊ฒฝ.
- ํธํฐ์
์์ n ยท ์ถ๊ฐ m ยท ์ญ์ kโ ์ ์ฉ ์ ํธ๋์ญ์ ๋ฒ์์ ๋๋ค.
์ ์ฉ(โ)์ DELETE โ ํค ์ด์ ๋ฐ๊พธ๋ UPDATE โ ๋๋จธ์ง UPDATE โ INSERT ์์๋ก ๋ฐ์ธ๋ ๋ฌธ์ฅ์ ๋ง๋ค์ด ํ ํธ๋์ญ์ ์ ๋ณด๋ ๋๋ค. ๋ฐ์ดํฐ ๋ณดํธ๋ฅผ ์ํด ๋ค์์ ์ค์ ์ผ๋ก ๋ ์ ์์ต๋๋ค.
-
์ฌ์ ๊ฒ์ฌ โ UPDATE/DELETE๋ง๋ค ๊ฐ์ WHERE๋ก
SELECT COUNT(*)๋ฅผ ๋จผ์ ์คํํด ๋์ ํ์ด ์ ํํ 1์ด ์๋๋ฉด ์๋ฌด๊ฒ๋ ์ฐ์ง ์์ต๋๋ค(์์ ํ ๊ฐ์ ํ์ด ๋ ์๋ 3๊ธ ํ ๋ฑ). - ์ํฅ ํ ์ 1 โ ์คํํ ๋ฌธ์ฅ์ด 1ํ์ด ์๋๋ฉด ์ฆ์ ์ค๋จ.
- ๋๋๋ฆผ โ ์๋ ์ปค๋ฐ์ด๋ฉด ์ ์ฒด ๋กค๋ฐฑ ยท ์๋ ์ปค๋ฐ์ด๋ฉด ์ธ์ด๋ธํฌ์ธํธ๋ก ๋๋๋ฆฌ๊ณ ํ์ํ๋ฉด "ROLLBACK ํ์"๋ฅผ ์๋ฆฝ๋๋ค.
- ํค ์ค๋ณต ์ฌ์ ๊ฒ์ฌ โ ์ ์ฉ ๋๊ธฐ ๋ณ๊ฒฝ ์์์ ๊ฐ์ ํค๊ฐ ๋ ์ด์์ด ๋๋ฉด ์ ์ฉ ์ ์ ๊ฑฐ๋ถํฉ๋๋ค.
์คํจํ๋ฉด ์ด๋ ๋ฌธ์ฅ(UPDATE #3 (ID=5))์ด ์ด๋ ๋จ๊ณ์์ ์ ์คํจํ๋์ง ์ํ์คยท๋ก๊ทธยทํ ์คํธ์ ๊ทธ๋๋ก ์ ์ต๋๋ค.
| ๊ฐ | ๋์ |
|---|---|
rows(๊ธฐ๋ณธ) |
๋ฐ๋ ํ๋ง ํค๋ก ๋ค์ ์ฝ์ด ์ ์๋ฆฌ์์ ๊ต์ฒด ยท ์ถ๊ฐ ํ์ ๊ทธ ์๋ฆฌ์ ์ค์ ํ์ผ๋ก ยท ์ญ์ ํ ์ ๊ฑฐ ยท ์คํฌ๋กคยท์ ๋ ฌยท์ ํ ์ ์ง. ํ์ ์๋ณํ ์ ์์ผ๋ฉด(์ํ์ค ํค ยท PostgreSQL ctid ๋ฑ) ์กฐํ ์ ์ฒด๋ฅผ ๋ค์ ์คํ |
requery |
๋ ์กฐํ ์ ์ฒด ๋ค์ ์คํ |
local |
๋ค์ ์ฝ์ง ์๊ณ ํธ์งํ ๊ฐ์ ๊ทธ๋๋ก ๋ (์๋ฒ ๊ธฐ๋ณธ๊ฐยทํธ๋ฆฌ๊ฑฐ ๊ฒฐ๊ณผ๋ ๋ชจ๋ฆ) |
| ๊ฐ | WHERE์ ๋ ๋น๊ตํ๋ ๊ฒ |
|---|---|
key(๊ธฐ๋ณธ) |
ํค๋ง |
key_old |
ํค + ๋ด๊ฐ ๊ณ ์น ์ด์ ์ ๊ฐ |
all_old |
ํค + ๋น๊ต ๊ฐ๋ฅํ ๋ชจ๋ ์ด์ ์ ๊ฐ |
๋ค๋ฅธ ์ธ์ ์ด ๋จผ์ ๋ฐ๊ฟจ์ผ๋ฉด ์ฌ์ ๊ฒ์ฌ๊ฐ 0ํ์ ๋ณด๊ณ ์๋ฌด๊ฒ๋ ์ฐ์ง ์์ต๋๋ค.
์ ์ ๊ณ ๋ฅด๊ณ ์ฐํด๋ฆญ โธ View value(๋๋ Enter๋ก ํธ์ง ๋์ ๊ฐ ์ฐฝ)๋ฅผ ์ด๋ฉด ๊ฐ์ ๋ฐ๋ก ๋ด ๋๋ค.
| ๊ฐ | ์ฐฝ | ํ ์ ์๋ ๊ฒ |
|---|---|---|
| ๊ธ(CLOB ยท TEXT ยท ๊ธด ๋ฌธ์์ด) | Text(ํธ์ง ๊ฐ๋ฅ ์ ์ด๋ฉด ๊ทธ๋๋ก ํธ์ง) | ์ ์ ๋ฐ์(์ ์ฅ์ โ ์ ์ฉ) ยท ํ์ผ์์ ๋ฃ๊ธฐ ยท ํ์ผ๋ก ์ ์ฅ ยท ๋ณต์ฌ |
| ์ด์ง(BLOB ยท BYTEA ยท varbinary) | Hex(16์ง์ ๋คํ) / Image(PNGยทBMPยทGIF ๋ฏธ๋ฆฌ๋ณด๊ธฐ) | ํ์ผ์์ ๋ฃ๊ธฐ(ํ์ผ ๊ทธ๋๋ก ์
์ ยท ๋ผ๋ฒจ <ํ์ผ ยท n bytes>) ยท ํ์ผ๋ก ์ ์ฅ(๋ฐ์ดํธ ๊ทธ๋๋ก) |
| JPEG(๊ธฐ์ ) | ๋ฏธ๋ฆฌ๋ณด๊ธฐ(ํ์ยทYCbCr ยท ์๋ธ์ํ๋ง ยท ์ฌ์์ ๊ฐ๊ฒฉ) | ํ๋ก๊ทธ๋ ์๋ธ JPEG๋ ์๋ด๋ง |
| ํ๋ก๊ทธ๋ ์๋ธ JPEG/WebP | ํ์์ ์๋ ค ์ฃผ์ง๋ง ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ ์์ | ํ์ผ๋ก ์ ์ฅํด์ ๋ด ๋๋ค |
์ํ grid.lob_view_max_mb(16)๋ฅผ ๋๋ ๊ฐ์ ํ์ง ์๊ณ 16์ง์ ์๋ถ๋ถ๋ง ๋ณด์ด๋ฉฐ, grid.lob_image_preview๋ฅผ ๋๋ฉด ์ด์ง์ ๋ 16์ง์์
๋๋ค. 4,000์๋ฅผ ๋๋ ๊ธ๊ณผ ์ด์ง์ CLOB/BLOB ํ์
์ผ๋ก ๋ฐ์ธ๋ํด ์ ์ฅํฉ๋๋ค(Oracle VARCHAR2 4000 ยท SQL Server NVARCHAR(4000) ์ํ ํํผ).
์ฌ๋ฌ ํ์ ํ์ผ์์ ํ๊บผ๋ฒ์ ๋ฃ์ผ๋ ค๋ฉด ํ์ผ๋ก ๋ฃ๊ธฐยท๋ด๋ณด๋ด๊ธฐ๋ฅผ ๋ณด์ธ์(๊ทธ๋ฆฌ๋ ํธ์ง์ ํ ํ์ฉ ์์ ํ๊ฒ, ๋๋ ์ ์ฌ๋ INSERT ์ ์ฉ์ ๋๋ค).
grid.edit ยท grid.edit_empty ยท grid.edit_refresh ยท grid.edit_hidden_keys ยท grid.edit_rowid ยท grid.edit_all_cols ยท grid.edit_concurrency ยท grid.paste_max_rows ยท grid.lob_view_max_mb ยท grid.lob_image_preview ยท tx.prod_*(์ด์ ์ ์์ ํธ์ง ๋ถ๊ฐ).
๊ธฐ์ ๋ฌธ์: ์ ์ฅ์
docs/87-grid-data-editing.md(์ค๊ณ ยท ํ ์๋ณ ๋ฑ๊ธ ยท ๋ฐ์ดํฐ ๋ณดํธ ๋ถ๋ณ์).
ํค๊ฐ ์๋ ํ๋ฅผ ์กฐํํ๋ฉด ์์ ์๋ ํธ์ง ์ค๋น๋ฅผ ์ํด ์๋์ผ๋ก ํ ๋ฒ ๋ ์กฐํ(ROWID/๋น ์ง ํค ์ด ์ฃผ์ )ํ์ต๋๋ค. ์ด์ ๊ธฐ๋ณธ์ ์ฌ์กฐํ ์์์ ๋๋ค โ ๊ฒฐ๊ณผ์ PK/UNIQUE ์ด์ด ์์ผ๋ฉด ๊ทธ๋๋ก ํธ์ง๋๊ณ , ์์ผ๋ฉด ๋ชจ๋ ์ปฌ๋ผ ๊ฐ์ผ๋ก ํ์ ๋ง์ถฐ ํธ์งํฉ๋๋ค(๋ฌธ์ฅ๋ง๋ค ์ ํํ 1ํ์ธ์ง ์ฌ์ ๊ฒ์ฌ).
๋ ์ ํํ ํ ์๋ณ(ROWIDยทํค ์ด)์ด ํ์ํ๋ฉด ๊ฒฐ๊ณผ ๊ทธ๋ฆฌ๋์์ ํธ์ง ํด๋ฐ โฟ ํ ์๋ณ ์ด ๊ฐ์ ธ์ค๊ธฐ(์ฌ์กฐํ 1ํ) ๋ฅผ ๊ณ ๋ฅด์ธ์ โ ๊ทธ ๊ฒฐ๊ณผ์๋ง ์ ์ฉ๋ฉ๋๋ค. ํญ์ ์ผ๋ ค๋ฉด ์ค์ grid.edit_rowid / grid.edit_hidden_keys๋ฅผ on์ผ๋ก.