Msg 성장일기

기본명령어-2 본문

study_SQL/SQL 실습

기본명령어-2

공부하는 어른이 2023. 7. 5. 15:48

주석처리

'--'  :  한줄 주석 처리

'/**/' : 여러줄 주석 처리

LIKE

→ LIKE구문은 검색값이 필드에 포함된 데이터를 검색하는데 사용된다.

검색값으로  길이에 상관없이 문자열을 대체하는 % 와 한문자를 대체하는 '_'문자를 조합해서 쓴다.

고객코드가 2018로 시작하는 고객 검색

IN

→ IN구문은 나열한 검색값이 필드에 포함된 데이터를 검색한다. "필드 IN ('검색값1','검색값2'...'검색값N')"형식으로 필드값이 '검색값1'에서 '검색값N' 중 하나라도 있으면 검색한다. IN앞에 NOT을 지정해 검색값이 필드에 포함되지 않은 데이터를 검색할 수 있다.

고객코드가 2017108, 2018254, 2019167인 고객 중 남성인 고객

ORDER BY

ORDER BY 구문은 나열한 필드를 기준으로 데이터를 정렬한다. ASC: 오름차순, DESC: 내림차순 , 기본방식은 오름차순이다.

성별로 내림차순으로 정렬한 결과를 다시 고객명으로 오름차순하기

GROUP BY

 GROUP BY 구문은 나열한 필드를 기준으로 데이터를 묶어준다. HAVIG구문을 통해 WHERE 구문처럼 조건을 설정한다.

반코드 그룹을 검색
반코드 그룹을 만들고 국어점수 80점 이상만 검색

DISTINCT

 DISTINCT 구문은 나열한 필드 값을 중복없이 구한다.

판매 테이블에서 상품명을 중복없이 검색

JOIN

→JOIN 구문은 2개 이상 테이블의 연관정보를 구한다. "FROM 기준 테이블 JOIIN 연관 테이블 ON 조건"형식으로 ON에는 기준테이블과 연관테이블의 관계를 나타내는 조건을 설정한다.

8월,9월 성적 테이블을 연관검색해 두 테이블에 공통적인 시험코드를  보이기

CASE

→CASE 구문은 조건에 만족하는 결괏값을 반환한다. '조건대상'에 대한 '비굣값'을 WHEN구문에 지정하고 조건에 만족할 경우 THEN 구문에서 지정한 '결과'를 반환한다. 만일 어떤 조건도 만족하지 않으면 ELSE 구문의 값을 반환한다.

CLASS_NM을 변환

ROWNUM

→ ROWNU구문은 레코드를 검색할 때 생성되는 행 번호를 구한다.

→ 행 번호와 전체 레코드를 함께 출력하려면 기준 테이블에 별명을 지정하고 "별명.*" 형식과 ROWNUM을 사용한다.

NULL

NULL은 필드에 할당된 값이 없는 상태다. IS NULL은 값이 없는 데이터를 검색한다. IS NOT NULL은 값이 있는 데이터를 검색할 때 사용한다.

핸드폰 번호가 없거나 이메일이 없는 사람 검색

DUAL

DUAL 테이블은 오라클에서 기본적으로 설치되는 SYSTEM권한의 1행으로 구성된 테이블이다. 이 테이블은 값이 'X'인 'DUMMY' 필드를 가지고 있다.

*SYSDATE는 현재 일시를 구하는 명령이다.

 

UPDATE

→ UPDATE명령은 조건식을 만족하는 데이터의 필드 값을 바꾼다.

UPDATE 테이블명
SET 필드명1=값1, 필드명2=값2,...,필드명N=값N
WHERE 조건식;

성적이 C와 D인 것의 합과 평균을 수정한다.

INSERT

→INSERT 명령은 지정한 테이블의 필드에 데이터를 입력한다. 

INSERT INTO 테이블명 (필드명1,필드명2,...,필드명n) VALUES(값1,값2,...,값n);

 

MERGE

→MERGE 명령은 조건에 따라 지정한 테이블의 데이터를 입력하거나 수정한다. 일반적으로 조건식에 따라 데이터가 있다면 UPDATE 구문을 처리하고, 데이터가 없다면 INSERT구문을 처리한다.

→기존에 레코드가 존재하는 'WHEN MATCHED THEN' 이후에는 UPDATE명령으로 레코드를 변경하고, 레코드가 없는 'WHEN NOT MATCHED THEN'이후에는 INSERT 명령으로 입력한다.

 

MERGE INTO 입력/수정할 테이블명
	USING (테이블명 | 뷰 | 서브쿼리)
  	ON 조건식
  	  WHEN MATCHED THEN
    		UPDATE SET 필드명 1= 값1, 필드명2=값2,...,필드명n=값n
  	  WHEN NOT MATCHED THEN
    		INSERT .. VALUES 구문;

추가고객 테이블의 고객코드와 같은 고객코드가 고객 테이블에 있다면 추가고객테이블로 업데이트하고 없다면 추가고객 테이블을 입력한다.

DELETE

→DELETE 명령은 조건에 만족하는 데이터를 삭제한다.

DELETE
FORM 테이블명
WHERE 조건식;

COMMIT

→메모리에 임시 저장된 내용을 실제 데이터베이스에 반영한다.

 

ROLLBACK

→ 데이터베이스에서 바뀐 내용을 취소하고 최종 커밋 상태로 돌아간다.

 

트랜잭션

→ 트랜잭션은 데이터베이스 작업에서 하나로 묶을 수 있는 업무를 가리킨다.

→트랜잭션 작업은 데이터베이스의 입력, 수정, 삭제 등 여러 작업을 포함하며, 데이터의 무결성을 보장하기 위해 작업 중 오류가 발생하면 작업 전체를 취소하고 작업 전 상태로 돌아간다.

 

EXISTS

→EXISTS 구문은 서브쿼리의 결과가 있으면 데이터를 검색한다.

→EXISTS 구문 앞에 NOT을 지정하면 서브쿼리의 결과가 없으면 검색하는 조건을 나타낸다.

SELECT 검색필드
FROM 테이블
WHERE [NOT] EXISTS (SELECT [필드|의미없는 문자]
		    FROM 테이블
                    WHERE 조건식);

고객 포인트 테이블의 고객코드가 고객 테이블의 남성인 고객코드와 같으면 포인트 적립내용을 검색

 

'study_SQL > SQL 실습' 카테고리의 다른 글

집합명령어 및 날짜함수  (0) 2023.07.05
기본명령어  (0) 2023.07.02
데이터베이스 기본 개념  (0) 2023.07.01