본문 바로가기

Database/MySQL

(19)
SQL 내장 함수 SQL 내장 함수의 종류 : 수학 함수, 순위 출력 함수, 문자 함수, 날짜 함수, 파일 로드 함수 수학 함수 - ROUND() 함수 : 반올림한 값을 구하는 함수 : ROUND(값, 자리수) : 자리수 아래에서 반올림하여 자리수까지 출력 : 양수 값 : 소수점 오른쪽 자릿수 (소수점 이하) : 음수 값 : 소수점 왼쪽 자릿수 (1의 자리부터 ~) : 예 : 소수점 이하 첫째 자리까지 반올림한 값 출력 : ROUND(3.456, 1) : 3.500 -- 고객별 평균 주문액을 출력 SELECT clientNo, ROUND(AVG(bookPrice * bsQty)) AS "평균 주문액", ROUND(AVG(bookPrice * bsQty), 0) AS "1의 자리까지 출력", ROUND(AVG(bookPri..
테이블 복사 및 복사 시 주의사항 테이블 복사 - 새 테이블로 전체 복사 - 새 테이블로 일부만 복사 - 기존 테이블로 데이터만 복사 - 다른 데이터베이스의 테이블 복사 주의사항 : 제약조건은 복사되지 않으므로 복사 후 제약조건 설정 필요 테이블 복사 구문 CREATE TABLE 새 테이블 이름 AS SELECT 열이름 리스트 FROM 원본 테이블 [WHERE 절]; 예제 -- (1) 테이블 복사 : 새 테이블로 전체 복사 CREATE TABLE new_book1 AS SELECT * FROM book; -- 기본키 제약조건 추가 ALTER TABLE new_book1 ADD CONSTRAINT PK_new_book1_bookNo PRIMARY KEY (bookNo); -- (2) 테이블 복사 : 새 테이블로 일부만 복사 CREATE T..
ALL과 ANY 차이점 ALL : 검색 조건이 서브 쿼리 결과의 모든 값에 만족하면 참이 되는 연산자 ANY - 검색 조건이 서브 쿼리 결과 중에서 하나 이상에 만족하면 참이 되는 연산자 예제를 통해 확인 -- ALL -- 2번 고객이 주문한 도서의 최고 주문수량 보다 더 많은 도서를 구매한 고객의 -- 고객번호, 주문번호, 주문수량 출력 -- (2번 고객이 주문한 모든 주문에서 발생한 주문수량 보다 더 크면 됨) SELECT clientNo, bsNo, bsQty FROM bookSale WHERE bsQty > ALL (SELECT bsQty FROM bookSale WHERE clientNo = '2'); -- ANY -- 2번 고객보다 한 번이라도 더 많은 주문을 한 적이 있는 고객의 -- 고객번호, 주문번호, 주문수량..
IN과 EXIST의 차이 IN : 서브 쿼리에서 조건에 해당되는 행의 열을 비교하여 값 확인 : 서브 쿼리의 결과 값을 메인 쿼리에 대입하여 조건 비교 후 결과 출력 : IN 쿼리 -> 메인 쿼리 : 결과에 NULL 값 포함되지 않음 : 다중 행을 반환 시 사용하나, 단일 행 반환 시 사용해도 오류 없음 : = 연산자는 단일 행 반환 시 사용 (결과가 여러 행인 경우에 사용 시 오류 발생) -> 결과 행이 단일/다중행인지 잘 모르겠으면 IN 사용 -- 출판사명이 '서울 출판사'(pubNo='1')와 '도서출판 강남'(pubNo='2')인 도서의 -- 도서명, 출판사번호 출력 SELECT bookName, pubNo FROM book WHERE pubNo IN ('1', '2'); -- 출판사명이 '도서출판 강남'이 아닌 도서의 ..
조인 VS 서브 쿼리 조인 : 집합간의 곱의 관계 : 여러 테이블로부터 필요한 데이터를 모아서 연산 : 카티션 곱 후 조건에 맞는 행을 검색 (카티션 곱 연산 + SELECT 연산) - 예: 테이블1 (15행), 테이블2(3행) - 15 X 3 = 45행 반환 https://olli2.tistory.com/24 (조인에 대한 더욱 자세한 설명은 링크 참조) 조인 (JOIN) 조인 (JOIN) : 여러 개의 테이블을 결합하여 조건에 맞는 행 검색하는 연산 조인의 종류 내부 조인 (INNER JOIN) : 가장 많이 사용 : 공통되는 열이 있을 때 (조인 조건 : 기본키 = 외래키) : 공통 olli2.tistory.com 서브 쿼리 : 필요한 데이터만 찾아서 제공 : 여러 개의 SQL 문장을 한 개로 통합 : 경우에 따라 조인..
Subquery (서브쿼리) 서브 쿼리 (Subquery; 하위 질의; 부속 질의) : 하나의 SQL문 안에 다른 SQL문이 중첩되어 있는 형식 : 하나의 쿼리 안에 또 다른 하나의 쿼리가 담겨 있는 것 : 질의를 1차 수행한 다음, 반환값을 다음 질의에 포함시켜 사용 : 다른 테이블에서 결과로 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공 시 사용 서브 쿼리 구성 및 형식 : 메인 쿼리와 서브 쿼리로 구성 : 서브 쿼리에서 검색한 결과로 메인 쿼리 검색 수행 SELECT 속성명 FROM 테이블명 WHERE 조건 연산자 (SELECT 속성명 FROM 테이블명 WHERE 조건); 서브 쿼리 연산자 : WHERE 절에서 사용 연산 연산자 반환 행 비교 =, !=() , =, 단일 집합 IN, NOT IN 다중 존재 EXISTS..
조인 (JOIN) 조인 (JOIN) : 여러 개의 테이블을 결합하여 조건에 맞는 행 검색하는 연산 조인의 종류 내부 조인 (INNER JOIN) : 가장 많이 사용 : 공통되는 열이 있을 때 (조인 조건 : 기본키 = 외래키) : 공통 열의 속성 값이 동일한 튜플만 반환 외부 조인 (OUTER JOIN) : 공통되는 열이 없을 때 : 공통되는 열(속성)을 매개로 하는 데이터가 없더라도 버리지 않고 연산의 결과를 테이블에 표시 : 값이 없는 대응 속성에는 NULL 값을 채워서 반환 좌측 외부 조인 (LEFT OUTER JOIN) : 좌측 테이블의 데이터 유지 우측 외부 조인 (RIGHT OUTER JOIN) : 우측 테이블의 데이터 유지 완전 외부 조인 (FULL OUTER JOIN) : 두 테이블의 모든 정보 유지 조인 ..
LIMIT - 상위 N개 출력하기 상위 N개 출력하는 방법 : LIMIT 사용 또는 OFFSET(시작 위치) 설정 ex) LIMIT 5 OFFSET 0 또는 'LIMIT 시작, 개수' 로 원하는 순번 및 개수 출력 ex) LIMIT 0, 5 : 첫 번째부터 5개 ex) LIMIT 10, 5 : 11번째부터 5개 -- 상위 N개 출력 : LIMIT N SELECT * FROM book ORDER BY bookName LIMIT 5; -- 첫 번째부터 5개 (상위 5개) SELECT * FROM book ORDER BY bookName LIMIT 5 OFFSET 0; -- 첫 번째부터 5개 (상위 5개) SELECT * FROM book ORDER BY bookName LIMIT 0, 5; -- 첫 번째부터 5개 (상위 5개) SELECT ..
AUTO_INCREMENT AUTO_INCREMENT : 속성 값을 자동으로 증가 (아무 것도 지정하지 않으면 기본 1부터 시작해서 1씩 증가) AUTO_INCREMENT = 100 -- 기본 시작 값을 100으로 설정 SET @@AUTO_INCREMENT_INCREMENT=3 -- 3씩 증가 예제 실습 -- 기본 1부터 1씩 증가 CREATE TABLE board( boardNo INT AUTO_INCREMENT NOT NULL PRIMARY KEY, boardTitle VARCHAR(30) NOT NULL, boardWriter VARCHAR(20), boardContent VARCHAR(100) NOT NULL ); -- 초기값 100으로 설정하고 3씩 증가 CREATE TABLE board2( boardNo INT AUTO..