* 논리 연산자 우선순위
- AND 가 OR보다 우선순위가 높다.
- 우선순위를 지정하고 싶으면 괄호를 사용한다.
ex. AND 가 OR보다 우선순위가 높은 예.
select *
from products
where company = 'LG' OR company ='삼성' and price <= 300;
-- < 결과 >
-- 30 세탁기 300 2020-03-10 LG
-- 40 TV 280 2021-09-30 LG
-- 50 전자렌지 100 2019-06-20 삼성
-- 60 건조기 350 2021-07-09 LG
ex. 괄호로 지정한 예.
select *
from products
where (company = 'LG' OR company ='삼성') and price <= 300;
-- < 결과 >
-- 30 세탁기 300 2020-03-10 LG
-- 40 TV 280 2021-09-30 LG
-- 50 전자렌지 100 2019-06-20 삼성
- order by에서 같은 값이 있으면 저장된 순서대로 출력.
- 테이블구조 조회하기
: [문법] desc[ribe] 테이블명;
* null 이란 ??
- 모르는 값, 알수없는 값, 아직 정의되지 않은 값, 알려지지 않은 값 등
<-> '0'은 (숫자)와 '공백'은 (문자)
- 모든 데이터 타입에 사용 가능.
- 산술식에 null 값이 포함되어 있는 경우 결과는 무조건 null이다.
ex. 100 +,-,*,/ null = null (모르는 값(=null)을 사칙연산하면 모르는게 당연함)
ex. 12 * 24000 + null / 7 = null
- 정렬에서 null 값이 있으면
: asc - null 값이 맨위에 출력됨.
: desc - null 값이 맨아래 출력됨.
=> null 값을 제일 작은 값으로 인식한다.
- Q. null이 아닌 것만 출력해달라. (tip. null은 특수한 값이므로 비교연산자(=, <>)는 안된다.
[문법] select * from products where make_date is not null;
* colunm alias
- [문법3] 컬럼명 [as] "별명" -> 특수문자, 공백 포함 시 (한글 포함)
select employee_id as "사번", last_name as "이름" , salary "급여", commission_pct "수당 비율"
from employees;
-- <결과>
사번 이름 급여 수당 비율
170 Fox 9600 0.10
169 Bloom 10000 0.15
168 Ozer 11500 0.20
167 Banda 6200 0.10
* distinct 키워드 : 중복값을 제거하고 출력시켜주는 문법.
- [문법] distinct 컬럼명.
select distinct department_id from employees;
-- <결과>
department_id
null -> 신입사원은 아직 부서 배정이 안되었으므로 null 출력
10
20
30
* 기타 문법
- alias는 큰따옴표 사용.
- mysql은 작은따옴표, 큰따옴표 구분이 없다. where 절의 '문자', '날짜'는 작은 따옴표를 쓰는 것이 ANSI 표준법.
ex. 날짜 : 'YYYY-MM-DD'
- mysql은 실제대소문자 값에 대한 대소문자 구분을 하지 않는다. 하지만 mysql만 그렇다.
* 비교연산자 종류
- 단일행 비교연산자 : : =, >, >=, <, <=, <>, !=
- 추가 비교연산자 : between A AND B , in , like , is null
- [비교연산자1] between A AND B
- A이상 B이하의 값을 비교해 주는 연산자로 범위 검색 시 사용됨.
select *
from employees
where salary between 10000 and 20000;
-- where salary >= 10000 and salary <= 20000; --> 결과는 beetween과 같지만 컬럼을 두번방문해야 함..
- 문자 범위검색 예문
select employee_id, last_name, hire_date, department_id
from employees
where last_name between 'B' and 'K';
-- where last_name between 'Bell' and 'Kochhar'; -- 이름으로도 가능함.
-- <결과>
employee_id, last_name, hire_date, department_id
102 De Haan 1993-01-13 90
103 Hunold 1990-01-03 60
104 Ernst 1991-05-21 60
108 Greenberg 1994-08-17 100
'자바스프링웹공부(2024) > 마이에스큐엘' 카테고리의 다른 글
2024.08.05. join (0) | 2024.08.05 |
---|---|
2024.08.01. MySQL Workbench를 이용한 ERD 만들기 ( 리버스 모델링 ) (0) | 2024.08.01 |
2024.08.01. select - 2 (0) | 2024.08.01 |
테이블 삽입/수정/삭제 (0) | 2024.07.29 |
2024.07.22. DB 오리엔테이션 (0) | 2024.07.28 |