데이터 삽입, 수정, 삭제
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 모드
- WHERE 절이 없는 UPDATE/DELETE 문은 테이블의 전체 레코드를 변경 / 삭제
- 의도하지 않은 데이터 변경 / 삭제 방지를 위해 MySQL은 SAFE UPDATES 모드를 지원
- 기본키가 아니 컬럼을 대상으로 수정 / 삭제 조건을 명시할 경우 실행 여부를 결정
SET SQL_SAFT_UPDATES = 0 or 1
데이터 검색
SELECT 문
- 한 개 이상의 테이블에서 주어진 조건에 만족하는 레코드를 출력하는 명령문
- 관계 대수의 설렉션, 프로젝션, 조인, 카티션 프로덕트 연산자의 기능을 모두 포함있는 명령문
- 필수적 절인 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 절 - 검색 결과의 정렬 기준을 지정
단순질의문
- 레코드를 제한하지 않고 전체 테이블을 검색하는 SELECT 문으로 WHERE 절이 없는 질의문
- 구문형식
SELECT 컬럼1,컬럼2...,컬럼n
FROM 테이블
SELECT *
FROM 테이블
조건질의문
- 산술연산식, 함수 등을 사용하여 표현한 조건을 WHERE 절에 기술하여 조건을 만족하는 레코드만 검색하는 SELECT문
→ 산술연산자
→ 비교연산자
→ 논리연산자
- 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
'KNOU > 요약정리' 카테고리의 다른 글
[데이터베이스시스템] 정규화 (0) | 2024.05.25 |
---|---|
[데이터베이스시스템] SQL(3) (0) | 2024.05.25 |
[데이터베이스시스템] SQL(1) (0) | 2024.05.25 |
[데이터베이스시스템] 3. 관계형 모델 (0) | 2024.05.25 |
[데이터베이스시스템] 데이터베이스 모델링 (0) | 2024.05.25 |
댓글