백엔드 13

MySQL 새로운컬럼생성,조건문: case/if함수

새로운 컬럼생성(case) select *, case when 조건 then 결과 else '@@' end as 컬럼이름 from 테이블; case when 일때 then 결과 (이 결과가 나오고) else 결과 (아닐때 이결과가 나옴) end as 컬럼이름 case when 년도가 2000년보다 크거나 같으면 then '모던 북' else 아니면 '20세기 북' end as 컬럼이름 '장르' if함수 select * , if (조건,맞는결과,아닌결과) from 테이블; 컬럼생성 select *, case when 조건 then 결과 else '@@' end as 컬럼이름 from 테이블; if함수 select * , if (조건,맞는결과,아닌결과) from 테이블; 둘다 컬럼이기때문에 select 문에..

카테고리 없음 2022.12.08

MySQL 현재시간호출,시간차이,날짜더하기,date_format :datediff/date_add

select curdate(); select curtime(); select now(); 시간은 UTC 협정시간으로 출력 되기 때문에 9시간 차이가 난다. iso형식의 시간을 한글로 표현하기 select date_format(컬럼,'%Y년 %m월 %d일,%h시%m분%s초') from 테이블; 날짜에서 지금까지 날짜차이구하기 select datediff( now() , 날짜컬럼 ) from 테이블; 날짜 더하기 select birthdt, date_add(날짜컬럼,interval n day) from 테이블; 현재의 연월일 정보 호출 select curdate(); 현재의 시간을 호출 select curtime(); 현재의 연월일 시분초 호출 select now(); 시간은 UTC 협정시간으로 출력 되기 ..

데이터베이스 2022.12.08

foreign key 연결된 데이터 삭제 cascade

데이터베이스에서 id로 연결된 테이블중에서 특정 id데이터를 삭제를 해야한다면 데이터를 공유하고 있는 테이블마다 데이터를 먼저 삭제를 해줘야한다. 이렇게 삭제를 지시를해도 남아있는데 foreign키로 공유되고 있는 데이터를 삭제를 해준다면 하지만 이과정은 너무나도 복잡하고 귀찮기 때문에 이렇게 cascade를 선택해 준다면 바로삭제 가능

카테고리 없음 2022.12.08

MySQL ~부터~까지,null값찾기,특정데이터무리찾기: between/is null/ in/notl ike

between A and B 에서 A랑 B는 범위에 포함 is null(null 데이터 호출) select * from 테이블 where 컬럼_at is null; not not을 명령문에 섞어 명령의 부정 만들기 select * from 테이블 where 컬럼 not 명령 a와b 사이 데이터 호출 between A and B A랑 B는 범위에 포함 is null select * from 테이블 where 컬럼_at is null; not select * from 테이블 where 컬럼 not 명령

카테고리 없음 2022.12.07

MySQL datetype 컬럼, 년/월/일 호출

컬럼설정 DATE 날짜 출력 TIME 시간 출력 DATETIME 모든시간 날짜 출력 시간이 들어있는 테이블 insert into people2 (name,birthdate,birthtime,birthdt) values ('Mike','1990-11-11','10:07:35','1990-11-11 10:07:35'), ('Larry','1972-12-25','04:10:42','1972-12-25 04:10:42'); 이름과 /년월일/시간/ 년월일시 날짜정보(일 만 가저오기) select name,day(년월일컬럼) from 컬럼; 요일 출력 select name,dayname(년월일컬럼) from 테이블; 요일을 숫자로 출력 select name,dayofweek(년월일컬럼) from 테이블; 일요일:1..

데이터베이스 2022.12.07

MySQL group by된 데이터 가공 : group by having

데이터베이스안에서 테이블에 카테고리컬 데이터를 그룹화한 다음 그 그룹별로 가공하고 싶을때 단순하게 생각했을때 그룹바이를 하고 그아래 where 쓰고 조건을 쓰면 될꺼 같지만 오류가 난다 예를들어 년도별 stock_qauntity 의 평균값이 70보다 큰 책들의, 년도와 평균값을 보여주세요 란 지문이 있다면 년도별 그룹바이 하고 stock_qauntity의 평균이 70보다 큰 조건을 where에 넣으면 될꺼 같지만 오류가 나게된다 select 컬럼 from 테이블 group by 카테고리컬컬럼 having 조건 ; group having select 컬럼 from 테이블 group by 카테고리컬컬럼 having 조건 ;

