CS/Data Base

[DB] SQL 기초 - 1 (SQL 정의 및 종류, 쿼리 예제)

hojak99 2017. 5. 19. 19:45

SQL (Structured Query Language) :

     - 관계형 데이터베이스에서 사용하는 표준 질의언어를 말한다.

     - 사용 방법이나 문법이 다른 언어(Java, C, C#, Java)보다 단순하다.

     - 모든 DBMS에서 사용 가능하다.

     - 인터프리터 언어

     - 대소문자 구별하지 않는다.

 

 

 

DML :

     - 데이터베이스의 테이블에 있는 내용을 직접 조작하는 기능

     - 테이블의 레코드를 CRUD (Create, Retrieve, Update, Delete)

 

SQL

내용

insert

데이터베이스 객체에 데이터를 입력

delete

데이터베이스 객체에 데이터를 삭제

update

데이터베이스 객체 안의 데이터 수정

select

데이터베이스 객체 안의 데이터 조회

 

 

 

DDL :

     - 데이터베이스의 스키마를 정의, 생성, 수정하는 기능

     - 테이블 생성, 컬럼 추가, 타입 변경, 각종 제약조건 지정, 수정

 

SQL

내용

create 

데이터베이스 객체를 생성

drop

데이터베이스 객체를 삭제

alter

기존에 존재하는 데이터베이스 객체를 다시 정의

 

 

 

 

 

 

 

DCL :

     - 데이베이스의 테이블에 접근 권한이나 CRUD 권한을 정의하는 기능

     - 특정 사용자에게 테이블의 조회권한 허가 / 금지

 

SQL

내용

grant

데이터베이스 객체에 권한을 부여

revoke

이미 부여된 데이터베이스 객체 권한을 취소

 

 

 

CRUD (Create, Retrieve, Update, Delete) :

이름

조작

SQL

create 

read (retrieve)

생성

읽기 (인출)

insert

select

update

갱신

update

delete (destroy)

삭제 

delete

 

     Create : 데이터베이스 객체 생성     

          - insert into

          - 새로운 레코드를 추가

 

     Update : 데이터베이스 객체 안의 데이터 수정

          - update     

          - 특정 조건의 레코드의 컬럼 값을 수정

 

Delete : 데이터베이스 객체의 데이터 삭제

     - delete     

     - 특정 조건의 레코드를 삭제

 

Retrieve : 데이터베이스 객체 안의 데이터 검색

     - select     

     - 조건을 만족하는 레코드를 찾아 특정 컬럼 (모두 표시 *) 표시

 

 

 

 

 

 

select 명령문 :

select 컬럼명 from 테이블명 where 조건절;

 

- "world" DB에서의 쿼리 예제

국가 코드가 'KOR' 으로 되어 있는 도시들의 이름을 구하시오

select Name from city where CountryCode='KOR';

 

인구가 500 이상인 도시들의 이름을 구하시오

select Name from city where Population > 5000000;

 

 

 

 

 

insert into 명령문

insert into 테이블명 (컬럼명) values ();

 

- 예제

# 각각의 필드와 대응 시켜줘서 insert 시켜주어야 한다.

insert into city (ID, Name, CountryCode, District, Population) values (10000, "Sample", "KOR", "Test", 1000000);

 

# 경우에는 모든 컬럼 값들이 일일히 필드와 대응되면 생략 가능

insert into city values (20000, "SampleTest", "KOR", "Test", 2000000);

 

- 결과 확인

# ID 100000 레코드 출력

select * from city where ID = 20000;

 

# ID 200000 레코드 출력

select * from city where ID = 10000;

 

 

 

 

 

 

 

 

 

 

update 명령문

update 테이블명 set 컬럼명=, ..... where 조건절;

 

- 예제

# ID 10000 레코드의 name "SampleRevised" 변경

update city set name = "SampleRevised" where id = 10000;

 

- 결과 확인

# ID 100000 레코드 출력

select * from city where ID = 10000;

 

 

 

 

 

 

delete 명령문 :

delete from 테이블명 where 조건절;

 

- 예제 

# ID 20000 이며 Population 2000000 레코드를 삭제

delete from city where (ID = 20000) AND (Population = 2000000);

 

# ID 10000 이며 Population 1000000 레코드를 삭제

delete from city where (ID = 10000) AND (Population = 1000000);

 

- 결과 확인

# ID 100000 레코드 출력

select * from city where ID = 10000;

 

# ID 200000 레코드 출력

select * from city where ID = 20000;

 

반응형