습관처럼
SQL 기본 및 활용 - 제 3절 DML 본문
DML이란?
자료들을 입력, 수정, 삭제, 조회하는 명령어
<종류>
INSERT, UPDATE, DELETE, SELECT
1. INSERT
INSERT문 기본 형태
▶ INSERT INTO 테이블명 (컬럼 리스트) VALUES (컬럼 리스트에 넣을 값);
▶ INSERT INTO 테이블명 VALUES (전체 칼럼에 넣을 값);
- 해당 칼럼과 입력값을 1:1 매핑하여 입력한다.
- 칼럼의 데이터가 문자 유형일 경우 '(single quotation)로 입력할 값 을 입력한다. 숫자일 경우 붙이지 않는다.
INSERT문 예제 1 (정의된 칼럼에 데이터 입력하기)
INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO)
VALUES ('2002007', '박지성', 'K07', 'MF', 178, 73, 7);
1개의 행이 만들어졌다.
INSERT문 예제 2 (칼럼 순서대로 입력하기)
INSERT INTO PLAYER
VALUES ('2002010','이청용','K07','','BlueDragon','2002','MF','17',NULL, NULL,'1',180,69);
1개의 행이 만들어졌다.
2. UPDATE
UPDATE문 기본 형태
UPDATE 테이블명 SET
칼럼명 = 값;
UPDATE문 예제 1 (선수 테이블의 백넘버를 일괄적으로 99로 수정)
UPDATE PLAYER
SET BACK_NO = 99;
480개의 행이 수정되었다.
3. DELETE
DELETE문 기본 형태
DELETE FROM 테이블명;
DELETE문 예제 (선수 테이블 삭제하기)
DELETE FROM PLAYER;
480개의 행이 삭제되었다.
4. SELECT
SELECT 기본 형태
SELECT ALL/DISTINCT 칼럼, 칼럼, ...
FROM 테이블명;
- ALL : Default 옵션이므로 별도로 표시하지 않아도 된다. 중복된 데이터가 있어도 모두 출력한다.
- DISTINCT : 중복된 데이터가 있는 경우 1건으로 처리해서 출력한다.
SELECT문 예제 (선수들 정보 조회하기)
SELECT PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO
FROM PLAYER;
<실행결과>
PLAYER_ID PLAYER_NAME TEAM_ID POSITION BACK_NO HEIGHT WEIGHT
-------- ---------- ------ ------ ------- ----- ------
2007155 정경량 K05 MF 19 173 65
2010025 정은익 K05 MF 35 176 63
2012001 레오마르 K05 MF 5 183 77
: : : : : : :
480개의 행이 선택되었다.
DISTINCT 옵션 (선수 테이블의 포지션 정보늘 ALL과 DISTINCT 옵션으로 확인하기)
<ALL 예제>
SELECT ALL POSITION <--- (ALL 생략가능)
FROM PLAYER;
POSITION
------
MF
MF
MF
...
SELECT POSITION FROM PLAYER;
480개의 행이 선택되었다.
<DISTINCT 예제>
SELECT DISTINCT POSITION
FROM PLAYER;
POSITION
--------
GK
DF
FW
MF
5개의 행이 선택되었다.
WILDCARD(*) 사용하기
모든 칼럼 정보를 조회할 경우 사용
<예>
SELECT *
FROM 테이블명;
ALIAS 부여하기
- 조회된 결과에 별명(ALIAS, ALIASES)을 부여하여 칼럼 레이블을 변경할 수 있다.
- 칼럼명 바로 뒤에 온다.
- 칼럼명과 ALIAS 사이에 AS, as 키워드를 사용할 수 있다.
- 이중 인용부호(Double quotation)는 ALIAS가 공백, 특수문자를 포함할 경우와 대소문자 구분이
필요할 경우 사용된다.
ALIAS 예제
<SQL 예>
SELECT PLAYER_NAME AS 선수명, POSITION AS 위치, HEIGHT AS 키, WEIGHT AS 몸무게
FROM PLAYER;
칼럼 별명에서 AS를 꼭 사용하지 않아도 되므로, 아래 SQL은 위 SQL과 같은 결과를 출력한다.
SELECT PLAYER_NAME 선수명, POSITION 위치, HEIGHT 키, WEIGHT 몸무게
FROM PLAYER;
<SQL 결과>
선수명 위치 키 몸무게
----- --- -- ----
정경량 MF 173 65
정은익 MF 176 63
레오마르 MF 183 77
: : : :
480개의 행이 선택되었다.
5. 산술 연산자와 합성 연산자
산술 연산자란?
산술 연산자는 NUMBER와 DATE 자료형에 적용
수학에서의 4칙 연산과 동일
산술 연산자는 수학에서와 같이 (), *, /, +, - 의 우선순위를 가진다.
산술 연산자 활용 예 1
SELECT PLAYER_NAME 이름, HEIGHT - WEIGHT "키-몸무게"
FROM PLAYER;
이름 키-몸무게
--- -------
정경량 108.00
정은익 113.00
… …
480개의 행이 선택되었다.
산술 연산자 활용 예 2
SELECT PLAYER_NAME 이름, ROUND(WEIGHT/((HEIGHT/100)*(HEIGHT/100)),2) "BMI 비만지수"
FROM PLAYER;
이름 BMI 비만지수
정경량 21.72
정은익 20.34
… …
480개의 행이 선택되었다.
합성(CONCATENATION) 연산자 특징
문자와 문자를 연결하는 경우 2개의 수빅 바(||)에 의해 이뤄진다 (Oracle)
문자와 문자를 연결하는 경우 + 표시에 의해 이뤄진다. (SQL Server)
두 벤더 모두 공통적으로 CONCAT (string1, string2)함수를 사용할 수 있다.
칼럼과 문자 또는 다름 칼럼과 연결시킨다.
문자 표현식의 결과에 의해 새로운 칼럼을 생성한다.
합성 연산자 예
SELECT PLAYER_NAME|| '선수,'||HEIGHT|| 'cm,'||WEIGHT|| 'kg' 체격정보
FROM PLAYER;
선수명 선수, 키 cm, 몸무게 kg
박지성 선수, 176 cm, 70 kg
SELECT PLAYER_NAME +'선수, '+HEIGHT +'cm, '+WEIGHT +'kg'체격정보
FROM PLAYER;
정경량선수,173cm,65kg
정은익선수,176cm,63kg
…
480개의 행이 선택되었다.
연습문제
[SQL 삽입문 관련문제]
CREATE TABLE TBL(
ID NUMBER PRIMARY KEY,
AMT NUMBER NOT NULL,
DEGREE VARCHAR2(1));
아래는 불가능 하다. (not null을 이행하지 못했다.)
INSERT INTO TBL(ID,DEGREE)VALUES(4,'X');
아래 두개는 가능하다.(Not null, primary, insert into 문법 모두 만족)
INSERT INTO TBL(ID,AMT) VALUES(3,300);
INSERT INTO TBL VALUES(5,500,NULL);
출처 : http://bysql.net/
'Certification > Sqld' 카테고리의 다른 글
SQL 기본 및 활용 - 제 5절 WHERE 절 (0) | 2020.02.08 |
---|---|
SQL 기본 및 활용 - 제 4절 TCL (0) | 2020.02.08 |
SQL 기본 및 활용 - 제 2절 DDL (1) | 2020.02.08 |
SQL 기본 및 활용 - 제 1절 관계형 데이터베이스의 개요 (0) | 2020.02.08 |
데이터 모델과 성능 - 제5절 데이터베이스 구조와 성능 (0) | 2020.02.04 |