[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 |