mysql 2

김찬울·2021년 7월 16일
0

DML 자료 처리 언어

DDL 데이터 정의 언어

DCL 데이터 제어 언어

이렇게 세가지가 있고
DDL위주로 사용할 예정

sql를 더 세분화한 언어

insert into

insert [into] 테이블 [열1, 열2, 열3,...] values (값1, 값2, 값3....)

auto increment

auto increment에서는 숫자형식으로
1부터 증가하는 값을 입력.

alter

내부 속성을 바꾸기 위한 것.
보이는 속성보다는 안 보이는?

update

update 테이블 이름
set 열1= 값1,...
where 필드이름 = 데이터값

delete drop truncate

delete from 테이블 이름 where 조건; #조건 없으면 전체 삭제.
drop table 테이블 이름; 테이블 자체를 삭제
drop table 테이블 이름 where 조건; delete와 유사.

delete의 속도가 가장 느린데 그 이유는 delete는 transaction이 있기에 일단 값을 바로 지우지 않고 유보해둔다.

변수

set @변수이름 = 값;

출력

select @변수이름1 식 변수이름2;
변수에는 문자열도 넣을 수 있어서 유용하게 쓰이는 경우도 있다.

cast, convert

select cast(avg(amount), sign int) from employees;

cast 와 convert는 형을 변환해준다.
해당 코드에선느 amount의 평균이 부호가 있는 int형으로 변환되었다.

암시적 형변환

  • '100' + '200' 문자더하기 문자인 경우 자동 정수로 바뀜
  • concat('100' , 200) 인경우 자동 문자로 변환
  • 1 > '2mega' 2를 정수 2로 변환해서 비교한다. 값은 1과 0으로 나온다.
  • 0 = 'mega2' 첫번째 글자로 보기때문에 처음이 문자인 경우 0으로 변환.

내장함수 if, ifnull

if (수식, 참, 거짓)
ex) select if (100>200, '참이다', '거짓이다');
거짓이므로 '거짓이다'가 출력된다.
ifnull (수식1, 수식2)
식 1과 2가 같으면 null 다르면 1

내장함수 case

case 10
	
    when 1 then '일'
    when 5 then '오'
    when 10 then '십'
	else '모름'
  end as 'case연습';

해당 코드는 c언어의 case와 유사한데 case 수 를입력하면 해당하는 수의 케이스가 있을때는 해당 값을 출력하고 없는 경우 else의 값을 출력한다.

concat , concat_ws

concat은 문자열을 이어주고

concat_ws는 문자열을 구분자로 이어줌
파이썬의 "".join과 같음

내장함수...

elt(위치, 문자열1, 문자열2....)
위치번째의 문자열을 반환함

field(찾을 문자열, 문자열1, 문자열2...)
찾을 문자열의 위치 반환

find_in_set

pad 채우기

lstrip = ltrim 공백제거

trim(both 'ㅋ' from 'ㅋㅋㅋ재밌어요ㅋㅋㅋㅋ')

substring

substring_index

수학함수도 있다.

profile
코린코린이

0개의 댓글