본문 바로가기

데이터베이스/MySQL

(11)
서브쿼리 실습 서브쿼리 실습 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 ▶ 제어 흐..
SQL 집계함수 집계함수 집계함수는 테이블 내의 값 중 원하는 값 또는 연산을 도와준다. 집계 함수의 대표적인 함수를 알아보자. 함수 함수 표기 의미 SUM SUM() 테이블의 합계를 구한다. AVG AVG() 테이블의 평균을 구한다. MIN MIN() 테이블의 최소값을 구한다. MAX MAX() 테이블의 최대값을 구한다. ROUND ROUND() 테이블 속성의 평균 값을 구한다. COUNT COUNT() 테이블 행의 개수를 센다. COUNT DISTINCT COUNT(DISTINCT) 테이블 행의 개수를 센다.(중복X) 집계함수의 사용법 위 테이블을 활용하여 집계함수의 사용방법을 알아보도록 하자. ▶ SUM 테이블의 o_amount의 합계를 구할 수 있다. 더보기 ▶ AVG 테이블의 o_amount의 평균을 구할 수 ..