1. Inner Join2. LEFT Join3. Right Join4. FULL Join5. Cross JoinInner Join두 테이블에서 일치하는 데이터만 반환inner를 생략하고, JOIN만 사용해도 됨SELECT [Columns] FROM [Table 1] Inner Join [Table 2] ON Table1.column = Table2.column;Left Join왼쪽 테이블(table1)의 모든 데이터와 오른쪽 테이블(table2)의 일치하는 데이터 반환SELECT [Columns] FROM [Table 1] Left Join [Table 2] ON Table1.column = Table2.column;Right Join오른쪽 테이블(table2)의 모든 데이터와 왼쪽 테이블(table1..
1. DISTINCT2. LIKE3. BETWEEN4. IN5. IS NULL / IS NOT NULL DISTINCT중복된 값을 제거하고 고유한 값만 반환SELECT DISTINCT name FROM test; LIKE패턴 일치를 찾아서 반환p% : p로 시작%p : p로 끝나는 문자n__%: n?? 로 시작하는 문자%0 개 이상 일치(정확한 길이 모름)_1 개__2개_%1개 이상의 문자 (정확한 길이 모름)-- p로 시작하는 이름 조회SELECT name FROM test WHERE name LIKE 'p%'; BETWEEN두 값 사이에 해당하는 값 조회SELECT name, age, address, money FROM test where age BETWEEN 10 AND 20 ORDER BY age..
1. WHERE 절2. GROUP BY 절3. HAVING 절4. ORDER BY 절4. 예제 종합 WHERE 절데이터를 그룹화 하기전에, 조건에 맞는 행을 필터링select, update, delete 문에서 주로 사용집계함수 ( SUM, COUNT, AVG ) 와 함께 직접 사용 불가능 (그룹화 필요)-- 나이가 20살 이상 조회 --select * from member WHERE age > 20; GROUP BY 절특정 열(column)의 값을 기준으로 그룹화 진행집계함수 (SUM, COUNT, AVG) 함께 사용 가능집계함수로 설정된 열(column), 그룹화 된 column외의 직접 조회는 불가능하다단, ANY_VALUE() / 서브쿼리 등을 사용하여 우회가 가능하긴하다 -- group by 쿼..
1. 집계함수2. 스칼라 함수 집계함수집계함수는 한번에 모아서 처리하는 (집계) 역할이기에, 다른 column(열)과 함께 조회하려면 GROUP BY 절을 이용함수설명사용법Count레코드의 개수를 반환SELECT COUNT(*) from [테이블명] GROUP BY [다른 column(열)];Sum특정 열의 합계 계산SELECT SUM(num) FROM [테이블명] GROUP BY [다른 column(열)];Avg특정 열의 평균값SELECT AVG(num) FROM [테이블명] GROUP BY [다른 column(열)];Max특정 열의 최대 값SELECT MAX(num) FROM [테이블명] GROUP BY [다른 column(열)];Min특정 열의 최소 값SELECT Min(num) FROM [테이블명..
1. view 란?2. view 사용 이유3. view 사용법 VIEW 란?데이터베이스에 존재하는 가상의 테이블을 말함테이블의 정보를 보여주는 역할만 한다. (view 정의 변경 불가능, 원본 테이블 삭제시 같이 삭제)view를 통한 갱신을 할경우, 복잡한 제약이 있음 (왠만하면 원본테이블에서 수정)데이터를 따로 저장하지 않고, view가 바라보고 있는 테이블의 정보를 보여주는 역할기존 테이블의 정보가 수정되면, view 도 같이 반영됨 VIEW 사용 이유테이블의 내용중에 보여주고 싶은 데이터만 보여주기 위해 사용 (접근제어 활용)실제 데이터를 포함하지 않으므로, 저장공간을 효율적으로 사용 가능view 테이블을 복잡한 쿼리로 표현할경우, 나중에 조회시 편리하게 조회 가능 VIEW 사용법CREATE TAB..
1. 인덱스 사용이유2. 인덱스 주의할점3. 인덱스 예시 인덱스 사용이유DB의 경우, 데이터를 저장할 때에 순서없이 저장하는 기능을 한다DB는 원하는 결과가 있을시에, Full Scan을 통해서 데이터를 읽어온다인덱스는 Select 조회시, 빠른 결과를 얻기 위해서 사용한다 인덱스 주의할점인덱스는 테이블에서 색인이 필요한 열(column)을 저장하기 위해서 따로 파일로 저장아무리 적은 데이터 양이라도, 인덱스가 쌓이다 보면 DB 저장 공간이 줄어든다빈번하게 데이터값이 수정되고 변경되는 경우, 인덱스 파일 또한 수정되어야하기에 DB성능에 좋지않은 영향을 미친다INSERT / UPDATE / DELETE 사용시 주의데이터 중복도가 높은 열(column)의 경우 인덱스의 효용이 없다 (예: 성별, 타입이 별..
1. 문자열 데이터 타입2. 숫자 데이터 타입3. 날짜 및 시간 데이터 타입4. 논리 데이터 타입5. 이진 데이터 타입6. 기타 데이터 타입 문자열 데이터 타입형태설명사용 예CHAR(n)고정 길이 문자열CHAR(10)VARCHAR(n)가변 길이 문자열VARCHAR(255)TEXT매우 긴 텍스트 데이터TEXT Create Table example_table( username VARCHAR(50) NOT NULL, password CHAR(64) NOT NULL, detail_text TEXT); 숫자 데이터 타입형태설명사용 예INT정수 값 저장INTBIGINT더 큰 정수 값 (큰 수)BIGINTDECIMAL정밀한 소수 저장DECIMAL(10,2) // 소수점 포함 10자리 (소수점 이..
1. DCL 이란?2. GRANT3. REVOKE4. TCl DCL 이란?사용자 권한 관련하여, 부여 및 회수하는 역할GRANT, REVOKE를 이용하여 사용자 권한을 관리한다 GRANT권한 부여권한 대상 : {user_name | PUBLIC | role_name}user_name : 사용자PUBLIC : 모든 사용자 적용role_name : 역할명객체 대상: 데이터베이스, 테이블, 뷰. 스키마, 함수 등WITH GRANT OPTION : 해당 부여된 권한을 다른 사람에게도 권한을 줄 수 있는 권한 설정[문법]Grant [부여하려는 권한 유형] ON [객체 대상(범위)] TO [권한대상] [WITH GRANT OPTION]GRANT SELECT, INSERT, DELETE ON TEST_DB TO U..
- Total
- Today
- Yesterday
- SQL
- 깊이우선탐색
- 티스토리챌린지
- 알고리즘
- Thymeleaf
- db
- 클래스
- 오블완
- 기술면접
- stack
- 버블정렬
- 타입변환
- 예외처리
- DFS
- Java
- BFS
- HTML5
- 우선순위 큐
- 게시판
- 백준
- JDBC
- bean
- 코딩테스트
- 정렬
- 포트폴리오
- 이진탐색
- 검증
- 게시판 프로젝트
- Spring
- JSON
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |