제약조건, 데이터 검색

단비·2022년 10월 11일
0

SQL 활용

목록 보기
3/4
  1. 데이터 무결성

    • NOT NULL
      • NULL값 허용 불가
    • UNIQUE
      • 하나의 테이블 내 한번만 나옴
      • 주로 대체키 설정 시 사용됨
    • PRIMARY KEY
      • 기본키 (의미 : UNIQUE + NOT NULL)
    • FOREIGN KEY
      • 외래키
    • CHECK
      • 도메인 무결성 (속성값의 범위인 도메인을 제한하기 위한 구문)
    ...예시
    id VARCHAR(20) CONSTRAINT PK_id FRIMARY KEY,
    pwd VARCHAR(20) CONSTRAINT NN_pwd NOT NULL
  2. 제약 조건 설정

    CREATE TABLE 테이블명(
    	속성명 속성타입 [[제약조건명] 제약조건],
    	속성명 속성타입
    )
    • 도메인 무결성 제약조건
      • 입력값의 제한

        birthYear int CHECK(birthYear >= 1900) .. birthYear은 1900보다 크거나 같다
        Age int CHECK(Age between 1 and 150) .. Age 는 1에서 150사이다
    • 테이블수준 제약조건
      CREATE TABLE 테이블명(
      	속성명 속성타입
      	..
      	[CONSTRAINT 제약조건명]제약조건(속성명)
      )
  3. 계약조건의 추가 및 제거

    • 테이블 구조 정보에 속함으로 ALTER TABLE을 이용함
    • 추가
    ADD CONSTRAINT
    • 제거

  • 간단한 데이터 검색
    1. AS 키워드와 *

      • 무조건 검색
        • 속성명이 해당하는 테이블이 전부 검색됨
      SELECT 속성명1, 속성명2 ...
      FROM 테이블명
          • 테이블의 모든 내용이 전부 검색됨
      SELECT * FROM 테이블명
      • AS키워드
        • 질의 결과의 속성명을 바꾸어서 나타나게 함
        • 질의 결과에 수식을 넣을 수 있음
      SELECT SALARY*12 AS YEARSAL FROM EMPLOYEE
      .. EMPLOYEE의 봉급*12인 열을 추가하여 속성명을 YEARSAL로 변경
    2. 간단한 조건 검색

      • WHERE 절
        • =, !=, <>(같지않다), > , >=, <, <=
        • 논리 연산자
          • X AND Y : X, Y가 참일 때 참을 반환
          • X OR Y : X나 Y가 참일 때 참을 반환
          • NOT X : X가 거짓일 때 참을 반환
      SELECT ENAME, DNO
      FROM EMPLOYEE
      WHERE ENO = 110
      .. 
      EMPLOYEE 에서 ENAME, DNO 열을 가져와 ENO110인 값을 가져옴
      ..
      WHERE DNO = 20 AND SALARY >= 400
      ..
      DNO20이면서 SALARY400이상이거나 같은 값을 가져옴
      • DISTINCT
        • SQL은 Bag을 기반으로하여 중복된 것들도 다 나오므로 중복된 것을 제외하고 한 번만 나오게 해줌

          SELECT DISTINCT JOB from EMPLOYEE
          ..
          EMPLOYEE에서 JOB을 중복없이 검색
  • 복잡한 데이터 검색
    1. BETWEEN, IN, IS NULL

      • BETWEEN a AND b
        • 검색 조건의 상한과 하한을 정함

          WHERE SALARY BETWEEN 400 AND 600
          ..
          SALARY400보다 크거나 같고 600보다 작거나 같은 값을 검색
      • IN(a,b,c,…)
        • 속성값이 a,b,c,… 중 하나라도 일치하면 참

          WHERE JOB IN ('section' , 'senior')
          ..
          JOB이 section이거나 senior인 값을 검색
      • IS NULL
        • NULL은 어떤 비교를 하든 거짓임

          WHERE COMMISSION = NULL .. NULL은 무조건 거짓이라 결과가 없음
          WHERE COMMISSION IS NULL .. NULL인 값이 검색됨
          WHERE COMMISSION IS NOT NULL .. NULL이 아닌 값이 검색됨
    2. 문자열 검색

      • LIKE 연산자
        • 컬럼에 저장된 문자열 중에서 LIKE 연산자에서 지정한 문자 패턴과 부분적으로 일치하면 참이되는 연산자

        • 부분 문자열 검색에 사용되는 패턴
          - % : 임의의 길이의 문자열
          - _ : 한글자

          WHERE DNAME LIKE 'H%n' .. H로 시작해서 n으로 끝나는 값을 검색
    3. ORDER BY 절

      • ASC: 오름차순, 기본값이라 생략가능
      • DESC: 내림차순, 생략 불가
      SELECT ENAME, SALARY FROM EMPLOYEE
      ORDER BY SALARY DESC
      ..
      SALRARY 기준 내림차순으로 출력됨
      ..
      SELECT ENAME, SALARY FROM EMPLOYEE
      ORDER BY SALARY DESC, ENAME ASC
      ..
      SALARY가 같은 행의 경우 ENAME의 오름차순으로 출력됨
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글