본문 바로가기
KNOU/요약정리

[데이터베이스시스템] SQL(2)

by bottlesun 2024. 5. 25.
728x90

데이터 삽입, 수정, 삭제

INSERT 문

  • 테이블에 새로운 레코드를 삽입하는 명령문

→ 테이블에 새로운 레코드를 삽입

→ 모든 속성 또는 부분 속성에 대한 속성값을 삽입

  • 구문 형식
INSERT INTO TABLE_NAME
	VALUES(value1, value2, ... valueN)
INSERT INTO TABLE_NAME(column1,column2...columnN)
	VALUES(value1, value2, ... valueN)

질의1 ) 학과이름’영어영문학과’ , 단과대학 , ‘인문과학대학’ 주소 ‘a’ , 전화번호 ‘02-1234-1234’ , 졸업학점 135인 레코드를 학과 테이블에 삽입 하시오.

INSERT INTO 학과
	VALUES('영어영문학과', '인문과학대학' , 'a' , '02-1234-1234', 135);

질의2 ) 단과대학 ‘자연과학대학’ , 학과이름 ‘ 농학과’ , 졸업학점 140 , 전화번호 ‘02-2345-2345’ 이 레코드를 학과 테이블에 삽입하시오.

INSERT INTO 학과(단과대학,학과이름,졸업학점,전화번호)
	VALUES('자연과학대학','농학과',140,'02-2345-2345');

UPDATE 문

  • 조건을 만족하는 레코드의 특정 컬럼값을 수정
  • 구문형식
UPDATE TABLE_NAME
	SET colum1 = value1 [colum2 = value2 ... , columN = valueN]
	[WHERE 조건]
UPDATE TABLE_NAME
	SET colum1 = 수식1 ...
	[WHERE 조건]

DELETE 문

  • 조건에 일치하는 레코드 집합을 테이블에서 삭제할 때 사용하는 명령어
  • 구문형식
DELETE FROM TABLE_NAME
			[WHERE 조건]

SAFE UPDATES 모드

  1. WHERE 절이 없는 UPDATE/DELETE 문은 테이블의 전체 레코드를 변경 / 삭제
  2. 의도하지 않은 데이터 변경 / 삭제 방지를 위해 MySQL은 SAFE UPDATES 모드를 지원
  3. 기본키가 아니 컬럼을 대상으로 수정 / 삭제 조건을 명시할 경우 실행 여부를 결정
SET SQL_SAFT_UPDATES = 0 or 1

데이터 검색

SELECT 문

  1. 한 개 이상의 테이블에서 주어진 조건에 만족하는 레코드를 출력하는 명령문
  2. 관계 대수의 설렉션, 프로젝션, 조인, 카티션 프로덕트 연산자의 기능을 모두 포함있는 명령문
  3. 필수적 절인 SELECT 절과 부가적인 목적으로 사용할 수 있는 여러 절을 혼합하여 검색 기능을 구체화
  • 구문형식
SELECT [DISTICT] colum1, colum2,... columN
		FROM TABLE1 [INNER JOIN | OUTER JOIN 
				 TABLE2 INNER JOIN | OUTER JOIN 
				 ON JOIN 조건1
				 TABLE3
				 ... INNER JOIN | OUTER JOIN
		]
		[ON 조인 조건식]
		[WHERE 조건식 AND ... 조건식]
		[GROUP BY colum1 , colum2]
		[HAVING 조건]
		[ORDER BY 컬럼1[ASC | DESC]]

SELECT 문의 절의 기능

  • SELECT 절 - 결과에 포함되는 컬럼을 지정
  • FROM 절 - 질의를 적용할 테이블을 지정
  • ON / WHERE 절 - 조인 조건/검색할 레코드 조건을 지정
  • GROUP BY 절 - 레코드를 그룹화하기 위한 그룹 조건을 지정
  • HAVING 절 - GROUP BY 절이 적용된 결과에 대한 조건 지정
  • ORDER BY 절 - 검색 결과의 정렬 기준을 지정

단순질의문

  1. 레코드를 제한하지 않고 전체 테이블을 검색하는 SELECT 문으로 WHERE 절이 없는 질의문
  • 구문형식
SELECT 컬럼1,컬럼2...,컬럼n
			FROM 테이블
SELECT *
			FROM 테이블

조건질의문

  1. 산술연산식, 함수 등을 사용하여 표현한 조건을 WHERE 절에 기술하여 조건을 만족하는 레코드만 검색하는 SELECT문

→ 산술연산자

→ 비교연산자

→ 논리연산자

  1. WHERE 절은 UPDATE, DELETE 문에서도 동일하게 적용

산술연산자

  • SELECT 절 또는 WHERE 절에 사용되어 컬럼 값 또는 상수와의 산술 계산을 위한 연산자
종류 사용 예시 의미
DIV 컬럼 DIV 상수(또는 컬럼명) 정수 나눗셈
/ 컬럼 / 상수 (또는 컬럼명) 나눗셈 연산자
- 컬럼 - 상수 (또는 컬럼명) 뺼셈 연산자
% , MOD 컬럼 % 상수 (또는 컬럼명) 나머지 연산자
+ 컬럼 + 상수 (또는 컬럼명) 덧셈 연산자
* 컬럼 * 상수 (또는 컬럼명) 곱셈 연산자

