일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- Spring Batch
- Spring Boot
- Oracle
- Web Server
- redis
- springboot
- db
- IntelliJ
- Gradle
- MySQL
- ReactJS
- Git
- Design Patterns
- ubuntu
- jsp
- jenkins
- Spring
- javascript
- java
- AWS
- php
- JVM
- 요리
- devops
- tool
- 맛집
- elasticsearch
- linux
- laravel
- it
- Today
- Total
목록db (38)
아무거나
[h2 console 접속문제] 접속 url : http://localhost:8080/h2-console * 가장 처음 열었을때 기본값 jdbc:h2:~/test 으로 지정되는 경우에는 동작이 제대로 안하게 된다 아래 처럼 url값을 변경하자 - jdbc:h2:mem:testdb
UPDATE ~ CASE 문: 한번의 UPDATE로 여러 작업을 할 수 있다. Desc - WHEN과 THEN은 하나의 조건이다. - WHEN과 THEN은 다수가 존재할 수 있습니다. - ELSE는 모든 조건에 부합하지 않을경우가 조건이다. Example Query 아래 그림과 같은 데이터를 기준으로 쿼리를 날려봅니다. UPDATE recursive_test_table SET parent_id = CASE WHEN parent_id = 1 THEN 10 WHEN parent_id = 2 THEN 20 WHEN parent_id = 3 THEN 30 WHEN parent_id = 6 THEN 60 ELSE parent_id END; 위의 3 Line을 예로 들면 parent_id가 1일 때 10으로 변경하..
mysql_real_escape_string - SQL 명령문에 사용되는 문자열에서 특수 문자를 회피한다.(sql인젝션 방어) 즉, 문자앞에 백슬래쉬(\)를 추가하는 mysql의 라이브러리 함수(%, _는 회피하지 않음)
- 엑셀 수식으로 쿼리문 생성 ex) " insert into {Table} set b_seq='"&A2&"', b_name='"&B2&"', b_phone='"&C2&"', b_bank_code='"&D2&"', b_bank_accountnumber='"&E2&"', b_bank_depositprice='"&F2&"', b_bank_date='"&G2&"', b_description='"&H2&"', b_naver_id='"&I2&"', b_kakao_id='"&J2&"', b_area_type='"&K2&"', b_area_lat='"&L2&"', b_area_lng='"&M2&"', b_link='"&N2&"', b_dealarticle_type='"&O2&"' ; " 위에 부분을 빈 셀에 채워서 ..
삭제(DELETE) 하나의 쿼리로 여러 테이블의 데이터 삭제 Table Schema(Table Name: example_table) [user] [user_role] Example Code // user테이블의 user_id와 user_role의 user_id를 조인하여 삭제하자 DELETE u, ur FROM user AS u INNER JOIN user_role AS ur ON u.user_id = ur.user_id WHERE u.user_id = #{userId}
GROUP BY로 GROUPING한 필드말고 중복이 안되는 문자열들을 가진 필드의 문자열들을 합칠땐 GROUP_CONCAT을 사용 Table Schema(Table Name: example_table) Table Sample Data SELECT * FROM test_example; 콤마를 구분자로 한 결과값으로 합쳐져있는 문자열 도출(group_concat 기본 구분자는 콤마) SELECT name, GROUP_CONCAT(value) FROM test_example GROUP BY name; 임의의 구분자로 한 결과값으로 합쳐져있는 문자열 도출 SELECT name, GROUP_CONCAT(value SEPARATOR '|') FROM test_example GROUP BY name; 임의의 구분자로..
개발을 하던 도중에 다량의 데이터를 한번에 update 할 시에는 무척 오래걸려서 db옵션을 수정하는 등 조치를 취하는 경우가 있다. 그래서 단 건(ex: 10000 건) 정도로 여러번 업데이트 하는 방법으로 로직을 변경하였고 while문을 이용하여 change개수가 0일 경우에는 break로 빠져나오게끔 만들었다. 그러나 mybatis에서 change개수가 계속 0으로만 return되는 문제가 발생하였다. 확인해보니 설정파일 즉, db접속 url parameter에 아래와 같이 추가하자. jdbc:mysql://127.0.0.1:3306/test_db?useSSL=false&characterEncoding=utf8&useAffectedRows=true 위의 useAffectedRows=true 로 옵션..
SQL Injection 이란 웹 해킹 기법 중 하나이다. 프로그램의 보안 상의 허점을 의도적으로 이용해, 악의적인 SQL문을 실행되게 하여 데이터베이스를 조작하는 코드 인젝션 공격 방법이다 해당 포스트에서는 SQL Injection 종류중 Union SQL Injection을 활용할 것이다. Union SQL Injection은 2개 이상의 쿼리를 요청하여 결과를 얻는 UNION이라는 SQL 연산자를 이용한 SQL Injection 공격을 말한다. 즉, 원래의 요청에 한 개의 추가 쿼리를 삽입하여 정보를 얻는다. 1. UNION 연산자 * 우선 UNION 연산자의 개념부터 파악하자. (1) 예제 테이블(bkTbl1, bkTbl2 2개 테이블) (2) UNION 연산자를 이용한 결과값 [sql]SELEC..