제약조건
데이터 무결성
NOT NULL : NULL값 허용불가
UNIQUE : 하나의 테이블내에서 한번만 나옴 (주로 대체키 설정시 사용)
PRIMARY KEY : 기본키 (의미: UNIQUE + NOT NULL)
FOREIGN KEY : 외래키
CHECK : 도메인 무결성
제약조건의 설정
테이블을 만들때 속성에 제약조건 지정하기
CREATE TABLE 테이블명
(속성명 속성타입 [[제약조건명]제약조건],
속성명 속성타입,
...
)
참조 무결성 제약조건
외래키값은 다른 테이블의 기본키값들 중 하나이어야함
속성명 [CONSTRAINTS 제약조건명]
REFERENCE 참조테이블명(속성명)
CHECK 제약조건
도메인 무결성 제약조건 : 입력값의 제한
속성명 속성타입 CHECK(조건)
테이블수준 제약조건
속성단위로 제약조건 설정은 표현에 있어서 제약이 따름
CREATE TABLE 테이블명(
속성명 속성타입
...
[CONSTRAINT 제약조건명] 제약조건(속성명)
)
제약조건 추가 제거
제약조건 추가
ADD CONSTRAINT
ALTER TABLE 테이블명
ADD [CONSTRAINT 제약조건명] 제약조건 (속성명)
제약조건 제거
DROP CONSTRAINT
ALTER TABLE 테이블명
DRP CONSTRAINT 제약조건명
데이터검색
SELECT문
무조건 검색
SELECT 속성명1, 속성명2,...
FROM 테이블명
* 을 사용 : 모든 속성을검색할때는 속성의 이름을 전부 나열하지않고 * 사용가능
ALL : 결과테이블이 튜플의 중복을 허용하도록 지정, 생략가능
DISTINCT : 중복된 것을 제거하고 한번만 나오게 하는 방법
SELECT [ALL | DISTINCT] 속성_리스트
FROM 테이블_리스트;
WHERE : 간단한 조건검색
SELECT [ALL | DISTINCT] 속성_리스트
FROM 테이블_리스트
[WHERE 조건];
AS : AS키워드로 속성명 부여
AS 키워드를 이용해 결과 테이블에서 속성의 이름을 바꾸어 출력 가능
새로운 이름에 공백이 포함되어 있으면 큰따옴표나 작은따옴표로 묶어주어야 함
> 오라클에서는 큰따옴표, MS SQL 서버에서는 작은따옴표 사용
산술식을 이용한 검색
산술식 : 속성의 이름과 +, -, *, / 등의 산술연산자와 상수로 구성
결과테이블에서만 계산된 결과값이 출력됨 -> 속성의 값이 실제로 변경되는 것은 아님
조건 검색
LIKE 연산자 : 컬럼에 저장된 문자열중 LIKE연산자에서 지정한 문자패턴과 부분적으로 일치하면 참
% 0개이상의 문자 (문자의 내용과 개수는 상관없음)
- 1개의 문자 (문자의 내용은 상관없음)
IS NULL :
IS NULL 키워드를 이용해 특정 속성의 값이 널값인지를 비교
IS NOT NULL 키워드를 이용해 특정속성의 값이 널값이 아닌지를 비교
검색조건에서 NULL값은 다른값과 크기를 비교하면 결과가 모두 거짓이 됨
ORDER BY
SELECT [ALL|DISTINCT] 속성_리스트
FROM 테이블_리스트
[WHERE 조건]
[ORDER BY 속성_리스트 [ASC|DESC]];
ASC: 오름차순으로, 기본값(생략가능)
DESC: 내림차순, 생략불가능
ORDER BY 키워드를 이용해 결과 테이블 내용을 사용자가 원하는 순서로 출력
ORDER BY 키워드와 함께 정렬 기준이 되는 속성과 정렬방식을 지정
* NULL값은 오름차순에서는 맨마지막에 출력되고, 내림차순에서는 맨 먼저 출력됨
여러기준에 따라 정렬하려면 정렬 기준이 되는 속성들을 차례대로 제시
집계 함수를 이용한 검색
GROUP BY
SELECT [ALL|DISTINCT] 속성_리스트
FROM 테이블_리스트
[WHERE 조건]
[GROUP BY 속성_리스트 [HAVING 조건]]
[ORDER BY 속성_리스트 [ASC|DESC]];
GROUP BY 키워드를 이용해 특정 속성의 값이 같은 튜플을 모아 구릅을 만들고 그룹별로 검색
GROUP BY 키워드와 함께 그룹을 나누는 기준이 되는 속성을 지정
HAVING 키워드와 함께 그룹에 대한 조건 작성 가능
그룹을 나누는 기준이 되는 속성을 SELECT절에도 작성하는 것이 좋음
※ WHERE랑 HAVING을 헷갈리는 경우가 많은데
WHERE는 그룹화 하기 전 조건이고, HAVING은 그룹화 후에 조건입니다.
원본 출처 : 앨리스 한국기술교육대학교 온라인평생교육원
'STUDY > DB SQL' 카테고리의 다른 글
[SQL] SQL의 JOIN에 대해 알아보자 (0) | 2022.07.26 |
---|---|
[SQL] SQL 키 종류와 예제 (0) | 2022.07.25 |
[SQL] 테이블 기본 생성과 조작 (0) | 2022.07.24 |
[SQL] SQL 시작과 기초 (0) | 2022.07.21 |
[Oracle] 오라클 클라우드 Oracle Cloud 시작하기 (0) | 2022.07.05 |