데이터베이스 14

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

MySQL 테이블 합치기 join/left join

테이블 합치기 MySQL에서 데이터끼리 합치는 방법 테이블간 연결을 위해선 당연히 공통되는 부분이 존재 해야한다. 공통되는 부분은 보통 id컬럼으로 정하고 다른 테이블에 첫번째 id컬럼을 인식할 컬럼을 만들어주면된다. 먼저 이렇게 테이블하나를 만들었다면. 이렇게 첫번째 테이블의 id와 join이 가능한 컬럼을 만들어줘야한다. 이때 주의 해야하는게 Unsigned 즉 부호 없음을 체크를 해줘야 한다는것인데 당연히 id값엔 음수가 들어갈수없기 때문에 저부분이 체크가 되어 있어야함. 이름은 원하는대로 적고 연결해줄 테이블을 찾은다음 연결해줄 컬럼을 눌러주면됨 select * from 테이블1 join 합처질 테이블 on 테이블.id = 합처질테이블.합치기위해만든_id; 테이블1과 합처질 테이블을 join 하고..

데이터베이스 2022.12.08

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 distinct(유니크)/order by(정렬하기)/limit(조회한계설정)/like(문자검색)

데이터를 유니크하게 만드는 키워드 테이블안 어떠한 컬럼안 데이터가 카테고리컬 데이터 일경우 이 데이터를 유니크하게 보고 싶다. select distinct 컬럼 from 테이블; 중복되는 데이터를 하나로 합침 정렬하기 테이블위에 특정 컬럼을 중심으로 데이터를 정렬하고 싶을때 select * from 테이블 order by 컬럼 asc or desc; 정렬시 중요한건 정렬한 컬럼외에 다른 같은데이터도 따라 나오는게 중요 기본 디폴트는 asc(오름차순) 이고 desc를 입력시 내림차순으로 정렬이 된다 order by 로 정렬시킬 컬럼을 as로 만든 이름을 적는다 하더라도 똑같이 제대로 인식을 한다. 무슨소리냐면 order by라는 명령어 위에 일어나는 명령이 먼저 실행되고 그후 order by가 실행되는 식..

데이터베이스 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에서 id컬럼 만들기

MySQL의 테이블은 파이썬과 다르게 index가 없다 그러다보니 중복된 이름의 데이터를 넣으면 확인할 방법이 까다로운데 그래서 직접 id라는 컬럼을 만들어 관리를 해주면 좋다 PK(Primary key) : 중복값이 들어올 수 없음 NN : NULL값 없음 UN(Unsigned data type ) :부호 없음 (음수가 아닌 숫자) AI(Auto_Increment) : 자동 증가 딱히 ID컬럼을 넣어줄 필요가 없음 알아서 ID의 숫자가 채워지며 자동으로 이동

데이터베이스 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