나를 기록하기/[자격증] SQLD

[SQLD] 2과목 1장 - SQL 기본(Q.1~21)

배고파요 2022. 5. 16. 21:35
728x90

📕 2과목 - SQL 기본 및 활용


📌 1장 - SQL 기본



📍 SQL 문장 ( DDL, DML, DCL, TCL )

  • 데이터베이스를 정의하고 접근하기 위해서는 --> 데이터베이스 관리 시스템과의 통신수단이 필요. 
    • 이때, 이 통신수단이 ❗❗ 데이터 언어 
    • 이 데이터 언어를 기능과 사용 목적에 따라 구분한 것 
      • DDL, DML, DCL TCL
      •  
      • As-Is : 비절차적 데이터 조작어(DML)는 사용자가 무슨(What) 데이터를 원하는 지만을 명세.
      • To-Be : 비절차적 데이터 조작어(DML)는 사용자가 무슨(What) 데이터를 원하는 지만을 명세하지만,
        • 절차적 데이터 조작어는 어떻게 (How) 데이터를 접근해야 하는 지 명세함. 
        • 절차적 데이터 조작어? --> PL/SQL(오라클), T-SQL(SQL Server) 등.
      • DDL --> 스키마, 도메인, 테이블, 뷰, 인덱스를 정의하거나 변경 또는 제거할 때 사용됨. 
      • 호스트 프로그램 속에 삽입되어 사용되는 DML 명령어들을 데이터 부속어(Data Sub Language) 라고 함.





📍 ORACLE 과 SQL Server 차이점?

  • ORACLE
    • Alter Table 기관분류 Alter Column(분류명 Varchar(30) Not Null, 등록일자 Date Not Null);
  • SQL Server 
    • Alter Table 기관분류 Alter Column 분류명 Varchar(30) Not Null;
    • Alter Table 기관분류 Alter Column 등록일자 Date Not Null;
    • SQL Server 는 여러개의 컬럼을 동시에 수정 불가. ❗❗ 한 개씩 해야함. ➕ ❗❗ 괄호 사용 안함.





📍 NULL ?

  • 아직 정의되지 않은 미지의 값.
  • 현재 데이터를 입력하지 못하는 경우
  • 모르는 값
  • 값의 부재
  • null 과의 모든 비교(is null은 제외)는 알 수 없음(Unknown)을 반환.
  • ❗❗ 공백문자 혹은 숫자 0 과는 완전히 다른 것.




📍 테이블 생성시 칼럼별 생성할 수 있는 제약조건 ?

  • UNIQUE 
    • 테이블 내에서 중복되는 값이 없다. ➕ NULL 입력 가능.
  • PK 
    • UNIQUE ➕ NOT NULL.
    • 주키로 테이블 당 1개만 생성 가능.
  • FK 
    • 외래키로 테이블당 여러 개 생성 가능.
  • NOT NULL
    • 명시적으로 NULL 입력을 방지함.




📍 테이블 생성의 주의사항 ?

  • 테이블명은 객체를 의미할 수 있는 적절한 이름을 사용.
  • 가능한 단수형을 권고함.
  • 테이블 명은 다른 테이블의 이름과 중복 되면 안 됨.
  • 한 테이블 내에서는 칼럼명이 중복되게 들어갈 수 없음.
  • 테이블 이름을 지정하고, 각 칼럼들은 괄호() 로 묶어서 지정함.
  • 각 칼럼들은 "콤마" 로 구분됨. 테이블 생성문의 끝은 항상 "세미콜론"
  • 데이터 표준화의 관점에서 칼럼에 대해서는 다른 테이블까지 고려하여 데이터베이스 내에서는 일관성 있게 사용하는 것이 좋다.
  • 칼럼 뒤에 데이터 유형은 꼭 지정되어야 함.
  • 테이블명과 칼럼명은 반드시 문자로 시작. 벤더별로 길이에 대한 한계가 있음.
  • 벤더에서 사전에 정의한 예약어는 쓸 수 없음.
  • A-Z, a-z, 0-9, _, $, # 문자만 허용.



📍 참조무결성 Delete 및 Modify, Insert 의 Action ?





📍 테이블 이름 바꾸는 SQL문 ?

  • Rename 기존테이블명 To 새로운테이블명;





📍 Insert 문 ?

  • insert into 테이블명 values('현아', '27', '여자', '신입사원');
  • insert into 테이블명(이름, 나이, 성별) values('현아', '27', '여자');


📍 Update 문 ?

  • update 테이블명 set 나이 = '26';









📍 ?

  • ㅇㅇ
728x90