✔ CHARACTER SQL에서는 기본 데이터 형식은 CHARACTER입니다. 크게 4가지로 구분하여 사용할 수 있습니다. 1-1. CHAR 길이가 고정된 문자열을 저장할 때 사용합니다. 사용하지 않는 공간은 반환하지 않고 그대로 사용하므로 고정된 데이터 길이의 형식을 저장하기에 적합합니다. EX) 생년월일, 전화번호 다음은 전화번호를 저장하기 위한 PHONE COLUMN을 선언한 예시입니다. PHONE CHAR(13); -- 000-0000-0000 , 총 13바이트를 저장할 수 있다. 1-2 VARCHAR2 VARCHAR2는 가변길이를 저장하기에 적합합니다. 괄호안에 적는 숫자는 최대 길이를 나타냅니다. 사용하지 않는 공간에 대해서는 반환을 하게 됩니다. SQL은 데이터를 구분자로 구분을 하게 되는데..
트랜젝션은 업무를 처리하기 위한 개념적인 실행단위입니다. 예를 들어 여러 UPDATE이 모여 계좌이체라는 하나의 트랜젝션을 만들 수 있는 것입니다. 트랜젝션을 안전하게 처리하기 위해서는 여러 SQL들이 임시공간에서 테스트되어야 하며, 이 과정에서 다른 세션이 개입해서는 안됩니다. [사진 1] [사진 2] 사진 1과 2는 같은 데이터베이스와 같은 계정을 사용하지만 접속하는 환경이 달라 다른 세션으로 나뉜 상태입니다. 서로 다른 세션이므로 SELECT * FROM MEMBER; 을 실행하게 되면 다른 결과가 나오게 됩니다. 사진 1에서 INSERT한 정보들을 COMMIT하기 전까지는 임시공간에서 테스트 되어 다른 세션에 노출되지 않습니다. [사진 3] 첫 번째 세션에서 COMMIT을 하게 되면 다른 사용자에..
Listener refused the connection with the following error : ORA-12505, TNS:listener does not currently know of SID given in connection descriptor. 와 같은 에러를 만나게 된다면 Listener에 해당 SID 정보가 없다는 뜻입니다. Listener가 설치된 경로에 가서 드래그한 부분을 추가적으로 넣게 되면 해결됩니다. (SID_DESC = (SID_NAME = XE) (GLOBAL_DBNAME = XE) (ORACLE_HOME = @설치경로@) ) 본인의 설치경로에 맞게 넣은 후, Listener을 재시작하면 해결 됩니다.
문제 www.acmicpc.net/problem/15685 알고리즘 implementation 풀이 드래곤 커브들이 주어졌을 때, 네 모서리가 모두 드래곤 커브인 1x1 사각형의 갯수를 구하는 문제입니다. 다음 세대가 시작할 때, 이전세대에서 사용했던 방향 + 1로 드래곤 커브를 진행합니다. 이때 이전세대의 마지막 부분부터 이전세대의 첫 부분 순으로 다음 세대의 처음부터 다음 세대의 마지막부분의 방향을 결정합니다. 이를 관찰하여 구현해 풀면 되는 문제입니다. 코드 #include #define rep(i, n) for (int i = 0; i N; rep(i, N) { int x, y, d, g; cin >> x >> ..
문제 www.acmicpc.net/problem/15663 알고리즘 back tracking 풀이 N개의 자연수에서 M개를 고른 수열을 출력하되, 중복한 수열을 출력해서는 안됩니다. 재귀로 푸는 문제입니다. M개의 숫자를 고르는 것을 각 단계라고 생각해보겠습니다. 수열을 완성하기 위해서는 M개의 단계마다 수를 선택해야 합니다. 현재가 $i$번째 단계일 때, 당연하게도 이전에 고른 수를 선택해서는 안됩니다. 이를 확인하기 위해서 $used$배열을 사용했습니다. $used$배열은 다른 단계에서 선택한 수를 중복하지 않게 고르기 위함입니다. 다음으로 고려해야할 부분은 같은 단계에서 중복되는 선택입니다. $N$과 $M$이 각각 3, 2이고 숫자로 2 4 4 가 주어졌다고 해봅시다. 첫 번째 2와 두 번째 4를 ..
✔ INSERT 테이블에 데이터를 넣는 SQL입니다. 기본형식은 다음과 같습니다. INSERT INTO VALUES MEMBER 테이블의 모든 COLUMN에 값을 넣으려면 다음과 같이 작성해야합니다 INSERT INTO MEMBER VALUES('A','B','C',.....) 하지만 회원가입때도 필수로 요구하는 정보도 있지만 그렇지 않은 정보도 있습니다. 특정 COLUMN만 넣으려면 다음과 같이 작성하면 됩니다. 이때 나머지 부분에는 null이 들어가게 됩니다. INSERT INTO MEMBER(ID,PWD) VALUES('DEVBELLY','111') ✔ SELECT 테이블의 데이터를 조회하는 SQL 입니다. 기본형식은 다음과 같습니다. SELECT * FROM MEMBER; -- 에스터리스크를 사용..
✔ CREATE 사용하게 될 데이터 형식을 정의하는 것. 다른 언어에서 구조체, 클래스와 비슷한 개념입니다. CREATE TABLE MEMBER( ID VARCHAR2(50), -- COLUMN이름, 데이터 형식 PWD VARCHAR2(50), NAME VARCHAR2(50), GENDER VARCHAR2(50), AGE NUMBER, BIRTHDAY VARCHAR2(50), PHONE VARCHAR2(50), REGDATE DATE ); MEMBER 라는 이름의 TABLE을 정의 하는 예시입니다. 일반적인 프로그래밍 언어에서는 데이터 형식 뒤에 변수명을 정의하지만 SQL에서는 반대로 적습니다. ✔ ALTER 테이블의 구조를 변경하기 위해 사용합니다. ALTER TABLE MEMBER MODIFY ID ..
문제 www.acmicpc.net/problem/13512 알고리즘 HLD 풀이 트리 위에서 두 가지 쿼리를 진행해야 합니다. 첫 번째는 $i$번째 정점의 색을 바꾸는 것. 두 번째는 1번 정점에서부터 $v$정점까지 가는 경로 중 첫 번째로 만나는 검은 정점의 번호를 출력하는 것입니다. 트리에서는 문제를 풀기가 어려우므로 HLD를 이용해서 쭉 펴도록 합시다. 일자 상태로 만들었다면 세그먼트 트리의 사용이 가능해집니다. 세그먼트 트리에서 인덱스가 작을수록 트리 위에서는 루트에 가깝습니다. 이러한 이유 때문에 $query$함수에서 세그먼트 트리 쿼리를 처리할 때, 왼쪽에 검은 정점이 있다면 바로 리턴을 했습니다. 오른쪽에 있는 구간은 왼쪽보다 루트로부터 멀기 때문입니다(처음으로 만나는 검은 정점이 아님). ..
- Total
- Today
- Yesterday
- hld
- SCC
- Suffix Array
- 정렬
- 2-SAT
- DP
- spring boot
- 이분매칭
- 펜윅트리
- 좌표압축
- 이분탐색
- 동적계획법
- Oracle
- Fenwick
- dfs
- implementation
- bfs
- kmp
- string
- greedy
- union find
- sweeping
- dijkstra
- sorting
- spring
- Segment tree
- 트라이
- 스위핑
- 세그먼트트리
- knapsack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |