23.04.07 DBMS

인삼주·2023년 4월 7일
0
post-thumbnail
SELECT EMPID 사원번호, ENAME 사원명, SUBSTR(HIRE_DATE,1,4) 고용일자 
FROM VIEW_EMP1
WHERE SUBSTR(HIRE_DATE,1,4) > '2000' AND SALARY >= 350;
--WHERE HIRE_DATE > '2000-12-31' AND SALARY > =350;
--WHERE TO_CHAR(HIRE_DATE, 'YYYY-MM-DD') > '2000-12-31' AND SALARY >= 350;
  • SELECT ENAME 사원명
    => 보여줄 때 ENAME를 사원명이라고 보여줘라

  • SUBSTR(HIRE_DATE,1,4)
    => 고용일자 중 첫번째 글자에서 네번째 글자까지 보여줘라

SYSDATE ?

SELECT COUNT(*)고용인원수, ROUND(AVG(SALARY)) 평균급여, MIN(SALARY) 최저급여, MAX(SALARY)최고급여
FROM VIEW_EMP1
  • COUNT는 레코드를 세는 함수
    () 치면 그 필드에 있는 레코드 몽땅 나와라
    COUNT(
    )
    count 뒤에 where쓰고
SELECT COUNT(*)고용인원수, ROUND(AVG(SALARY),2) 평균급여, MIN(SALARY) 최저급여, MAX(SALARY)최고급여
FROM VIEW_EMP1
  • ROUND는 나눗셈할때 많이 쓴다. 반올림하는거
    ROUND(AVG(SALAEY),2)
    => 소수점 두자리 보여줘라!
SELECT NAME
FROM VIEW_EMP2
WHERE JOB LIKE '%품%';

SELECT NAME
FROM VIEW_EMP2
WHERE JOB LIKE '품%';

SELECT NAME
FROM VIEW_EMP2
WHERE JOB LIKE '%품';

SELECT NAME
FROM VIEW_EMP2
WHERE JOB LIKE '_질%';
  • '품%'
    무조건 품자로 시작되는 레코드 전체 조회
    '%품%'
    가운데 품이 들어가 있는 레코드 전체 조회
    '%품'
    마지막에 품이 들어가는 레코드 전체 조회
    '_품%'
    두번째 글자가 품이 들어가는 레코드 전체 조회

VIEW EPM3에서 1995~1999년 사이에 태어난 사원의 총예산을 표시하시오.(1인당 100만원)

SELECT COUNT(*)사원수, COUNT(*)*1000000 총예산
FROM VIEW_EMP3
WHERE SUBSTR(BIRTHDAY,1,4)>='1995' and SUBSTR(BIRTHDAY,1,4)<='1999';

릴레이션 = 테이블
튜플 = 레코드
어트리뷰트 = 필드

무결성
규칙대로 들어갈 수 있도록?

엔티티 무결성
-> NOT NULL
-> 프라이머리키

참조 무결성
-> 외래키

도메인 무결성
??

SELECT * FROM EMP;
릴레이션 전체 조회

릴레이션

  • 릴레이션 성질

1) 릴레이션에 저장된 튜플들은 유일

2) 릴레이션에 저장된 튜플간 순서 관계 없음

3) 릴레이션을 구성하는 속성간 순서 관계 없음
-- 정해진 규칙은 없지만
보통 많이 작업하는 필드들을 왼쪽으로 주고,
관계되는 필드끼리 묶어준다.

4) 모든 속성 값은 원자 값
-- 쪼개서는 안되는 값

프라이머리키
NOT NULL이고 유일해야한다.

  • 참조 무결성

식별관계
프라이머리키-프라이머리키

비식별관계
일반키-프라이머리키

  • 도메인 무결성

속성??

SQL

Structured Query Language

  • 구조화된 질의 언어
  • 결과 중심적 언어
  • 비절차적 언어
    (단점을 보안하기 위해 PL/SQL 절차중심적 언어가 있음)

관계형데이터베이스 주요 용어

  • 개체
    데이터를 논리적으로 표현한 것
    결과적으로 테이블이 된다.
    테이블 만들기 전 단계
  • 관계(Relation)
    테이블
  • 테이블
    튜플들의 집합

  • 원하는 값을 뽑아내는 가상의 테이블
    데이터를 직접적으로 저장하지 않음
  • 튜플
    행,레코드
  • 속성(Attribute)
    열, 필드
  • 도메인
    하나의 속성이 취할 수 있는 값의 집합
    필드에 제약조건을 줘서 필요한 데이터만 들어갈 수 있게 하는 것
    (복합 속성이나 다치속성은 허용되지 않음)
    제약조건에 다양한 속성을 부여하는 것은 허용되지 않는다.
  • 카디널리티
    행들의 수(튜플의 수)
  • 차수
    열들의 수(필드의 수)
  • 널값
    존재하지 않는 값을 의미
  • 질의
    사용자의 요구

  • 릴레이션 내 튜플을 유일하게 구별할 수 있는 속성들의 모음
  • 메인키
    기본키, 대표성을 띄는 키
    최소성과 유일성
  • 외래키
    서로 다른 테이블 사이를 연결시켜주는 키
    (식별.비식별)
    데이터의 무결성을 보장하는 키
  • 복합키
    두가지 이상의 속성을 합쳐져야 후보키의 역할을 하는 경우

0개의 댓글