본문 바로가기
개발 공부/SQL, DB

SQL 기본 정리

by momo'sdad 2023. 11. 23.

SQL 기본 정리

 

SQL 이란

- SQL 은 Structured Query Language의 약자로 데이터베이스에서 데이터를 조회, 입력, 수정, 삭제 저장 하는데 사용되는 질의 언어 입니다.

- SQL은 관계형 데이터베이스에 대해서 데이터의 구조를 정의, 데이터 조작, 데이터 제어 등을 할 수 있는 절차형 언어

- SQL은 ANSI/ISO 표준을 준수하기 때문에 데이터베이스 관리 시스템이 변경되어도 그대로 사용할 수 있다.

- SQL 은 역할에 따라 DML, DDL, DCL, TCL 로 나뉩니다.

 

DDL (Data Definition Language) : 데이터 정의 언어, 테이블 구조 관련

- 관계형 데이터베이스 테이블을 생성, 변경, 삭제하는 것으로 데이터를 저장할 구조를 정의하는 언어

- create, alter, drop, rename

 

CREATE ( 데이터 베이스 객체 생성 )

SQL> CREATE TABLE 테이블명 ;

SQL> CREATE INDEX 인덱스명 ;

 

ALTER ( 기존의 생성된 객체를 변경 )

SQL> ALTER TABLE 테이블명

ADD PARTITION ……;

 

DROP ( 데이터 베이스 객체 삭제 )

SQL> DROP TABLE 테이블명 ;

SQL> DROP INDEX 인덱스명 ;

 

RENAME (객체 이름 변경)

SQL > RENAME 테이블명 TO 바꿀테이블명;

DML (Data Manipulation Language) : 데이터 조작 언어, 테이블 행(데이터)에 관련

- 데이터 구조가 DDL로 정의되면 테이블에 데이터를 입력, 수정, 삭제, 조회한다.

- insert, update, delete, select

 

INSERT ( 신규데이터 입력 )

SQL> INSERT INTO 테이블 ( Column1, Column2 ) VALUES ( Column1 값, Column2 값 );

 

UPDATE ( 기존 데이터 수정 )

SQL> UPDATE 테이블 SET 변경 Column1 = 값 WHERE 조건절 ;

 

DELETE ( 데이터 삭제 )

SQL> DELETE FROM 테이블 WHERE 조건 ;

 

SELECT ( 데이터 조회 )

- SELECT 문은 테이블에 저장된 데이터를 조회하는데 사용되는 SQL 입니다.

- SELECT 문의 기본 패턴은 다음과 같습니다

- SQL> SELECT 컬럼1 FROM 테이블 WHERE 조건 ;

 

DCL (Data Control Language) : 데이터 제어 언어

- 데이터베이스 사용자에게 권한을 부여하거나 회수

- grant, revoke

 

GRANT (객체에 권한 부여 )

SQL> GRANT privilege

ON object

TO {user | role | PUBLIC }

[WITH GRANT OPTION] ;

REVOKE (객체에 부여된 권한 삭제 )

SQL> REVOKE {privilege | ALL}

ON object

FROM {user | role | PUBLIC}

[CASCADE CONSTRAINTS]

 

TCL (Transaction Control Language) : DML문의 변경을 관리함.

- 트랜잭션을 제어하는 명령어

- commit, rollback

- 트랜잭션 : 데이터베이스의 작업을 처리하는 단위

 

COMMIT

데이터 변경 작업을 한뒤 COMMIT을 실행해야만 변경된 데이터들이 데이터 파일에 반영이 됩니다.

SQL> COMMIT ;

 

ROLLBACK

COMMIT과 반대 개념으로 변경된 데이터들을 변경 전 상태로 되돌립니다.

SQL> ROLLBACK ;

도스창으로 쿼리문 연습(hr 계정 접속)

DDL 데이터 정의 언어

CREATE로 테이블 생성해보기

- CREATE TABLE member( ~~ );

 

CREATE TABLE member(

id NUMBER NOT NULL Primary Key,

username VARCHAR(20),

dept VARCHAR(7),

birth DATE,

email VARCHAR(40),

tel VARCHAR(30) NOT NULL

);

 

- 출력

ALTER로 속성 추가해보기

- ALTER TABLE member add (tel varchar2(30) NOT NULL);

 

 

속성 타입 변경해보기

- ALTER TABLE member modify (username varchar2(10));

 

 

속성 삭제해 보기

- ALTER TABLE member DROP (tel);

 

 

테이블 삭제해 보기

- TABLE DROP 테이블명

테이블 이름 변경해보기

- RENAME 테이블명 TO 바꿀테이블명;

 

 

속성 이름 변경해보기

- ALTER TABLE member RENAME COLUMN username to name;

 

DML 데이터 조작 언어

INSERT로 데이터 삽입해보기

INSERT INTO member VALUES(202103,'홍길동','SL','00.01.01','m@m.com','000-0000-0000'); INSERT INTO member VALUES(202104,'장길산','SL','00.01.01','m@m.com','000-0000-0000'); INSERT INTO member(id,dept,username,birth,email,tel) VALUES(202101,'SL','너무해','01.02.02','2@3.com','010');

- 테이블 속성에 들어갈 VALUES 값들의 순서랑 일치해야함.

 

성공일시

 

그리고 COMMIT; 을 해준다 (무조건 해줘야함!!!)

SELECT로 데이터 조회해보기

- SELECT * FROM member;

 

 

SELECT 조건절을 이용하여 조회해보기

- select * from member WHERE id = '202101';

 

 

- SELECT id, username, birth FROM member WHERE id = 202101 AND DEPT = 'SL';

 

SQL Developer로 확인해보기

- 데이터 삽입 확인하기

 

SQL Developer 워크시트 작성해보기

- select * from member;

 

UPDATE로 데이터 수정해보기

- UPDATE member set username = 'aaa' where id = '202104';

- UPDATE member set username = 'jjj' where id = '202103';

- UPDATE member set username = 'ppp' where id = '202101';

- commit;

 

 

 

DELETE로 데이터 삭제해보기

- DELETE FROM member WHERE id = '202101' AND username = 'ppp';

반응형