정렬
ORDER BY - 조회된 데이터를 정렬
select *from Productsorder by Price ASC, ProductID DESC;
select userId, userName, Count(*)
from t_shopping
group by userName;
- ORDER BY절은 데이터를 정렬한다.
- WHERE절 다음에 나와야 한다.
- ASC (ascending order) : 오름차순 → (생략시 기본값)
- DESC (descending order) : 내림차순
- , 로 여러 정렬 조건 지정 가능하다.
별명 (AS)
select userId As '아이디'
from t_shopping;
- 특정 컬럼을 새로운 별명을 붙여 사용하고, 주로 연산이나 함수를 통해 새로 나온 컬럼에 붙인다.
사칙연산
- +, *, /, -
비교연산
- <, =, !=
논리연산
- and, or
- AND가 OR보다 우선 순위를 가진다.
- MySQL에서는 &&나 ||도 사용 가능하다.
사잇값(BETWEEN)
- 컬럼 between A and B
- 컬럼값이 A와 B 사이인 것만 조회
포함(IN() - 여러 값 매칭)
SELECT *
FROM t_shopping
WHERE userId IN(1,2,3);
- 컬럼 in(A, B, C...)
- 컬럼값이 A,B,C 인것을 모두 조회
- IN() 연산자를 이용하여 특정 값이 포함된 데이터를 조회할 수 있다.
- IN 연산자는 동등비교 '='를 여러번 수행하는 효과를 가진다.
LIKE, NOT LIKE
SELECT *
FROM t_shopping
WHERE userId LIKE '김--"
// userId 컬럼 값이 '김'으로 시작하는 3글자 데이터 조회
SELECT *
FROM t_shopping
WHERE userId LIKE '김%"
//'김'으로 시작하는 모든 데이터 조회
SELECT *
FROM t_shopping
WHERE userId LIKE '%김%"
//'김'이 들어가는 모든 데이터 조회
- _ : 한 글자만 매치
- % : 몇 글자든 매치
CEIL, ROUND, FLOOR
• CEIL() : 올림
• ROUND() : 반올림
• FLOOR() : 버림
AVG, MAX, MIN, SUM, COUNT
- SUM() : 컬럼 합계
- AVG() : 컬럼 평균
- MIN() : 컬럼의 최소값
- MAX() : 컬럼의 최대값
- COUNT() : 행의 개수
- COUNT(DISTINCT) : 행의 개수 (중복 제거)
CONCAT(문자1, 문자2, 문자3 ...)
SELECT CONCAT('안녕', '하세요')
//안녕하세요
- 문자들을 이어 붙여준다.
- 숫자와 문자가 함께 입력되어도 오류가 발생하지 않는다.
SUBSTRING(대상문자, 시작위치, 자르는길이)
SELECT SUBSTRING('안녕하세요', 1, 3)
// 안녕하
SELECT LEFT('안녕하세요', 2)
//안녕
SELECT RIGHT('안녕하세요', 3)
//하세요
- 지정한 위치에서 지정한 문자열 길이만큼 자를 때 사용
- 공백도 포함
LEFT("문자열", "길이") : 왼쪽에서부터 지정한 문자열의 길이만큼 자를 때 사용
RIGHT("문자열", "길이") : 오른쪽에서부터 지정한 문자열의 길이만큼 자를 때 사용
REPLACE(대상문자(컬럼), 문자열1, 문자열2)
SELECT REPLACE ('Microsoft SQL Server', 'MICROSOFT', 'MS')
// MS SQL Server
, REPLACE('Microsoft SQL Server' COLLATE Korean_Wansung_CS_AS, 'microsoft', 'MS')
// Microsoft SQL Server
- 문자열 치환
- 대문자, 소문자 구분 없이 찾아서 치환된다. 이때 COLLATE Korean_Wansung_CS_AS 옵션을 사용하면 대문자, 소문자가 정확히 일치해야 치환된다.
_CS_AS: 대소문자 구분
_CI_AS: 대소문자 구분 없이
CURDATE(), NOW()
SELECT NOW();
- 오늘날짜 구하기
- CURDATE() : 연월일
- NOW() : 연월일 시분초
ADDDATE(기준날짜, interval n day), SUBDATE()
- 기준날짜로 부터 n만큼의 거리(간격)
- DATE_ADD(기준시간, interval ) 또는 adddate(기준시간, interval )
- 기준시간을 기준으로 interval만큼의 시간을 더한다.
- interver에 마이너스(-)를 입력하면 시간을 뺀다.
- SUBDATE(기준시간, interval)
- 기준시간을 기준으로 interval만큼의 시간을 뺀다.
DATE_DIFF(날짜1, 날짜2)
select datediff('2022-03-21', '2021-03-21');
- 날짜1과 날짜2의 차이를 구함
DISTINCT
SELECT DISTINCT 컬럼명 FROM 테이블명;
- 조회 결과에서 중복되는 행을 제거한다.
HAVING
- 일반적으로 SELECT문은 FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY 순으로 실행된다.
INNER JOIN
- 기본적으로 JOIN은 교집합이다.
SELECT<열 목록>
FROM <첫 번째 테이블>
INNER JOIN<두 번째 테이블>
ON <조인 조건>
[WHERE 검색 조건]
'MySql' 카테고리의 다른 글
MySQL(07.16) - 데이터 정규화, 트랜잭션 (2) | 2024.07.16 |
---|---|
MySQL(07.15) - SHA-256, 암호화, 복호화, UUID(), Cache 데이터, 데이터 구조, Primary key, err (0) | 2024.07.15 |
MySQL(07.15) - 인덱스(INDEX) (0) | 2024.07.15 |
MySQL(07.12) - 다중컬럼 IN, GROUP_CONCAT, GROUP BY, HAVING, WHERE, 삼항연산자, SUB QUERY(SCALAR, INLINE) (0) | 2024.07.12 |
MySQL(07.11) - MySQL(Alias, SELF JOIN, OUTER JOIN, SubQuery) (0) | 2024.07.11 |