본문 바로가기

Development/SQL

SQL기초_1

Data Base란?

여러 사람들이 같이 사용할 목적으로 데이터를 담는 통이다.

원하는대로 데이터를 저장하고 사용하기 위해 모든 데이터베이스는 CRUD 기능을 지원한다.

  • C(Create) : 데이터의 생성을 의미
  • R(Read) : 저장된 데이터를 읽어오는 것을 의미
  • U(Update) : 저장된 데이터를 변경
  • D(Delete) : 저장된 데이터를 삭제

 

SQL이란?

Structure Query Language의 약자로, 데이터 베이스에 요청을 해서 원하는 데이터를 가져오는 것을 도와주는 언어이다.

 

SQL이 왜 필요한가

SQL은 데이터를 읽어오는 과정을 편리하게 만들어 준다.

또한 데이터를 손쉽고 깔끔하게 정리/분석하는 기능도 지원한다.

 

Select 쿼리문

Query는 질의를 의미한다. 데이터 베이스에 명령을 내리는 것을 의미한다.

Select 쿼리문은 데이터 베이스에서 데이터를 선택해서 가져오는 것이다.

정리하면 Select 쿼리문은 어떤 테이블에서 어떤 필드의 데이터를 가져올지로 구성된다.

 

테이블과 필드

간단하게 예를 들면 아래의 표가 테이블이고 이름, 나이와 같은 열이 필드이다.

name age
John 35
James 33
Alex 31

 

어떤 데이터 베이스의 모든 테이블을 보고 싶다면 아래와 같은 명령어를 쓰면 된다.

show tables

 

특정 테이블의 모든 데이터(필드)를 보고 싶을 때

users라는 테이블의 모든 데이터를 보고 싶다는 의미이다.

select * from users

 

 

만약 특정 테이블의 특정 데이터를 보고 싶다면 아래와 같이 입력

select 필드명(복수일 경우 쉼표로 구분) from 테이블명

 

Where절의 개념

Where절은 Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것을 의미한다.

ex) user 테이블에서 나이가 33살인 사람의 데이터만 추출

select * from users
where age = 33

만약 where절에 쓸 조건이 텍스트라면 작은 따옴표를 써줘야 한다. (테이블, 필드명은 해당 없음)

 

조건이 여러개일 경우

select * from 테이블명
where 필드명1 조건1 and 필드명2 조건2

 

조건에는 등호도 사용 가능

select * from users
where age > 31

users 테이블에서 age 필드값이 31 초과하는 데이터를 추출

 

 

Where 절과 같이 자주 쓰이는 문법

  • 같지 않음
select * from users
where name != 'John'
  • 범위 조건
select * from users
where age between 31 and 35

위와 같이 작성하면 나이가 31살은 포함, 35살은 포함하지 않는다.
  • 포함 조건
select * from users
where name in ('John', 'James')

이름이 John과 James를 포함하는 데이터 추출
  • 패턴(문자열 조건)
select * from users 
where name like 'J%'

이름에 J를 포함하는 데이터 추출

패턴 추가 설명
like 'a%' a로 시작하는 데이터
like '%a' a로 끝나는 데이터
like '%a%' a를 포함하는 데이터
like 'a%a' a로 시작하고 a로 끝나는 데이터

 

 

유용한 문법 추가

  • 일부 데이터만 추출: Limit
select * from 테이블명 
where 필드명 조건
limit 5

해당 테이블의 조건에 맞는 데이터를 5개만 추출
  • 중복 데이터는 제외하고 추출: Distinct
select distinct(필드명) from 테이블명

테이블의 해당 필드에 중복된 데이터는 제외하고 추출
  • 데이터 개수 세기: Count
select count(*) from 테이블명

해당 테이블에 데이터가 몇 행이 있는지 세기

'Development > SQL' 카테고리의 다른 글

SQL 기초_4  (0) 2023.03.22
SQL 기초_3  (0) 2023.03.22
SQL 기초_2  (0) 2023.03.21