본문 바로가기
Back-end

SQL문법 (3)

by 신재권 2021. 7. 25.
다중열 서브쿼리 비교할 열이 여러개 인 쿼리
FROM절에 사용하는 서브쿼리 인라인뷰로 FROM절에서 서브쿼리로 추출한 데이터에 별칭을 주어 사용할 수 있다.
WITH
별칭 AS (서브쿼리)..
별칭 AS (서브쿼리)
SELECT ...
FROM ...
WHERE ...;

FROM절에 명시한 서브쿼리에 별칭을 아래 SELECT , FROM, WHERE에서 사용할 수 있다.
SELECT 절에 사용하는 서브쿼리; 스칼라 서브쿼리라고 부르고, 하나의 열 영역으로 결과를 출력할 수 있다. 반드시 하나의 결과만 반환되도록 작성해 주어야 한다.
CREATE TABLE 테이블이름
[AS SELECT * FROM 복사할테이블];
테이블을 생성하는 쿼리, [복사할 때 사용]
DROP TABLE 테이블이름; 테이블 삭제
INSERT INTO 테이블 이름(1,2,...)
VALUES(1에 들어갈 데이터, 2에 들어갈 데이터, ...);
데이터 삽입하는 INSERT구문이다.
반드시 열과 자료형을 맞춰야한다.
열 지정을 생략도 가능하지만 ,
열을 지정해서 데이터를 삽입하는 것을 권장
또한 NULL필요시 NULL작성 or ‘’ 작성
NULL 작성 권장
또한 날짜데이터 입력시 TO_DATE를 사용하여 반드시 날짜 자료형에 맞춰 데이터를 삽입한다. (SYSDATE = 오늘날짜)
INSERT INTO 테이블(1...)
SELECT 1...
FROM 테이블
WHERE 조건;
서브쿼리를 사용해서 여러 데이터를 한번에 추가할 수 있다.
INSERT문에서 서브쿼리를 사용할 때는 VALUES절은 사용하지 않고, 추가되는 테이블의 열 개수와 서브쿼리의 열 개수가 반드시 일치해야 하고, 자료형도 일치해야 한다.
INSERT ALL
INTO 테이블(1..)
...
SELECT *FROM DUAL;
여러개 데이터를 삽입할 수 있다.
UPDATE 변경할 테이블
SET 변경할 열=데이터,
변경할 열 = 데이터
WHERE [조건](생략할 경우 지정된 모든 열에 데이터가 변경);
UPDATE구문이다.
UPDATE 테이블
SET(1, 2..) = (SELECT 1, 2 FROM 테이블 WHERE 조건)
WHERE 조건;
UPDATE문도 서브쿼리를 사용하여 데이터를 일부만 수정이 가능하다.
UPDATE 테이블
SET = (SELECT ...FROM...WHERE),
SET = (SELECT..FROM...WHERE)
열을 하나하나 수정할 경우 이렇게 사용한다.
UPDATE 테이블
SET = 변경할열의 내용
WHERE = (SELECT ...FROM..WHERE)
WHERE절에도 서브쿼리를 사용해 데이터를 변경할 수 있다.
DELETE FROM 테이블이름
WHERE 조건(생략할 경우 지정된 모든 열에 데이터가 삭제);
DELETE 구문이다.
DELTETE FROM 데이블
WHERE IN (SELECT..FROM..WHERE);
WHERE절에 서브쿼리를 넣어 일부 데이터만 삭제가 가능하다.
ROLLBACK; 트랜잭션 취소, 이전상태로 돌아감
COMMIT 트랜잭션을 저장
DDL(Data Dfinition Language) 데이터 베이스를 보관하고 관리하기 위해 제공되는 여러 객체(테이블)의 생성/변경/삭제 관련 기능
테이터 정의어를 사용하면 트랜잭션은 자동으로 저장된다.
DML(Data manipulation language) 데이터의 생성/삭제/변경 기능언어
CREATE TABLE 소유계정.테이블이름(
1 이름 열1 자료형,
...
);
새로운 테이블을 생성한다.
CREATE TABLE 테이블이름
AS SELECT * FROM 기존테이블;
기존 테이블을 복사해 새로운 테이블을 만든다.
CREATE TABLE 테이블이름
AS SELECT* FROM 기존테이블 WHERE 조건;
조건에 맞는 자료들만 새로운 테이블에 넣어 만든다.
CREATE TABLE 테이블이름
AS SELECT 1, 2...
FROM 기존테이블
WHERE 1<>1;
기존 테이블의 열 구조만 복사해 새 테이블을 생성한다.
ALTER TABLE 테이블이름
ADD 열 열자료형;
테이블에 새로운 열을 추가한다.
ALTER TABLE 테이블 이름
RENAME COLUMN 기존열 TO 새로운 열;
기존열을 새로운 열의 이름으로 변경한다.
ALTER TABLE 테이블이름
MODIFY 열 새로운열자료형;
기존 열의 자료형을 교체한다.

ALTER TABLE 테이블이름
DROP COLUMN ;
열을 삭제한다.
RENAME 기존테이블 TO 새로운테이블이름; 새로운 테이블이름으로 변경한다.
TRUNCATE TABLE 테이블이름; 테이블의 데이터를 모두 삭제한다.
DELETEWHERE조건없이 하는 것과 기능이 같지만, DDL은 자동으로 트랜잭션이 저장된다.
DROP TABLE 테이블이름; 테이블을 삭제한다.

'Back-end' 카테고리의 다른 글

웹 프로그래밍  (0) 2021.08.07
SQL 문법 (4)  (0) 2021.08.01
Springboot 동작원리  (0) 2021.07.19
JPA 개념  (0) 2021.07.18
Spring 개념  (0) 2021.07.18