[DB]

@욕심쟁이

·

2020. 7. 17. 12:08

반응형

SQL 분류

SELECT 선택 테이블에 데이터를 검색,
삽입, 수정, 삭제를 하는것
데이터 조작어
Data mainpulationlanguage
(DML)
INSERT 입력
UPDATE 업데이트(수정)
DELETE 삭제
CREATE 생성 테이블이나 관계의 구조를
생성하는데 사용
데이터 정의어
Data definition language
(DDL)
ALTER 테이블을 수정
DROP 폴더자체 삭제
COMMIT 연결   Transaction control
ROLLBACK 되돌리기
SAVEPOINT 저장
GRANT 접속권한, 오브젝트생성권한, DBA권한 데이터의 사용권한을 관리 데이터 제어어
Data control language
(DCL)
REVOKE 부여한권한을 다시 회수

Primary Key(PK)

- 기본키

- 테이블의 각 행(row)을 고유하게 식별하는 열(column) 또는 열 집합

- 유일한 값

 

Foreign Key(FK)

- 왜래키

- 다른테이블의 기본키를 참조하는 열

 

테이블의 구성

- 테이블은 행(로우)과 열(컬럼)의 구조로 이루어짐

- 행(로우)은 하나의 데이터(학번,이름,나이 데이터값), 열(컬럼) 한 속성의 모든 데이터값(학생 - 이름 데이터들)

- 하나의 컬럼은 테이블의 데이터가 가진 한가지 속성

- 테이블 특성상 같은 컬럼이라면 동일 데이터 타입(문자열, 숫자, 날짜,...)과 크기인 데이터만 입력가능

키워드(예약어) : 특정 기능이 할당된 단어

SELECT절 + FROM절 → SELECT 문법 

- SELECT절 : 테이블에서 조회를 원하는 컬럼/표현식(expression)의 목록을 작성하는 절

- FROM절 : 어떤 테이블에서 데이터를 가지고 올지 정하는 절

- DISTINCT : 중복을 제거하는 절

- WHERE

    · 내가원하는 데이터조건들만 출력(조건식(컬럼명 + 연산자 + 조건))

    · 조건이 걸릴 컬럼의 데이터 타입과 조건의 데이터 타입이 일치

    · 날짜 값을 가지는 컬럼에는 조건으로 날짜값을 반환하는 함수나 'DD-MON-YY'와 같이 날짜 형식의 문자열로 연산이 가능하다

- GROUP BY :  데이터들을 원하는 그룹으로 나눔

- HAVING : GROUP BY절과 함께 사용 ,집계함수를 가지고 조건비교를 할 때 사용(집계함수 사용X)

- ORDER BY : 내림차순 오름차순 할때 사용하는 문법

- ASC : 오름차순 (1, 2, 3, 4, 5......)   => 아무기준없이 order by 컬럼명 하면 오름차순 적용

- DESC : 내림차순(5, 4, 3, 2, 1)

 

SELECT *(속성이름, *은 모든열을 검색)|DISTINCT(중복제거) column|expression [alias],...
        FROM 테이블명
        WHERE 조건(conditions)
        GROUP BY 속성이름
        HAVING 검색조건
        ORDER BY 속성이름(colum, expr, alias)
        ASC(오름차순)|DESC(내림차순)
select last_name, job_id, salary
   	   from employees order by 3;
//3번째 열 기준으로 오름차순 정렬 (salary기준)

Null

- 테이블에 데이터를 입력할 때 컬럼에 아무런 값을 입력하지 않은 경우 들어가게되는 값.

- 표현식에 NULL값이 포함된 경우 표현식의 연산과는 상관없이 표현식의 값이 NULL값 출력.

Column Alias(AS)

- Query(질의문)을 통해서 테이블의 데이터를 조회 시 테이블의 컬럼이 가지고 있는 원래 컬럼명이 아닌 다른 이름으로 컬럼명을 출력하고 싶을 때 사용하는 문법(영구X => 출력시에만!)

ex) select last_name as name from emp; ==> last_name은 name이라는 예명으로 출력

ex) select last_name as name, address as add from emp;

ex) select last_name as name from emp; ==> last_name은 name이라는 예명으로 출력

ex) select last_name as name, address as add from emp; 

참고!! 쿼리구문에 대소문자 구분, 특수문자, 공백 을 넣고싶을때 ""(큰따옴표)로 표현

문법 기호 

- *(asterisk) : 모든 컬럼을 출력(표현식에 사용 된 경우는 곱셈으로 계산)

- [](bracket) : 생략가능한 옵션

- ()(brace) : 구문범위 지정

- |(vertical bar) : || - 연결연산자, 컬럼(표현식)을 하나의 컬럼으로 결합해주는 문법

                      | - OR / 또는 A|B => A 또는 B / A or B

&(ampertsand) : 그리고 / AND A&B => A 그리고 B / A and B 

ex) select last_name||address as nameadd from emp;=> last_name||address결합

리터럴 문자

- 데이터 그자체

- 변하지 않는 데이터(문자, 숫자, 날짜)

- 문자나 날짜 리터럴은 ''(작은 따옴표)로 묶어서 작성

   ex) select last_name||' is a '||address as nameadd from emp;=> last_name is a address로 결합

ex)  select last_name||' is a '||address as nameadd from emp;=> last_name is a address로 결합

IS NULL

- 컬럼값이 없는것을 검색함

select last_name, manager_id from employees where manager_id is null;
// manager_id(컬럼명)가 null(빈값)인것만 검색하여 출력

 

컬럼넓이 조정(문자열)

- col 줄일컬럼명 format 길이

- 숫자 컬럼에 적용한 경우 출력 결과가 깨짐. 그런 경우 sqlplus를 끄고 다시 켜면 설정값이 풀림.

//salary컬럼의 길이를 20자로 제한
col salary format a20
exit

 

반응형

'IT > DB' 카테고리의 다른 글

[DB] MYSQL 데이터베이스 설정  (0) 2020.08.18
[DB] MYSQL 한글설정  (0) 2020.08.18
[DB] GROUP BY절 과 HAVING절  (0) 2020.08.10
[DB] SQL함수  (0) 2020.07.31
[DB] 연산자 종류  (0) 2020.07.31