[DB] SubQuery

Featured image for [DB] SubQuery

부속 질의 (subquery) 부속질의란 하나의 SQL 문 안에 다른 SQL 문이 중첩된 질의를 말함. 다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공할 때 사용함. 보통 데이터가 대량일 때 데이터를 모두 합쳐서 연산하는 조인보다 데이터만 찾아서 공급해주는 부속질의가 성능이 더 좋음. Join과 Subquery의 성능 차이는 case by case다. 데이터베이스 최적화, 인덱스 사용 여부, 쿼리 … 더 읽기

[DB] JOIN

Featured image for [DB] JOIN

1. JOIN 둘 이상의 테이블에서 데이터가 필요할 때 관련 있는 속성을 기준으로 복수의 테이블을 ‘관계’ 지어주는 연산. 그래서 관계형 데이터베이스의 꽃이라 부른다. 일반적으로 각 테이블의 PK 및 FK로 구성된 조인 조건을 포함하는 WHERE 절을 작성해야 한다. 가. JOIN의 종류 조인은 크게 일반적인 조인(혹은 내부 조인)과 외부 조인으로 나눌 수 있다. 2. INNER JOIN 두 테이블 … 더 읽기

[DB] VIEW

Featured image for [DB] VIEW

1. View 가. View란? 데이터베이스에 존재하는 ‘가상의 테이블’ 실제 행과 열을 가지고 있지만 데이터를 저장하고 있지 않고 SQL만 저장한다. MySQL에서는 단지 다른 테이블이나 View의 데이터를 보여주는 역할만 수행한다. 복잡한 Join이나 Subquery를 View를 사용해서 단순하게 만들 수 있다. 나. 장점 예를 들어, 다음과 같은 복잡한 쿼리를 가지고 있다고 가정해 본다. (실제로는 더 복잡하고 반복되겠죠?) 뷰를 사용하면 … 더 읽기

[DB] INDEX

Featured image for [DB] INDEX

1. Index 데이터베이스(DB)의 인덱스란 데이터 검색 속도를 높이기 위해 사용하는 기술이다. 또한 특정 항목들에 대하여 중복이 발생하지 않도록 관리하기 위해서 사용되기도 한다. 하지만, 인덱스는 별도의 공간을 차지하고, 데이터가 변경될 때마다 추가적인 연산이 발생한다. 인덱스를 사용할지 말지 신중하게 따져봐야 한다. 2. Index의 종류 인덱스는 몇 가지 조건에 따라서 생성된다.   PK 존재 PK 없음 Clustered index … 더 읽기

[DB] Transaction

Featured image for [DB] Transaction

1. Transaction 트랙잭션 도구 설명 START TRANSACTION 트랜잭션을 시작하는 명령어 COMMIT 수정된 내용을 데이터베이스에 반영하는 명령어 ROLLBACK 트랜잭션에서 수행된 모든 변경을 원래대로 되돌리는 명령어 SAVEPOINT 롤백을 원하는 특정 시점을 지정하는 명령어 mysql은 기본적으로 autocommit으로 설정되어 있다. autocommit이면 실행과 동시에 데이터베이스에 변화를 반영한다. 끄면 commit 전까진 메모리 상에서만 데이터를 변경하고 실제 데이터베이스에선 변화하지 않는다. 단, DCL, … 더 읽기

[DB] SET Operator

Featured image for [DB] SET Operator

1. SET Operator Operator 설명 중복 UNION 합집합 제거 UNION ALL 합집합 유지 INTERSECT 교집합 없음 MINUS 차집합 없음 mysql은 UNION, UNION ALL 연산자는 제공한다. 단, MINUS, INTERSECT 연산자는 지원하지 않는다. 그래서 동일한 기능을 다른 방식으로 구현해야 한다. 2. INTERSECT 극복 동일한 기능을 mysql에서는 inner join으로 극복해야 한다. 3. MINUS 극복 동일한 기능을 mysql에서는 not … 더 읽기

[DB] 내장함수

Featured image for [DB] 내장함수

1. 내장함수 가. 숫자 함수 설명 ABS(x) x의 절대값을 반환 CEILING(x) x보다 크거나 같은 가장 작은 정수를 반환 (올림) FLOOR(x) x보다 작거나 같은 가장 큰 정수를 반환 (내림) ROUND(x, d) x를 d 소수점 자리에서 반올림 TRUNCATE(x, d) x를 소수점 자릿수 d 까지 버림. POW(x, y) x의 y 거듭제곱 값을 반환 MOD(x, y) x를 y로 나눈 … 더 읽기

[DB] NULL, CASE, ESCAPE

Featured image for [DB] NULL, CASE, ESCAPE

1. NULL DBMS에서 null는 “값을 알 수 없음”을 의미한다. 가. IS NULL null는 “값을 알 수 없음”을 의미한다. 그래서 다음과 같은 방식으로 null인 row를 찾을 수 없다. null 값을 찾고 싶다면 = null이 아닌 is null 을 사용할 것. is not null도 가능한다. 나. IFNULL() 다. NULLIF() 라. null 논리연산 값을 알 수 없다는 것은 … 더 읽기

[SQL] SQL 예시 정리

Featured image for [SQL] SQL 예시 정리

 정처기 준비하면서 정리한 SQL문 예시다. 1. DML 2. DDL 3. DCL 4. JOIN 가. 내부 조인 나. LEFT OUTER JOIN 5. 와일드카드 6. 집계함수 7. 순위함수 전치사 정리 쉽게 암기하기 위해서 정리한 부분입니다. 다소 부정확한 정보가 포함되어 있을 수 있습니다. 더보기 DML, DDL, DCL은 기본적으로 전치사를 공유하지 않는다. 단, FROM과 ON은 공유한다. (FROM – SELECT, … 더 읽기

[mySQL] 사용자 추가, 권한 부여,삭제

Featured image for [mySQL] 사용자 추가, 권한 부여,삭제

1. 사용자 추가 2. 권한 부여 GRANT 문을 사용해서 생성한 유저의 권한을 설정한다. 3. 사용자 삭제 DROP 문으로 유저를 삭제한다. 참고자료 How to Delete MySQL User Using DROP USER Delete a MySQL user using the DROP USER statement. This tutorial explains the statement syntax and gives examples for removing unwanted users.