반응형

프로그래밍/Database 59

MySQL 왼쪽 조인 (Left Join)

왼쪽 조인 (Left Join) 오른쪽 테이블(테이블2)과 매칭되는 왼쪽 테이블(테이블1)의 모든 투플을 반환한다. 오른쪽 테이블과 매칭이 되지 않을 경우, NULL을 반환된다. 기본 형식 SELECT 속성_리스트 FROM 테이블1 LEFT JOIN 테이블2 ON 테이블1. 속성 = 테이블2.속성 [ ORDER BY 속성 ]; SELECT 속성_리스트 FROM 테이블1 LEFT OUTER JOIN 테이블2 ON 테이블1. 속성 = 테이블2.속성 [ ORDER BY 속성 ]; Customer 테이블 Orders 테이블 고객의 구매 현황을 조사하되, 구매하지 않은 고객은 구매 항목에 NULL로 표시하고, 구매한 고객은 구매한 상품코드를 조사하시오. (왼쪽 조인 사용) SELECT customer.name, ..

MySQL 오른쪽 조인 (Right Join)

오른쪽 조인 (Right Join) 왼쪽 테이블(테이블1)과 매칭되는 오른쪽 테이블(테이블2)의 모든 투플을 반환한다. 왼쪽 테이블과 매칭이 되지 않을 경우, NULL을 반환된다. 기본 형식 SELECT 속성_리스트 FROM 테이블1 RIGHT JOIN 테이블2 ON 테이블1. 속성 = 테이블2.속성 [ ORDER BY 속성 ]; SELECT 속성_리스트 FROM 테이블1 RIGHT OUTER JOIN 테이블2 ON 테이블1. 속성 = 테이블2.속성 [ ORDER BY 속성 ]; Customer 테이블 Orders 테이블 고객의 구매 현황을 조사하되, 구매하지 않은 고객은 구매 항목에 NULL로 표시하고, 구매한 고객은 구매한 상품코드를 조사하시오. (오른쪽 조인 사용) SELECT customer.na..

MySQL 내부 조인 (Inner Join)

내부 조인 (Inner Join) 두 테이블에서 속성이 일치하는 모든 투플을 반환 일반적인 조인과 동일 기본 형식 SELECT 속성_리스트 FROM 테이블1 INNER JOIN 테이블2 ON 테이블1. 속성 = 테이블2.속성 [ ORDER BY 속성 ]; SELECT 속성_리스트 FROM 테이블1 JOIN 테이블2 ON 테이블1. 속성 = 테이블2.속성 [ ORDER BY 속성 ]; Customer 테이블 Orders 테이블 주문을 한 고객의 이름(customer.name)과 주문 상품(orders.item)을 검색하시오. SELECT customer.name, orders.item FROM customer INNER JOIN orders ON customer.account=orders.customer;..

MySQL 인덱스 (Index)

인덱스 (Index) 테이블에서 자주 사용하는 속성을 별도로 생성 테이블의 검색 동작 속도를 향상시키기 위하여 사용 테이블에 대한 킷값을 가지고 있는 사본 테이블 사용자들은 인텍스를 볼 수 없다. MySQL에서는 기본키에 대하여 인덱스가 자동 생성된다. 대부분의 MySQL 인덱스 (기본키, UNIQUE, INDEX와 FULLTEXT)는 B-tree에 저장된다. B-tree는 Binary Tree와 다르다. B-tree : 여러 개의 자식 노드를 가질 수 있다. Binary Tree : 2개의 자식 노드를 가진다. 장점 WHERE 절이나 ORDER BY 처리에서 빠른 처리 속도 단점 인덱스가 설정된 테이블을 수정할 때 처리 속도가 떨어짐 인덱스 생성시 고려 사항 WHERE절에서 자주 사용되는 속성을 선택한..

MySQL GROUP BY 함수

