오늘은 SQL 초보인 내가 SQL에 대해 설명하면서 나의 개념과 기초를 다지고,
데이터베이스를 다루는 기초적인 작업들을 실습하며 스스로 공부하는 시간을 가져볼 것이다.
.
.
.
먼저 sql의 이론은 이러하다.
SQL은 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어이다. SQL 문을 사용하여 데이터베이스에서 정보를 저장, 업데이트, 제거, 검색 및 검색할 수 있다.
.
sql은 일반적인 영어 키워드를 사용하기 때문에 배우기가 쉽다.
.
create table 테이블명 (
컬럼명 | 형태 | 길이 | NULL | 키 (pk, fk)
);
varchar() : 문자형
text() : 문자형(내용이 많을 때 사용)
int() : 정수형
double() : 실수형
date() : 날짜(YYYY-MM-DD)
not null : 빈 값일 수 없음
primary key(pk) : 테이블에서 각각의 레코드를 고유하게 식별할 수 있게 하는 열의 집합이다.
중복된 값과 null 값을 가질 수 없다.
foreign key(fk) : 두 개 이상의 테이블 간의 관계를 이어준다.
해당 열은 참조하는 테이블의 primary key와 같은 값을 가진다.
insert into 테이블명 values( ' ' , ' ' ); : 테이블안에 데이터 삽입하기.
.
select 컬럼명 from 테이블명;
- 전체 컬럼 조회시 컬럼명에 *로 대체한다. all과 같다.
select number as phone from 테이블명;
- 조회시 이름 변경
- number이라는 컬럼을 조회할 때 이름을 phone으로 조회하고 싶으면 as를 사용한다.
select distinct number from 테이블명;
- number의 컬럼안에서 중복되는 데이터를 제거하고 출력해준다.
.
select * from 테이블명 where name = '보리차'
- from 뒤에 where이 붙으면서 조건문의 형태가 된다.
- 컬럼명 name에서 보리차인 데이터만 출력하겠다는 의미다.
select * from 테이블명 where cost < 1300
- 이 조건문의 의미는 컬럼명 cost가 1300보다 적은 데이터만 출력하겠다는 뜻이다.
select * from 테이블명 where name = '보리차' and cost < 1300
- AND는 두 조건이 모두 충족해야 함을 표시한다.
- cost가 1300보다 적고 name이 보리차인 데이터만 나오는 것이다.
! 위와 비슷하게 AND 자리에 OR을 넣으면 두 조건 중 하나 또는 모두를 충족해야 한다.
! AND NOT을 넣으면 NOT뒤에 오는 조건을 충족하지 않아야 한다.
select * from 테이블명 order by 컬럼명 asc (혹은) desc
- ORDER BY는 선택한 행이 오름차순 또는 내림차순 배열 순서로 정렬된다.
- ASC는 오름차순, DESC는 내림차순이다.
GROUP BY는 COUNT(행의 개수), SUM(합계), AVG(평균), MAX(최댓값), MIN(최솟값) 등등
집계 함수를 사용하여 데이터를 추출할 때 사용한다.
기준 컬럼을 여러 개 지정할 수 있고, 중복제거를 할 때도 사용 가능하다.
select st_code ,
sum(s_price)
from 테이블명
group by st_code
- 점포 코드(st_code)별로 가격(s_price) 총합계를 출력한다는 뜻이다.
- 예를 들어 sum() 안에 가격 컬럼과 판매 수량 컬럼을 곱해주면(곱하기 *) 매출을 알 수 있다.
JOIN은 두 개 이상의 테이블을 연결해서 데이터를 검색할 때 사용한다.
join의 종류는 크게 4가지 이너조인, 아우터조인, 크로스조인, 셀프조인이 있다.
이너조인은 조인하고자 하는 두 개의 테이블에서 공통된 데이터를 통해 결합하는 방식이다.
단순히 조인을 사용할 때는 암묵적으로 이너조인을 뜻한다.
select
조회할칼럼,
조회할칼럼,
from 기준테이블명
join 연결할테이블명
on 기준테이블명.기준키(공통칼럼명) = 연결할테이블명.기준키(공통칼럼명)
.
.
.
기초 명령어들을 다시 알아봤고, 이제 위에 명령어들을 응용해서 실습을 해볼 것이다.