티스토리 뷰
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 '패스워드';
'데이터베이스' 카테고리의 다른 글
데이터베이스 : MySQL 기본 명령어 정리 (0) | 2015.07.01 |
---|---|
데이터베이스 : MySQL 자료형의 종류 (0) | 2015.06.28 |
데이터 정규화 (0) | 2015.05.09 |
관계형 데이터베이스의 기본 개념 (0) | 2015.05.09 |
- Total
- Today
- Yesterday
- 안드로이드
- 스레드
- 클래스
- 데이터베이스
- 디렉터리
- 티그널
- 자료구조
- socket
- 리눅스
- Sort
- MFC
- 티라노 시그널
- 쓰레드
- 클라이언트
- 소켓
- 유즈케이스
- 터미널
- 액터
- 파일
- UML
- 파이썬예제
- 정렬
- 라즈베리파이
- 소켓 프로그래밍
- C/C++
- C
- 파이썬
- C++
- 프로세스
- 악보
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |