#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 |