์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ๋๊ฐ
- ์นดํ๋๊ฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ค๋ธ์
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์ ๋ฆฌํธ๋ฆฌํธ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๋ ์
- ์ค๋ผํด
- Python
- css
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- ๊ฐ๋ฐ
- ๋ฐฐ์์ ๋ฐฐ์
- ํ๋ก๊ทธ๋๋ฐ
- ์ฝ๋ฉ
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ์ฑ
- html
- ๊ฐ์ดํ ์ข ๋ญ๊ฐ๋น
- ์ํ
- JavaScript
- ๋ฐ์ํ
- ํ์ฒ์ ๋ฆฌํธ๋ฆฌํธ
- ์นํผ๋ธ๋ฆฌ์ฑ
- ์๋ฐ
- ํ์ด์ฌ
- ์ํ์ฃผ
- Java
- database
- Today
- Total
๋ชฉ๋กStudy (87)
JiYoung Dev ๐ฅ
UNION : ์ค๋ณต ์ ๊ฑฐ UNION ALL : ์ค๋ณต ํฌํจ ํน์ง1. ์ปฌ๋ผ์ ์ฒซ๋ฒ์งธ ์ปฌ๋ผ์ ๋ฐ๋ผ๊ฐ๋ค. SELECT ์๋งค๋ฒํธ, ๋ฎค์ง์ปฌ์ด๋ฆ, ๋ฎค์ง์ปฌ๊ฐ๊ฒฉ FROM ๋ฎค์ง์ปฌ์๋งค๋ด์ญ UNION ALL SELECT ์๋งค๋ฒํธ, ์ฝ์ํธ์ด๋ฆ, ์ฝ์ํธ๊ฐ๊ฒฉ FROM ์ฝ์ํธ์๋งค๋ด์ญ UNION ALL SELECT ์๋งค๋ฒํธ, ๊ทน์ด๋ฆ, ๊ทน๊ฐ๊ฒฉ FROM ๊ทน์ฅ์๋งค๋ด์ญ ; ํน์ง 2. ์ปฌ๋ผ์ ๊ฐ์์ ์๋ฃํ์ด ์ผ์นํด์ผ ํจ! ์ง์ ๋ฌธ์ํ์ด๋ NULL๊ฐ์ ์ง์ ํ์ฌ ํด๋น ์ปฌ๋ผ์ ์ฌ์ฉํ ์ ์๋ค. oracle ๋ฒ์ ์ ๋ฐ๋ฅธ ์ฐจ์ด ์ค๋ณต์ ๊ฑฐ + ์ ๋ ฌ = union ์ค๋ณต x + ์ ๋ ฌ x = union all (๊ณต๊ณต๊ธฐ๊ด ๋ฑ์์ ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ๋ฒ์ ) union = ์ค๋ณต union all = ์ค๋ณตx ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ด๋ ์๋ชป ์ ๊ทธ๋ ์ด๋ํ๋ค๊ฐ ๊ธฐ์กด๊ฒ ์๋์ํ ์ ์์
๋ฐฑ์ ํ ์ด๋ธ ์์ฑ CTAS : CREATE TABLE AS SELECT(CTAS) SELECT ๋ฌธ์ ๊ฒฐ๊ณผ๋ก๋ถํฐ ์ ํ ์ด๋ธ์ ์์ฑํ๋ค. CREATE TABLE TB_CUST_BAK AS SELECT * FROM TB_CUST; --๋ฐ์ดํฐ์ ์๋ฃํ๊น์ง ํ๋ฒ์ ๋ค์ด๊ฐ(PK, FK ๋ณต์ฌ๋ ๋ถ๊ฐ) CREATE TABLE TB_CUST_BAK AS SELECT * FROM TB_CUST WHERE 1=0; -- TB_CUST์ ๋๊ฐ์ ํํ์ ํ ์ด๋ธ ์์ฑ (๋ฐ์ดํฐ X)
-- MERGE MERGE INTO TB_CUST_TEL USING DUAL ON ( CUST_ID = 'C0007' AND TEL_DVCD = 'ํด๋ํฐ') WHEN MATCHED THEN UPDATE SET TEL_NO = '010-7777-7777' WHEN NOT MATCHED THEN INSERT (CUST_ID, TEL_DVCD, TEL_NO) VALUES ('C0007', 'ํด๋ํฐ', '010-7777-7777'); SELECT * FROM TB_CUST_TEL;
์กฐ์ธ ๋ฌธ๋ฒ -- ์กฐ์ธ์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ SELECT A.CUST_ID , A.CUST_NAME , A.SCORE , B.GRADE_NAME FROM TB_CUST A , TB_GRADE B WHERE A.SCORE BETWEEN B.STS_SCORE AND B.END_SCORE; ์๋ธ์ฟผ๋ฆฌ ๋ฌธ๋ฒ -- ์๋ธ ์ฟผ๋ฆฌ๋ก ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ SELECT A.CUST_ID , A.CUST_NAME , A.SCORE , ( SELECT GRADE_NAME FROM TB_GRADE WHERE A.SCORE BETWEEN STS_SCORE AND END_SCORE) AS GRADE_NAME FROM TB_CUST A; DECODE ๋ฌธ๋ฒ -- DECODE๋ก ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ SELECT A.CUST_ID , A.CUST_NAME ,..
EXISTS ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ ๋ํ์ ์ธ ์๊ด์๋ธ์ฟผ๋ฆฌ ์๋ธ์ฟผ๋ฆฌ : ์ฟผ๋ฆฌ ์์ ๋ค์ด์๋ ๋ ๋ค๋ฅธ ์ฟผ๋ฆฌ ์๊ด์๋ธ์ฟผ๋ฆฌ : ์๋ธ์ฟผ๋ฆฌ๊ฐ ๋ฉ์ธ ์ฟผ๋ฆฌ์ ์ปฌ๋ผ์ ์ฌ์ฉํ ๋ ์คํ์์ = ๋ฉ์ธ์ฟผ๋ฆฌ๋ถํฐ ์คํ ๋น์๊ด์๋ธ์ฟผ๋ฆฌ : ์๋ธ์ฟผ๋ฆฌ๊ฐ ๋ฉ์ธ ์ฟผ๋ฆฌ์ ์ปฌ๋ผ์ ์ฌ์ฉํ์ง ์์ ๋ ์คํ์์ = ์๋ธ์ฟผ๋ฆฌ๋ถํฐ EXISTS ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ; ์ฑ๋ฅ NOT EXISTS : ์กด์ฌํ์ง ์๋ ์กฐ๊ฑด์ ์ฐพ๋ ๋ฌธ๋ฒ
controller : ๋ทฐ๋ฐํ restcontroller : ๋ฐ์ดํฐ ๋ฐํ Application.java ์์น ๊ธฐ์ค ํ์์ ์๋ ๊ฒ๋ค๋ง ๊ฐ์ฒด ์์ฑ ๋ชจ๋ ์ปจํธ๋กค๋ฌ, ์๋น์ค ๋ฑ์ ๋ชจ๋ boot package ํ์์ ์กด์ฌํ ์ ์๋๋ก ๋ง๋ค์ด์ผ ํจ spring์์ ์ฌ์ฉํ๋ class => ์ด๋ ธํ ์ด์ @์ ๋ถ์ฌ์ผํจ. ์ด๋ค ๊ธฐ๋ฅ์ ํ๋์ง JPA object์ ๊ด๊ณํ ํ ์ด๋ธ ๋งคํ jpa ์ฌ์ฉ์ ์ฃผ์์ - ์์ฒด์ ์ผ๋ก ๊ฐ๊ฐ์ ๊ฐ๋ค์ ๊ตฌ๋ถํ ์ ์๋ (ex.sequence)๋ฅผ ์์ฑํ์ฌ ์ด ์์ด๋ฅผ primary ํค๋ก ์ฌ์ฉ ์ญ์จ object-json ์ฝ๊ฒ ๋ณํ ๊ฐ๋ฅํ๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Stringํํ์ json์ java Object๋ก ๋ณํํ๊ธฐ ์ํด ์ฌ์ฉ ๋ฐํ์ ์๋ฌ ์ฒ๋ฆฌ 1. throw : ์ฝ๋๊ฐ ๊น๋ํ๋ค 2. try-..
nunjucks ํ ํ๋ฆฟ ์์ง์ ํ๋ HTML์ ์ ์ ์ธ ์ธ์ด๋ก Javascript์ ๋์ ์ธ ์ฐ์ฐ๋ค์ HTML์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ์ ๋ถํธํจ ํ ํ๋ฆฟ ์์ง์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด์ HTML์ ๋ ๋๋ง์ ๋๋ ์ผ์ข ์ ๋๊ตฌ nunjucks ์ค์น npm install nunjucks nunjucks ํ๊ฒฝ ์ค์ const express = require('express') const nunjucks = require('nunjucks') const app = express() //view๋ indexRouter์์ ์ฌ์ฉํ๋ฏ๋ก ์์ชฝ์์ ์์ฑํด์ผ ํจ app.set('views', __dirname+'/views') app.set('view engine', 'html') nunjucks.configure('views', { expr..
http ํต์ ํต์ ์์ : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ค์ด์์ผ ์๋ฒ์ชฝ์์ ๊ทธ์ ์๋ง๋ ์๋ต์ ์งํํ๋ ๋ฐฉ์ ์๋ฒ๊ฐ ๋จผ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ฒ ๋ถ๊ฐ๋ฅํจ socket ํต์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์๋ฐฉํฅ ์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง๋ ํต์ ์ผ๋ก, ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ผ ์ ์๊ณ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก ์์ฒญ์ ๋ณด๋ผ ์ ์๋ ํต์ ์๋ฅผ๋ค์ด ์ค์๊ฐ ์๋ฆผ Node.js์์๋ Socket.IO npm ๋ชจ๋์ ์ด์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์์ ๋ชจ๋ ์ค์น npm install socket.io ์๋ฒ์ชฝ ์์ผ //์๋ฒ์ชฝ ์์ผ ์์ฑ const socketIO = require('socket.io') //์ด๋ ์๋ฒ์ ์ฐ๊ฒฐ์ด ๋ ์ํ๋ก ์ธ ๊ฒ์ธ์ง ์ ์๋ฅผ ํด์ค์ผ ํจ (ex.port) //express server module.exports = (serve..
DB์ฐ๋ํ๊ธฐ ๋ ธ๋์์ ์ฌ์ฉํ๋ ํ ํ๋ฆฟ ์์ง : nunjucks html ์์์ ๋ฐ๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ์ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ npm install nunjucks nunjucks ์ค์น ํ ๊ฒฝ๋ก์ ํ์ ์ค์ nunjucks๋ ํ์ฅ์ html ๊ทธ๋๋ก ์ฌ์ฉ๊ฐ๋ฅ //nunjucks ํ์ฉ์ ์ํ ์ค์ //html ๋ฌธ์ ๊ฒฝ๋ก, ํ์ //1. views ๊ฐ ์ค์ : view๋ฅผ ์ ์ฅํ๊ณ ์๋ ํด๋์ ๊ฒฝ๋ก app.set("views", __dirname + "/views"); //2.view engine : ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ ํ์ app.set("view engine", "html"); //nunjucks ์ค์ nunjucks.configure("views", { express: app, //app(express) ๊ฐ์ฒด ์ฐ๊ฒฐ ..
์ฟ ํค์ ์ธ์ ์ ์ฌ์ฉํ๋ ์ด์ → HTTP์ ํน์ฑ ๋๋ฌธ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด์๋(์์ฒญ, ์๋ต) ์ฐ๊ฒฐ์ ์ ์ง๋์ด์ผ ํจ ๊ทธ๋ฐ๋ฐ ์์ฒญ, ์๋ต์ด ๋๋ฌ๋๋ฐ๋ ๊ณ์ ์ฐ๊ฒฐ์ ์ ์งํ๋ค๋ ๊ฒ์ ๊ณ์ ์์์ ์ด๋ค๋ ๊ฒ → ๋นํจ์จ์ ๊ทธ๋์ HTTP๋ ๋น์ฐ๊ฒฐ์ฑ์ ํน์ง์ ๊ฐ์ง๊ณ ์์ ์ด๋ก์ธํด ํ์๋๋ ํน์ง์ธ ๋ฌด์ํ(Stateless) ์์ฒญ๊ณผ ์๋ต์ด ๋๋๋ ์๊ฐ ์๊ณ ์์๋ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ๋์ด์ ๊ธฐ์ตํ์ง ์์! ์ด๋ฌํ ์ด์ ๋ก ์ฌ์ฉ์์ ์ํ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ์ํด ์ฟ ํค์ ์ธ์ ์ด ํ์ํจ ์ฟ ํค ์ ์งํด์ผํ๋ ์ํ ์ ๋ณด๋ฅผ ๋ณด๊ด ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์ ์ ์ฅ ๋ง๋ฃ๊ธฐ๊ฐ์ด ๋จ์์์ผ๋ฉด ์ปดํจํฐ๋ฅผ ๋๋๋ผ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์์ ์์ฑ์ ์๋ฒ์์, ๋ณด๊ด์ ํด๋ผ์ด์ธํธ ์ชฝ์์ ์งํํ๋ฏ๋ก ์๋ตํ ๋ ์ฟ ํค๋ฅผ ํฌํจ์์ผ ์๋ตํด์ผ ํจ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์๋ตํ๋..