비교연산자

  • 컬럼값과 상수 또는 컬럼값과 다른 컬럼값과의 크기를 비교하는 연산자
종류 사용 예시 의미
= 컬럼_이름 = X 컬럼값과 X와 같은
< 컬럼_이름 < X 컬럼 값이 X보다 작은
컬럼_이름 ≤ X X보다 작거나 같은
> 컬럼_이름 > X X보다 큰
컬럼_이름 ≥ X X보다 크거나 같은
     
≠ or <> 컬럼_이름 <> X X와 같지 않은

논리연산자

  • 두 개 이상의 조건이 기술되는 질의문에서 조건식 간의 관계를 정의하는 연산자
종류 사용 예시 의미
AND or && 조건1 AND 조건2 조건1과 조건2를 동시에 만족하는
OR or    
NOT or ! NOT 조건1 조건1이나 참이 아닌

데이터 정렬

  • ORDER BY절을 사용
  • 검색 결과를 특정 컬럼에 대해 오름차순 또는 내림차순으로 정렬

→ 오름차순 : ASC , 내림차순 : DESC

  • 구문형식
SELECT문 형식
	ORDER BY 컬럼1 [ASC | DESC],
					 컬럼n [ASC | DESC]

특수연산자

  • 범위 포함 여부, 부분 일치 여부, 포함 여부 등 관계형 데이터베이스 에서만 사용되도록 고안된 연산자
종류 사용 예시 의미
BETWEEN 컬럼명 BETWEEN V1 AND V2 컬럼값이 V1 ~ V2 사이에 존재하는 검사
LIKE 컬럼명 LIKE ‘V1%’ V1으로 시작하는 문자열 검사
  컬럼명 LIKE ‘%V1’ V1으로 끝나는 문자열 검사
  컬럼명 LIKE ‘%V1%’ V1이 문자열 내부에 존재하는지 검사
  컬럼명 LIKE ‘V1_’ V1 뒤에 ㅎ ㅏㄴ 문자만 일치하는 검사
IN 컬럼명 IN (V1, … Vn) 컬럼값이 V1, …Vn 중 하나와 일치하는지 검사

함수의 개념

  • 특정 목적을 수행하도록 사전에 정의된 연산 및 기능을 수행한 후 결과값을 반환하는 명령어 집합
  • 상용 DBMS는 검색결과가 사용자에게 여러 형태로 사용되도록 여러 데이터 타입에 대한 다양한 함수를 제공

→ 문자함수

→ 숫자함수

→ 날짜 및 시간 함수

숫자함수

  • 삼각함수, 상수, 올림과 버림, 난수등의 숫자 데이터 타입에 적용할 수 있는 계산을 위한 함수
종류 사용 예시 의미
ABS() ABS(X) X의 절대값을 반환
SIN(), COS() SIN(X) X의 삼각함수 값을 반환
CEILING()    
FLOOR() CEILING(X)  
FLOOR(X) X의 보다 크지(작지) 않은 최소(최대)의 정수  
LN() LN(X) 자연 로그 InX 의 값을 반환
PI() PI( ) 원주율 값을 반환
POWER() POWER(X, Y) 거듭제곱 XY값을 반환
RAND() RAND( ) 0과 1 사이의 임의의 값을 반환
ROUND() ROUND(X,[Y]) X의 Y번째 소수점 위치의 수를 반올림 값을 반환
SQRT() SQRT(X) X의 제곱근의 값을 반환
TRUNCATE() TRUNCATE(X,Y) X의 Y번째 소수점 이하를 버림 한 값을 반환

문자함수

  • 문자열 조작 및 문자 형식 변환 등의 문자와 관련된 다양한 연산을 지원하는 함수
종류 사용 예시 의미
CHAR_LENGTH() CHAR_LENGTH(X) X의 글자수를 반환 (한글도 1글자로 계산)
CONCAT() CONCAT(X,Y) X와 Y 문자열을 결합
LOWER() LOWER(X) X의 문자를 모두 소문자로 변환
UPPER() UPPER(X) X의 문자를 모두 대문자로 변환
SUBSTRING() SUBSTRING(X,A,B) X의 A번째 문자부터 B개의 문자열을 반환
TRIM() / LTRIM() / RTRIM() TRIM(X) / LTRIM(X) / RTRIM(X) 양쪽 / 왼쪽 / 오른쪽 공백 문자를 제거하고 반환

날짜함수

  • 날짜 및 시간 데이터 타입에 적용되어 산술 연산 및 시간 형 변환 등의 조작을 위한 함수
종류 사용 예시 의미
ADDDATE() ADDDATE(X, INTERVAL Y단위) X에 Y 단위의 시간을 더한 날짜를 반환
ADDTIME() ADDTIME(X,Y) X와 Y 시각을 더한 날짜를 반환
CURDATE(),    
CURRENT_DATE() CURDATE(),  
CURRENT_DATE() 현재 날짜를 반환  
CURTIME(),    
CURRENT_TIME() CURTIME(),  
CURRENT_TIME() 현재 시간을 반환  
DATE() DATE(X) X에서 날짜(년,월,일)을 반환
YEAR() YEAR(X) X에서 년 값을 반환
728x90

댓글