728x90
DELETE문 예제
--------------------------------------------------------------------------------COMMIT ROLLBACK
COMMIT;--사용자가 어떠한 행위(명령어)를 하고 최종결재(확인)를 하는 행위 (DB에 적용하는 행위)
ROLLBACK; --사용자가 어떠한 행위(명령어)를 한 것을 취소하는 행위(최종 commit 위치로 돌아간다)
--------------------------------------------------------------------------------DELETE 문
--삭제확인
SELECT * FROM 주문;
SELECT * FROM 제품;
SELECT * FROM 고객;
--예제1
--where 조건절을 통해 특정튜플(row)를 '찾아서' 삭제를 한다
DELETE FROM 주문
WHERE 주문번호 = 'O04';
--예제2
DELETE FROM 주문
WHERE 주문일자 <= '2022-04-11' AND 주문일자 >= '2022-03-02';
--예제3
DELETE FROM 주문
WHERE 주문고객 IN (
'apple'
);
--예제7-53
DELETE FROM 주문
WHERE 주문고객 IN (
SELECT 고객아이디
FROM 고객
WHERE 고객이름 = '정소화'
)
--delete, drop,truncate
DROP TABLE 주문; --DROP 명령어는 롤백 불가능
DELETE FROM 주문; --DELETE 명령어는 롤백 가능
TRUNCATE FROM 주문; --TRUNCATE:초기화 *롤백 불가능
TRUNCATE : 테이블의 데이터를 전부 삭제하고 사용하고 있던 공간을 반납
-해당 테이블의 데이터가 모두 삭제되지만 테이블 자체가 지워지는 것은 아님
-해당 테이블에 생성되어있던 인덱스도 함께 truncate됨
UPDATE문 예제
--------------------------------------------------------------------------------COMMIT ROLLBACK
COMMIT;
ROLLBACK;
--------------------------------------------------------------------------------UPDATE 문
--업데이트확인
SELECT * FROM 주문;
SELECT * FROM 고객;
SELECT * FROM 제품;
--테이블의 [특정튜플]의 [컬럼값을 찾아서 수정]하는 명령어
UPDATE [테이블이름] SET [컬럼]=[컬럼값] WHERE...
--예제7-49
--제품 테이블의 제품명 컬럼에 있는 모든 데이터는 통큰파이로 바꾼다.
--WHERE 조건을 찾아서 특정 튜플만 수정
UPDATE 제품 SET 제품명 = '쿵떡파이'
WHERE 제품번호 = 'p03';
--예제7-50
--순서 : SET뒤에 컬럼(3), = (2.대입연산자), 컬럼값(1.먼저연산)
--컴퓨터는 연산자 기준으로 우측 연산 뒤에 좌측 목표에 데이터 적용
UPDATE 제품 SET 단가 = 단가 *1.1;
SAVEPOINT 예제
----------------------------------------------------------------------SAVEPOINT예제
SELECT * FROM 제품;
--SAVEPOINT는 지금까지 했던 명령어 기록이 저장되는 명령(공간)
--SAVEPOINT 시점 전에 했던 다른 SAVEPOINT로 돌아갈수있다
SAVEPOINT 김준석;
DELETE FROM 제품 WHERE 제품번호 = 'p02';
SAVEPOINT p02삭제;
DELETE FROM 제품 WHERE 제품번호 = 'p03';
SAVEPOINT p03삭제;
--------------------------------------해당 savepoint시점으로 돌아간다
ROLLBACK TO 김준석;
ROLLBACK TO p02삭제;
ROLLBACK TO p03삭제;
시험문제
---------------------------------------------------------------------시험문제
-----------------------------------------CREATE TABLE .. AS SELECT
--특정 테이블을 검색해서 복사하여 테이블생성 [복사]
CREATE TABLE [복사될 테이블이름] AS SELECT [복사할 컬럼 이름] FROM [원본테이블]
CREATE TABLE 고객_백업
AS SELECT 고객아이디,고객이름 FROM 고객 WHERE 고객이름 = '정소화';
SELECT * FROM 고객_백업;
--------------------------------------------------------------------
-----------------------------------------------------------------INDEX
--특정컬럼의 조회속도를 높이기위해사용
--단, 공간적인(테이블), 절차적인부분(튜플 INSERT할때마다 INDEX값 저장하기때문에)비용발생
--CREATE INDEX [인덱스이름] [테이블이름]([컬럼이름]);
CREATE INDEX INDEX_NAME ON 고객(나이);
SELECT * FROM 고객 WHERE 나이 > 24;
-----------------------------------------------------------------------
-----------------------user_tab_columns : 컬럼 정보조회
SELECT * FROM cols;
SELECT * FROM COLS
WHERE TABLE_NAME = '고객' AND COLUMN_NAME = '나이';
-----------------------------------------------------
----------------------만들었던 테이블기록 확인방법
SELECT * FROM TABS;
SELECT *FROM TABS
WHERE TABLE_NAME = '고객';
-------------------------------------------
----------------------------------------------------INNER JOIN
SELECT * FROM basket_a BA -- a테이블
INNER JOIN basket_b BB -- b테이블
ON BA.FRUIT = BB.FRUIT ; --공통된 컬럼값을 조회해서 해당되는 튜플을 출력
SELECT * FROM basket_a;
SELECT * FROM basket_b;
---------------------------------------------------------------
---------------------CREATE : 테이블을 생성하는 쿼리
CREATE TABLE 테이블이름 (
테이블컬럼 VARCHAR(10) --컬럼이름 / 컬럼속성(범위)
);
------------------------------------------------
728x90
'STUDY > DB SQL' 카테고리의 다른 글
[Oracle] SQL Developer 다운로드 와 SQL 워크시트 만들기 (0) | 2023.01.27 |
---|---|
[Oracle] Oracle DB, SQL Developer 설치 후 테이블 만들기 (0) | 2022.09.15 |
[SQL] UPDATE,DELETE와 트랜잭션 설명 (0) | 2022.07.27 |
[SQL] SQL에서 JOIN 예제 (0) | 2022.07.26 |
[SQL] SQL의 JOIN에 대해 알아보자 (0) | 2022.07.26 |