본문 바로가기

데이터베이스/MySQL

(12)
XML 관련함수 (EXTRACTVALUE, UPDATEXML) MySQL에서 쿼리로 xml 데이터에 대한 정보를 다룰수 있다. EXTRACTVALUESELECT EXTRACTVALUE('value', '/root/item'); XML 형식 데이터를 해당 함수로 추출이 가능하다.실제 테이블에 적용해보면 아래처럼 사용할수 있다. SELECT EXTRACTVALUE(TARGET_COL, '/root/item') FROM TARGET_TABLE;  UPDATEXMLSELECT UPDATEXML('value', '/root/item', 'newValue'); 이 함수는 XML 데이터중 경로에 해당하는값을 변경하는 함수이다.이 함수는 UPDATE문과 함께 사용하면 새로운 값으로 치환이 가능하다.UPDATE TARGET_TABLE SET TARGET_COL = UPDATEXML..
서브쿼리 실습 서브쿼리 실습 1. 1부터 시작하는 행의 번호를 포함하여 상품테이블을 출력하시오. SELECT (@rowNum:=@rowNum+1) AS '행번호' ,g.* FROM tb_goods AS g ,(SELECT @rowNum:=0) r 더보기 2. 상품테이블의 단가 중 단가가 높은 상품 순서대로 순위를 포함하여 상품테이블을 출력하시오. SELECT (case when (@cValue = g.g_price) then @rowNum when (@cValue := g.g_price) then (@rowNum := @rowNum+1) END )AS '순위' ,g.* FROM tb_goods AS g ,(SELECT @rowNum:=0, @cValue:=NULL) r ORDER BY g.g_price DESC; 더보..
다중 테이블 연산 - UNION UNION 란? 여러 개의 쿼리의 합집합으로, 여러 개의 SQL문을 합쳐 하나의 SQL문으로 만들 때 사용한다. ▶ UNION의 규칙 ★ • 각 SELECT의 컬럼의 수가 같아야 한다. • 컬럼명이 같아야 한다. ( 같지 않을 경우 alias를 사용하여 같게 만듦) • 컬럼별 데이터타입이 같아야 한다. ( 반환 가능한 형태 ) • 하나의 ORDER BY만 사용한다. • SELECT문들의 순서는 상관없다. ▶ UNION의 종류 • UNION : 여러 개의 쿼리의 중복 값을 제거한 결과를 출력한다. DISTINCT 키워드를 따로 명시하지 않아도 중복되는 레코드를 제거하여 출력한다. • UNION ALL : 여러 개의 쿼리 결과가 중복이 되더라도 전부 결과에 반영하여 출력한다. UNION에서는 중복되는 결과를..
서브쿼리(Sub Query) 서브쿼리(Sub Query) 서브쿼리란 SQL 문 내에서 하위에 존재하는 쿼리이다. (SQL문 안에 SQL문이 존재한다는 의미.) ▶ 서브쿼리의 종류 - 인라인 뷰 (FROM) FROM 절에 있는 서브쿼리 SELECT g.g_code ,g.g_name ,g.g_price ,g.g_seller_id ,g.g_reg_date FROM tb_goods AS g JOIN ( SELECT ROUND(AVG(g.g_price), 0) AS '평균단가' FROM tb_goods AS g) AS gAvg WHERE g.g_price > gAvg.평균단가; - 스칼라 서브쿼리 (SELECT) SELECT문에 있는 서브쿼리 SELECT g.g_code ,g.g_name ,g.g_price ,g.g_seller_id ,g...
JOIN 실습 데이터 조작 언어 DML 1. 회원의 레벨의 이름이 관리자인 회원의 정보(이름, 레벨이름,이메일)를 조회하시오. SELECT m.m_name AS '이름', l.level_name AS '등급', m.m_email AS '이메일' FROM tb_member_level AS l INNER JOIN tb_member AS m on l.level_num = m.m_level WHERE l.level_name LIKE '%관리자%'; 더보기 2. 회원들 중에 2월에 로그인한 회원의 정보(아이디와 이메일)를 조회하시오. SELECT m.m_id AS 아이디, m.m_email AS 이메일 FROM tb_member AS m INNER JOIN tb_login AS l ON m.m_id = l.login_id WH..
SQL의 SELECT 키워드 SELECT 키워드 ▶ LIKE 키워드 지정한 패턴과 일치하는 문자열, 날짜, 시간 값을 검색합니다. - LIKE '데이터%' 데이터로 시작하는 문자열을 검색한다. - LIKE '%데이터' 데이터로 끝나는 문자열을 검색한다. - LIKE '%데이터%'★ 데이터가 포함된 문자열을 검색한다. - LIKE '데이터_ _ _' 데이터로 시작하는 6자 길이의 문자열을 검색한다. - LIKE '_ _터' 터로 끝나는 3자 길이의 문자열을 검색한다. ▶ JOIN 키워드 ★ 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는것. 사용자가 필요한 집합 결과 도출 해준다. ◈ JOIN 키워드의 종류 ☞ INNER JOIN 교집합(특정 컬럼 기준) 두 테이블의 값 중 모두 포함된 값만 표시한다. SELEC..
SQL 연산자 SQL 연산자의 종류 ▶ 비교 연산자 MySQL 에서 비교연산자는 TRUE(1), FALSE(0), NULL값 또는 연산에 대한 결과를 리턴한다. 연산자 의미 = 같다 다르다 크다 = 크거나 같다 ▶ 논리 연산자 MySQL 에서 논리 연산자는 TRUE(참), FALSE(거짓) 두가지를 가지고 비교하는 연산자 이다. 연산자 의미 AND 모든 조건을 만족해야 검색한다. OR 여러 조건 중 한가지만 만족해도 검색한다. NOT 조건을 만족하지 않는것만 검색한다. ▶ 대입 연산자 @cValue := g.g_price 오른쪽 값을 왼쪽에 대입한다. 비교연산자와는 다르다 @cValue = g.g_price 오른쪽 값을 왼쪽 값과 비교한다
SQL 내장함수 내장함수 내장함수는 MySQL 내에서 사용자의 편의를 위해 제공하는 다양한 기능의 함수이다. ▶데이터 형식 변환 함수 - CAST - CONVERT - 암시적인 형 변환 SELECT '100' + '200’ ; -- 문자와 문자를 더함 (정수로 변환되서 연산됨) SELECT CONCAT('100', '200’); -- 문자와 문자를 연결 (문자로 처리) SELECT CONCAT(100, '200’); -- 정수와 문자를 연결 (정수가 문자로 변환되서 처리) SELECT 1 > '2mega’; -- 정수인 2로 변환되어서 비교 SELECT 3 > '2MEGA’; -- 정수인 2로 변환되어서 비교 SELECT 0 = 'mega2'; -- 문자는 0으로 변환됨 ▶ 문자열 연결 함수 - CONCAT ▶ 제어 흐..