일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바 DP 예제
- SQLD
- SQLD 책
- 자바 문자열 예제
- 백준 1141 로직
- 백준 접두사 자바
- SQLD 정리
- SQLD 내용 정리
- 너비우선탐색
- BFS
- SQLD 요약
- 자바 이분 탐색 예제
- SQLD 내용
- 자바 예제
- 알고리즘
- SQLD SQL 활용
- 백준 부분합 로직
- 백준 2512 자바
- SQLD SQL 최적화 기본 원리
- 백준 예산 코드
- 백준 1141
- 백준 1141 접두사
- 백준 2293 자바
- 백준
- 오라클 예제
- SQL 기본 및 활용
- 백준 접두사 로직
- 백준 예산 자바
- 백준 2293 동전 1
- 백준 동전1 자바
- Today
- Total
혼자 공부하는 공간
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #3 본문
<목차>
<< DML (Data Manipulation Language) >>
* DDL VS DML
- DDL(CREATE, ALTER, DROP, RENAME) 명령어
: DB의 테이블에 직접 영향을 미치기 때문에 DDL 명령어를 실행하는 순간 해당 작업이 즉시 DB에 반영된다. (AUTO COMMIT)
- DML(INSERT, UPDATE, DELETE, SELECT) 명령어
: 조작하려는 테이블을 메모리 버퍼에 올려놓고 작업을 하기 때문에 DDL처럼 실행하는 순간 DB에 즉시 반영되는 것이 아니다. 따라서 버퍼에서 처리한 DML 명령어가 실제 테이블에 반영되기 위해서는 COMMIT 명령어를 입력하여 TRANSACTION을 종료해야 한다.
: DML 명령어 실행 후 COMMIT / ROLLBACK 작업을 하지 않은 상태에서 DDL 명령어를 실행시키면 이전의 DML 명령어도 AUTO COMMIT 된다.
---> SQL Server는 DML의 경우도 DB에 즉시 반영됨.
모든 데이터를 삭제할 때 DELETE 보다 TRUNCATE가 시스템 부하가 적은 이유가 조작하려는 테이블을 메모리 버퍼에 올리지 않고 바로 실행시키기 때문이다.
ROLLBACK, COMMIT, TRANSACTION에 대한 자세한 내용은 뒤에서 다룰 예정이다.
1. INSERT
* 테이블에 데이터를 입력하는 명령으로 두 가지 방법이 존재.
* 데이터 유형이 CHAR/VARCHAR2 등의 문자 유형일 경우 ' (Single Quotation ; 작은 따옴표) 로 값을 입력하고 숫자일 경우는 붙히지 않는다.
-
모든 칼럼을 입력하는 경우
* INSERT문에 칼럼의 리스트를 언급하지 않아도 됨.
* 테이블에 정의된 칼럼의 순서에 맞춰서 입력해야 함.
* 예시12INSERT INTO PLAYERVALUES ('2002010','이청용','K07','','BlueDragon','2002','MF','17',NULL, NULL,'1',180,69);cs -
특정 칼럼에 맵핑시켜 입력하는 경우(일부 칼럼만 입력 가능)
* 테이블에 정의된 칼럼의 순서에 맞출 필요는 없지만, INSERT문에 작성한 칼럼의 수/순서/타입과 데이터의 수/순서/타입은 일치해야 함.
* 정의하지 않은 칼럼에 대해서는 NULL 값이 입력됨. ---> NOT NULL 제약조건 있으면 에러 발생.
ex) Oracle에서는 '' 도 NULL처리, SQL Server에서는 ''는 ''로 처리한다.* 예시
12INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO)VALUES ('2002007', '박지성', 'K07', 'MF', 178, 73, 7);cs
2. UPDATE
테이블의 데이터를 수정할 때 사용하는 명령.
-
예시 - 일괄적으로 변경
12UPDATE PLAYERSET BACK_NO = 99;cs -
예시 - 특정 데이터만 변경(WHERE 절 포함)
123UPDATE PLAYERSET BACK_NO = 99WHERE PLAYER_ID = '2002010';
3. DELETE
* 테이블의 데이터를 삭제할 때 사용하는 명령.
---> DELETE 뒤 FROM은 생략이 가능함.
* WHERE 절을 생략하면 테이블의 모든 데이터가 삭제되니 WHERE절을 반드시 사용하자.
-
예시
12DELETE FROM PLAYERWHERE PLAYER_ID = '2002010';cs
4. SELECT
입력한 데이터를 조회할 때 사용하는 명령
-
기본 형식
* 예시12SELECT PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NOFROM PLAYER;cs -
ALL
* Default 옵션으로 별도로 표시하지 않음.
* 중복된 데이터도 모두 출력.
* 예시123SELECT ALL POSITIONFROM PLAYER;-- POSITION의 값의 갯수만큼 출력cs -
DISTINCT
* 중복된 데이터가 있는 경우 1건으로 처리해서 출력.
* 예시123SELECT DISTINCT POSITIONFROM PLAYER;-- POSITION의 값 중에서 중복된 값들은 제외하고 출력 (GK, DF, FW, MF)cs -
애스터리스크(*)
* 모든 칼럼 정보를 조회할 때 와일드 카드로 애스터리스크(*) 사용.
* 예시12SELECT * FROM PLAYER;-- PLAYER 테이블의 데이터의 모든 칼럼 정보 출력cs -
ALIAS
* 일종의 별명을 부여할 때 사용.
* 칼럼명 바로 뒤에 위치.
* 칼럼명과 별명 사이에 AS, as 키워드 사용할 수 있음. (선택적)
* 별명에 공백이나 특수문자 포함 OR 대소문자 구분이 필요한 경우 " (Double Quotation ; 큰 따옴표)를 사용해야 함.
* 예시123456-- AS 키워드는 선택적SELECT PLAYER_NAME AS 선수명, POSITION AS 위치, HEIGHT AS 키, WEIGHT AS 몸무게FROM PLAYER;SELECT PLAYER_NAME 선수명, POSITION 위치, HEIGHT 키, WEIGHT 몸무게FROM PLAYER;cs 123-- 공백/특수문자 포함 OR 대소문자 구분하기 위해서는 큰 따옴표SELECT PLAYER_NAME "선수 이름", POSITION "그라운드 포지션", HEIGHT "키", WEIGHT "몸무게"FROM PLAYER;cs
5. 산술 연산자와 합성 연산자
-
산술연산자
* NUMBER와 DATE 자료형에 대해 적용됨. ---> 수학의 사칙연산과 동일
* LABEL이 길어지므로 ALIAS를 부여하는 것이 좋다.
* 사칙연산에서의 우선순위와 동일한 우선순위를 가짐.* 예시
1234SELECT PLAYER_NAME 이름, ROUND(WEIGHT/((HEIGHT/100)*(HEIGHT/100)),2) "BMI 비만지수"FROM PLAYER;-- ROUND(x) : x를 반올림하는 함수-- ROUND(WEIGHT/((HEIGHT/100)*(HEIGHT/100)),2) 로 LABEL이 길기 때문에 "BMI 비만지수"로 ALIAS 처리cs -
합성 연산자
* 문자와 문자를 연결할 때 사용.
* Oracle - 두 개의 수직바(||)에 의해 연결, CONCAT(str1, str2) 함수로 연결
* SQL Server - 더하기(+)에 의해 연결, CONCAT(str1, str2) 함수로 연결
* 칼럼+칼럼 / 칼럼+문자로 자유롭게 연결이 가능
* 예시 - Oracle12345678910SELECT PLAYER_NAME || '선수,' || HEIGHT || 'cm,' || WEIGHT || 'kg' 체격정보FROM PLAYER;/*[출력]체격정보 (하나의 칼럼)AAA선수,170cm,70kgBBB선수,175cm,72kgCCC선수,172cm,69kg....*/cs * 예시 - SQL Server
1234567891011SELECT PLAYER_NAME +'선수, '+ HEIGHT +'cm, '+ WEIGHT +'kg' 체격정보FROM PLAYER;/*[출력]체격정보 (하나의 칼럼)AAA선수,170cm,70kgBBB선수,175cm,72kgCCC선수,172cm,69kg....*/cs
출처
질문은 댓글로 남겨주시면 되겠습니다. 감사합니다.
'자격증 > SQLD' 카테고리의 다른 글
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #6 (0) | 2020.08.21 |
---|---|
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #5 (0) | 2020.08.20 |
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #4 (0) | 2020.08.16 |
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #2 (0) | 2020.08.15 |
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #1 (0) | 2020.08.14 |