데이터베이스 2022.12.07

MySQL 집계하기,최대,최소,합계,평균 : group by/max()/min()sum()/avg() /sub query

집계하기 select 컬럼 from 테이블 group by 카테고리컬럼 ; 카테고리컬 데이터를 하나로 묶어서 원하는 컬럼 데이터를 호출할수 있다. 그룹할 컬럼을 적을때 컬럼명을 다 적어주면 다 묶어줌 최대/최소값 select max(컬럼) from 테이블; order 말고 sub query를 통해 최대값 호출하기 select * from 테이블 where 컬럼 = (select max(컬럼) from 테이블) ; 서브쿼리: 명령 안에 또 명령을 넣는것으로 조건을 wher 안에 넣어주면 된다 이때 다른 조건은 ()를 통해 먼저 실행하게 해야함 이렇게 가능 합계 select sum(컬럼) from 테이블; 평균 select avg(컬럼) from 테이블; 집계하기 select 컬럼 from 테이블 group..

데이터베이스 2022.12.07

MySQL 문자열 컬럼의 데이터를 가공하는 함수 concat/substring/replace/reverse/upper/lower/char_length

컬럼 합치기 1) 기본형 select concat(컬럼 , 컬럼 ) 합칠때 컬럼과 ,로 공백이나 다른문자를 끼어 넣을수 잇음 2) concat ws select concat_ws( 컬럼과 컬럼을 합치는방법 ,컬럼명, 컬럼명) 문자열 일부 가지고오기 select substring(컬럼 , 시작숫자, 끝나는숫자 ) 데이터베이스의 시작숫자는 1이다 뒤에서 부터 셀때는 음수로 (-n) 세면됨 문자열 일부 내용 바꾸기 select replace(컬럼 , '기존문자' , '바꿀문자') 문자열 역순으로 배치 하기 select reverse(컬럼명) 문자열 갯수 구하기 select char_length(컬럼) 대소문자로 변환 select upper(컬럼) select lower(컬럼) 모든 컬럼 뒤에 as를 붙이고 원..

데이터베이스 2022.12.06

MySQL CRUD 작업 create(생성)/read(읽기)/update(추가)/delete(제거)

create insert into 테이블 (컬럼) values ('데이터') 테이블안 어떤 컬럼안에 어떠한 데이터를 집어넣을때 사용 read select *(컬럼) from 테이블 select명 다음 * 오면 모든 컬럼, 특정 컬럼을 불러오고 싶을땐 컬럼명을 적어주면 된다 1)전체 테이블 2) 특정 컬럼 update update 테이블 set 컬럼 = '바꿀내용' where 조건 만약 ~이라면(where) 이컬럼에 이 내용을 이렇게 바꿔라(set) 이 테이블에서(update) delete delete from 테이블 where 컬럼 조건 delete from 테이블만 적을경우 모든 데이터가 사라지지만 테이블의 형태는 남아잇게 된다 조건을 달아줄경우 그조건에 맞는 데이터만 삭제 create insert i..

데이터베이스 2022.12.06

MySQL NotNull/ null없는 컬럼만들기/ 디폴트값 만들기

mysql에서 테이블에 컬럼을 만들때 여러 플래그가 있는데 PK ,NN,UQ,B,UN,ZF,AI,G가 있다. 먼저 NN이란 NotNUll 을 의미하며 null값이 없이 데이터를 저장한다 이렇게 NN에 체크를 할경우 age컬럼이 없이 만들경우 null값이 없이 int는 0 varchar는 공백으로 표시가 된다. 디폴트 만약 null값이 없는 대신 빈공간에 특정 값을 넣고 싶다면 이렇게 넣었을 경우 이렇게 빈공간에 디폴트값이 들어간다

데이터베이스 2022.12.06