Db Sql02
in DB on Web, Db
연습환경
- DB : mariaDB
- SampleData : https://github.com/datacharmer/test_db
table 열 조회
show columns from employees;
조회하기, Select 문의 기본 문법
select [distinct] 열이름 [aliase] From 테이블이름 [where 조건식] [order by 열이름 [asc or desc]] [limit 숫자];
- [] : 생략가능
- 굵은 글씨 : 필수 입력
전체 데이터 조회하기
select *
from employees;
*
: 출력할려는 열을 쓴다. *은 모든 열을 의미 from
: ~테이블로 부터 employees
: employees 테이블
원하는 열만 조회하고 제한하고 정렬하기
select emp_no, first_name, last_name
from employees
order by emp_no desc
limit 10;
emp_no, first_name, last_name
: 출력할려는 열을 쓴다. 구체적으로 적으면 해당 열만 조회한다. oreder by 열이름 [desc, asc]
: 해당 열을 내림차순(desc), 혹은 오름차순(asc)으로 조회한다. limit
: 조회하는 데이터의 개수를 제한한다. limit 19, 10
이라면 20~30번째 숫자가 조회된다.
중복된 출력 값 제거하기
select distinct emp_no, first_name, last_name
from employees
order by emp_no desc
limit 10;
distinct
: 중복된 출력 값 제거하기, 후에 left join과 함께 많이 사용된다.
별칭 사용하기
열 이름을 바꿀 때 사용한다.
select emp_no as num, first_name as FN, last_name as LN
from employees
order by emp_no desc
limit 10;
as 별칭
: 열 이름을 바꿀 수 있다.
데이터 값 연결하기
각 열에 따로 담겨 있는 데이터 값을 하나로 붙이거나 추가 수식을 붙여 출력할 수 있다.
- mysql version
select concat(first_name, last_name) from employees limit 10;
- oracle version
select first_name || last_name from employees limit 10;
산술 처리하기 데이터: 값 끼리 계산
산술 연산자 +, -, *, /
를 통하여 select 문에서 from 절을 제외하고 모든 절에서 사용가능하다.
select emp_no + 10
from employees
limit 10;
Where 조건 절을 통한 데이터 검색
where 절에 비교 연산자를 사용하여 다양한 조건 검색이 가능하다.
select *
from employees
where emp_no = 10001;
select *
from employees
where emp_no >= 10001
limit 10;
SQL연산자 : 조회 조건 확장하기
sql 연산자는 비교 연산자보다 조금 더 확장된 연산자로 자주 쓰이는 연산자이다.
구분 | 연산자 | 의미 |
SQL 연산 | BETWEEN a AND b | a 와 b 사이의 값이 있다. (a, b 값 포함) |
IN (list) | list 중 어느 값이라도 일치한다. | |
LIKE '비교문자' | 비교문자와 형태가 일치한다.(%, _ 사용) | |
IS NULL | null 값을 찾는다. |
select *
from employees
where emp_no between 10000 AND 20000
limit 10;
select *
from employees
where emp_no in (10000, 17000, 24000);
select *
from employees
where first_name LIKE 'da%';
select *
from employees
where emp_no IS NULL;