SQL(Structured Query Language)

기록하는 용도·2022년 9월 1일
0

SQL(Structured Query Language)

데이터베이스를 정의, 조작, 제어하는 언어

  1. DDL(Data Definition Language : 데이터 정의어) - CREATE, DROP, ALTER

  2. DML(Data Manipulation Language : 데이터 조작어) - INSERT, SELECT, UPDATE, DELETE
    (CRUD : Create, Read, Update, Delete)

  3. DCL(Data Control Language : 데이터 제어어) - GRANT 권한부여, REVOKE 권한취소

  4. TCL (Transaction Control Language : 트랜잭션 제어어) - COMMIT 실제 DB에 반영, ROLLBACK 작업취소 원상태로 돌림



1. DDL(Data Definition Language : 데이터 정의어)

DDL에는 CREATE, ALTER, DROP이있다.

DDL - CREATE

CREATE TABLE member( 
		--컬럼명, 데이터타입, 제약조건순
		id VARCHAR2(100) PRIMARY KEY,--오라클에 DB타입이 다른데, 데이터 타입을 말한다.
		password VARCHAR2(100) NOT NULL,
		name VARCHAR2(100) NOT NULL,
		address VARCHAR2(100)
)
CREATE TABLE member

예제1. member라는 테이블을 생성하겠다는 뜻이다.

id VARCHAR2(100) PRIMARY KEY,
password VARCHAR2(100) NOT NULL,
name VARCHAR2(100) NOT NULL,
address VARCHAR2(100)

컬럼명, 데이터타입, 제약조건순으로 나열한다.
VARCHAR2라는 데이터타입에 id라는 컬럼명으로 컬럼을 만들겠다는것이다.
PRIMARY KEY로 제약조건이 주어졌고 주요키라는 조건이다.

password와 name의 제약조건으로 NOT NULL이 주어졌고 빈 값이면 안된다는 뜻이다.

DDL - DROP

DROP TABLE member;	

예제1. member라는 테이블을 삭제한다.


2. DML(Data Manipulation Language : 데이터 조작어)

DML - INSERT

INSERT INTO 테이블명() VALUES();

INSERT는 정보를 추가할 때 사용한다.

INSERT INTO member(id,password,name,address) VALUES('java','a','김씨','동쪽');

예제1. member라는 테이블안에 id에는 'java'를, password에는 'a'를, name에는 '김씨'를 address에는 '동쪽'이라는 정보로 넣겠다는 뜻이다.


INSERT INTO member(id,password,name,address) VALUES('java', 'b', '박씨','서쪽');	

예제2. 위 sql은 errer이다. id는 primary key로 선언했고 id에 'java'를 넣겠다는 것은 위 예제와 위배되기때문이다. primary키는 유일한 값을 가져야한다.



INSERT INTO member(id,name,address) VALUES('jsp', '이씨','종로');	

예제3. password는 NOT NULL이라는 제약조건을 갖고있다. 이 제약 조건을 지키지않고 정보를 입력하지않았기때문에 에러이다.



INSERT INTO member(id,password,name) VALUES('jsp', 'a', '손석구');	

예제4. 이 예제의 실행결과는 success이다. 테이블 선언시 필요한 정보들 중 password 정보를 주지않았지만 password는 어떤 제약 조건도 없기때문에 필수적으로 입력하지않아도 member 테이블에 정보가 더해진다.



DML - SELECT(Read)

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 = '검색어';

SELECT * FROM member;

SELECT는 정보를 조회할 때 사용한다.
member테이블의 모든정보(*)를 가져오겠다는 뜻이다.


SELECT id FROM member;
SELECT id,name FROM member;
SELECT id,name,address FROM member;

예제1. member테이블로부터 조회할 컬럼명을 입력해 조회할 수 있다.



SELECT name,address FROM member WHERE id ='java';

예제2. member테이블에서 id가 'java'인 name과 address 정보를 조회한다.



SELECT name,address FROM member WHERE id='java' AND password='a';

예제3. member테이블로부터 id가 'java'이고 password가 'a'인 name과 address 정보를 불러올 수 있다.
이 예제는 AND 연산자를 사용했다. 마찬가지로 OR 연산자도 같은 방법으로 사용할 수 있다.



SELECT id, name FROM member WHERE address IS null;

예제4. 조건만 달라진다. address가 null인 정보를 조회해오는 예제이다.
마찬가지로 null이 아닌 정보를 조회하고싶다면, IS NOT null;로 작성하면된다.

DML - UPDATE

UPDATE 테이블명 SET 바꿀 정보 WHERE 조건

UPDATE member SET password='b', name='이씨', address='종로' WHERE id='spring';

예제1. member테이블에서 id가 'spring'인 정보를, password를 'b'로 바꾸고 name을 '이씨'로 바꾸고 address를 '종로'로 바꾼다.
<바꿀 정보> 부분에 ,로 두개 이상을 작성할 수 있다.


DML - DELETE

DELETE FROM 테이블명 WHERE 조건

DELETE FROM member WHERE id='jsp';

예제1. member테이블에서 id가 'jsp'인 정보를 지운다.

0개의 댓글