본문 바로가기

DB

Maria DB SELECT용어 정리

#prepare : 미완성쿼리 (실행전에 미리 쿼리문에 저장하는 거)

#SET을 이용해 변수에 저장

#SET @변수명 = 값입력;

SET @myVal1 = 160;
SET @myVal2 = 170;
#myQuery 문에 쿼리 저장

#PR

PREPARE myQuery
FROM 'SELECT * FROM student WHERE stu_height BETWEEN ? AND ?';
#실행 변수 입력
EXECUTE myQuery USING @myVal1, @myVal2;

#limit : 3명만 보고 싶다

# SELECT*FROM 테이블명 LIMIT 숫자;
SELECT*FROM student ORDER BY stu_height DESC LIMIT 3;

#limit 1,3 : 시작하는 행 첫번째, 보여줄 행 갯수

#LIMIT 시작하는 행 첫번째, 보여줄 행 갯수
SELECT*FROM student LIMIT 1,3;

#제어흐름함수
#if(조건문, 참일떄 결과값, 거짓일때 결과값) AS 컬럼명이름붙이기
SELECT if(100>200, 'True', 'False') AS tf;

#IFNULL(인수(쿼리), 결과값) 
#인수가 null일때 결과값이 반환 null이 아니면 인수값출력

SELECT IFNULL(NULL, '널이군요');

#NULLIF(첫번째인수, 두번째인수); 
#두 인수가 값이 같으면 null반환 다르면 첫번째인수 반환
SELECT NULLIF(50, 10);

#case 인수 when 조건 then 결과값 else 조건에 해당되지 않는거
SELECT case 10
 when 1 then '일'
 when 5 then '오'
 when 10 then '삼'
 ELSE '모름'
END;

#아스키코드 변환
SELECT ASCII('A');
SELECT ASCII('B');
SELECT CHAR(65);

 

 #할당된 bit 수 : 24개
SELECT BIT_LENGTH('abc');

 

#글자 수 : 3개
SELECT CHAR_LENGTH('abc');

 

#할당된 byte 수 : 3byte/ 1글자 1바이트
SELECT LENGTH('abc'); 


#한글과 영문은 사이즈가 다르다.
SELECT BIT_LENGTH('가');
SELECT CHAR_LENGTH('가');
SELECT LENGTH('가');

#CONCAT('문자열', '문자열', '문자열')

#문자열을 이어서 한문장으로 만들어준다.
SELECT CONCAT('abc', '가', 'def', '나');

#CONCAT_WS('이어줄 문자', '문자열', '문자열')

#문자열 사이에 이어줄 문자를 넣어준다
SELECT CONCAT_WS('-', '010', '1111', '2222');
SELECT CONCAT_WS('/', '2013', '12', '05');

#ELT(인자, '문자', '문자', '문자')

#인자에 해당되는 순서의 문자를 출력한다
SELECT ELT(2, 'a', 'b', 'c');

#FIELD('인자', '문자', '문자', '문자')

#인자에 해당되는 순서를 출력한다
SELECT FIELD('b', 'a', 'b', 'c');

#FIND_IN_SET('판별할 인자', '문자열')

#인자가 있는지 판별하여 1,0을 출력해준다.
SELECT FIND_IN_SET('a', 'a,b,c');

#LOCATE('인자', 문자열)

#인자가 있는 위치를 반환한다(없으면 0)
SELECT LOCATE('나', '하나둘셋');

#INSTR(문자열, '인자')

#LOCATE 기능은 같지만 인자 받는 위치가 다름
SELECT INSTR('하나둘셋', '셋');

#FORMAT(숫자, 자리)

#소수점자리 몇번째까지 출력하는지  인자를 받음, 콤마도 넣을 수 있음
SELECT FORMAT(123456.123456, 3);

#2진수 → 10진수
SELECT BIN(8);
SELECT BIN(4);
SELECT BIN(2);
SELECT BIN(1);

# 8진수 →10진수
SELECT OCT(9);
SELECT OCT(8);
SELECT OCT(7);
SELECT OCT(6);

#16진수 → 10진수
SELECT HEX(17); #11
SELECT HEX(16); #10
SELECT HEX(15); #F
SELECT HEX(14); #E
SELECT HEX(13); #D
SELECT HEX(12); #C
SELECT HEX(11); #B
SELECT HEX(10); #A
SELECT HEX(9); #9

 

#5번째자리부터 시작해 1를 없애고 @넣기
#insert('삽입할 글자입력', 시작할 숫자, 얼마나 없앨건지, 넣을 문자)
SELECT INSERT('abcdefghi', 5, 1, '@@@@');

#LEFT(문자열, 인자)

#왼쪽에서부터 3번째글자까지출력

SELECT LEFT('abcdefg', 3);


#RIGHT(문자열, 인자)

#오른쪽에서부터 3번째글자까지 출력
SELECT RIGHT('abcdefg', 3);

 

#중간글자 가져오기
SELECT  RIGHT(LEFT('abcdefg', 5), 2);
#MID(문자열, 시작할 글자 자릿수, 원하는 글자갯수)

#SUBSTRING(문자열, 시작할 글자 자릿수, 원하는 글자갯수)

#SUBSTR(문자열, 시작할 글자 자릿수, 원하는 글자갯수)

SELECT MID('abcdefg', 4, 2);
SELECT SUBSTRING('abcdefg', 4, 2);
SELECT SUBSTRING('abcdefg', FROM 4 FOR 2);
SELECT SUBSTR('abcdefg', 4, 2);

#SPACE(숫자) 공백을 임의로 넣어줄 수 있다.

#CONCAT(문자열, SPACE(숫자), 문자열)

SELECT CONCAT('이것이', SPACE(100), 'MariaDB다');

#앞뒤 순서를 바꾼다

#REVERSE(문자열)
SELECT REVERSE('abcde');

#REPLACE : 해당하는 글자를 바꾼다
#REPLACE(글자,해당글자,바꿀글자)
SELECT REPLACE('이것이 MariaDB다', '이것이', 'This is');


#왼쪽공백제거

#LTRIM(문자열)
SELECT  LTRIM('   abc');
#오른쪽공백제거

#RTRIM(문자열)
SELECT RTRIM('abc        ');
#공백제거

#TRIM(문자열)
SELECT TRIM('     abc     ');

#글자반복
#repeat(문자, 반복횟수)
SELECT repeat('abc', 3);

'DB' 카테고리의 다른 글

Maria DB SQL Stored Function  (0) 2023.12.06
Maria SQL CONSTRAINT  (1) 2023.12.06
Maria DB ALTER 문  (1) 2023.12.04
Maria DB 외래키 cascade  (1) 2023.12.04
MariaDB 외래키 만들기  (1) 2023.12.01