GROUP BY GROUP으로부터 NULL이 아닌 값을 결합한 문자열 결과를 반환 모두 NULL 인 값만 있는 경우, NULL을 반환 기본 형식 SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼; 조건 처리 후에 컬럼 그룹화 SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼; 컬럼 그룹화 후에 조건 처리 SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼 HAVING 조건식; 조건 처리 후에 컬럼 그룹화 후에 조건 처리 SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼 HAVING 조건식; ORDER BY가 존재하는 경우 SELECT 컬럼 FROM 테이블 [WHERE 조건식] GROUP BY 그룹화할 컬럼 [HAV..

MySQL 타입 변환 함수 (Type Conversion Functions)

타입 변환 함수 (Type Conversion Functions) BINARY 문자열을 바이너리 문자열로 변환 속성값 비교를 강화하기 위한 방법 문자끼리 비교가 아닌 바이트 간의 비교 대소문자 구분함 문자뒤의 스페이스도 중요한 문자로 인식 SELECT 'a' = 'A'; SELECT BINARY 'a' = 'A'; 쿼리 결과 SELECT 'a' = 'a'; SELECT BINARY 'a' = 'a'; 쿼리 결과 CAST() 입력 : 모든 데이터 타입의 표현식 출력 : 지정된 데이터 타입으로 결과 값을 변환 CONVERT( )와 유사 기본 형식 CAST( expr AS type ) CONVERT() 입력 : 모든 데이터 타입의 표현식 출력 : 지정된 데이터 타입으로 결과 값을 변환 기본 형식 CONVERT..

MySQL 문자열 함수 (String Fuctions) - (2)

문자열 함수 (String Fuctions) LEFT( str, len ), RIGHT( str, len ) SELECT LEFT('abcdefg', 3), RIGHT('abcdefg', 3); 쿼리 결과 LOCATE( substr, str ), LOCATE( substr, str, pos ), POSITION( substr IN str ) SELECT LOCATE('bar', 'foobarbar'), POSITION('bar' IN 'foobarbar'); SELECT LOCATE('bar', 'foobarbar', 5); 쿼리 결과 LOWER( str ), LCASE( str ), UPPER( str ), UCASE( str ) SELECT LOWER('ABcdef'), LCASE('ABcdef'),..

MySQL 문자열 함수 (String Fuctions) - (1)

문자열 함수 (String Fuctions) ASCII() SELECT ASCII('2'), ASCII(2), ASCII('dx'); 쿼리 결과 BIN(), CONV() SELECT BIN(12), CONV(12, 10, 2); 쿼리 결과 BIT_LENGTH(str), CHARACTER_LENGTH(str) SELECT BIT_LENGTH('text'), CHARACTER_LENGTH('text'); 쿼리 결과 CONCAT( str1, str2, … ), CONCAT_WS( separator, str1, str2, … ) SELECT CONCAT('abc', '123', 'xyz'), CONCAT_WS(' ', 'abc', '123', 'xyz'); 쿼리 결과 ELT( N, str1, str2, str3..

MySQL 연산 함수, 계산 함수, 수학 함수 (Mathematical Functions)

연산 함수, 계산 함수, 수학 함수 (Mathematical Functions) ABS(), MOD(), SIGN() ABS( x ), MOD( N, M ), SIGN( X ) SELECT ABS(-90), MOD( 7, 2 ); SELECT SIGN(-3), SIGN(3), SIGN(0); 쿼리 결과 CEIL(), CEILING(), FLOOR(), ROUND(), ROUND(), TRUNCATE() CEIL( X ), CEILING( X ), FLOOR( X ), ROUND( X ), ROUND( X, D ), TRUNCATE( X, D ) SELECT CEIL(33.3), CEILING(33.3), FLOOR(33.3); SELECT ROUND(33.3), ROUND(33.5), ROUND(3.14..

MySQL DAY, MONTH, YEAR, EXTRACT 관련 함수

m-veloper 엠벨로퍼의 슬기로운 개발 생활 m-veloper.github.io DAY, MONTH, YEAR 관련 함수 DAY(), WEEK(), WEEKOFYEAR(), MONTH(), YEAR() SELECT DAY(CURDATE()), WEEK(CURDATE()), WEEKOFYEAR(CURDATE()), MONTH(CURDATE()), YEAR(CURDATE()); 쿼리 결과 DAYOFYEAR(), DAYOFMONTH(), DAYOFWEEK(), WEEKDAY() DAYOFWEEK( ) : 일=1, … , 토=7 WEEKDAY( ) : 월=0, … , 일=6 SELECT DAYOFYEAR(CURDATE()), DAYOFMONTH(CURDATE()), DAYOFWEEK(CURDATE()), W..

반응형