SQL이란?
- Strucutre Query Language의 약자로, 관계형 데이터베이스(RDBMS)에 정보를 저장하고 처리하기 위한 프로그래밍 언어를 의미. 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 속성과 데이터 값 간의 다양한 관계를 표현. SQL을 사용할 수 있는 다양한 프로그램이 있지만, MySQL을 사용해서 기초적인 실습을 진행
인덱스(index)
- 빠른 검색을 진행하기 위해 사용, 반드시 필요한 것은 아니지만 대용량 데이터에서는 거의 필수적으로 사용
- unique나 primary key(pk)를 설정하면 자동으로 index가 생성됨
- 너무 많은 column을 지정하거나 아무 column을 index로 지정하면 오히려 성능이 떨어질 수 있음
- execution plan(실행 계획) : index의 사용여부에 따라 탐색 시간이 달라지는 것을 가시적으로 확인 가능
- primary key를 where 조건으로 사용하면 execution plan의 형태가 달라짐

뷰(View) : 가상 테이블
- 복잡한 query를 가상의 table인 view로 만들면 간편하게 사용 가능
- 사용자의 레벨에 따라 접근 레벨을 분류할 수 있기 때문에 보안성이 높음
- 데이터의 독립성을 유지
- 가상의 테이블로, select 문을 활용한 바로가기와 유사함

스토어드 프로시져(Stored Procedure)
- MySQL에서 제공하는 프로그래밍 기능으로, 여러 개의 SQL문을 하나로 묶어서 편리하게 사용 가능
- SQL을 묶는 개념 외에 C, java, python과 같은 프로그래밍 언어에서 사용되는 연산식, 조건문, 반복문 등도 사용 가능
- query text의 길이를 줄여줘서 network의 부하를 줄여주기 때문에, MySQL의 성능을 향상시킬 수 있고 유지관리가 편리함
- delimiter안에서 선언하고, call function name()으로 호출 가능
- 사용한 query문의 결과 개수에 맞게 result grid에 출력, 화면에는 query문의 마지막 결과가 나옴

DML(Data Manipulation Language) : 데이터 조작어
- 인스턴스의 생성(insert), 조회(select), 삭제(delete), 수정(update) 역할을 수행
insert문 : 테이블에 데이터를 삽입하는 명령, 테이블 이름 다음에 나오는 열은 생략이 가능
- 데이터를 입력하고싶지 않은 열이 있으면 테이블 이름 뒤에 입력할 열의 이름을 써줘야 함, 생략한 열에는 NULL 삽입
- NULL : SQL에서 데이터베이스 내의 데이터 값이 존재하지 않는다는 것을 표현하는데 사용
- 형식 : insert into 테이블 이름 values (column_name) ;

Delete문 : 테이블의 행 데이터를 삭제할때 사용
- 형식 : delete from 테이블 이름 where 조건절 ;

Update문 : 기존의 입력되어 있는 값을 수정하는 명령
- 형식 : update 테이블 이름 set 수정할 요소 where 조건절 ;

Select문 : 구축이 완료된 테이블에서 데이터를 추출하는 기능
- select문을 사용해도 기존의 데이터는 변하지 않음
- 형식 : select 열 이름 from 테이블 이름 where 조건절 group by 열 이름 having 조건식 order by 열 이름 limit 숫자;

- where 조건절에는 여러가지 방법으로 조건을 사용할 수 있음
- Between 연산자 : 수치형 조건이 필요할 때 사용, Between A and B를 사용하면 그 사이에 있는 데이터를 추출
- In 연산자: or 연산자 대신 사용, in('a','b',c') 로 a혹은 b혹은 c에 해당하는 데이터를 추출
- like 연산자 : 문자 조건으로 걸때 사용, %와 _를 like와 사용해서 문자열에 해당하는 데이터를 추출. 이 때 _(언더바)를
사용할 경우 자리 수에 맞게 설정해야 쿼리문의 결과 출력 가능

- group by 절은 말 그대로 그룹으로 묶어주는 역할을 수행, 집계함수(count, sum, avg 등)를 활용해서 데이터를 그룹화
- 이 때 그룹화를 통해 얻은 결과에 조건을 걸기 위해서는 where 절에 조건을 쓰는것이 아니라, having절에 조건을 써야 함

- order by 절은 결과의 값이나 개수에 대해서는 영향을 미치지 않지만, 결과가 출력되는 순서를 조절

- limit는 위에서 부터 지정한 개수만큼의 자료만 출력하도록 도와주는 기능
Select문 형식
select 열 이름
from 테이블 이름
where 조건
group by 열 이름
having 열 이름
order by 열 이름
limit 시작위치, 반환갯수 ;
'SQL Review' 카테고리의 다른 글
| [PostgreSQL] 여러 개의 테이블 조작하기 (2) | 2023.11.24 |
|---|---|
| [PostgreSQL] 하나의 테이블에 대한 조작 (0) | 2023.11.22 |
| [PostgreSQL] 여러 개의 값에 대한 조작 - 2 (0) | 2023.11.20 |
| [PostgreSQL] 여러 개의 값에 대한 조작 - 1 (0) | 2023.11.17 |
| [PostgreSQL] 하나의 값 조작하기 (0) | 2023.11.13 |