햄코딩
SQL DAY 4 본문
220513 DAY 20, DAY 21 정리중
■ TABLE
CREATE TABLE [테이블 이름]
(
속성들
);
■ DESC [테이블 이름];
- 테이블의구조를 보여주는 명령어
■ 게시판 글을 만들어 보자.
- 각 속성에 들어가는 데이터 타입을 정의해야 한다.
CREATE TABLE FREEBOARD
(
NO NUMBER(5)
, TITLE VARCHAR2(90)
, WRITER VARCHAR2(90)
, WDATE DATE
, WCNTS VARCHAR(3000)
);
cf. number(5) → 9999개 쓸 수 있음
cf. varchar2(90) : 90byte
cf. number(총 길이수, 소수점 길이수)
cf. char보다 varchar, varchar2가 경제적이므로 기본으로 사용. varchar는 길이검사를 하므로, 고정된 값을 사용한다면 char가 낫다. char(1) T/F
■ ALTER TABLE : 테이블 수정
ADD | 속성 추가 |
MODIFY | 속성 수정 |
RENAME COLUMN [변경 전 속성 이름] TO [변경 후 속성 이름] | 속성 이름 변경 |
DROP COLUMN | 속성 삭제 |
ALTER TABLE FREEBOARD ADD(CLICKCOUNT NUMBER(5,0)); -- 컬럼 추가
ALTER TABLE FRREBOARD RENAME COLUMN CLICKCOUNT TO VIEWCNT; -- 컬럼 이름 변경
ALTER TABLE FREEBOARD MODIFY TITLE VARCHAR2(150); -- 속성 수정
ALTER TABLE FREEBOARD DROP COLUMN VIEWCNT; -- 컬럼 삭제
■ TRUNCATE, DROP, DELETE★★★
TRUNCATE TABLE 테이블명; | 테이블의 내용만 모두 삭제 테이블 용량 초기화(되돌릴 수 없다.) |
DROP TABEL 테이블명; | 테이블 내용 및 테이블 구조 삭제 |
DELETE FROM 테이블명; | 테이블의 내용만 모두 삭제 테이블 용량은 감소하지 않음 ※WHERE절을 지정하지 않으면, 테이블 전체 삭제 |
TRUNCATE TABLE FREEBOARD;
DROP TABLE FREEBOARD;
※주의 : DELETE는 WHERE절을 지정하지 않으면, 테이블 전체가 삭제된다.
따라서 DELETE 전에 SELECT문으로 WHERE절을 검증한 후 삭제 하는 것이 안전하다.
SELECT * FROM FREEBOARD WHERE NO=1;
DELETE FROM FREEBOARD WHERE NO=1;
■ INSERT
- INSERT INTO table(column1, column2,...) VALUES (expression1, expression2,...);
- INSERT문은 테이블에 데이터를 입력하는 DML문.
- 테이블명, 컬럼명, 데이터 순으로 입력.
- 속성 전체를 입력하는 경우, 테이블 이름 다음에 소괄호 생략 가능
- 속성의 순서와 입력하는 값의 위치가 일치해야 한다.
----> 실행할 때마다 데이터가 입력된 행이 추가 된다.
INSERT INTO FREEBOARD(NO, TITLE, WRITER, WDATE)
VALUES(1, 'IMSI', '노씨', TO_DATE('20220512'));
----> 테이블 속성 개수만큼 입력할 때는, 테이블 명 옆에 속성들을 쓸 필요 없다.
INSERT INTO FREEBOARD
VALUES(1, 'IMSI', '노씨', TO_DATE('20220512'));
■ UPDATE
- 테이블 내의 데이터를 수정하는 명령어(SET, WHERE과 함께 사용)
- UPDATE EMP SET ENAME='홍길동' WHERE EMPTNO=20;
- ※ WHERE절을 지정하지 않으면, 수정 사항이 테이블 전체에 적용된다.
[예제1] WHERE 절을 사용하여, NULL 값이 있는 곳의 데이터를 바꿔보자.
---- 우선, 타겟 데이터를 체크한다.
SELECT * FROM FREEBOARD WHERE WDATE IS NULL;
UPDATE FREEBOARD SET WRITER = 'KANG' WHERE WDATE IS NULL;
[예제2]
■ TRANSACTION ★★★