티스토리 뷰

데이터베이스

SQL의 기초

Andrew Shin 2015. 5. 9. 02:46

1. SQL 기초

관계형 데이터베이스를 생성하고, 테이블을 만들고, 데이터를 입력 및 삭제하거나 수정할 때 사용하는 언어를 SQL(structured query language)이라고 한다. SQL을 알아야 관계형 데이터베이스를 사용할 수 있는데 여기서는 SQL의 기초적인 내용만 다룬다.

데이터베이스 관련 SQL

먼저 데이터베이스의 생성, 삭제, 조회, 사용과 관련된 SQL을 살펴보자. SQL의 각 문장은 C언어처럼 세미콜론(;)으로 끝나야한다. SQL은 특별히 지정하지 않으면 기본적으로 대문자, 소문자를 구별하지 않는다.

1) 데이터베이스 보기 : 기존에 있는 데이터베이스의 목록을 출력한다.

show databases;

2) 데이터베이스 생성 : 새로운 데이터베이스를 생성한다.

create database 데이터베이스 이름;

3) 데이터베이스 삭제 : 지정한 데이터베이스를 삭제한다.

drop database 데이터베이스 이름;

4) 사용할 데이터베이스 지정 : 여러 데이터베이스 중에서 작업할 데이터베이스를 선택한다.

use 데이터베이스 이름;


테이블 관련 SQL

1) 테이블 보기 : 현재 데이터베이스에 있는 테이블의 목록을 출력한다.

show tables;

2) 테이블 생성 : 새로운 테이블을 생성한다. 새로운 테이블을 생성하려면 사용할 수 있는 자료형을 알아야 한다. SQL에서 사용하는 기본 자료형은 다음과 같다.


 자료형 

 의미 

 예 

 varchar(n) 

 최대 n개의 크기를 가진 가변문자열 

 varchar(10) 

 char(n) 

 n개의 크기를 가진 고정문자열 

 char(5) 

 int 

 정수형 숫자 

 

 float  

 실수형 숫자 

 

 date 

 날짜 

 

 time 

 시간 

 


테이블을 생성할 때는 테이블의 구조를 정의해야 한다. 다음과 같이 테이블 이름 다음에 괄호를 넣고 필드명과 필드의 자료형을 지정한다.

create table st_info(st_id varchar(10), name varchar(10), major varchar(10), grade tinyint(10))

3) 테이블 구조 보기 : 지정한 테이블의 구조를 출력한다.

explain(혹은 desc) 테이블 이름;

4) 테이블 수정 : 테이블의 구조를 변경한다

alter table 테이블 이름 수정 명령;

⊙ 테이블에 필드 추가 : alter table 테이블 이름 add 필드명 자료형

 ex) alter table st_info add age int;

⊙ 필드의 자료형 변ㄱ여 : alter table 테이블 이름 modify 필드명 자료형

 ex) alter table st_info modify age float;

⊙ 필드 삭제 : alter table 테이블 이름 drop column 필드명

 ex) alter table st_info drop column age;

⊙ 기본 키 추가 : alter table 테이블 이름 add constraint 제약조건명 primary key (필드명)

 ex) alter table st_info add constraint pk_stinfo primary key (ST_ID);

 제약 조건명은 사용자가 정하면 된다. 처음 테이블을 생성하면서 기본 키를 지정할 때 다음과 같이 한다.

 ex) create table st_info (ST_ID int Not NULL primary key, NAME varchar(20), DEPT varchar(25));

5) 테이블 삭제 : 지정한 테이블을 삭제한다.

drop table 테이블 이름;


레코드 삽입, 삭제, 수정 관련 SQL

테이블에 데이터를 입력하거나 삭제할 때는 레코드 단위로 작업을 한다. 레코드를 삽입하거나 삭제 및 수정하려면 다음 SQL문을 사용해야 한다.

1) 레코드 삽입 : 테이블에 새로운 레코드를 추가한다.

insert into 테이블 이름 values (값 1, 값2...); 이렇게하면 레코드의 모든 필드값을 전부 입력해야 한다.

insert into 테이블 이름 (필드명1, 필드명2) values(값1,값2); 이렇게하면 넣고싶은 필드만 넣을 수 있다.

삽입하는 레코드는 테이블을 생성할 때 지정한 자료형에 맞는 데이터를 입력해야 한다.

2) 레코드 수정 : 기존 레코드를 수정한다.

update 테이블 이름 set 필드명 1= 수정할 값1, 필드명2 = 수정할값 2.. where 조건;

조건에 맞는 레코드를 찾아 지정한 필드의 값을 수정한다.

3) 레코드 삭제 : 테이블에서 해당 레코드를 삭제한다.

delete from 테이블 이름 where 조건;

ex) delete from st_info where ST_ID = 201403;


레코드 검색하기

테이블에 저장된 레코드를 검색할때는 다음과 같이 select 문을 사용한다.

select 필드명 1, 필드명 2, ... from 테이블 이름 where 조건;

ex1) select * from st_info; 콤마로 나열하지 않고 * 을 사용하면 모든 데이터를 출력한다.

ex2) select name from st_info where st_id=201401; id가 201401인 사람의 이름만 출력한다.

ex3) select linux, db from st_grade where st_id=201401; id가 201401인 사람의 linux와 db를 st_grade에서 가져와서 출력한다.


접근권한 부여하기

시스템 관리자가 데이터베이스를 만들고 일반 사용자들이 사용하도록 설정해야 할 때 다음과 같이 grant 문을 사용한다. 예를 들어 제로보드 같은 게시판을 설치하려면 데이터베이스가 필요하다. 이때 관리자가 데이터베이스를 만들고, 이 데이터베이스에 대한 모든 권한을 해당 사용자에게 부여하는 것이다.

grant all privileges on DB명. * to 사용자계정 @localhost identified by '패스워드';

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함