● SQL(Structured Query Language)
관계 데이터베이스를 위한 표준 질의어, 비절차적 데이터 언어
사용방식
- 대화식 SQL : 데이터베이스 관리 시스템에 직접 접근해 질의를 작성하여 실행
- 삽입 SQL : 프로그래밍 언어로 작성된 응용 프로그램에 삽입
● SQL의 분류
- 데이터 정의어(DDL) : 테이블을 생성하고 변경,제거하는 기능을 제공
- 데이터 조작어(DML) : 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정, 삭제, 검색하는 기능을 제공
- 데이터 제어어(DCL) : 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능을 제공
● SQL의 데이터 정의 기능
테이블 생성 : CREATE TABLE 문
CREATE TABLE 테이블_이름 ( 속성_이름 데이터 타입 [NOT NULL] [DEFAULT 기본_값] [ PRIMARY KEY (속성_리스트) ] // 유일키 정의 [ UNIQUE (속성_리스트) ] // 대체키 정의 [ FOREIGN KEY (속성_리스트) REFERENCES 테이블_이름(속성_리스트) ] // 외래키 정의 [ ON DELETE 옵션 ] [ ON UPDATE 옵션 ] [ CONSTRAINT 이름 ] [ CHECK(조건) ] //데이터 무결성을 위한 제약조건 정의 ); |
※ 속성의 정의
- NOT NULL : 속성이 널값을 허용하지 않음을 의미하는 키워드
- DEFAULT : 속성의 기본 값을 지정하는 키워드
※ 키의 정의
- PRIMARY KEY : 기본키를 지정하는 키워드
- UNIQUE KEY : 대체키를 지정하는 키워드, 대체키로 지정되는 속성의 값은 유일성을 가지며 기본키와 달리 널 값이 허용됨
- FROEIGN KEY : 외래키를 지정하는 키워드, 외래키가 어떤 테이블의 무슨 속성을 참조하는지 REFERENCES 키워드 다음에 제시
> 참조 무결성 제약조건 유지를 위해 참조되는 테이블에서 투플 삭제 시 처리 방법을 지정하는 옵션
- ON DELETE NO ACTION : 투플을 삭제하지 못하게 됨
- ON DELETE CASCADE : 관련 투플을 함께 삭제함
- ON DELETE SET NULL : 관련 투플의 외래키 값을 NULL로 변경함
- ON DELETE SET DEFAULT : 관련 투플의 외래키값을 미리 지정한 기본 값으로 변경함
> 참조 무결성 제약조건 유지를 위해 참조되는 테이블에서 투플 변경 시 처리 방법을 지정하는 옵션
- ON UPDATE NO ACTION : 투플을 변경하지 못하게 됨
- ON UPDATE CASCADE : 관련 투플을 외래키 값을 함께 변경함
- ON UPDATE SET NULL : 관련 투플의 외래키 값을 NULL로 변경함
- ON UPDATE SET DEFAULT : 관련 투플의 외래키값을 미리 지정한 기본 값으로 변경함
- CHECK : 테이블에 정확하고 유효한 데이터를 유지하기 위해 특정 속성에 대한 제약조건을 지정
예) CONSTRAINT CHK_CPY CHECK(제조업체 = '한빛제과')
테이블 변경 : ALTER TABLE 문
- 새로운 속성 추가
ALTER TABLE 테이블_이름 ADD 속성_이름 데이터_타입 [NOT NULL] [DEFAULT 기본_값] |
- 기존 속성 삭제
ALTER TABLE 테이블_이름 DROP COLUMN 속성_이름; |
- 새로운 제약조건의 추가
ALTER TABLE 테이블_이름 ADD CONSTRAINT 제약조건_이름 제약조건_내용; |
- 기존 제약조건의 삭제
ALTER TABLE 테이블_이름 DROP CONSTRAINT 제약조건_이름; |
테이블 삭제 : DROP TABLE 문
DROP TABLE 테이블_이름; |
SQL - DML
● 데이터 삽입 : INSERT 문
INSERT INTO 테이블_이름[(속성_리스트)] VALUES (속성값_리스트); |
EX) INSERT INTO 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)
VALUES ('strawberry', '최유경', 30, 'vip', '공무원', 100);
> 부속 질의문을 이용한 데이터 삽입
INSERT INTO 테이블_이름[(속성_리스트)] SELECT 문; |
EX) INSERT INTO 한빛제품(제품명, 재고량, 단가) SELECT 제품명, 재고량, 단가 FROM 제품
WHERE 제조업체 = '한빛제과';
● 데이터 검색 : SELECT 문
SELECT [ ALL | DISTINCT ] 속성_리스트 FROM 테이블_리스트; |
> ALL : 결과 테이블이 투플의 중복을 허용하도록 지정, 생략 가능
> DISTINCT : 결과 테이블이 투플의 중복을 허용하지 않도록 지정
> AS 키워드로 이용해 결과 테이블에서 속성의 이름을 바꾸어 출력 가능
EX) SELECT 제품명, 단가 AS 가격 FROM 제품;
> 산술식을 이용한 검색
EX) SELECT 제품명, 단가 + 500 AS "조정 단가"
FROM 제품;
> 조건 검색 : 조건을 만족하는 데이터만 검색
SELECT [ ALL | DISTINCT ] 속성_리스트 FROM 테이블_리스트 [WHERE 조건 ]; |
EX) SELECT 제품명, 재고량, 단가 FROM 제품 WHERE 제조업체 = '한빛제과';
> LIKE를 이용한 검색 : LIKE 키워드를 이용해 부분적으로 일치하는 데이터를 검색,
문자열을 이용하는 조건에만 LIKE 키워드 사용가능
기호 | 설명 |
% | 0개 이상의 문자(문자의 내용과 개수는 상관없음) |
_ | 1개의 문자(문자의 내용은 상관없음) |
EX) LIKE '__한%' : 세번째 글자가 '한'인 문자열
> NULL을 이용한 검색
- IS NULL 키워드를 이용해 특정 속성의 값이 널 값인지를 비교
- IS NOT NULL 키워드를 이용해 특정 속성의 값이 널값이 아닌지를 비교
> 정렬 검색 : ORDER BY 키워드를 이용해 결과 테이블 내용을 사용자가 원하는 순서로 출력
- 오름차순(기본) : ASC / 내림차순 : DESC
EX) SELECT [ ALL | DISTINCT ] 속성_리스트 FROM 테이블_리스트 [ WHERE 조건 ]
[ ORDER BY 속성_리스트 [ ASC | DESC ] ];
> 집계함수를 이용항 검색 : 특정 속성 값을 통계적으로 계산한 결과를 검색하기 위해 집계 함수를 이용
함수 | 의미 | 사용 가능한 속성의 타입 |
COUNT | 속성 값의 개수 | 모든 데이터 |
MAX | 속성 값의 최댓값 | |
MIN | 속성 값의 최솟값 | |
SUM | 속성 값의 합계 | 숫자 데이터 |
AVG | 속성 값의 평균 |
'데이터베이스' 카테고리의 다른 글
데이터베이스 정규화 총정리 (0) | 2021.05.21 |
---|---|
데이터베이스 언어 SQL-2 (0) | 2021.04.19 |
관계 데이터 연산 (0) | 2021.04.19 |
데이터베이스 관리 시스템 (0) | 2021.04.18 |
데이터베이스 기본 개념 (0) | 2021.04.18 |