일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- pythone
- 머신러닝
- 정확도
- 훈련
- MariaDB
- tensorflow
- 데이터
- 회귀모델
- sklearn
- python기초
- Database
- 데이터베이스
- pandas
- 데이터전처리
- 딥러닝
- 선형회기모델
- SQL예제
- Deep Learning
- 예측
- HeidiSQL
- 데이터 가공
- 해석
- 파이썬
- 알고리즘기초
- keras
- 시각화
- python
- 데이터 수집
- 데이터 분석
- 크롤링(crawling)
- Today
- Total
코딩헤딩
MariaDB 데이터베이스[database, DB] 문자열 함수 본문
1) 오름차순 또는 내림차순으로 정렬하기
ORDER BY [컬럼명] DESC 또는 ASC
SELECT mem_id, mem_name, mem_mileage
FROM MEMBER
ORDER BY mem_mileage DESC, mem_id ASC;
<처리순서>
1. select
2. form
3. 테이블 메모리에 올리기
4. where 조건
5. and 조건 또는 or 조건
6. 조회할 컬럼
7. 정렬
2) 조건 where절 내부의 연산자
* 비교 연산자 : >, <, >=, <=, =, <> = !=
* 논리 연산자 : AND, OR
* 산술 연산자 : +, -, *, /
[AND사용]
[상품분류코드가 p201이고, 상품판매가격이 17만원인 상품코드, 상품명, 상품분류코드, 상품판매가격 조회]
정렬은 상품명을 기준으로 오름차순
사용할 테이블명 : prod
SELECT prod_id, prod_name, prod_lgu, prod_sale
FROM prod
WHERE prod_lgu = 'p201' AND prod_sale = 170000
ORDER BY prod_name ASC;
- 사용할 테이블명 : prod
- 사용할 컬럼명 : prod_id, prod_name, prod_lgu, prod_sale
- 사용할 조건이 무엇인지 : prod_lgu = 'p201' AND prod_sale = 170000
- 정렬조건이 무언인지 : prod_name ASC
[IN] 많이 쓴다 *****
[상품 판매가격이 15만 원 또는 17만 원 또는 33만 원인 상품을 조회하기]
조회 컬럼은 상품명, 판매가격
SELECT prod_name, prod_sale
FROM prod
WHERE prod_sale IN(150000, 170000, 330000);
[Like] 많이 쓴다 *****
문자내 특정 단어 포함여부 검색
SELECT prod_name, prod_lgu
FROM prod
"%"
WHERE prod_name LIKE '삼%';
WHERE prod_name LIKE '%치';
WHERE prod_name LIKE '%삼성%';
상품명중에 첫 글자가"삼"으로 시작하는 모든 것 찾기
x% : x 로시작하는 모든 것
상품명중에 마지막 글자가"치"으로 끝나는 모든 것 찾기
상품명에 삼성 이라는 단어가 있는 데이터 조회하기
"_"
WHERE prod_name LIKE '_성%';
WHERE prod_name LIKE '%여름%';
LIKE와 비교연산자 사용 예제)
[회원의 거주 지역이 서울이고, 마일리지가 1000 이상인 회원의 아이디, 이름, 주소(앞), 마일리지 조회하기]
SELECT mem_id, mem_name, mem_add1, mem_mileage
FROM member
WHERE mem_add1 LIKE'%서울%' AND mem_mileage >= 1000;
[Between A and B] 많이 쓴다 *****
A 이상 B 이하의 범위 조건
날짜타입 또는 숫자타입에 대한 범위 연산 조건에 사용됨
SELECT mem_name, mem_bir
FROM member
1. WHERE mem_bir BETWEEN '1975-01-01' AND '1975-12-31';
2. WHERE mem_bir BETWEEN '19750101' AND '19751231';
3. WHERE mem_bir BETWEEN '1975.01.01' AND '1975.12.31';
4. WHERE mem_bir BETWEEN '1975/01/01' AND '1975/12/31';
1,2,3,4 모두 중간 나누는 기호를 제외하고 값이 모두 같다.
* 날짜 형식 ( 포맷 형식 ) : 0000-00-00 // 0000.00.00 // 0000/00/00 // 00000000
[회원의 출생 연도가 1975년생이 아닌 회원에 대한 회원이름, 회원생일 조회하기]
NOT + IN, LIKE, BETWEEN
SELECT mem_name, mem_bir
FROM member
WHERE mem_bir NOT BETWEEN '1975-01-01' AND '1975-12-31';
[CONCAT (값 1, 값 2, 값 3....)] 많이쓴다*****
컬럼데이터 합치기(병합) ,
SELECT mem_name,
CONCAT(mem_regno1, '-', mem_regno2) AS mem_regno,
CONCAT(mem_add1, ' ', mem_add2) AS mem_add
FROM member;
중간 기호도 삽입 가능하다.
[LOWER / UPPER]
대소문자 변환
SELECT LOWER(mem_id) AS '소문자로', UPPER(mem_id) AS '대문자로'
FROM member;
[TRIM / LTRIM / RTRIM]
좌 우 중간 공백제거하기
SELECT ' 왼쪽공백', LTRIM(' 왼쪽공백제거'),
'오른쪽 공백제거 ', RTRIM('오른쪽 공백제거 '),
' 죄우 ', TRIM(' 좌우공백 ');
LEFT / RIGHT(컬럼명, 자릿수)
특정 자릿수까지의 문자 추출하기
SELECT LEFT(prod_id, 4), RIGHT(prod_id, 6)
FROM prod;
SUBSTRING([컬렴명], 시작위치값, 글자수)
문자열 내 특정 위치값 추출하기 많이 쓴다 *****
SELECT SUBSTRING('Java Program', 7,3),
SUBSTRING('Java Program', 1,3);
예제
1. 상품명의 4번째 자리부터 2개의 문자가 '칼라'인 것에 대한 상품코드, 상품명 조회
SELECT prod_id, prod_name
FROM prod
WHERE SUBSTRING(prod_name, 4, 2) = '칼라';
2. 회원의 성씨가 김 씨이고, 지역이 서울 또는 대전에 거주하고, 기념일에 결혼이 포함되어 있는 회원정보 조회하기
조회 컬럼 : 회원이름, 지역(지역만), 기념일 명
SELECT mem_name, SUBSTRING(mem_add1,1,2), mem_memorial
FROM member
WHERE SUBSTRING(mem_add1,1,2) IN ('서울','대전') and SUBSTRING(mem_name,1,1) = '김' AND mem_memorial = '결혼기념일';
3. 아이디가 a001인 회원이 가지고 있는 마일리지 이상인 회원조회
조회컬럼 : 회원아이디, 회원마일리지
SELECT CONCAT(mem_id, mem_mileage) AS id_mileage
FROM member
WHERE SUBSTRING(id_mileage,5,4) <= mem_mileage;
'데이터베이스' 카테고리의 다른 글
MariaDB 데이터베이스[database, DB] 함수 (4) | 2023.11.22 |
---|---|
MariaDB 데이터베이스[database, DB] 서브쿼리(subquery) (0) | 2023.11.21 |
MariaDB 데이터베이스[database, DB] 데이터 입력 조회 수정 삭제(CRUD) (1) | 2023.11.20 |
MariaDB 데이터베이스[database, DB]기초 사용법 (0) | 2023.11.20 |
MariaDB 데이터베이스[database, DB] (0) | 2023.11.20 |