< 변수 >
변수는 변하는 수로 수는 (Data, 자료)는 기본 선저장, 후처리를 원칙으로 한다.
또한 저장된 수가 특정상황에 있어 바뀔 가능성이 있는 경우 이 수를 변수라고 한다.
@var에다가 각각 정수, 실수, 문자열을 지정해본다.
그리고 select로 출력해본다.
set @var1 = 5;
select @var2;
select @var3;
select @var1+@var2;
select @var3, name, addr from usertbl;
as로 열이름을 지정해주면 이렇게 나온다.
select @var3 as 'TITLE', name, addr from usertbl;
< LIMIT >
limit는 출력되는 결과 값 갯수를 제한 하는 것이다.
PREPARE stmt_name FROM '출력할 값 limit ?' EXCUTE stmt_name using @변수명; 으로 한다.
'?'는 나중에 들어갈 값의 공간을 만들어 두는 것이다.
set @rowcnt = 3;
prepare sqlQuery01 from 'select * from usertbl order by height limit ?';
execute sqlQuery01 using @rowcnt;
출력하고 싶은 열 갯수를 변경시키려면 set @rowcnt = n; 에서 n의 숫자를 변경시켜주면 된다.
< 형 변환 >
-- 연산작업시(ex 대입연산, 비교연산...) 자료형(Data Type)이 불일치시 자료형을 일치시키는 작업
-- 자료형변환(암시적 형변환) : 시스템에 의한 형 변환(데이터 손실을 최소화 방향)
-- 강제형변환(명시적 형변환) : 프로그래머에 의한 형 변환(프로그램 제작 목적에 따른 -> 데이터 손실 우려가 비교적 큼)
● cast
select ('2024$01$01'); 하면 이렇게 출력이 된다.
위에 출력된 값을 '년도-월-일'로 형 변환해주기 위해서는 select cast('2024$01$01' as date); 이렇게 문자열 형태를 날짜열 형태로 바꿔주면 된다.
select num, price*amount from buytbl; 하면 이렇게 출력이 된다.
숫자값들이 연산되지 않도록 하려면 contcat으로 price*amount를 묶어주면 된다.
select num, concat(cast(price as char(10)),'X',cast(amount as char(10))) as '가격*수량' from buytbl; 하면 연산이 되지 않고 문자열로 나오게 된다.
select num, concat(price,'X',amount) as '가격*수량' from buytbl; 해도 똑같은 값이 나온다.
select num, concat(cast(price as char(10)),'X',cast(amount as char(10)),"=") as '가격*수량',
price*amount as '결과값' from buytbl;
< 비교연산자 >
select 100+200; 하면 연산이 된다.
select '100'+200; 로 100을 문자열로 만들어도 연산이 된다.
select 'a100'; 를 출력하면 문자열로 그대로 나온다.
select 'a100'+'200'; 이렇게 'a100'을 연산자와 사용하면 숫자가 아닌 문자 뒤로부터는 0으로 취급하므로 이렇게 나온다.
select 'a100'*1; 하면 'a100'이 0으로 취급되므로 결과값이 0이 된다.
select '10a0'+'200'; 하면 a부터 0 취급이 되므로 210이 출력된다.
따라서 select '100a'+'200'; 은 300이 출력된다.
select 1>2; 하면 거짓이므로 0이 출력되고 select 2>1; 하면 참이므로 1이 출력된다.
select '1abcd'<2; 하면 문자 뒤는 0으로 취급된다고 했으니 1<2 가 되므로 참이 된다.
select 'a1bcd'<2; 역시 문자 뒤로는 0으로 취급돼 0<2 로 참이 된다.
select 'a1bcd'>2; 는 0>2 로 취급되므로 거짓으로 0이 출력된다.
select 0 = 'mega'; 는 0=0으로 취급되 참이 된다.
< 연습 문제 >
1. select avg(height) from usertbl;
select cast(avg(height) as signed integer) as '평균키' from usertbl;
2. select cast('2020-05-07' as date);
'IT수업 > 데이터베이스' 카테고리의 다른 글
it 수업 6주차 (18) if, case when 조건문 (1) | 2024.02.01 |
---|---|
it 수업 6주차 (17) 내장 함수 (1) | 2024.02.01 |
it 수업 6주차 (15) UNIQUE, CHECK, DEFAULT (2) | 2024.01.31 |
it 수업 6주차 (14) 제약조건 PK, FK (1) | 2024.01.31 |
it 수업 6주차 (13) insert문 (0) | 2024.01.31 |